10#include <tracking/dataobjects/RecoTrack.h>
12#include <framework/dataobjects/EventT0.h>
15#include <analysis/dataobjects/Particle.h>
16#include <analysis/VariableManager/Manager.h>
17#include <mdst/dataobjects/Track.h>
29 RecoTrack* getRecoTrack(
const Particle* particle)
31 const Track* track = particle->getTrack();
34 return track->getRelatedTo<RecoTrack>();
39 double seedCharge(
const Particle* particle)
41 RecoTrack* recoTrack = getRecoTrack(particle);
44 return recoTrack->getChargeSeed();
48 double firstFlipQualityIndicator(
const Particle* particle)
50 RecoTrack* recoTrack = getRecoTrack(particle);
53 return recoTrack->getFlipQualityIndicator();
56 double secondFlipQualityIndicator(
const Particle* particle)
58 RecoTrack* recoTrack = getRecoTrack(particle);
61 return recoTrack->get2ndFlipQualityIndicator();
68 double seedTime(
const Particle* particle)
70 RecoTrack* recoTrack = getRecoTrack(particle);
73 return recoTrack->getTimeSeed();
77 double outgoingArmNSVDHits(
const Particle* particle)
79 RecoTrack* recoTrack = getRecoTrack(particle);
82 return recoTrack->getNSVDHitsOfOutgoingArm();
86 double outgoingArmTime(
const Particle* particle)
88 RecoTrack* recoTrack = getRecoTrack(particle);
91 return recoTrack->getOutgoingArmTime();
95 double outgoingArmTimeError(
const Particle* particle)
97 RecoTrack* recoTrack = getRecoTrack(particle);
100 return recoTrack->getOutgoingArmTimeError();
105 double ingoingArmNSVDHits(
const Particle* particle)
107 RecoTrack* recoTrack = getRecoTrack(particle);
110 return recoTrack->getNSVDHitsOfIngoingArm();
114 double ingoingArmTime(
const Particle* particle)
116 RecoTrack* recoTrack = getRecoTrack(particle);
119 return recoTrack->getIngoingArmTime();
123 double ingoingArmTimeError(
const Particle* particle)
125 RecoTrack* recoTrack = getRecoTrack(particle);
128 return recoTrack->getIngoingArmTimeError();
132 double SVDEventT0(
const Particle*)
135 StoreObjPtr<EventT0> m_evtT0;
136 if (m_evtT0.isValid()) {
137 const auto bestSVDHypo = m_evtT0->getBestSVDTemporaryEventT0();
139 return bestSVDHypo->eventT0;
146 VARIABLE_GROUP(
"Tracking Validation");
148 REGISTER_VARIABLE(
"seedCharge", seedCharge,
149 "[RecoTrack] Returns the charge of the seed");
151 REGISTER_VARIABLE(
"firstFlipQualityIndicator", firstFlipQualityIndicator,
152 "[RecoTrack] Returns the quality indicator of the first MVA of the Flip&Refit")
153 REGISTER_VARIABLE("secondFlipQualityIndicator", secondFlipQualityIndicator,
154 "[RecoTrack] Returns the quality indicator of the second MVA of the Flip&Refit")
156 REGISTER_VARIABLE("seedTime", seedTime,
157 "[RecoTrack] Returns the time of the seed");
158 REGISTER_VARIABLE("outgoingArmNSVDHits", outgoingArmNSVDHits,
159 "[RecoTrack] Returns the number of SVD hits on the outgoing arm");
160 REGISTER_VARIABLE("outgoingArmTime", outgoingArmTime,
161 "[RecoTrack] Returns the outgoing arm time");
162 REGISTER_VARIABLE("outgoingArmTimeError", outgoingArmTimeError,
163 "[RecoTrack] Returns the outgoing arm time");
164 REGISTER_VARIABLE("ingoingArmNSVDHits", ingoingArmNSVDHits,
165 "[RecoTrack] Returns the number of SVD hits on the ingoing arm");
166 REGISTER_VARIABLE("ingoingArmTime", ingoingArmTime,
167 "[RecoTrack] Returns the ingoing arm time");
168 REGISTER_VARIABLE("ingoingArmTimeError", ingoingArmTimeError,
169 "[RecoTrack] Returns the ingoing arm time");
170 REGISTER_VARIABLE("SVDEventT0", SVDEventT0,
171 "[Event] Returns the SVDEventT0");
static const double doubleNaN
quiet_NaN
Abstract base class for different kinds of events.