10 #include <tracking/ckf/cdc/filters/paths/CDCPathTruthVarSet.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 auto* seedRecoTrack = seed.getSeed();
27 auto* seedMCTrack = seedRecoTrack->getRelated<
RecoTrack>(
"MCRecoTracks");
42 std::vector<MCParticle*> daughterMCParticles;
43 if (seedMCParticle->getNDaughters() > 0) {
44 daughterMCParticles = seedMCParticle->getDaughters();
46 while (daughterMCParticles.size() == 1) {
47 daughterMCParticles = daughterMCParticles.at(0)->getDaughters();
49 if (daughterMCParticles.size() > 1) {
50 daughters = daughterMCParticles.size();
54 while (seedMCParticle->getMother()) {
55 seedMCParticle = seedMCParticle->getMother();
61 mcTrackHits = seedMCTrack->getNumberOfCDCHits();
63 var<named(
"mcTrackHits")>() = mcTrackHits;
65 var<named(
"daughters")>() = daughters;
66 var<named(
"PDG")>() = seedMCParticle->getPDG();
68 auto seedMom = seedMCParticle->getMomentum();
69 var<named(
"seed_p_truth")>() = seedMom.Mag();
70 var<named(
"seed_theta_truth")>() = seedMom.Theta() * 180. / M_PI;
71 var<named(
"seed_pt_truth")>() = seedMom.Perp();
72 var<named(
"seed_pz_truth")>() = seedMom.Z();
73 var<named(
"seed_px_truth")>() = seedMom.X();
74 var<named(
"seed_py_truth")>() = seedMom.Y();