File indexing completed on 2024-09-27 07:03:47
0001 import os
0002 from Gaudi.Configuration import *
0003 from GaudiKernel import SystemOfUnits as units
0004
0005 from GaudiKernel.DataObjectHandleBase import DataObjectHandleBase
0006 from Configurables import ApplicationMgr, EICDataSvc, PodioOutput, GeoSvc
0007
0008 from Configurables import PodioInput
0009 from Configurables import Jug__Digi__EcalTungstenSamplingDigi as EcalTungstenSamplingDigi
0010 from Configurables import Jug__Reco__EcalTungstenSamplingReco as EcalTungstenSamplingReco
0011 from Configurables import Jug__Reco__CalorimeterHitsMerger as CalorimeterHitsMerger
0012 from Configurables import Jug__Reco__CalorimeterIslandCluster as IslandCluster
0013 from Configurables import Jug__Reco__ClusterRecoCoG as RecoCoG
0014
0015
0016 sf = float(os.environ.get('CB_EMCAL_SAMP_FRAC', '1.0'))
0017
0018 geo_service = GeoSvc("GeoSvc", detectors=["../athena/athena.xml"])
0019 podioevent = EICDataSvc("EventDataSvc", inputs=["../reconstruction_benchmarks/sim_barrel_clusters.root"], OutputLevel=DEBUG)
0020
0021 podioinput = PodioInput("PodioReader", collections=["mcparticles", "EcalBarrelHits"], OutputLevel=DEBUG)
0022 emcaldigi = EcalTungstenSamplingDigi("ecal_digi",
0023 inputHitCollection="EcalBarrelHits",
0024 outputHitCollection="DigiEcalBarrelHits",
0025 inputEnergyUnit=units.GeV,
0026 inputTimeUnit=units.ns,
0027 energyResolutions=[0., 0.02, 0.],
0028 dynamicRangeADC=700*units.keV,
0029 pedestalSigma=40,
0030 OutputLevel=DEBUG)
0031 emcalreco = EcalTungstenSamplingReco("ecal_reco",
0032 inputHitCollection="DigiEcalBarrelHits",
0033 outputHitCollection="RecoEcalBarrelHits",
0034 dynamicRangeADC=700*units.keV,
0035 pedestalSigma=40,
0036 OutputLevel=DEBUG)
0037
0038
0039
0040 xymerger = CalorimeterHitsMerger("ecal_xy_merger",
0041 fields=["layer", "slice"],
0042 inputHitCollection="RecoEcalBarrelHits",
0043 outputHitCollection="RecoEcalBarrelHitsXY")
0044
0045 zmerger = CalorimeterHitsMerger("ecal_z_merger",
0046 fields=["x", "y"],
0047 inputHitCollection="RecoEcalBarrelHits",
0048 outputHitCollection="RecoEcalBarrelHitsZ")
0049 emcalcluster = IslandCluster(inputHitCollection="RecoEcalBarrelHitsXY",
0050 outputClusterCollection="EcalBarrelClusters",
0051 minClusterCenterEdep=0.5*units.MeV,
0052 splitCluster=False,
0053 groupRanges=[5.*units.cm, 5*units.cm, 5.*units.cm])
0054 clusterreco = RecoCoG(clusterCollection="EcalBarrelClusters", logWeightBase=6.2, samplingFraction=sf, OutputLevel=DEBUG)
0055
0056
0057 out = PodioOutput("out", filename="barrel_cluster.root")
0058 out.outputCommands = ["keep *"]
0059
0060 ApplicationMgr(
0061 TopAlg = [podioinput, emcaldigi, emcalreco, xymerger, zmerger, emcalcluster, clusterreco, out],
0062 EvtSel = 'NONE',
0063 EvtMax = 5,
0064 ExtSvc = [podioevent],
0065 OutputLevel=DEBUG
0066 )
0067