Skip to content
Snippets Groups Projects
Commit c69c4e2e authored by Wouter Deconinck's avatar Wouter Deconinck Committed by Wouter Deconinck
Browse files

Use algorithms list for all steps

parent 1b09bfc1
No related branches found
No related tags found
1 merge request!168Resolve "Remove obsolete algorithms from full simulations"
......@@ -103,25 +103,25 @@ sim_coll = [
# list of algorithms
algorithms = []
# input and output
# input
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.
copier = MCCopier("MCCopier",
inputCollection="mcparticles",
outputCollection="mcparticles2")
algorithms.append( copier )
algorithms.append(copier)
trkcopier = TrkCopier("TrkCopier",
inputCollection="TrackerBarrelHits",
outputCollection="TrackerBarrelHits2")
algorithms.append( trkcopier )
algorithms.append(trkcopier)
pmtcopier = PMTCopier("PMTCopier",
inputCollection="DRICHHits",
outputCollection="DRICHHits2")
algorithms.append( pmtcopier )
algorithms.append(pmtcopier)
# Crystal Endcap Ecal
ce_ecal_daq = dict(
......@@ -135,7 +135,7 @@ ce_ecal_digi = CalHitDigi("ce_ecal_digi",
outputHitCollection="EcalEndcapNRawHits",
energyResolutions=[0., 0.02, 0.],
**ce_ecal_daq)
algorithms.append( ce_ecal_digi )
algorithms.append(ce_ecal_digi)
ce_ecal_reco = CalHitReco("ce_ecal_reco",
inputHitCollection=ce_ecal_digi.outputHitCollection,
......@@ -144,7 +144,7 @@ ce_ecal_reco = CalHitReco("ce_ecal_reco",
readoutClass="EcalEndcapNHits",
sectorField="sector",
**ce_ecal_daq)
algorithms.append( ce_ecal_reco )
algorithms.append(ce_ecal_reco)
ce_ecal_cl = IslandCluster("ce_ecal_cl",
inputHitCollection=ce_ecal_reco.outputHitCollection,
......@@ -154,7 +154,7 @@ ce_ecal_cl = IslandCluster("ce_ecal_cl",
minClusterCenterEdep=30*units.MeV,
sectorDist=5.0*units.cm,
dimScaledLocalDistXY=[1.8, 1.8]) # dimension scaled dist is good for hybrid sectors with different module size
algorithms.append( ce_ecal_cl )
algorithms.append(ce_ecal_cl)
ce_ecal_clreco = RecoCoG("ce_ecal_clreco",
inputHitCollection=ce_ecal_cl.inputHitCollection,
......@@ -162,7 +162,7 @@ ce_ecal_clreco = RecoCoG("ce_ecal_clreco",
outputClusterCollection="EcalEndcapNClusters",
samplingFraction=0.998, # this accounts for a small fraction of leakage
logWeightBase=4.6)
algorithms.append( ce_ecal_clreco )
algorithms.append(ce_ecal_clreco)
# Endcap Sampling Ecal
ci_ecal_daq = dict(
......@@ -175,14 +175,14 @@ ci_ecal_digi = CalHitDigi("ci_ecal_digi",
inputHitCollection="EcalEndcapPHits",
outputHitCollection="EcalEndcapPRawHits",
**ci_ecal_daq)
algorithms.append( ci_ecal_digi )
algorithms.append(ci_ecal_digi)
ci_ecal_reco = CalHitReco("ci_ecal_reco",
inputHitCollection=ci_ecal_digi.outputHitCollection,
outputHitCollection="EcalEndcapPRecHits",
thresholdFactor=5.0,
**ci_ecal_daq)
algorithms.append( ci_ecal_reco )
algorithms.append(ci_ecal_reco)
# merge hits in different layer (projection to local x-y plane)
ci_ecal_merger = CalHitsMerger("ci_ecal_merger",
......@@ -191,7 +191,7 @@ ci_ecal_merger = CalHitsMerger("ci_ecal_merger",
fields=["layer", "slice"],
fieldRefNumbers=[1, 0],
readoutClass="EcalEndcapPHits")
algorithms.append( ci_ecal_merger )
algorithms.append(ci_ecal_merger)
ci_ecal_cl = IslandCluster("ci_ecal_cl",
inputHitCollection=ci_ecal_merger.outputHitCollection,
......@@ -199,7 +199,7 @@ ci_ecal_cl = IslandCluster("ci_ecal_cl",
splitCluster=False,
minClusterCenterEdep=10.*units.MeV,
localDistXY=[10*units.mm, 10*units.mm])
algorithms.append( ci_ecal_cl )
algorithms.append(ci_ecal_cl)
ci_ecal_clreco = RecoCoG("ci_ecal_clreco",
inputHitCollection=ci_ecal_cl.inputHitCollection,
......@@ -208,7 +208,7 @@ ci_ecal_clreco = RecoCoG("ci_ecal_clreco",
outputInfoCollection="EcalEndcapPClustersInfo",
logWeightBase=6.2,
samplingFraction=ci_ecal_sf)
algorithms.append( ci_ecal_clreco )
algorithms.append(ci_ecal_clreco)
# Central Barrel Ecal (Imaging Cal.)
img_barrel_daq = dict(
......@@ -222,7 +222,7 @@ img_barrel_digi = CalHitDigi("img_barrel_digi",
outputHitCollection="EcalBarrelImagingRawHits",
energyResolutions=[0., 0.02, 0.], # 2% flat resolution
**img_barrel_daq)
algorithms.append( img_barrel_digi )
algorithms.append(img_barrel_digi)
img_barrel_reco = ImCalPixelReco("img_barrel_reco",
inputHitCollection=img_barrel_digi.outputHitCollection,
......@@ -232,7 +232,7 @@ img_barrel_reco = ImCalPixelReco("img_barrel_reco",
layerField="layer", # field to get layer id
sectorField="module", # field to get sector id
**img_barrel_daq)
algorithms.append( img_barrel_reco )
algorithms.append(img_barrel_reco)
img_barrel_cl = ImagingCluster("img_barrel_cl",
inputHitCollection=img_barrel_reco.outputHitCollection,
......@@ -241,7 +241,7 @@ img_barrel_cl = ImagingCluster("img_barrel_cl",
layerDistEtaPhi=[10*units.mrad, 10*units.mrad], # adjacent layer
neighbourLayersRange=2, # id diff for adjacent layer
sectorDist=3.*units.cm) # different sector
algorithms.append( cb_ecal_cl )
algorithms.append(cb_ecal_cl)
img_barrel_clreco = ImagingClusterReco("img_barrel_clreco",
samplingFraction=img_barrel_sf,
......@@ -250,7 +250,7 @@ img_barrel_clreco = ImagingClusterReco("img_barrel_clreco",
outputClusterCollection="EcalBarrelImagingClusters",
outputInfoCollection="EcalBarrelImagingClustersInfo",
outputLayerCollection="EcalBarrelImagingLayers")
algorithms.append( img_barrel_clreco )
algorithms.append(img_barrel_clreco)
# Central ECAL SciFi
scfi_barrel_daq = dict(
......@@ -263,6 +263,7 @@ scfi_barrel_digi = CalHitDigi("scfi_barrel_digi",
inputHitCollection="EcalBarrelScFiHits",
outputHitCollection="EcalBarrelScFiRawHits",
**scfi_barrel_daq)
algorithms.append(scfi_barrel_digi)
scfi_barrel_reco = CalHitReco("scfi_barrel_reco",
inputHitCollection=scfi_barrel_digi.outputHitCollection,
......@@ -273,6 +274,7 @@ scfi_barrel_reco = CalHitReco("scfi_barrel_reco",
sectorField="module",
localDetFields=["system", "module"], # use local coordinates in each module (stave)
**scfi_barrel_daq)
algorithms.append(scfi_barrel_reco)
# merge hits in different layer (projection to local x-y plane)
scfi_barrel_merger = CalHitsMerger("scfi_barrel_merger",
......@@ -281,6 +283,7 @@ scfi_barrel_merger = CalHitsMerger("scfi_barrel_merger",
fields=["fiber"],
fieldRefNumbers=[1],
readoutClass="EcalBarrelScFiHits")
algorithms.append(scfi_barrel_merger)
scfi_barrel_cl = IslandCluster("scfi_barrel_cl",
inputHitCollection=scfi_barrel_merger.outputHitCollection,
......@@ -288,6 +291,7 @@ scfi_barrel_cl = IslandCluster("scfi_barrel_cl",
splitCluster=False,
minClusterCenterEdep=10.*MeV,
localDistXZ=[30*mm, 30*mm])
algorithms.append(scfi_barrel_cl)
scfi_barrel_clreco = RecoCoG("scfi_barrel_clreco",
inputHitCollection=scfi_barrel_cl.inputHitCollection,
......@@ -296,6 +300,7 @@ scfi_barrel_clreco = RecoCoG("scfi_barrel_clreco",
outputInfoCollection="EcalBarrelScFiClustersInfo",
logWeightBase=6.2,
samplingFraction= scifi_barrel_sf)
algorithms.append(scfi_barrel_clreco)
# Central Barrel Hcal
cb_hcal_daq = dict(
......@@ -308,6 +313,7 @@ cb_hcal_digi = CalHitDigi("cb_hcal_digi",
inputHitCollection="HcalBarrelHits",
outputHitCollection="HcalBarrelRawHits",
**cb_hcal_daq)
algorithms.append(cb_hcal_digi)
cb_hcal_reco = CalHitReco("cb_hcal_reco",
inputHitCollection=cb_hcal_digi.outputHitCollection,
......@@ -317,6 +323,7 @@ cb_hcal_reco = CalHitReco("cb_hcal_reco",
layerField="layer",
sectorField="module",
**cb_hcal_daq)
algorithms.append(cb_hcal_reco)
cb_hcal_merger = CalHitsMerger("cb_hcal_merger",
inputHitCollection=cb_hcal_reco.outputHitCollection,
......@@ -324,6 +331,7 @@ cb_hcal_merger = CalHitsMerger("cb_hcal_merger",
readoutClass="HcalBarrelHits",
fields=["layer", "slice"],
fieldRefNumbers=[1, 0])
algorithms.append(cb_hcal_merger)
cb_hcal_cl = IslandCluster("cb_hcal_cl",
inputHitCollection=cb_hcal_merger.outputHitCollection,
......@@ -331,6 +339,7 @@ cb_hcal_cl = IslandCluster("cb_hcal_cl",
splitCluster=False,
minClusterCenterEdep=30.*units.MeV,
localDistXY=[15.*units.cm, 15.*units.cm])
algorithms.append(cb_hcal_cl)
cb_hcal_clreco = RecoCoG("cb_hcal_clreco",
inputHitCollection=cb_hcal_cl.inputHitCollection,
......@@ -339,7 +348,7 @@ cb_hcal_clreco = RecoCoG("cb_hcal_clreco",
outputInfoCollection="HcalBarrelClustersInfo",
logWeightBase=6.2,
samplingFraction=cb_hcal_sf)
algorithms.append(cb_hcal_clreco)
# Hcal Hadron Endcap
ci_hcal_daq = dict(
......@@ -347,16 +356,19 @@ ci_hcal_daq = dict(
capacityADC=32768,
pedestalMean=400,
pedestalSigma=10)
ci_hcal_digi = CalHitDigi("ci_hcal_digi",
inputHitCollection="HcalEndcapPHits",
outputHitCollection="HcalEndcapPRawHits",
**ci_hcal_daq)
algorithms.append(ci_hcal_digi)
ci_hcal_reco = CalHitReco("ci_hcal_reco",
inputHitCollection=ci_hcal_digi.outputHitCollection,
outputHitCollection="HcalEndcapPRecHits",
thresholdFactor=5.0,
**ci_hcal_daq)
algorithms.append(ci_hcal_reco)
ci_hcal_merger = CalHitsMerger("ci_hcal_merger",
inputHitCollection=ci_hcal_reco.outputHitCollection,
......@@ -364,6 +376,7 @@ ci_hcal_merger = CalHitsMerger("ci_hcal_merger",
readoutClass="HcalEndcapPHits",
fields=["layer", "slice"],
fieldRefNumbers=[1, 0])
algorithms.append(ci_hcal_merger)
ci_hcal_cl = IslandCluster("ci_hcal_cl",
inputHitCollection=ci_hcal_merger.outputHitCollection,
......@@ -371,6 +384,7 @@ ci_hcal_cl = IslandCluster("ci_hcal_cl",
splitCluster=False,
minClusterCenterEdep=30.*units.MeV,
localDistXY=[15.*units.cm, 15.*units.cm])
algorithms.append(ci_hcal_cl)
ci_hcal_clreco = RecoCoG("ci_hcal_clreco",
inputHitCollection=ci_hcal_cl.inputHitCollection,
......@@ -379,6 +393,7 @@ ci_hcal_clreco = RecoCoG("ci_hcal_clreco",
outputInfoCollection="HcalEndcapPClustersInfo",
logWeightBase=6.2,
samplingFraction=ci_hcal_sf)
algorithms.append(ci_hcal_clreco)
# Hcal Electron Endcap
ce_hcal_daq = dict(
......@@ -391,12 +406,14 @@ ce_hcal_digi = CalHitDigi("ce_hcal_digi",
inputHitCollection="HcalEndcapNHits",
outputHitCollection="HcalEndcapNRawHits",
**ce_hcal_daq)
algorithms.append(ce_hcal_digi)
ce_hcal_reco = CalHitReco("ce_hcal_reco",
inputHitCollection=ce_hcal_digi.outputHitCollection,
outputHitCollection="HcalEndcapNRecHits",
thresholdFactor=5.0,
**ce_hcal_daq)
algorithms.append(ce_hcal_reco)
ce_hcal_merger = CalHitsMerger("ce_hcal_merger",
inputHitCollection=ce_hcal_reco.outputHitCollection,
......@@ -404,6 +421,7 @@ ce_hcal_merger = CalHitsMerger("ce_hcal_merger",
readoutClass="HcalEndcapNHits",
fields=["layer", "slice"],
fieldRefNumbers=[1, 0])
algorithms.append(ce_hcal_merger)
ce_hcal_cl = IslandCluster("ce_hcal_cl",
inputHitCollection=ce_hcal_merger.outputHitCollection,
......@@ -411,6 +429,7 @@ ce_hcal_cl = IslandCluster("ce_hcal_cl",
splitCluster=False,
minClusterCenterEdep=30.*units.MeV,
localDistXY=[15.*units.cm, 15.*units.cm])
algorithms.append(ce_hcal_cl)
ce_hcal_clreco = RecoCoG("ce_hcal_clreco",
inputHitCollection=ce_hcal_cl.inputHitCollection,
......@@ -419,53 +438,64 @@ ce_hcal_clreco = RecoCoG("ce_hcal_clreco",
outputInfoCollection="HcalEndcapNClustersInfo",
logWeightBase=6.2,
samplingFraction=ce_hcal_sf)
algorithms.append(ce_hcal_clreco)
# Tracking
trk_b_digi = TrackerDigi("trk_b_digi",
inputHitCollection="TrackerBarrelHits",
outputHitCollection="TrackerBarrelRawHits",
timeResolution=8)
algorithms.append(trk_b_digi)
trk_ec_digi = TrackerDigi("trk_ec_digi",
inputHitCollection="TrackerEndcapHits",
outputHitCollection="TrackerEndcapRawHits",
timeResolution=8)
algorithms.append(trk_ec_digi)
vtx_b_digi = TrackerDigi("vtx_b_digi",
inputHitCollection="VertexBarrelHits",
outputHitCollection="VertetimeResolution=10xBarrelRawHits",
timeResolution=8)
algorithms.append(vtx_b_digi)
vtx_ec_digi = TrackerDigi("vtx_ec_digi",
inputHitCollection="VertexEndcapHits",
outputHitCollection="VertexEndcapRawHits",
timeResolution=8)
algorithms.append(vtx_ec_digi)
gem_ec_digi = TrackerDigi("gem_ec_digi",
inputHitCollection="GEMTrackerEndcapHits",
outputHitCollection="GEMTrackerEndcapRawHits",
timeResolution=10)
algorithms.append(gem_ec_digi)
# Tracker and vertex reconstruction
trk_b_reco = TrackerHitReconstruction("trk_b_reco",
inputHitCollection = trk_b_digi.outputHitCollection,
outputHitCollection="TrackerBarrelRecHits")
algorithms.append(trk_b_reco)
trk_ec_reco = TrackerHitReconstruction("trk_ec_reco",
inputHitCollection = trk_ec_digi.outputHitCollection,
outputHitCollection="TrackerEndcapRecHits")
algorithms.append(trk_ec_reco)
vtx_b_reco = TrackerHitReconstruction("vtx_b_reco",
inputHitCollection = vtx_b_digi.outputHitCollection,
outputHitCollection="VertexBarrelRecHits")
algorithms.append(vtx_b_reco)
vtx_ec_reco = TrackerHitReconstruction("vtx_ec_reco",
inputHitCollection = vtx_ec_digi.outputHitCollection,
outputHitCollection="VertexEndcapRecHits")
algorithms.append(vtx_ec_reco)
gem_ec_reco = TrackerHitReconstruction("gem_ec_reco",
inputHitCollection=gem_ec_digi.outputHitCollection,
outputHitCollection="GEMTrackerEndcapRecHits")
algorithms.append(gem_ec_reco)
# Tracking hit collector
trk_hit_col = TrackingHitsCollector("trk_hit_col",
......@@ -476,34 +506,20 @@ trk_hit_col = TrackingHitsCollector("trk_hit_col",
str(vtx_ec_reco.outputHitCollection),
str(gem_ec_reco.outputHitCollection) ],
trackingHits="trackingHits")
algorithms.append(trk_hit_col)
# Hit Source linker
sourcelinker = TrackerSourcesLinker("trk_srcslnkr",
inputHitCollections = trk_hit_col.trackingHits,
outputSourceLinks = "TrackerSourceLinks",
outputMeasurements = "TrackerMeasurements")
#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")
algorithms.append(sourcelinker)
## Track param init
truth_trk_init = TrackParamTruthInit("truth_trk_init",
inputMCParticles="mcparticles",
outputInitialTrackParameters="InitTrackParams")
#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)
algorithms.append(truth_trk_init)
# Tracking algorithms
trk_find_alg = TrackFindingAlgorithm("trk_find_alg",
......@@ -511,42 +527,23 @@ trk_find_alg = TrackFindingAlgorithm("trk_find_alg",
inputMeasurements = sourcelinker.outputMeasurements,
inputInitialTrackParameters = "InitTrackParams",
outputTrajectories = "trajectories")
algorithms.append(trk_find_alg)
parts_from_fit = ParticlesFromTrackFit("parts_from_fit",
inputTrajectories = "trajectories",
outputParticles = "ReconstructedParticles",
outputTrackParameters = "outputTrackParameters")
#trk_find_alg1 = TrackFindingAlgorithm("trk_find_alg1",
# inputSourceLinks = sourcelinker.outputSourceLinks,
# 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")
algorithms.append(parts_from_fit)
pmtdigi = PhotoMultiplierDigi("pmtdigi",
inputHitCollection="DRICHHits",
outputHitCollection="DRICHRawHits",
quantumEfficiency=[(a*units.eV, b) for a, b in qe_data])
algorithms.append(pmtdigi)
pmtreco = PhotoMultiplierReco("pmtreco",
inputHitCollection=pmtdigi.outputHitCollection,
outputHitCollection="DRICHRecHits")
inputHitCollection="DRICHHitsDigi",
outputHitCollection="DRICHHitsReco")
# FIXME
#richcluster = PhotoRingClusters("richcluster",
......@@ -555,6 +552,7 @@ pmtreco = PhotoMultiplierReco("pmtreco",
# outputClusterCollection="ForwardRICHClusters")
# Output
podout = PodioOutput("out", filename=output_rec)
podout.outputCommands = [
"keep *",
"drop *Digi",
......@@ -565,6 +563,7 @@ podout.outputCommands = [
"drop InitTrackParams",
"drop mcparticles"
]
algorithms.append(podout)
ApplicationMgr(
TopAlg = algorithms,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment