Skip to content
Snippets Groups Projects

Resolve "Remove obsolete algorithms from full simulations"

@@ -52,15 +52,12 @@ from Configurables import Jug__Base__InputCopier_dd4pod__CalorimeterHitCollectio
@@ -52,15 +52,12 @@ from Configurables import Jug__Base__InputCopier_dd4pod__CalorimeterHitCollectio
from Configurables import Jug__Base__InputCopier_dd4pod__TrackerHitCollection_dd4pod__TrackerHitCollection_ as TrkCopier
from Configurables import Jug__Base__InputCopier_dd4pod__TrackerHitCollection_dd4pod__TrackerHitCollection_ as TrkCopier
from Configurables import Jug__Base__InputCopier_dd4pod__PhotoMultiplierHitCollection_dd4pod__PhotoMultiplierHitCollection_ as PMTCopier
from Configurables import Jug__Base__InputCopier_dd4pod__PhotoMultiplierHitCollection_dd4pod__PhotoMultiplierHitCollection_ as PMTCopier
from Configurables import Jug__Base__MC2DummyParticle as MC2DummyParticle
from Configurables import Jug__Digi__PhotoMultiplierDigi as PhotoMultiplierDigi
from Configurables import Jug__Digi__PhotoMultiplierDigi as PhotoMultiplierDigi
from Configurables import Jug__Digi__CalorimeterHitDigi as CalHitDigi
from Configurables import Jug__Digi__CalorimeterHitDigi as CalHitDigi
from Configurables import Jug__Digi__ExampleCaloDigi as ExampleCaloDigi
from Configurables import Jug__Digi__UFSDTrackerDigi as TrackerDigi
from Configurables import Jug__Digi__UFSDTrackerDigi as TrackerDigi
from Configurables import Jug__Digi__EMCalorimeterDigi as EMCalorimeterDigi
from Configurables import Jug__Reco__TrackerHitReconstruction as TrackerHitReconstruction
from Configurables import Jug__Reco__TrackerHitReconstruction as TrackerHitReconstruction
 
from Configurables import Jug__Reco__TrackingHitsCollector2 as TrackingHitsCollector
from Configurables import Jug__Reco__TrackerSourceLinker as TrackerSourceLinker
from Configurables import Jug__Reco__TrackerSourceLinker as TrackerSourceLinker
from Configurables import Jug__Reco__TrackerSourcesLinker as TrackerSourcesLinker
from Configurables import Jug__Reco__TrackerSourcesLinker as TrackerSourcesLinker
#from Configurables import Jug__Reco__TrackingHitsSourceLinker as TrackingHitsSourceLinker
#from Configurables import Jug__Reco__TrackingHitsSourceLinker as TrackingHitsSourceLinker
@@ -85,8 +82,6 @@ from Configurables import Jug__Reco__PhotoRingClusters as PhotoRingClusters
@@ -85,8 +82,6 @@ from Configurables import Jug__Reco__PhotoRingClusters as PhotoRingClusters
from Configurables import Jug__Reco__EMCalReconstruction as EMCalReconstruction
from Configurables import Jug__Reco__EMCalReconstruction as EMCalReconstruction
from Configurables import Jug__Reco__SimpleClustering as SimpleClustering
# branches needed from simulation root file
# branches needed from simulation root file
sim_coll = [
sim_coll = [
"mcparticles",
"mcparticles",
@@ -102,46 +97,32 @@ sim_coll = [
@@ -102,46 +97,32 @@ sim_coll = [
"GEMTrackerEndcapHits",
"GEMTrackerEndcapHits",
"VertexBarrelHits",
"VertexBarrelHits",
"VertexEndcapHits",
"VertexEndcapHits",
"DRICHHits"
"DRICHHits",
 
"MRICHHits"
]
]
# input and output
# list of algorithms
 
algorithms = []
 
 
# input
podin = PodioInput("PodioReader", collections=sim_coll)
podin = PodioInput("PodioReader", collections=sim_coll)
podout = PodioOutput("out", filename=output_rec)
algorithms.append(podin)
## copiers to get around input --> output copy bug. Note the "2" appended to the output collection.
## copiers to get around input --> output copy bug. Note the "2" appended to the output collection.
copier = MCCopier("MCCopier",
copier = MCCopier("MCCopier",
inputCollection="mcparticles",
inputCollection="mcparticles",
outputCollection="mcparticles2")
outputCollection="mcparticles2")
 
algorithms.append(copier)
 
trkcopier = TrkCopier("TrkCopier",
trkcopier = TrkCopier("TrkCopier",
inputCollection="TrackerBarrelHits",
inputCollection="TrackerBarrelHits",
outputCollection="TrackerBarrelHits2")
outputCollection="TrackerBarrelHits2")
 
algorithms.append(trkcopier)
 
pmtcopier = PMTCopier("PMTCopier",
pmtcopier = PMTCopier("PMTCopier",
inputCollection="DRICHHits",
inputCollection="DRICHHits",
outputCollection="DRICHHits2")
outputCollection="DRICHHits2")
algorithms.append(pmtcopier)
# Dummy reconstruction
dummy = MC2DummyParticle("MC2Dummy",
inputCollection="mcparticles",
outputCollection="ReconstructedParticles",
smearing = 0.01)
# Simple clusters
ecal_digi = EMCalorimeterDigi("ecal_digi",
inputHitCollection="EcalBarrelHits",
outputHitCollection="EcalBarrelHitsSimpleDigi")
ecal_reco = EMCalReconstruction("ecal_reco",
inputHitCollection=ecal_digi.outputHitCollection,
outputHitCollection="EcalBarrelHitsSimpleReco",
minModuleEdep=0.0*units.MeV)
simple_cluster = SimpleClustering("simple_cluster",
inputHitCollection=ecal_reco.outputHitCollection,
outputClusterCollection="SimpleClusters",
outputProtoClusterCollection="SimpleProtoClusters",
minModuleEdep=1.0*units.MeV,
maxDistance=50.0*units.cm)
# Crystal Endcap Ecal
# Crystal Endcap Ecal
ce_ecal_daq = dict(
ce_ecal_daq = dict(
@@ -155,6 +136,7 @@ ce_ecal_digi = CalHitDigi("ce_ecal_digi",
@@ -155,6 +136,7 @@ ce_ecal_digi = CalHitDigi("ce_ecal_digi",
outputHitCollection="EcalEndcapNRawHits",
outputHitCollection="EcalEndcapNRawHits",
energyResolutions=[0., 0.02, 0.],
energyResolutions=[0., 0.02, 0.],
**ce_ecal_daq)
**ce_ecal_daq)
 
algorithms.append(ce_ecal_digi)
ce_ecal_reco = CalHitReco("ce_ecal_reco",
ce_ecal_reco = CalHitReco("ce_ecal_reco",
inputHitCollection=ce_ecal_digi.outputHitCollection,
inputHitCollection=ce_ecal_digi.outputHitCollection,
@@ -163,6 +145,7 @@ ce_ecal_reco = CalHitReco("ce_ecal_reco",
@@ -163,6 +145,7 @@ ce_ecal_reco = CalHitReco("ce_ecal_reco",
readoutClass="EcalEndcapNHits",
readoutClass="EcalEndcapNHits",
sectorField="sector",
sectorField="sector",
**ce_ecal_daq)
**ce_ecal_daq)
 
algorithms.append(ce_ecal_reco)
ce_ecal_cl = IslandCluster("ce_ecal_cl",
ce_ecal_cl = IslandCluster("ce_ecal_cl",
inputHitCollection=ce_ecal_reco.outputHitCollection,
inputHitCollection=ce_ecal_reco.outputHitCollection,
@@ -172,6 +155,7 @@ ce_ecal_cl = IslandCluster("ce_ecal_cl",
@@ -172,6 +155,7 @@ ce_ecal_cl = IslandCluster("ce_ecal_cl",
minClusterCenterEdep=30*units.MeV,
minClusterCenterEdep=30*units.MeV,
sectorDist=5.0*units.cm,
sectorDist=5.0*units.cm,
dimScaledLocalDistXY=[1.8, 1.8]) # dimension scaled dist is good for hybrid sectors with different module size
dimScaledLocalDistXY=[1.8, 1.8]) # dimension scaled dist is good for hybrid sectors with different module size
 
algorithms.append(ce_ecal_cl)
ce_ecal_clreco = RecoCoG("ce_ecal_clreco",
ce_ecal_clreco = RecoCoG("ce_ecal_clreco",
inputHitCollection=ce_ecal_cl.inputHitCollection,
inputHitCollection=ce_ecal_cl.inputHitCollection,
@@ -179,6 +163,7 @@ ce_ecal_clreco = RecoCoG("ce_ecal_clreco",
@@ -179,6 +163,7 @@ ce_ecal_clreco = RecoCoG("ce_ecal_clreco",
outputClusterCollection="EcalEndcapNClusters",
outputClusterCollection="EcalEndcapNClusters",
samplingFraction=0.998, # this accounts for a small fraction of leakage
samplingFraction=0.998, # this accounts for a small fraction of leakage
logWeightBase=4.6)
logWeightBase=4.6)
 
algorithms.append(ce_ecal_clreco)
# Endcap Sampling Ecal
# Endcap Sampling Ecal
ci_ecal_daq = dict(
ci_ecal_daq = dict(
@@ -191,12 +176,14 @@ ci_ecal_digi = CalHitDigi("ci_ecal_digi",
@@ -191,12 +176,14 @@ ci_ecal_digi = CalHitDigi("ci_ecal_digi",
inputHitCollection="EcalEndcapPHits",
inputHitCollection="EcalEndcapPHits",
outputHitCollection="EcalEndcapPRawHits",
outputHitCollection="EcalEndcapPRawHits",
**ci_ecal_daq)
**ci_ecal_daq)
 
algorithms.append(ci_ecal_digi)
ci_ecal_reco = CalHitReco("ci_ecal_reco",
ci_ecal_reco = CalHitReco("ci_ecal_reco",
inputHitCollection=ci_ecal_digi.outputHitCollection,
inputHitCollection=ci_ecal_digi.outputHitCollection,
outputHitCollection="EcalEndcapPRecHits",
outputHitCollection="EcalEndcapPRecHits",
thresholdFactor=5.0,
thresholdFactor=5.0,
**ci_ecal_daq)
**ci_ecal_daq)
 
algorithms.append(ci_ecal_reco)
# merge hits in different layer (projection to local x-y plane)
# merge hits in different layer (projection to local x-y plane)
ci_ecal_merger = CalHitsMerger("ci_ecal_merger",
ci_ecal_merger = CalHitsMerger("ci_ecal_merger",
@@ -205,6 +192,7 @@ ci_ecal_merger = CalHitsMerger("ci_ecal_merger",
@@ -205,6 +192,7 @@ ci_ecal_merger = CalHitsMerger("ci_ecal_merger",
fields=["layer", "slice"],
fields=["layer", "slice"],
fieldRefNumbers=[1, 0],
fieldRefNumbers=[1, 0],
readoutClass="EcalEndcapPHits")
readoutClass="EcalEndcapPHits")
 
algorithms.append(ci_ecal_merger)
ci_ecal_cl = IslandCluster("ci_ecal_cl",
ci_ecal_cl = IslandCluster("ci_ecal_cl",
inputHitCollection=ci_ecal_merger.outputHitCollection,
inputHitCollection=ci_ecal_merger.outputHitCollection,
@@ -212,6 +200,7 @@ ci_ecal_cl = IslandCluster("ci_ecal_cl",
@@ -212,6 +200,7 @@ ci_ecal_cl = IslandCluster("ci_ecal_cl",
splitCluster=False,
splitCluster=False,
minClusterCenterEdep=10.*units.MeV,
minClusterCenterEdep=10.*units.MeV,
localDistXY=[10*units.mm, 10*units.mm])
localDistXY=[10*units.mm, 10*units.mm])
 
algorithms.append(ci_ecal_cl)
ci_ecal_clreco = RecoCoG("ci_ecal_clreco",
ci_ecal_clreco = RecoCoG("ci_ecal_clreco",
inputHitCollection=ci_ecal_cl.inputHitCollection,
inputHitCollection=ci_ecal_cl.inputHitCollection,
@@ -220,6 +209,7 @@ ci_ecal_clreco = RecoCoG("ci_ecal_clreco",
@@ -220,6 +209,7 @@ ci_ecal_clreco = RecoCoG("ci_ecal_clreco",
outputInfoCollection="EcalEndcapPClustersInfo",
outputInfoCollection="EcalEndcapPClustersInfo",
logWeightBase=6.2,
logWeightBase=6.2,
samplingFraction=ci_ecal_sf)
samplingFraction=ci_ecal_sf)
 
algorithms.append(ci_ecal_clreco)
# Central Barrel Ecal (Imaging Cal.)
# Central Barrel Ecal (Imaging Cal.)
img_barrel_daq = dict(
img_barrel_daq = dict(
@@ -233,6 +223,7 @@ img_barrel_digi = CalHitDigi("img_barrel_digi",
@@ -233,6 +223,7 @@ img_barrel_digi = CalHitDigi("img_barrel_digi",
outputHitCollection="EcalBarrelImagingRawHits",
outputHitCollection="EcalBarrelImagingRawHits",
energyResolutions=[0., 0.02, 0.], # 2% flat resolution
energyResolutions=[0., 0.02, 0.], # 2% flat resolution
**img_barrel_daq)
**img_barrel_daq)
 
algorithms.append(img_barrel_digi)
img_barrel_reco = ImCalPixelReco("img_barrel_reco",
img_barrel_reco = ImCalPixelReco("img_barrel_reco",
inputHitCollection=img_barrel_digi.outputHitCollection,
inputHitCollection=img_barrel_digi.outputHitCollection,
@@ -242,6 +233,7 @@ img_barrel_reco = ImCalPixelReco("img_barrel_reco",
@@ -242,6 +233,7 @@ img_barrel_reco = ImCalPixelReco("img_barrel_reco",
layerField="layer", # field to get layer id
layerField="layer", # field to get layer id
sectorField="module", # field to get sector id
sectorField="module", # field to get sector id
**img_barrel_daq)
**img_barrel_daq)
 
algorithms.append(img_barrel_reco)
img_barrel_cl = ImagingCluster("img_barrel_cl",
img_barrel_cl = ImagingCluster("img_barrel_cl",
inputHitCollection=img_barrel_reco.outputHitCollection,
inputHitCollection=img_barrel_reco.outputHitCollection,
@@ -250,6 +242,7 @@ img_barrel_cl = ImagingCluster("img_barrel_cl",
@@ -250,6 +242,7 @@ img_barrel_cl = ImagingCluster("img_barrel_cl",
layerDistEtaPhi=[10*units.mrad, 10*units.mrad], # adjacent layer
layerDistEtaPhi=[10*units.mrad, 10*units.mrad], # adjacent layer
neighbourLayersRange=2, # id diff for adjacent layer
neighbourLayersRange=2, # id diff for adjacent layer
sectorDist=3.*units.cm) # different sector
sectorDist=3.*units.cm) # different sector
 
algorithms.append(img_barrel_cl)
img_barrel_clreco = ImagingClusterReco("img_barrel_clreco",
img_barrel_clreco = ImagingClusterReco("img_barrel_clreco",
samplingFraction=img_barrel_sf,
samplingFraction=img_barrel_sf,
@@ -258,6 +251,7 @@ img_barrel_clreco = ImagingClusterReco("img_barrel_clreco",
@@ -258,6 +251,7 @@ img_barrel_clreco = ImagingClusterReco("img_barrel_clreco",
outputClusterCollection="EcalBarrelImagingClusters",
outputClusterCollection="EcalBarrelImagingClusters",
outputInfoCollection="EcalBarrelImagingClustersInfo",
outputInfoCollection="EcalBarrelImagingClustersInfo",
outputLayerCollection="EcalBarrelImagingLayers")
outputLayerCollection="EcalBarrelImagingLayers")
 
algorithms.append(img_barrel_clreco)
# Central ECAL SciFi
# Central ECAL SciFi
scfi_barrel_daq = dict(
scfi_barrel_daq = dict(
@@ -270,6 +264,7 @@ scfi_barrel_digi = CalHitDigi("scfi_barrel_digi",
@@ -270,6 +264,7 @@ scfi_barrel_digi = CalHitDigi("scfi_barrel_digi",
inputHitCollection="EcalBarrelScFiHits",
inputHitCollection="EcalBarrelScFiHits",
outputHitCollection="EcalBarrelScFiRawHits",
outputHitCollection="EcalBarrelScFiRawHits",
**scfi_barrel_daq)
**scfi_barrel_daq)
 
algorithms.append(scfi_barrel_digi)
scfi_barrel_reco = CalHitReco("scfi_barrel_reco",
scfi_barrel_reco = CalHitReco("scfi_barrel_reco",
inputHitCollection=scfi_barrel_digi.outputHitCollection,
inputHitCollection=scfi_barrel_digi.outputHitCollection,
@@ -280,6 +275,7 @@ scfi_barrel_reco = CalHitReco("scfi_barrel_reco",
@@ -280,6 +275,7 @@ scfi_barrel_reco = CalHitReco("scfi_barrel_reco",
sectorField="module",
sectorField="module",
localDetFields=["system", "module"], # use local coordinates in each module (stave)
localDetFields=["system", "module"], # use local coordinates in each module (stave)
**scfi_barrel_daq)
**scfi_barrel_daq)
 
algorithms.append(scfi_barrel_reco)
# merge hits in different layer (projection to local x-y plane)
# merge hits in different layer (projection to local x-y plane)
scfi_barrel_merger = CalHitsMerger("scfi_barrel_merger",
scfi_barrel_merger = CalHitsMerger("scfi_barrel_merger",
@@ -288,6 +284,7 @@ scfi_barrel_merger = CalHitsMerger("scfi_barrel_merger",
@@ -288,6 +284,7 @@ scfi_barrel_merger = CalHitsMerger("scfi_barrel_merger",
fields=["fiber"],
fields=["fiber"],
fieldRefNumbers=[1],
fieldRefNumbers=[1],
readoutClass="EcalBarrelScFiHits")
readoutClass="EcalBarrelScFiHits")
 
algorithms.append(scfi_barrel_merger)
scfi_barrel_cl = IslandCluster("scfi_barrel_cl",
scfi_barrel_cl = IslandCluster("scfi_barrel_cl",
inputHitCollection=scfi_barrel_merger.outputHitCollection,
inputHitCollection=scfi_barrel_merger.outputHitCollection,
@@ -295,6 +292,7 @@ scfi_barrel_cl = IslandCluster("scfi_barrel_cl",
@@ -295,6 +292,7 @@ scfi_barrel_cl = IslandCluster("scfi_barrel_cl",
splitCluster=False,
splitCluster=False,
minClusterCenterEdep=10.*MeV,
minClusterCenterEdep=10.*MeV,
localDistXZ=[30*mm, 30*mm])
localDistXZ=[30*mm, 30*mm])
 
algorithms.append(scfi_barrel_cl)
scfi_barrel_clreco = RecoCoG("scfi_barrel_clreco",
scfi_barrel_clreco = RecoCoG("scfi_barrel_clreco",
inputHitCollection=scfi_barrel_cl.inputHitCollection,
inputHitCollection=scfi_barrel_cl.inputHitCollection,
@@ -303,6 +301,7 @@ scfi_barrel_clreco = RecoCoG("scfi_barrel_clreco",
@@ -303,6 +301,7 @@ scfi_barrel_clreco = RecoCoG("scfi_barrel_clreco",
outputInfoCollection="EcalBarrelScFiClustersInfo",
outputInfoCollection="EcalBarrelScFiClustersInfo",
logWeightBase=6.2,
logWeightBase=6.2,
samplingFraction= scifi_barrel_sf)
samplingFraction= scifi_barrel_sf)
 
algorithms.append(scfi_barrel_clreco)
# Central Barrel Hcal
# Central Barrel Hcal
cb_hcal_daq = dict(
cb_hcal_daq = dict(
@@ -315,6 +314,7 @@ cb_hcal_digi = CalHitDigi("cb_hcal_digi",
@@ -315,6 +314,7 @@ cb_hcal_digi = CalHitDigi("cb_hcal_digi",
inputHitCollection="HcalBarrelHits",
inputHitCollection="HcalBarrelHits",
outputHitCollection="HcalBarrelRawHits",
outputHitCollection="HcalBarrelRawHits",
**cb_hcal_daq)
**cb_hcal_daq)
 
algorithms.append(cb_hcal_digi)
cb_hcal_reco = CalHitReco("cb_hcal_reco",
cb_hcal_reco = CalHitReco("cb_hcal_reco",
inputHitCollection=cb_hcal_digi.outputHitCollection,
inputHitCollection=cb_hcal_digi.outputHitCollection,
@@ -324,6 +324,7 @@ cb_hcal_reco = CalHitReco("cb_hcal_reco",
@@ -324,6 +324,7 @@ cb_hcal_reco = CalHitReco("cb_hcal_reco",
layerField="layer",
layerField="layer",
sectorField="module",
sectorField="module",
**cb_hcal_daq)
**cb_hcal_daq)
 
algorithms.append(cb_hcal_reco)
cb_hcal_merger = CalHitsMerger("cb_hcal_merger",
cb_hcal_merger = CalHitsMerger("cb_hcal_merger",
inputHitCollection=cb_hcal_reco.outputHitCollection,
inputHitCollection=cb_hcal_reco.outputHitCollection,
@@ -331,6 +332,7 @@ cb_hcal_merger = CalHitsMerger("cb_hcal_merger",
@@ -331,6 +332,7 @@ cb_hcal_merger = CalHitsMerger("cb_hcal_merger",
readoutClass="HcalBarrelHits",
readoutClass="HcalBarrelHits",
fields=["layer", "slice"],
fields=["layer", "slice"],
fieldRefNumbers=[1, 0])
fieldRefNumbers=[1, 0])
 
algorithms.append(cb_hcal_merger)
cb_hcal_cl = IslandCluster("cb_hcal_cl",
cb_hcal_cl = IslandCluster("cb_hcal_cl",
inputHitCollection=cb_hcal_merger.outputHitCollection,
inputHitCollection=cb_hcal_merger.outputHitCollection,
@@ -338,6 +340,7 @@ cb_hcal_cl = IslandCluster("cb_hcal_cl",
@@ -338,6 +340,7 @@ cb_hcal_cl = IslandCluster("cb_hcal_cl",
splitCluster=False,
splitCluster=False,
minClusterCenterEdep=30.*units.MeV,
minClusterCenterEdep=30.*units.MeV,
localDistXY=[15.*units.cm, 15.*units.cm])
localDistXY=[15.*units.cm, 15.*units.cm])
 
algorithms.append(cb_hcal_cl)
cb_hcal_clreco = RecoCoG("cb_hcal_clreco",
cb_hcal_clreco = RecoCoG("cb_hcal_clreco",
inputHitCollection=cb_hcal_cl.inputHitCollection,
inputHitCollection=cb_hcal_cl.inputHitCollection,
@@ -346,7 +349,7 @@ cb_hcal_clreco = RecoCoG("cb_hcal_clreco",
@@ -346,7 +349,7 @@ cb_hcal_clreco = RecoCoG("cb_hcal_clreco",
outputInfoCollection="HcalBarrelClustersInfo",
outputInfoCollection="HcalBarrelClustersInfo",
logWeightBase=6.2,
logWeightBase=6.2,
samplingFraction=cb_hcal_sf)
samplingFraction=cb_hcal_sf)
algorithms.append(cb_hcal_clreco)
# Hcal Hadron Endcap
# Hcal Hadron Endcap
ci_hcal_daq = dict(
ci_hcal_daq = dict(
@@ -354,16 +357,19 @@ ci_hcal_daq = dict(
@@ -354,16 +357,19 @@ ci_hcal_daq = dict(
capacityADC=32768,
capacityADC=32768,
pedestalMean=400,
pedestalMean=400,
pedestalSigma=10)
pedestalSigma=10)
 
ci_hcal_digi = CalHitDigi("ci_hcal_digi",
ci_hcal_digi = CalHitDigi("ci_hcal_digi",
inputHitCollection="HcalEndcapPHits",
inputHitCollection="HcalEndcapPHits",
outputHitCollection="HcalEndcapPRawHits",
outputHitCollection="HcalEndcapPRawHits",
**ci_hcal_daq)
**ci_hcal_daq)
 
algorithms.append(ci_hcal_digi)
ci_hcal_reco = CalHitReco("ci_hcal_reco",
ci_hcal_reco = CalHitReco("ci_hcal_reco",
inputHitCollection=ci_hcal_digi.outputHitCollection,
inputHitCollection=ci_hcal_digi.outputHitCollection,
outputHitCollection="HcalEndcapPRecHits",
outputHitCollection="HcalEndcapPRecHits",
thresholdFactor=5.0,
thresholdFactor=5.0,
**ci_hcal_daq)
**ci_hcal_daq)
 
algorithms.append(ci_hcal_reco)
ci_hcal_merger = CalHitsMerger("ci_hcal_merger",
ci_hcal_merger = CalHitsMerger("ci_hcal_merger",
inputHitCollection=ci_hcal_reco.outputHitCollection,
inputHitCollection=ci_hcal_reco.outputHitCollection,
@@ -371,6 +377,7 @@ ci_hcal_merger = CalHitsMerger("ci_hcal_merger",
@@ -371,6 +377,7 @@ ci_hcal_merger = CalHitsMerger("ci_hcal_merger",
readoutClass="HcalEndcapPHits",
readoutClass="HcalEndcapPHits",
fields=["layer", "slice"],
fields=["layer", "slice"],
fieldRefNumbers=[1, 0])
fieldRefNumbers=[1, 0])
 
algorithms.append(ci_hcal_merger)
ci_hcal_cl = IslandCluster("ci_hcal_cl",
ci_hcal_cl = IslandCluster("ci_hcal_cl",
inputHitCollection=ci_hcal_merger.outputHitCollection,
inputHitCollection=ci_hcal_merger.outputHitCollection,
@@ -378,6 +385,7 @@ ci_hcal_cl = IslandCluster("ci_hcal_cl",
@@ -378,6 +385,7 @@ ci_hcal_cl = IslandCluster("ci_hcal_cl",
splitCluster=False,
splitCluster=False,
minClusterCenterEdep=30.*units.MeV,
minClusterCenterEdep=30.*units.MeV,
localDistXY=[15.*units.cm, 15.*units.cm])
localDistXY=[15.*units.cm, 15.*units.cm])
 
algorithms.append(ci_hcal_cl)
ci_hcal_clreco = RecoCoG("ci_hcal_clreco",
ci_hcal_clreco = RecoCoG("ci_hcal_clreco",
inputHitCollection=ci_hcal_cl.inputHitCollection,
inputHitCollection=ci_hcal_cl.inputHitCollection,
@@ -386,6 +394,7 @@ ci_hcal_clreco = RecoCoG("ci_hcal_clreco",
@@ -386,6 +394,7 @@ ci_hcal_clreco = RecoCoG("ci_hcal_clreco",
outputInfoCollection="HcalEndcapPClustersInfo",
outputInfoCollection="HcalEndcapPClustersInfo",
logWeightBase=6.2,
logWeightBase=6.2,
samplingFraction=ci_hcal_sf)
samplingFraction=ci_hcal_sf)
 
algorithms.append(ci_hcal_clreco)
# Hcal Electron Endcap
# Hcal Electron Endcap
ce_hcal_daq = dict(
ce_hcal_daq = dict(
@@ -398,12 +407,14 @@ ce_hcal_digi = CalHitDigi("ce_hcal_digi",
@@ -398,12 +407,14 @@ ce_hcal_digi = CalHitDigi("ce_hcal_digi",
inputHitCollection="HcalEndcapNHits",
inputHitCollection="HcalEndcapNHits",
outputHitCollection="HcalEndcapNRawHits",
outputHitCollection="HcalEndcapNRawHits",
**ce_hcal_daq)
**ce_hcal_daq)
 
algorithms.append(ce_hcal_digi)
ce_hcal_reco = CalHitReco("ce_hcal_reco",
ce_hcal_reco = CalHitReco("ce_hcal_reco",
inputHitCollection=ce_hcal_digi.outputHitCollection,
inputHitCollection=ce_hcal_digi.outputHitCollection,
outputHitCollection="HcalEndcapNRecHits",
outputHitCollection="HcalEndcapNRecHits",
thresholdFactor=5.0,
thresholdFactor=5.0,
**ce_hcal_daq)
**ce_hcal_daq)
 
algorithms.append(ce_hcal_reco)
ce_hcal_merger = CalHitsMerger("ce_hcal_merger",
ce_hcal_merger = CalHitsMerger("ce_hcal_merger",
inputHitCollection=ce_hcal_reco.outputHitCollection,
inputHitCollection=ce_hcal_reco.outputHitCollection,
@@ -411,6 +422,7 @@ ce_hcal_merger = CalHitsMerger("ce_hcal_merger",
@@ -411,6 +422,7 @@ ce_hcal_merger = CalHitsMerger("ce_hcal_merger",
readoutClass="HcalEndcapNHits",
readoutClass="HcalEndcapNHits",
fields=["layer", "slice"],
fields=["layer", "slice"],
fieldRefNumbers=[1, 0])
fieldRefNumbers=[1, 0])
 
algorithms.append(ce_hcal_merger)
ce_hcal_cl = IslandCluster("ce_hcal_cl",
ce_hcal_cl = IslandCluster("ce_hcal_cl",
inputHitCollection=ce_hcal_merger.outputHitCollection,
inputHitCollection=ce_hcal_merger.outputHitCollection,
@@ -418,6 +430,7 @@ ce_hcal_cl = IslandCluster("ce_hcal_cl",
@@ -418,6 +430,7 @@ ce_hcal_cl = IslandCluster("ce_hcal_cl",
splitCluster=False,
splitCluster=False,
minClusterCenterEdep=30.*units.MeV,
minClusterCenterEdep=30.*units.MeV,
localDistXY=[15.*units.cm, 15.*units.cm])
localDistXY=[15.*units.cm, 15.*units.cm])
 
algorithms.append(ce_hcal_cl)
ce_hcal_clreco = RecoCoG("ce_hcal_clreco",
ce_hcal_clreco = RecoCoG("ce_hcal_clreco",
inputHitCollection=ce_hcal_cl.inputHitCollection,
inputHitCollection=ce_hcal_cl.inputHitCollection,
@@ -426,163 +439,154 @@ ce_hcal_clreco = RecoCoG("ce_hcal_clreco",
@@ -426,163 +439,154 @@ ce_hcal_clreco = RecoCoG("ce_hcal_clreco",
outputInfoCollection="HcalEndcapNClustersInfo",
outputInfoCollection="HcalEndcapNClustersInfo",
logWeightBase=6.2,
logWeightBase=6.2,
samplingFraction=ce_hcal_sf)
samplingFraction=ce_hcal_sf)
algorithms.append(ce_hcal_clreco)
# Tracking
# Tracking
trk_b_digi = TrackerDigi("trk_b_digi",
trk_b_digi = TrackerDigi("trk_b_digi",
inputHitCollection="TrackerBarrelHits",
inputHitCollection="TrackerBarrelHits",
outputHitCollection="TrackerBarrelRawHits",
outputHitCollection="TrackerBarrelRawHits",
timeResolution=8)
timeResolution=8)
 
algorithms.append(trk_b_digi)
 
trk_ec_digi = TrackerDigi("trk_ec_digi",
trk_ec_digi = TrackerDigi("trk_ec_digi",
inputHitCollection="TrackerEndcapHits",
inputHitCollection="TrackerEndcapHits",
outputHitCollection="TrackerEndcapRawHits",
outputHitCollection="TrackerEndcapRawHits",
timeResolution=8)
timeResolution=8)
 
algorithms.append(trk_ec_digi)
vtx_b_digi = TrackerDigi("vtx_b_digi",
vtx_b_digi = TrackerDigi("vtx_b_digi",
inputHitCollection="VertexBarrelHits",
inputHitCollection="VertexBarrelHits",
outputHitCollection="VertexBarrelRawHits",
outputHitCollection="VertetimeResolution=10xBarrelRawHits",
timeResolution=8)
timeResolution=8)
 
algorithms.append(vtx_b_digi)
vtx_ec_digi = TrackerDigi("vtx_ec_digi",
vtx_ec_digi = TrackerDigi("vtx_ec_digi",
inputHitCollection="VertexEndcapHits",
inputHitCollection="VertexEndcapHits",
outputHitCollection="VertexEndcapRawHits",
outputHitCollection="VertexEndcapRawHits",
timeResolution=8)
timeResolution=8)
 
algorithms.append(vtx_ec_digi)
gem_ec_digi = TrackerDigi("gem_ec_digi",
gem_ec_digi = TrackerDigi("gem_ec_digi",
inputHitCollection="GEMTrackerEndcapHits",
inputHitCollection="GEMTrackerEndcapHits",
outputHitCollection="GEMTrackerEndcapRawHits",
outputHitCollection="GEMTrackerEndcapRawHits",
timeResolution=10)
timeResolution=10)
 
algorithms.append(gem_ec_digi)
# Tracker and vertex reconstruction
# Tracker and vertex reconstruction
trk_b_reco = TrackerHitReconstruction("trk_b_reco",
trk_b_reco = TrackerHitReconstruction("trk_b_reco",
inputHitCollection = trk_b_digi.outputHitCollection,
inputHitCollection = trk_b_digi.outputHitCollection,
outputHitCollection="TrackerBarrelRecHits")
outputHitCollection="TrackerBarrelRecHits")
 
algorithms.append(trk_b_reco)
trk_ec_reco = TrackerHitReconstruction("trk_ec_reco",
trk_ec_reco = TrackerHitReconstruction("trk_ec_reco",
inputHitCollection = trk_ec_digi.outputHitCollection,
inputHitCollection = trk_ec_digi.outputHitCollection,
outputHitCollection="TrackerEndcapRecHits")
outputHitCollection="TrackerEndcapRecHits")
 
algorithms.append(trk_ec_reco)
vtx_b_reco = TrackerHitReconstruction("vtx_b_reco",
vtx_b_reco = TrackerHitReconstruction("vtx_b_reco",
inputHitCollection = vtx_b_digi.outputHitCollection,
inputHitCollection = vtx_b_digi.outputHitCollection,
outputHitCollection="VertexBarrelRecHits")
outputHitCollection="VertexBarrelRecHits")
 
algorithms.append(vtx_b_reco)
vtx_ec_reco = TrackerHitReconstruction("vtx_ec_reco",
vtx_ec_reco = TrackerHitReconstruction("vtx_ec_reco",
inputHitCollection = vtx_ec_digi.outputHitCollection,
inputHitCollection = vtx_ec_digi.outputHitCollection,
outputHitCollection="VertexEndcapRecHits")
outputHitCollection="VertexEndcapRecHits")
 
algorithms.append(vtx_ec_reco)
gem_ec_reco = TrackerHitReconstruction("gem_ec_digi",
gem_ec_reco = TrackerHitReconstruction("gem_ec_reco",
inputHitCollection=gem_ec_digi.outputHitCollection,
inputHitCollection=gem_ec_digi.outputHitCollection,
outputHitCollection="GEMTrackerEndcapRecHits",
outputHitCollection="GEMTrackerEndcapRecHits")
timeResolution=10)
algorithms.append(gem_ec_reco)
 
 
# Tracking hit collector
 
trk_hit_col = TrackingHitsCollector("trk_hit_col",
 
inputTrackingHits=[
 
str(trk_b_reco.outputHitCollection),
 
str(trk_ec_reco.outputHitCollection),
 
str(vtx_b_reco.outputHitCollection),
 
str(vtx_ec_reco.outputHitCollection),
 
str(gem_ec_reco.outputHitCollection) ],
 
trackingHits="trackingHits")
 
algorithms.append(trk_hit_col)
# Hit Source linker
# Hit Source linker
sourcelinker = TrackerSourcesLinker("trk_srcslnkr",
sourcelinker = TrackerSourceLinker("trk_srcslnkr",
inputHitCollections = ["VertexBarrelRecHits", "TrackerBarrelRecHits"],
inputHitCollection = trk_hit_col.trackingHits,
outputSourceLinks = "TrackerSourceLinks",
outputSourceLinks = "TrackSourceLinks",
outputMeasurements = "TrackerMeasurements")
outputMeasurements = "TrackMeasurements")
algorithms.append(sourcelinker)
#trk_hits_srclnkr = TrackerSourcesLinker("trk_srcslnkr",
# ITrackerBarrelHits = vtx_b_reco.outputHitCollection,
# ITrackerEndcapHits = vtx_ec_reco.outputHitCollection,
# OTrackerBarrelHits = trk_b_reco.outputHitCollection,
# OTrackerEndcapHits = trk_ec_reco.outputHitCollection,
# outputSourceLinks="TrackerMeasurements")
## Track param init
## Track param init
truth_trk_init = TrackParamTruthInit("truth_trk_init",
truth_trk_init = TrackParamTruthInit("truth_trk_init",
inputMCParticles="mcparticles",
inputMCParticles="mcparticles",
outputInitialTrackParameters="InitTrackParamsFromTruth")
outputInitialTrackParameters="InitTrackParams")
algorithms.append(truth_trk_init)
#clust_trk_init = TrackParamClusterInit("clust_trk_init",
# inputClusters="SimpleClusters",
# outputInitialTrackParameters="InitTrackParamsFromClusters")
#vtxcluster_trk_init = TrackParamVertexClusterInit("vtxcluster_trk_init",
# inputVertexHits="VertexBarrelRecHits",
# inputClusters="EcalBarrelImagingClusters",
# outputInitialTrackParameters="InitTrackParamsFromVtxClusters",
# maxHitRadius=40.0*units.mm)
# Tracking algorithms
# Tracking algorithms
trk_find_alg = TrackFindingAlgorithm("trk_find_alg",
trk_find_alg = TrackFindingAlgorithm("trk_find_alg",
inputSourceLinks = sourcelinker.outputSourceLinks,
inputSourceLinks = sourcelinker.outputSourceLinks,
inputMeasurements = sourcelinker.outputMeasurements,
inputMeasurements = sourcelinker.outputMeasurements,
inputInitialTrackParameters = "InitTrackParamsFromTruth",
inputInitialTrackParameters = "InitTrackParams",
outputTrajectories = "trajectories")
outputTrajectories = "trajectories")
 
algorithms.append(trk_find_alg)
parts_from_fit = ParticlesFromTrackFit("parts_from_fit",
parts_from_fit = ParticlesFromTrackFit("parts_from_fit",
inputTrajectories = "trajectories",
inputTrajectories = "trajectories",
outputParticles = "ReconstructedParticlesInitFromTruth",
outputParticles = "ReconstructedParticles",
outputTrackParameters = "outputTrackParameters")
outputTrackParameters = "outputTrackParameters")
 
algorithms.append(parts_from_fit)
#trk_find_alg1 = TrackFindingAlgorithm("trk_find_alg1",
# DRICH
# inputSourceLinks = sourcelinker.outputSourceLinks,
drich_digi = PhotoMultiplierDigi("drich_digi",
# inputMeasurements = sourcelinker.outputMeasurements,
# inputInitialTrackParameters= "InitTrackParamsFromClusters",
# outputTrajectories="trajectories1")
#parts_from_fit1 = ParticlesFromTrackFit("parts_from_fit1",
# inputTrajectories="trajectories1",
# outputParticles="ReconstructedParticlesInitFromClusters",
# outputTrackParameters="outputTrackParameters1")
#trk_find_alg2 = TrackFindingAlgorithm("trk_find_alg2",
# inputSourceLinks = trk_hits_srclnkr.outputSourceLinks,
# inputMeasurements = trk_hits_srclnkr.outputMeasurements,
# inputInitialTrackParameters= "InitTrackParamsFromVtxClusters",
# outputTrajectories="trajectories2")
#parts_from_fit2 = ParticlesFromTrackFit("parts_from_fit2",
# inputTrajectories="trajectories2",
# outputParticles="ReconstructedParticles2",
# outputTrackParameters="outputTrackParameters2")
pmtdigi = PhotoMultiplierDigi("pmtdigi",
inputHitCollection="DRICHHits",
inputHitCollection="DRICHHits",
outputHitCollection="DRICHRawHits",
outputHitCollection="DRICHRawHits",
quantumEfficiency=[(a*units.eV, b) for a, b in qe_data])
quantumEfficiency=[(a*units.eV, b) for a, b in qe_data])
 
algorithms.append(drich_digi)
pmtreco = PhotoMultiplierReco("pmtreco",
drich_reco = PhotoMultiplierReco("drich_reco",
inputHitCollection=pmtdigi.outputHitCollection,
inputHitCollection=drich_digi.outputHitCollection,
outputHitCollection="DRICHRecHits")
outputHitCollection="DRICHRecHits")
 
algorithms.append(drich_reco)
 
 
# FIXME
 
#drich_cluster = PhotoRingClusters("drich_cluster",
 
# inputHitCollection=pmtreco.outputHitCollection,
 
# #inputTrackCollection="ReconstructedParticles",
 
# outputClusterCollection="ForwardRICHClusters")
 
 
# MRICH
 
mrich_digi = PhotoMultiplierDigi("mrich_digi",
 
inputHitCollection="MRICHHits",
 
outputHitCollection="MRICHRawHits",
 
quantumEfficiency=[(a*units.eV, b) for a, b in qe_data])
 
algorithms.append(mrich_digi)
 
 
mrich_reco = PhotoMultiplierReco("mrich_reco",
 
inputHitCollection=mrich_digi.outputHitCollection,
 
outputHitCollection="MRICHRecHits")
 
algorithms.append(mrich_reco)
# FIXME
# FIXME
#richcluster = PhotoRingClusters("richcluster",
#mrich_cluster = PhotoRingClusters("drich_cluster",
# inputHitCollection=pmtreco.outputHitCollection,
# inputHitCollection=pmtreco.outputHitCollection,
# #inputTrackCollection="ReconstructedParticles",
# #inputTrackCollection="ReconstructedParticles",
# outputClusterCollection="ForwardRICHClusters")
# outputClusterCollection="ForwardRICHClusters")
# Output
# Output
podout.outputCommands = ["keep *",
podout = PodioOutput("out", filename=output_rec)
"keep *Hits",
podout.outputCommands = [
 
"keep *",
 
"drop *Digi",
 
"keep *Reco*",
 
"keep *ClusterHits",
"keep *Clusters",
"keep *Clusters",
"keep *Layers",
"keep *Layers",
"drop mcparticles"
"drop InitTrackParams",
]
]
 
algorithms.append(podout)
ApplicationMgr(
ApplicationMgr(
TopAlg = [podin, copier, trkcopier,
TopAlg = algorithms,
dummy,
ecal_digi, ecal_reco, #simple_cluster,
ce_ecal_digi, ce_ecal_reco, ce_ecal_cl, ce_ecal_clreco,
ci_ecal_digi, ci_ecal_reco, ci_ecal_merger, ci_ecal_cl, ci_ecal_clreco,
img_barrel_digi, img_barrel_reco, img_barrel_cl, img_barrel_clreco,
scfi_barrel_digi, scfi_barrel_reco, scfi_barrel_merger, scfi_barrel_cl, scfi_barrel_clreco,
cb_hcal_digi, cb_hcal_reco, cb_hcal_merger, cb_hcal_cl, cb_hcal_clreco,
ce_hcal_digi, ce_hcal_reco, ce_hcal_merger, ce_hcal_cl, ce_hcal_clreco,
ci_hcal_digi, ci_hcal_reco, ci_hcal_merger, ci_hcal_cl, ci_hcal_clreco,
trk_b_digi, trk_ec_digi, vtx_b_digi, vtx_ec_digi,
trk_b_reco, trk_ec_reco, vtx_b_reco, vtx_ec_reco,
sourcelinker, #trk_hits_srclnkr,
#clust_trk_init,
truth_trk_init,
#vtxcluster_trk_init,
trk_find_alg, parts_from_fit,
#trk_find_alg1, parts_from_fit1,
#trk_find_alg2, parts_from_fit2,
pmtcopier, pmtdigi, pmtreco, #richcluster,
podout
],
EvtSel = 'NONE',
EvtSel = 'NONE',
EvtMax = n_events,
EvtMax = n_events,
ExtSvc = [podioevent,geo_service],
ExtSvc = [podioevent,geo_service],
Loading