10 #include <tracking/ckf/cdc/filters/paths/CDCfromEclPathTruthVarSet.h>
12 #include <tracking/ckf/cdc/entities/CDCCKFState.h>
14 #include <ecl/dataobjects/ECLShower.h>
15 #include <mdst/dataobjects/MCParticle.h>
17 #include <tracking/dataobjects/RecoTrack.h>
25 const auto& seed = path->front();
26 const auto* seedRecoTrack = seed.getSeed();
27 const auto* seedEclShower = seedRecoTrack->getRelated<
ECLShower>(
"ECLShowers");
32 std::vector<MCParticle*> daughterMCParticles;
33 if (seedMCParticle->getNDaughters() > 0) {
34 daughterMCParticles = seedMCParticle->getDaughters();
39 for (
auto const& state : *path) {
44 const auto wireHit = state.getWireHit();
45 const auto cdcHit = wireHit->getHit();
48 if (seedMCTrack != 0 && seedMCTrack == hitMCTrack) {
54 var<named(
"matched")>() = matched;
55 var<named(
"daughters")>() = daughters;
56 var<named(
"PDG")>() = seedMCParticle->getPDG();
59 var<named(
"seed_p_truth")>() = seedMom.Mag();
60 var<named(
"seed_theta_truth")>() = seedMom.Theta() * 180. / M_PI;
61 var<named(
"seed_pt_truth")>() = seedMom.Perp();
62 var<named(
"seed_pz_truth")>() = seedMom.Z();
63 var<named(
"seed_px_truth")>() = seedMom.X();
64 var<named(
"seed_py_truth")>() = seedMom.Y();
70 if (particleMCTrack) {
73 var<named(
"mcTrackHits")>() = mcTrackHits;