11 #include <mdst/dataobjects/MCParticle.h>
13 #include <TLorentzVector.h>
29 double particleMCInitialParticle(
const Particle* particle);
34 double particleMCVirtualParticle(
const Particle* particle);
39 double particleMCFSRParticle(
const Particle* particle);
44 double particleMCPhotosParticle(
const Particle* particle);
49 double particleMCISRParticle(
const Particle* particle);
55 double isSignal(
const Particle* part);
61 double isSignalAcceptWrongFSPs(
const Particle* part);
66 double isSignalAcceptMissingNeutrino(
const Particle* part);
71 double isSignalAcceptMissingMassive(
const Particle* part);
76 double isSignalAcceptMissingGamma(
const Particle* part);
81 double isSignalAcceptBremsPhotons(
const Particle* part);
86 double isSignalAcceptMissing(
const Particle* part);
92 double isWrongCharge(
const Particle* particle);
100 double isCloneTrack(
const Particle* particle);
106 double isOrHasCloneTrack(
const Particle* particle);
112 double isMisidentified(
const Particle* particle);
117 double genNthMotherPDG(
const Particle* part,
const std::vector<double>& daughterIDs);
122 double genNthMotherIndex(
const Particle* part,
const std::vector<double>& daughterIDs);
127 double genMotherPDG(
const Particle* particle);
132 double genMotherIndex(
const Particle* particle);
137 double genMotherP(
const Particle* particle);
142 double genParticleIndex(
const Particle* particle);
147 double particleMCMatchPDGCode(
const Particle* particle);
152 double particleMCErrors(
const Particle* particle);
157 double particleMCMatchWeight(
const Particle* particle);
162 double particleNumberOfMCMatch(
const Particle* particle);
167 double particleMCPrimaryParticle(
const Particle* particle);
172 double particleMCMomentumTransfer2(
const Particle* part);
178 double particleMCMatchDecayTime(
const Particle* particle);
182 double particleMCMatchLifeTime(
const Particle* particle);
187 double particleMCMatchPX(
const Particle* particle);
192 double particleMCMatchPY(
const Particle* particle);
197 double particleMCMatchPZ(
const Particle* particle);
202 double particleMCMatchPT(
const Particle* particle);
207 double particleMCMatchE(
const Particle* particle);
212 double particleMCMatchP(
const Particle* particle);
217 TLorentzVector MCInvisibleP4(
const MCParticle* mcparticle);
222 double particleMCCosThetaBetweenParticleAndNominalB(
const Particle* particle);
228 double particleMCRecoilMass(
const Particle* particle);
233 double generatorEventWeight(
const Particle*);
238 int tauPlusMcMode(
const Particle*);
243 int tauMinusMcMode(
const Particle*);
248 int tauPlusMcProng(
const Particle*);
253 int tauMinusMcProng(
const Particle*);
256 double isReconstructible(
const Particle*);
259 double seenInPXD(
const Particle*);
262 double seenInSVD(
const Particle*);
265 double seenInCDC(
const Particle*);
268 double seenInTOP(
const Particle*);
271 double seenInECL(
const Particle*);
274 double seenInARICH(
const Particle*);
277 double seenInKLM(
const Particle*);
284 int genNStepsToDaughter(
const Particle* particle,
const std::vector<double>& arguments);
290 int genNMissingDaughter(
const Particle* particle,
const std::vector<double>& arguments);
295 double getHEREnergy(
const Particle*);
300 double getLEREnergy(
const Particle*);
305 double getCrossingAngleX(
const Particle*);
310 double getCrossingAngleY(
const Particle*);
316 double particleClusterMatchWeight(
const Particle* particle);
322 double particleClusterBestMCMatchWeight(
const Particle*);
331 double particleClusterBestMCPDGCode(
const Particle*);
338 double isBBCrossfeed(
const Particle*);
Abstract base class for different kinds of events.