Skip to content
Snippets Groups Projects

Draft: Resolve "Add ZDC benchmark"

Closed Jihee Kim requested to merge 71-add-zdc-benchmark into master
Compare and
8 files
+ 1002
0
Compare changes
  • Side-by-side
  • Inline
Files
8
import os
import ROOT
from Gaudi.Configuration import *
from GaudiKernel.SystemOfUnits import mm, MeV, rad, ns
from Configurables import ApplicationMgr, EICDataSvc, PodioOutput, GeoSvc
from Configurables import PodioInput
from Configurables import Jug__Base__InputCopier_dd4pod__Geant4ParticleCollection_dd4pod__Geant4ParticleCollection_ as MCCopier
from Configurables import Jug__Base__InputCopier_dd4pod__CalorimeterHitCollection_dd4pod__CalorimeterHitCollection_ as CalCopier
from Configurables import Jug__Digi__CalorimeterHitDigi as CalHitDigi
from Configurables import Jug__Reco__CalorimeterHitReco as CalHitReco
from Configurables import Jug__Reco__CalorimeterHitsMerger as CalHitsMerge
from Configurables import Jug__Reco__CalorimeterIslandCluster as IslandCluster
from Configurables import Jug__Reco__ClusterRecoCoG as RecoCoG
kwargs = dict()
# input arguments through environment variables
kwargs['input'] = os.environ.get('JUGGLER_SIM_FILE', '../atheta/zdc_photons.root')
kwargs['output'] = os.environ.get('JUGGLER_REC_FILE', 'rec_zdc_photons.root')
kwargs['compact'] = os.environ.get('DETECTOR_COMPACT_PATH', '../atheta/atheta.xml')
kwargs['nev'] = int(os.environ.get('JUGGLER_N_EVENTS', 100))
kwargs['si_sf'] = float(os.environ.get('ZDC_SI_SAMP_FRAC', 1.0))
kwargs['sci_sf'] = float(os.environ.get('ZDC_SCI_SAMP_FRAC', 1.0))
if kwargs['nev'] < 1:
f = ROOT.TFile(kwargs['input'])
kwargs['nev'] = f.events.GetEntries()
print(kwargs)
geo_service = GeoSvc('GeoSvc', detectors=kwargs['compact'].split(','), OutputLevel=INFO)
podioevent = EICDataSvc('EventDataSvc', inputs=kwargs['input'].split(','), OutputLevel=DEBUG)
sim_colls = [
'mcparticles',
'ffiZDCSiHits',
'ffiZDCPbWO4Hits',
'ffiZDCSiPbHits',
'ffiZDCScintHits'
]
podin = PodioInput('PodioReader', collections=sim_colls, OutputLevel=DEBUG)
podout = PodioOutput('out', filename=kwargs['output'])
# MC truth info
mc_copier = MCCopier('MCCopier',
inputCollection='mcparticles',
outputCollection='mcparticles2')
# Geant4 simulation info
PbWO4_copier = CalCopier('PbWO4CalCopier',
inputCollection='ffiZDCPbWO4Hits',
outputCollection='ffiZDCPbWO4Hits2')
SiPb_copier = CalCopier('SiPbCalCopier',
inputCollection='ffiZDCSiPbHits',
outputCollection='ffiZDCSiPbHits2')
SciPb_copier = CalCopier('SciPbCalCopier',
inputCollection='ffiZDCScintHits',
outputCollection='ffiZDCScintHits2')
# Digitization
PbWO4_digi = CalHitDigi('PbWO4_digi',
inputHitCollection='ffiZDCPbWO4Hits',
outputHitCollection='RawDigiffiZDCPbWO4Hits')
SiPb_digi = CalHitDigi('SiPb_digi',
inputHitCollection='ffiZDCSiPbHits',
outputHitCollection='RawDigiffiZDCSiPbHits')
SciPb_digi = CalHitDigi('SciPb_digi',
inputHitCollection='ffiZDCScintHits',
outputHitCollection='RawDigiffiZDCScintHits')
# Reconstruction
PbWO4_reco = CalHitReco('PbWO4_reco',
inputHitCollection=PbWO4_digi.outputHitCollection,
outputHitCollection='RecoffiZDCPbWO4Hits',
readoutClass='ffi_ZDC_ECAL_Hits',
localDetFields=['system'])
# Merging hits
#PbWO4_merger = CalHitsMerge('PbWO4_merger',
# inputHitCollection=PbWO4_reco.outputHitCollection,
# outputHitCollection='MergeffiZDCPbWO4Hits',
# readoutClass='ffi_ZDC_ECAL_Hits')
# Clustering
PbWO4_cl = IslandCluster('PbWO4_cl',
inputHitCollection=PbWO4_reco.outputHitCollection,
outputProtoClusterCollection='ProtoClusterffiZDCPbWO4',
minClusterCenterEdep=1.*MeV,
minClusterHitEdep=0.1*MeV,
splitCluster=True)
PbWO4_clreco = RecoCoG('PbWO4_clreco',
inputHitCollection=PbWO4_cl.inputHitCollection,
inputProtoClusterCollection = PbWO4_cl.outputProtoClusterCollection,
outputClusterCollection='ClusterffiZDCPbWO4',
mcHits="ffiZDCPbWO4Hits",
logWeightBase=6.2)
podout.outputCommands = ['keep *']
ApplicationMgr(
TopAlg=[podin, mc_copier, PbWO4_copier, SiPb_copier, SciPb_copier,
PbWO4_digi, SiPb_digi, SciPb_digi,
PbWO4_reco,
#PbWO4_merger,
PbWO4_cl,
PbWO4_clreco,
podout],
EvtSel='NONE',
EvtMax=kwargs['nev'],
ExtSvc=[podioevent],
OutputLevel=DEBUG
)
Loading