Newer
Older
vtx_b_reco = TrackerHitReconstruction(
"vtx_b_reco",
inputHitCollection=vtx_b_digi.outputHitCollection,
outputHitCollection="VertexBarrelRecHits",
)
algorithms.append(vtx_b_reco)
if "acadia" in detector_version:
vtx_ec_reco = TrackerHitReconstruction(
"vtx_ec_reco",
inputHitCollection=vtx_ec_digi.outputHitCollection,
outputHitCollection="VertexEndcapRecHits",
)
algorithms.append(vtx_ec_reco)
mm_b_reco = TrackerHitReconstruction(
"mm_b_reco",
inputHitCollection=mm_b_digi.outputHitCollection,
outputHitCollection="MPGDTrackerBarrelRecHits",
)
algorithms.append(mm_b_reco)
gem_ec_reco = TrackerHitReconstruction(
"gem_ec_reco",
inputHitCollection=gem_ec_digi.outputHitCollection,
outputHitCollection="GEMTrackerEndcapRecHits",
)
algorithms.append(gem_ec_reco)
input_tracking_hits = [
str(trk_b_reco.outputHitCollection),
str(trk_ec_reco.outputHitCollection),
str(vtx_b_reco.outputHitCollection),
str(gem_ec_reco.outputHitCollection),
]
if "acadia" in detector_version:
input_tracking_hits.append(str(vtx_ec_reco.outputHitCollection))
else:
input_tracking_hits.append(str(mm_b_reco.outputHitCollection))
trk_hit_col = TrackingHitsCollector(
"trk_hit_col", inputTrackingHits=input_tracking_hits, trackingHits="trackingHits"
)
algorithms.append(trk_hit_col)
# Hit Source linker
sourcelinker = TrackerSourceLinker(
"trk_srcslnkr",
inputHitCollection=trk_hit_col.trackingHits,
outputSourceLinks="TrackSourceLinks",
outputMeasurements="TrackMeasurements",
)
algorithms.append(sourcelinker)
## Track param init
truth_trk_init = TrackParamTruthInit(
"truth_trk_init",
inputMCParticles="MCParticles",
outputInitialTrackParameters="InitTrackParams",
)
algorithms.append(truth_trk_init)
# Tracking algorithms
trk_find_alg = CKFTracking(
"trk_find_alg",
inputSourceLinks=sourcelinker.outputSourceLinks,
inputMeasurements=sourcelinker.outputMeasurements,
inputInitialTrackParameters=truth_trk_init.outputInitialTrackParameters,
outputTrajectories="trajectories",
chi2CutOff=[50.0],
)
parts_from_fit = ParticlesFromTrackFit(
"parts_from_fit",
inputTrajectories=trk_find_alg.outputTrajectories,
outputParticles="outputParticles",
outputTrackParameters="outputTrackParameters",
)
algorithms.append(parts_from_fit)
# trajs_from_fit = TrajectoryFromTrackFit("trajs_from_fit",
# inputTrajectories = trk_find_alg.outputTrajectories,
# outputTrajectoryParameters = "outputTrajectoryParameters")
# algorithms.append(trajs_from_fit)
parts_with_truth_pid = ParticlesWithTruthPID(
"parts_with_truth_pid",
inputMCParticles="MCParticles",
inputTrackParameters=parts_from_fit.outputTrackParameters,
outputParticles="ReconstructedParticles",
outputAssociations="ReconstructedParticlesAssoc",
)
# outputParticles = "ReconstructedChargedParticles")
algorithms.append(parts_with_truth_pid)
# match_clusters = MatchClusters("match_clusters",
# inputMCParticles = "MCParticles",
# inputParticles = parts_with_truth_pid.outputParticles,
# inputEcalClusters = [
# str(ce_ecal_clmerger.outputClusters),
# str(barrel_clus_merger.outputClusters),
# str(ci_ecal_clmerger.outputClusters)
# ],
# inputHcalClusters = [
# str(ce_hcal_clreco.outputClusterCollection),
# str(cb_hcal_clreco.outputClusterCollection),
# str(ci_hcal_clreco.outputClusterCollection)
# ],
# outputParticles = "ReconstructedParticles")
## Far Forward for now stored separately
fast_ff = FFSmearedParticles(
"fast_ff",
inputMCParticles="MCParticles",
outputParticles="ReconstructedFFParticles",
outputAssociations="ReconstructedFFParticlesAssoc",
enableZDC=True,
enableB0=True,
enableRP=True,
enableOMD=True,
ionBeamEnergy=ionBeamEnergy,
crossingAngle=-0.025,
)
algorithms.append(fast_ff)
drich_digi = PhotoMultiplierDigi(
"drich_digi",
inputHitCollection="DRICHHits",
outputHitCollection="DRICHRawHits",
quantumEfficiency=[(a * eV, b) for a, b in qe_data],
)
algorithms.append(drich_digi)
drich_reco = PhotoMultiplierReco(
"drich_reco",
inputHitCollection=drich_digi.outputHitCollection,
outputHitCollection="DRICHRecHits",
)
algorithms.append(drich_reco)
# FIXME
# drich_cluster = PhotoRingClusters("drich_cluster",
# inputHitCollection=pmtreco.outputHitCollection,
# #inputTrackCollection=parts_with_truth_pid.outputParticles,
# outputClusterCollection="ForwardRICHClusters")
# MRICH
if "acadia" in detector_version:
mrich_digi = PhotoMultiplierDigi(
"mrich_digi",
inputHitCollection="MRICHHits",
outputHitCollection="MRICHRawHits",
quantumEfficiency=[(a * eV, b) for a, b in qe_data],
)
mrich_reco = PhotoMultiplierReco(
"mrich_reco",
inputHitCollection=mrich_digi.outputHitCollection,
outputHitCollection="MRICHRecHits",
)
incl_kin_electron = InclusiveKinematicsElectron(
"incl_kin_electron",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicsElectron",
)
algorithms.append(incl_kin_electron)
incl_kin_jb = InclusiveKinematicsJB(
"incl_kin_jb",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicsJB",
incl_kin_da = InclusiveKinematicsDA(
"incl_kin_da",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicsDA",
incl_kin_sigma = InclusiveKinematicsSigma(
"incl_kin_sigma",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicsSigma",
)
algorithms.append(incl_kin_sigma)
incl_kin_esigma = InclusiveKinematicseSigma(
"incl_kin_esigma",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicseSigma",
)
algorithms.append(incl_kin_esigma)
# Output
podout = PodioOutput("out", filename=output_rec)
"keep *Clusters",
"drop *ProtoClusters",
"drop outputParticles",
"drop InitTrackParams",
]
+ ["drop " + c for c in sim_coll]
+ ["keep MCParticles"]
)
algorithms.append(podout)
ApplicationMgr(
TopAlg=algorithms,
EvtSel="NONE",
EvtMax=n_events,
ExtSvc=services,
OutputLevel=WARNING,
AuditAlgorithms=True,
)