SCT parametric simulation

From Charm-Tau Detector
(Difference between revisions)
Jump to: navigation, search
(Created page with "== SctParSimAlg (WIP) ==")
 
(SctParSimAlg (WIP))
Line 1: Line 1:
== SctParSimAlg (WIP) ==
+
= 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 ==
 +
 
 +
= 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]

Revision as of 13:49, 18 November 2021

Contents

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

Name to change parameter Description Default value
B Detector magnetic field 1.5
mostProbMass The mass of most probable particle 0.13957

TrackSystemTool

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

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

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

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

Configuration

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)

More examples are shown in jobOptions

Personal tools