|
|
Line 1: |
Line 1: |
− | = SctParSim (WIP) =
| |
− | A parametric simulation is a tool to receive a detector response without detailed description of interaction of particles with matter.
| |
| | | |
− | Implemented detector subsystems:
| |
− | * drift chamber
| |
− | * FARICH PID system
| |
− | * calorimeter
| |
− | * muon system
| |
− |
| |
− | The parametric simulation yields the detector response in the SCT EDM format thus allowing to analyze its result in the same manner as the result of the full simulation.
| |
− |
| |
− | == Detector configuration ==
| |
− |
| |
− | The detector parameters can be changed in the run script (see Configuration section).
| |
− | The detector parameters and their default values can be viewed here.
| |
− |
| |
− | === SctParSimAlg ===
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Name to change parameter
| |
− | ! Description
| |
− | ! Default value
| |
− | |-
| |
− | | B
| |
− | | Detector magnetic field
| |
− | | 1.5
| |
− | |-
| |
− | | mostProbMass
| |
− | | The mass of most probable particle
| |
− | | 0.13957
| |
− | |}
| |
− |
| |
− | === TrackSystemTool ===
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Name to change paramater
| |
− | ! Description
| |
− | ! Default value
| |
− | |-
| |
− | | trackRhoMin
| |
− | | Inner radius of barrel tracker, m
| |
− | | 0.1
| |
− | |-
| |
− | | trackRhoMax
| |
− | | Outer radius of barrel tracker, m
| |
− | | 0.8
| |
− | |-
| |
− | | trackZMin
| |
− | | Inner z coordinate of endcup tracker, m
| |
− | | 0
| |
− | |-
| |
− | | trackZMax
| |
− | | Outer z coordinate of endcup tracker, m
| |
− | | 1
| |
− | |-
| |
− | | trackMinPt
| |
− | | Minimum momentum, GeV
| |
− | |0.05
| |
− | |-
| |
− | | trackPtProb
| |
− | | Registration probabilities for different momentum, {GeV, prob}
| |
− | | {{0.1, 0.8}, {0.3, 0.9}, {1, 0.95), {10, 0.99}}
| |
− | |-
| |
− | | trackRadLen
| |
− | | Radiation length in the track system, m
| |
− | | 187
| |
− | |-
| |
− | | trackResParPT
| |
− | | Parameterizaton parameters for xy projection
| |
− | | 0.00212
| |
− | |-
| |
− | | trackResParPZ
| |
− | | Parameterization parameters for z projection
| |
− | | {0.001281, 0.00308}
| |
− | |-
| |
− | | trackLayerAx
| |
− | | The radius of layers anf the location radius of the anod layers, mm
| |
− | | {{6.306, 217.306}, {6.644, 227.1}, {7.165, 246.906}, {6.564, 341.938}, {6.794, 352.06}, {7.14, 371.992}, {7.388, 382.95}, {6.651, 467.57}, {6.823, 477.718}, {6.968, 488.097}, {7.12, 498.701}, {7.274, 509.535}, {6.768, 636.322}, {6.898, 646.501}, {7.007, 656.957}, {7.121, 667.581}, {6.791, 750.730}, {6.902, 761.027}, {6.995, 771.472}, {7.091, 782.061}}
| |
− | |-
| |
− | | trackLayerSt
| |
− | | The radius of layers and the location radius of the stereo layers, mm
| |
− | | {{6.473, 280.136}, {6.747, 290.136}, {7.182, 310.863}, {7.486, 321.938}, {6.603, 405.941}, {6.799, 416.04}, {7.104, 436.741}, {7.314, 447.606}, {6.741, 533.35}, {6.859, 543.615}, {7.026, 554.088, {7.161, 564.762}, {6.778, 584.801}, {6.919, 595.108}, {7.039, 605.606}, {7.163, 6169.289}, {6.746, 689.948}, {6.865, 700.185}, {7.041, 720.09}, {7.165, 730.775}}
| |
− | |}
| |
− |
| |
− | === FARICHSystemTool ===
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Name to change paramater
| |
− | ! Description
| |
− | ! Default value
| |
− | |-
| |
− | | farichRhoMin
| |
− | | Inner radius of barrel FARICH system, m
| |
− | | 0.82
| |
− | |-
| |
− | | farichRhoMax
| |
− | | Outer radius of barrel FARICH system, m
| |
− | | 0.9
| |
− | |-
| |
− | | farichZMin
| |
− | | Inner z coordinate of endcup FARICH system, m
| |
− | | 1.02
| |
− | |-
| |
− | | farichZMax
| |
− | | Outer z coordinate of encup FARICH system, m
| |
− | | 1.273
| |
− | |-
| |
− | | farichHoleR
| |
− | | Hole radius of FARICH system
| |
− | | 0.3
| |
− | |-
| |
− | | parSimFarichFileName
| |
− | | The path to the file with response histograms of FARICH
| |
− | | ./pi_ms_f1_mppc2_px3_d200_mla4_graph2d.root
| |
− | |}
| |
− |
| |
− | === CaloSystemTool ===
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Name to change paramater
| |
− | ! Description
| |
− | ! Default value
| |
− | |-
| |
− | | caloRhoMin
| |
− | | Inner radius of barrel calorimeter, m
| |
− | | 1.09
| |
− | |-
| |
− | | caloRhoMax
| |
− | | Outer radius of barrel calorimeter, m
| |
− | | 1.55
| |
− | |-
| |
− | | caloZMin
| |
− | | Inner z coordinate of endcup calorimeter, m
| |
− | | 1.293
| |
− | |-
| |
− | | caloZMax
| |
− | | Outer z coordinate of endcup calorimeter, m
| |
− | | 1.86
| |
− | |-
| |
− | | caloCosthmax
| |
− | | Maximum cosine
| |
− | | 0.9
| |
− | |-
| |
− | | caloClSize
| |
− | | Calorimeter cluster size, m
| |
− | | 0.045
| |
− | |-
| |
− | | caloClSizeEGamma
| |
− | | Calorimeter cluster size for gamma, m
| |
− | | 0.15
| |
− | |-
| |
− | | caloEMinBarrel
| |
− | | Minimal energy, GeV
| |
− | | 0.015
| |
− | |-
| |
− | | caloEMinEndcup
| |
− | | Minimal energy, GeV
| |
− | | 0.015
| |
− | |-
| |
− | | caloResPar
| |
− | | Parameterization parameters
| |
− | | {1.34e-2, 0.066e-2, 0.0, 0.82e-2}
| |
− | |}
| |
− |
| |
− | === MuonSystemTool ===
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Name to change paramater
| |
− | ! Description
| |
− | ! Default value
| |
− | |-
| |
− | | muonRhoMin
| |
− | | Inner radius of barrel muon system, m
| |
− | | 1.87
| |
− | |-
| |
− | | muonRhoMax
| |
− | | Outer radius of barrel muon system, m
| |
− | | 2.15
| |
− | |-
| |
− | | muonZMin
| |
− | | Inner z coordinate of endcup muon system, m
| |
− | | 1.88
| |
− | |-
| |
− | | muonZMax
| |
− | | Outer z coordinate of endcup muon system, m
| |
− | | 2.16
| |
− | |-
| |
− | | parSimMuonFileNameMu
| |
− | | The path to the file with response histograms of muon system (muon)
| |
− | | ./g4beamline_mu_plus_100k_parse.root
| |
− | |-
| |
− | | parSimMuonFileNamePi
| |
− | | The path to the file with response histograms of muon system (pion)
| |
− | | ./g4beamline_pi_plus_100k_parse.root
| |
− | |}
| |
− |
| |
− |
| |
− | == Parameterization (WIP) ==
| |
− | === Drift chamber (WIP) ===
| |
− |
| |
− | === FARICH PID system ===
| |
− |
| |
− | The FARICH PID system works using the results of the full GEANT4 simulation. The system output is the particle speed and number of photons.
| |
− |
| |
− | <gallery>
| |
− | File:Farich_res.png|The dependence of the particle β factor on the momentum in the FARICH PID system
| |
− |
| |
− | File:Farich_param.png|The dependence of the number of photoelectron on the βγ factor in the FARICH PID system for different angles (black - 10, red - 30, green - 45)
| |
− | </gallery>
| |
− |
| |
− | === Calorimeter (WIP) ===
| |
− |
| |
− |
| |
− | === Muon system ===
| |
− | The muon system works using the results of a reconducted stand-alone simulation on G4BeamLine. The system is a cylinder of eight absorber and sensitive polystyrene layers. The absorber is iron.
| |
− |
| |
− | <gallery>
| |
− | File:muon.png|The probability distribution for muons and pions to reach a certain layer in the muon system
| |
− | </gallery>
| |
− |
| |
− | = Configuration =
| |
− |
| |
− | <pre>
| |
− | from Configurables import ApplicationMgr
| |
− |
| |
− | from Gaudi.Configuration import *
| |
− | from Configurables import GenAlg, EvtGenInterface
| |
− | from Configurables import HepMCToEDMConverter
| |
− | from Configurables import ScTauDataSvc
| |
− |
| |
− | from Configurables import PodioOutput
| |
− |
| |
− | from Configurables import SctParSimAlg
| |
− | from Configurables import EventLoader
| |
− | from Configurables import NtupleAlg, NTupleSvc
| |
− | from Configurables import ParticleCombinerAlg
| |
− |
| |
− | from Configurables import Gaudi__ParticlePropertySvc
| |
− | from PathResolver import PathResolver
| |
− |
| |
− | ofile = 'sctparsim_out.root' # name of output file
| |
− | eventNumber = 50000 # number of events
| |
− |
| |
− | ############################
| |
− | #### Event generation ####
| |
− | ############################
| |
− | podioevent = ScTauDataSvc("EventDataSvc")
| |
− |
| |
− | # Particle service
| |
− | particlePropertySvc = Gaudi__ParticlePropertySvc(
| |
− | "ParticlePropertySvc",
| |
− | ParticlePropertiesFile=PathResolver.FindDataFile('GenParticleData/ParticleTable.txt')
| |
− | )
| |
− |
| |
− | # EvtGen
| |
− | evtgen = EvtGenInterface('SignalProvider')
| |
− | #evtgen.userdec = "./mydec.dec"
| |
− | #evtgen.rootParticle = "J/psi"
| |
− |
| |
− | gen = GenAlg('EvtGenAlg', SignalProvider=evtgen)
| |
− | gen.hepmc.Path = 'hepmc'
| |
− |
| |
− | # HepMC3 to PODIO
| |
− | edm = HepMCToEDMConverter("Converter")
| |
− | edm.hepmc.Path=gen.hepmc.Path
| |
− | edm.genparticles.Path="allGenParticles"
| |
− | edm.genvertices.Path="allGenVertices"
| |
− |
| |
− | ############################
| |
− | # SctParSim
| |
− | ############################
| |
− | sct_alg = SctParSimAlg('SctAlg')
| |
− | #sct_alg.CaloSystemTool.caloClSizeEGamma = 0.2 # Example how to change a subsystem parameter
| |
− |
| |
− | ############################
| |
− | # Podio output
| |
− | ############################
| |
− | out = PodioOutput('out', filename=ofile)
| |
− | out.outputCommands = ["keep *"]
| |
− |
| |
− | ############################
| |
− | # Analisis
| |
− | ############################
| |
− |
| |
− | evlo = EventLoader('EvtLoader')
| |
− | evlo.pcl.Path = 'Particles' # Branch (in the input ROOT-file) for reading
| |
− | evlo.pListMap.Path = 'Lists1'
| |
− | evlo.plists = [['gamma']] # Partilce list for further analisis
| |
− |
| |
− | # Select particle combinations
| |
− | cmbr = ParticleCombinerAlg('Cmbr',
| |
− | decStr = 'pi0 -> gamma gamma', # Investigated decay
| |
− | cutStr = 'E > 0.5', # Selection criteria
| |
− | selfConj = True # if neutral particle True, else False
| |
− | )
| |
− |
| |
− | cmbr.pListMapI = evlo.pListMap.Path
| |
− | cmbr.pListMapO.Path = 'Lists2'
| |
− |
| |
− | # Select variables to save to n-tuple
| |
− | tupl = NtupleAlg('piTuple')
| |
− | tupl.listName = 'pi0'
| |
− | tupl.fileName = 'scttuple/tup'
| |
− |
| |
− | # List contains the particle parametes to write an output file
| |
− | tupl.vars = [['px_mc', 'py_mc', 'pz_mc', 'E', 'pi0 -> ^gamma ^gamma'],
| |
− | ['M', ''],
| |
− | ]
| |
− |
| |
− | tupl.pListMapI.Path = cmbr.pListMapO.Path
| |
− | NTupleSvc(Output = ["scttuple DATAFILE='tup.root' OPT='NEW' TYP='ROOT'"])
| |
− |
| |
− | options= {
| |
− | 'TopAlg' : [gen, edm, sct_alg, evlo, cmbr, tupl],
| |
− | 'EvtSel' : 'NONE',
| |
− | 'ExtSvc' : [particlePropertySvc, podioevent],
| |
− | 'EvtMax' : eventNumber,
| |
− | 'StatusCodeCheck' : True,
| |
− | 'AuditAlgorithms' : True,
| |
− | 'AuditTools' : True,
| |
− | 'AuditServices' : True,
| |
− | 'OutputLevel' : INFO,
| |
− | 'HistogramPersistency' : 'ROOT',
| |
− | }
| |
− |
| |
− | ApplicationMgr(**options)
| |
− | </pre>
| |
− |
| |
− | More examples are shown in [https://git.inp.nsk.su/sctau/aurora/-/blob/master/Simulation/SctParSimAlg/jobOptions jobOptions]
| |