Belle II Software  release-05-02-19
StandardTrackingPerformanceModule.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Michael Ziegler *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include <tracking/modules/standardTrackingPerformance/StandardTrackingPerformanceModule.h>
12 
13 #include <framework/datastore/StoreArray.h>
14 #include <framework/datastore/StoreObjPtr.h>
15 #include <framework/dataobjects/EventMetaData.h>
16 #include <framework/datastore/RelationVector.h>
17 
18 #include <tracking/dataobjects/RecoTrack.h>
19 #include <genfit/TrackPoint.h>
20 #include <genfit/KalmanFitterInfo.h>
21 
22 #include <mdst/dataobjects/MCParticle.h>
23 #include <mdst/dataobjects/Track.h>
24 
25 #include <pxd/reconstruction/PXDRecoHit.h>
26 #include <svd/reconstruction/SVDRecoHit.h>
27 #include <svd/reconstruction/SVDRecoHit2D.h>
28 #include <cdc/dataobjects/CDCRecoHit.h>
29 
30 #include <root/TFile.h>
31 #include <root/TTree.h>
32 
33 using namespace Belle2;
34 
35 //-----------------------------------------------------------------
36 // Register the Module
37 //-----------------------------------------------------------------
38 REG_MODULE(StandardTrackingPerformance)
39 
40 StandardTrackingPerformanceModule::StandardTrackingPerformanceModule() :
41  Module(), m_outputFile(NULL), m_dataTree(NULL), m_trackProperties(-999), m_pValue(-999),
42  m_nGeneratedChargedStableMcParticles(-999), m_nReconstructedChargedStableTracks(-999),
43  m_nFittedChargedStabletracks(-999)
44 {
45  setDescription("Module to test the tracking efficiency. Writes information about the tracks and MCParticles in a ROOT file.");
47 
48  addParam("outputFileName", m_outputFileName, "Name of output root file.",
49  std::string("StandardTrackingPerformanceOutput.root"));
50  addParam("recoTracksStoreArrayName", m_recoTracksStoreArrayName, "Name of the RecoTracks StoreArray.",
51  std::string(""));
52  addParam("daughterPDGs", m_signalDaughterPDGs, "PDG codes of B daughters.",
53  std::vector<int>(0));
54 }
55 
57 {
58  // MCParticles and Tracks needed for this module
59  StoreArray<MCParticle> mcParticles;
60  mcParticles.isRequired();
61  StoreArray<Track> tracks;
62  tracks.isRequired();
63 
65  recoTracks.isRequired();
66 
67  StoreArray<TrackFitResult> trackFitResults;
68  trackFitResults.isRequired();
69 
70  m_outputFile = new TFile(m_outputFileName.c_str(), "RECREATE");
71  TDirectory* oldDir = gDirectory;
72  m_outputFile->cd();
73  m_dataTree = new TTree("data", "data");
74  oldDir->cd();
75 
76  setupTree();
77 }
78 
80 {
81  StoreObjPtr<EventMetaData> eventMetaData("EventMetaData", DataStore::c_Event);
82  unsigned long eventNumber = eventMetaData->getEvent();
83  unsigned long runNumber = eventMetaData->getRun();
84  unsigned long expNumber = eventMetaData->getExperiment();
85 
86  B2DEBUG(99,
87  "Processes experiment " << expNumber << " run " << runNumber << " event " << eventNumber);
88 
90  StoreArray<MCParticle> mcParticles;
91 
95 
96  for (MCParticle& mcParticle : mcParticles) {
97  // check status of mcParticle
98  if (isPrimaryMcParticle(mcParticle) && isChargedStable(mcParticle) && mcParticle.hasStatus(MCParticle::c_StableInGenerator)) {
100 
101  int pdgCode = mcParticle.getPDG();
102  B2DEBUG(99, "Primary MCParticle has PDG code " << pdgCode);
103 
105 
106  m_trackProperties.cosTheta_gen = mcParticle.getMomentum().CosTheta();
107  m_trackProperties.ptot_gen = mcParticle.getMomentum().Mag();
108  m_trackProperties.pt_gen = mcParticle.getMomentum().Pt();
109  m_trackProperties.px_gen = mcParticle.getMomentum().Px();
110  m_trackProperties.py_gen = mcParticle.getMomentum().Py();
111  m_trackProperties.pz_gen = mcParticle.getMomentum().Pz();
112  m_trackProperties.x_gen = mcParticle.getVertex().X();
113  m_trackProperties.y_gen = mcParticle.getVertex().Y();
114  m_trackProperties.z_gen = mcParticle.getVertex().Z();
115 
116 
117  const RecoTrack* recoTrack = nullptr;
118  double maximumWeight = -2;
119  /*// MIMIK OLD MODULE, which took always the last one (which is probably a CDC track).
120  for(const Track& relatedTrack : mcParticle.getRelationsWith<Track>()) {
121  b2Track = &relatedTrack;
122  }*/
123  // find highest rated Track
124  const auto& relatedRecoTracks = mcParticle.getRelationsWith<RecoTrack>(m_recoTracksStoreArrayName);
125  for (unsigned int index = 0; index < relatedRecoTracks.size(); ++index) {
126  const RecoTrack* relatedRecoTrack = relatedRecoTracks.object(index);
127  const double weight = relatedRecoTracks.weight(index);
128 
129  const unsigned int numberOfRelatedTracks = relatedRecoTrack->getRelationsWith<Track>().size();
130  B2ASSERT("B2Track <-> RecoTrack is not a 1:1 relation as expected!", numberOfRelatedTracks <= 1);
131  // use only the fitted reco tracks
132  if (numberOfRelatedTracks == 1) {
133  if (weight > maximumWeight) {
134  maximumWeight = weight;
135  recoTrack = relatedRecoTrack;
136  }
137  }
138  }
139 
140  if (recoTrack) {
141  const Track* b2Track = recoTrack->getRelated<Track>();
142  const TrackFitResult* fitResult = b2Track->getTrackFitResultWithClosestMass(Const::pion);
143  B2ASSERT("Related Belle2 Track has no related track fit result for pion!", fitResult);
144 
146  // write some data to the root tree
147  TVector3 mom = fitResult->getMomentum();
148  m_trackProperties.cosTheta = mom.CosTheta();
149  m_trackProperties.ptot = mom.Mag();
150  m_trackProperties.pt = mom.Pt();
151  m_trackProperties.px = mom.Px();
152  m_trackProperties.py = mom.Py();
153  m_trackProperties.pz = mom.Pz();
154  m_trackProperties.x = fitResult->getPosition().X();
155  m_trackProperties.y = fitResult->getPosition().Y();
156  m_trackProperties.z = fitResult->getPosition().Z();
157 
158  m_pValue = fitResult->getPValue();
159 
160  // Count hits
165  for (genfit::TrackPoint* tp : recoTrack->getHitPointsWithMeasurement()) {
166  for (genfit::AbsMeasurement* m : tp->getRawMeasurements()) {
167  if (dynamic_cast<PXDRecoHit*>(m))
169  else if (dynamic_cast<SVDRecoHit*>(m))
171  else if (dynamic_cast<SVDRecoHit2D*>(m))
173  else if (dynamic_cast<CDCRecoHit*>(m))
175  else
176  B2ERROR("Unknown AbsMeasurement in track.");
177 
178  std::vector<double> weights;
179  genfit::KalmanFitterInfo* kalmanInfo = tp->getKalmanFitterInfo();
180  if (kalmanInfo)
181  weights = kalmanInfo->getWeights();
182 
183  for (size_t i = 0;
184  (i < weights.size()
186  ++i) {
188  }
189  }
190  }
191  }
192 
193  m_dataTree->Fill(); // write data to tree
194  }
195  }
196 }
197 
198 
200 {
201  writeData();
202 }
203 
205 {
206  return mcParticle.hasStatus(MCParticle::c_PrimaryParticle);
207 }
208 
210 {
211  return Const::chargedStableSet.find(abs(mcParticle.getPDG()))
213 }
214 
216 {
217  if (m_dataTree == NULL) {
218  B2FATAL("Data tree was not created.");
219  }
220 
223 
226 
229 
232 
235 
238 
241 
244 
247 
250 
251  addVariableToTree("pValue", m_pValue);
252 
256 
257  m_dataTree->Branch("nWeights", &m_trackProperties.nWeights, "nWeights/I");
258  m_dataTree->Branch("weights", &m_trackProperties.weights, "weights[nWeights]/F");
259 }
260 
262 {
263  if (m_dataTree != NULL) {
264  TDirectory* oldDir = gDirectory;
265  if (m_outputFile)
266  m_outputFile->cd();
267  m_dataTree->Write();
268  oldDir->cd();
269  }
270  if (m_outputFile != NULL) {
271  m_outputFile->Close();
272  }
273 }
274 
276 {
277  std::sort(m_signalDaughterPDGs.begin(), m_signalDaughterPDGs.end());
278 
279  for (const MCParticle& mcParticle : mcParticles) {
280  // continue if mcParticle is not a B meson
281  if (abs(mcParticle.getPDG()) != 511 && abs(mcParticle.getPDG()) != 521)
282  continue;
283 
284  if (isSignalDecay(mcParticle)) {
285  addChargedStable(mcParticle);
286  break;
287  }
288  }
289 }
290 
292 {
293  std::vector<int> daughterPDGs;
294  std::vector<MCParticle*> daughterMcParticles = mcParticle.getDaughters();
295 
296  // remove photons from list
297  daughterMcParticles = removeFinalStateRadiation(daughterMcParticles);
298 
299  for (auto daughterMCParticle : daughterMcParticles) {
300  // cppcheck-suppress useStlAlgorithm
301  daughterPDGs.push_back(daughterMCParticle->getPDG());
302  }
303 
304  std::sort(daughterPDGs.begin(), daughterPDGs.end());
305 
306  bool isSignal = (daughterPDGs == m_signalDaughterPDGs);
307 
308  if (isSignal)
309  m_signalMCParticles = daughterMcParticles;
310 
311  return isSignal;
312 }
313 
316 std::vector<MCParticle*> StandardTrackingPerformanceModule::removeFinalStateRadiation(const std::vector<MCParticle*>& in_daughters)
317 {
318  std::vector<MCParticle*> daughtersWOFSR;
319  for (unsigned int iDaughter = 0; iDaughter < in_daughters.size(); iDaughter++)
320  if (abs(in_daughters[iDaughter]->getPDG()) != 22)
321  daughtersWOFSR.push_back(in_daughters[iDaughter]);
322 
323  return daughtersWOFSR;
324 }
325 
327 {
328 
329  // mcparticle is not a charged stable decays into daughters
330  // loop over daughters and add the charged stable particles recursively to the vector
331  std::vector<MCParticle*> daughters = mcParticle.getDaughters();
332  if (daughters.size() != 0) {
333  for (auto daughterMcParticle : daughters) {
334  addChargedStable(*daughterMcParticle);
335  }
336  }
337 
338  // charged stable particle is added to the interesting particle vector
339  if (isChargedStable(mcParticle) && isPrimaryMcParticle(mcParticle)
341 // B2DEBUG(99,
342 // "Found a charged stable particle. Add it to interesting MCParticles. PDG(" << mcParticle->getPDG() << ").");
343  m_interestingChargedStableMcParcticles.push_back(&mcParticle);
344  return;
345  }
346 
347  return;
348 }
349 
351 {
352  m_trackProperties = -999;
353 
354  m_pValue = -999;
355 }
356 
357 void StandardTrackingPerformanceModule::addVariableToTree(const std::string& varName, double& varReference)
358 {
359  std::stringstream leaf;
360  leaf << varName << "/D";
361  m_dataTree->Branch(varName.c_str(), &varReference, leaf.str().c_str());
362 }
363 
364 void StandardTrackingPerformanceModule::addVariableToTree(const std::string& varName, int& varReference)
365 {
366  std::stringstream leaf;
367  leaf << varName << "/I";
368  m_dataTree->Branch(varName.c_str(), &varReference, leaf.str().c_str());
369 }
genfit::TrackPoint
Object containing AbsMeasurement and AbsFitterInfo objects.
Definition: TrackPoint.h:46
Belle2::StandardTrackingPerformanceModule::terminate
void terminate() override
Write the tree into the opened root file.
Definition: StandardTrackingPerformanceModule.cc:199
Belle2::StandardTrackingPerformanceModule::findSignalMCParticles
void findSignalMCParticles(const StoreArray< MCParticle > &mcParticles)
Find a MCParticle of a decay chain specified by the user (not implemented yet).
Definition: StandardTrackingPerformanceModule.cc:275
Belle2::StandardTrackingPerformanceModule::setupTree
void setupTree()
add branches to data tree
Definition: StandardTrackingPerformanceModule.cc:215
Belle2::SVDRecoHit
SVDRecoHit - an extended form of SVDHit containing geometry information.
Definition: SVDRecoHit.h:57
Belle2::StandardTrackingPerformanceModule::m_pValue
double m_pValue
pValue of track fit
Definition: StandardTrackingPerformanceModule.h:68
Belle2::StandardTrackingPerformanceModule::event
void event() override
Fill the tree with the event data.
Definition: StandardTrackingPerformanceModule.cc:79
Belle2::ParticleProperties::weights
float weights[maxNweights]
Weights of the hits in sequence
Definition: ParticleProperties.h:59
Belle2::StandardTrackingPerformanceModule::m_dataTree
TTree * m_dataTree
root tree with all output data.
Definition: StandardTrackingPerformanceModule.h:56
Belle2::RelationsInterface::getRelationsWith
RelationVector< T > getRelationsWith(const std::string &name="", const std::string &namedRelation="") const
Get the relations between this object and another store array.
Definition: RelationsObject.h:232
Belle2::Module::setDescription
void setDescription(const std::string &description)
Sets the description of the module.
Definition: Module.cc:216
Belle2::StandardTrackingPerformanceModule::m_recoTracksStoreArrayName
std::string m_recoTracksStoreArrayName
genfit::Track collection name
Definition: StandardTrackingPerformanceModule.h:52
Belle2::StandardTrackingPerformanceModule::writeData
void writeData()
write root tree to output file and close the file
Definition: StandardTrackingPerformanceModule.cc:261
Belle2::Const::invalidParticle
static const ParticleType invalidParticle
Invalid particle, used internally.
Definition: Const.h:554
Belle2::ParticleProperties::py
double py
measured momentum in y direction
Definition: ParticleProperties.h:44
Belle2::ParticleProperties::ptot_gen
double ptot_gen
generated total momentum
Definition: ParticleProperties.h:67
Belle2::ParticleProperties::px
double px
measured momentum in x direction
Definition: ParticleProperties.h:43
REG_MODULE
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:652
Belle2::Module::c_ParallelProcessingCertified
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Definition: Module.h:82
Belle2::StandardTrackingPerformanceModule::m_nReconstructedChargedStableTracks
double m_nReconstructedChargedStableTracks
total number of reconstructed track candidates
Definition: StandardTrackingPerformanceModule.h:74
Belle2::ParticleProperties::nWeights
int nWeights
Number of entries in weights array
Definition: ParticleProperties.h:58
Belle2::ParticleProperties::py_gen
double py_gen
generated momentum in y direction
Definition: ParticleProperties.h:64
Belle2::StandardTrackingPerformanceModule::m_signalMCParticles
std::vector< MCParticle * > m_signalMCParticles
vector with all MCParticles of the searched signal decay
Definition: StandardTrackingPerformanceModule.h:62
Belle2::Const::chargedStableSet
static const ParticleSet chargedStableSet
set of charged stable particles
Definition: Const.h:494
Belle2::StandardTrackingPerformanceModule::addVariableToTree
void addVariableToTree(const std::string &varName, double &varReference)
add a variable with double format
Definition: StandardTrackingPerformanceModule.cc:357
Belle2::RelationsInterface::getRelated
T * getRelated(const std::string &name="", const std::string &namedRelation="") const
Get the object to or from which this object has a relation.
Definition: RelationsObject.h:280
Belle2::PXDRecoHit
PXDRecoHit - an extended form of PXDCluster containing geometry information.
Definition: PXDRecoHit.h:61
Belle2::ParticleProperties::mass
double mass
measured mass
Definition: ParticleProperties.h:42
Belle2::TrackFitResult
Values of the result of a track fit with a given particle hypothesis.
Definition: TrackFitResult.h:59
Belle2::ParticleProperties::pz_gen
double pz_gen
generated momentum in z direction
Definition: ParticleProperties.h:65
Belle2::ParticleProperties::mass_gen
double mass_gen
generated mass
Definition: ParticleProperties.h:62
Belle2::StandardTrackingPerformanceModule::m_nGeneratedChargedStableMcParticles
double m_nGeneratedChargedStableMcParticles
total number of genrated charged stable MCParticles
Definition: StandardTrackingPerformanceModule.h:71
Belle2::StandardTrackingPerformanceModule::isChargedStable
bool isChargedStable(const MCParticle &mcParticle)
Tests if MCPArticle is a charged stable particle.
Definition: StandardTrackingPerformanceModule.cc:209
Belle2::CDCRecoHit
This class is used to transfer CDC information to the track fit.
Definition: CDCRecoHit.h:43
Belle2::RecoTrack::getHitPointsWithMeasurement
const std::vector< genfit::TrackPoint * > & getHitPointsWithMeasurement() const
Return a list of measurements and track points, which can be used e.g. to extrapolate....
Definition: RecoTrack.h:607
Belle2::StandardTrackingPerformanceModule::removeFinalStateRadiation
std::vector< MCParticle * > removeFinalStateRadiation(const std::vector< MCParticle * > &in_daughters)
Remove all photons from a MCParticle vector.
Definition: StandardTrackingPerformanceModule.cc:316
Belle2::Module
Base class for Modules.
Definition: Module.h:74
Belle2::ParticleProperties::px_gen
double px_gen
generated momentum in x direction
Definition: ParticleProperties.h:63
Belle2::ParticleProperties::pt
double pt
measured transverse momentum
Definition: ParticleProperties.h:46
Belle2::ParticleProperties::nSVDhits
int nSVDhits
Number of SVD hits in reconstructed track
Definition: ParticleProperties.h:55
Belle2::Module::setPropertyFlags
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
Definition: Module.cc:210
Belle2::MCParticle::hasStatus
bool hasStatus(unsigned short int bitmask) const
Return if specific status bit is set.
Definition: MCParticle.h:140
genfit::AbsMeasurement
Contains the measurement and covariance in raw detector coordinates.
Definition: AbsMeasurement.h:42
Belle2::RecoTrack
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:78
Belle2::Const::pion
static const ChargedStable pion
charged pion particle
Definition: Const.h:535
genfit::KalmanFitterInfo
Collects information needed and produced by a AbsKalmanFitter implementations and is specific to one ...
Definition: KalmanFitterInfo.h:44
Belle2::ParticleProperties::cosTheta
double cosTheta
polar angle of measured momentum vector
Definition: ParticleProperties.h:48
Belle2::Const::ParticleSet::find
const ParticleType & find(int pdg) const
Returns particle in set with given PDG code, or invalidParticle if not found.
Definition: Const.h:447
Belle2::Track::getTrackFitResultWithClosestMass
const TrackFitResult * getTrackFitResultWithClosestMass(const Const::ChargedStable &requestedType) const
Return the track fit for a fit hypothesis with the closest mass.
Definition: Track.cc:70
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::StoreObjPtr
Type-safe access to single objects in the data store.
Definition: ParticleList.h:33
Belle2::StandardTrackingPerformanceModule::m_signalDaughterPDGs
std::vector< int > m_signalDaughterPDGs
PDG codes of the B daughters of the interesting decay channel.
Definition: StandardTrackingPerformanceModule.h:53
Belle2::MCParticle::getPDG
int getPDG() const
Return PDG code of particle.
Definition: MCParticle.h:123
Belle2::StandardTrackingPerformanceModule::initialize
void initialize() override
Register the needed StoreArrays and open th output TFile.
Definition: StandardTrackingPerformanceModule.cc:56
Belle2::StandardTrackingPerformanceModule::isSignalDecay
bool isSignalDecay(const MCParticle &mcParticle)
Tests if mcParticle has the searched decay chain.
Definition: StandardTrackingPerformanceModule.cc:291
Belle2::ParticleProperties::y
double y
measured y value of position
Definition: ParticleProperties.h:51
Belle2::ParticleProperties::nCDChits
int nCDChits
Number of CDC hits in reconstructed track
Definition: ParticleProperties.h:56
Belle2::StandardTrackingPerformanceModule::m_interestingChargedStableMcParcticles
std::vector< const MCParticle * > m_interestingChargedStableMcParcticles
vector with all interesting charged stable MCParticles in the event
Definition: StandardTrackingPerformanceModule.h:59
Belle2::ParticleProperties::y_gen
double y_gen
y value of generated position
Definition: ParticleProperties.h:71
Belle2::MCParticle::c_StableInGenerator
@ c_StableInGenerator
bit 1: Particle is stable, i.e., not decaying in the generator.
Definition: MCParticle.h:60
Belle2::ParticleProperties::pt_gen
double pt_gen
generated transverse momentum
Definition: ParticleProperties.h:66
Belle2::StandardTrackingPerformanceModule::m_trackProperties
ParticleProperties m_trackProperties
properties of a reconstructed track
Definition: StandardTrackingPerformanceModule.h:65
Belle2::SVDRecoHit2D
SVDRecoHit - an extended form of SVDHit containing geometry information.
Definition: SVDRecoHit2D.h:56
Belle2::ParticleProperties::nPXDhits
int nPXDhits
Number of PXD hits in reconstructed track
Definition: ParticleProperties.h:54
Belle2::MCParticle::getDaughters
std::vector< Belle2::MCParticle * > getDaughters() const
Get vector of all daughter particles, empty vector if none.
Definition: MCParticle.cc:51
Belle2::ParticleProperties::cosTheta_gen
double cosTheta_gen
polar angle of generated momentum vector
Definition: ParticleProperties.h:68
Belle2::Module::addParam
void addParam(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
Definition: Module.h:562
Belle2::StandardTrackingPerformanceModule::setVariablesToDefaultValue
void setVariablesToDefaultValue()
Sets all variables to the default value, here -999.
Definition: StandardTrackingPerformanceModule.cc:350
Belle2::StandardTrackingPerformanceModule::m_outputFileName
std::string m_outputFileName
name of output root file
Definition: StandardTrackingPerformanceModule.h:51
Belle2::StandardTrackingPerformanceModule::addChargedStable
void addChargedStable(const MCParticle &mcParticle)
Add all charged stable particles to a vector which originate from.
Definition: StandardTrackingPerformanceModule.cc:326
Belle2::Track
Class that bundles various TrackFitResults.
Definition: Track.h:35
Belle2::ParticleProperties::maxNweights
static const int maxNweights
the maximum number of stored weights
Definition: ParticleProperties.h:40
Belle2::MCParticle
A Class to store the Monte Carlo particle information.
Definition: MCParticle.h:43
genfit::KalmanFitterInfo::getWeights
std::vector< double > getWeights() const
Get weights of measurements.
Definition: KalmanFitterInfo.cc:168
Belle2::StoreArray< MCParticle >
Belle2::StandardTrackingPerformanceModule::m_nFittedChargedStabletracks
double m_nFittedChargedStabletracks
total number of fitted tracks
Definition: StandardTrackingPerformanceModule.h:77
Belle2::StandardTrackingPerformanceModule::m_outputFile
TFile * m_outputFile
output root file
Definition: StandardTrackingPerformanceModule.h:55
Belle2::DataStore::c_Event
@ c_Event
Different object in each event, all objects/arrays are invalidated after event() function has been ca...
Definition: DataStore.h:61
Belle2::ParticleProperties::x
double x
measured x value of position
Definition: ParticleProperties.h:50
Belle2::ParticleProperties::z_gen
double z_gen
z value of generated position
Definition: ParticleProperties.h:72
Belle2::ParticleProperties::ptot
double ptot
measured total momentum
Definition: ParticleProperties.h:47
Belle2::ParticleProperties::x_gen
double x_gen
x value of generated position
Definition: ParticleProperties.h:70
Belle2::ParticleProperties::pz
double pz
measured momentum in z direction
Definition: ParticleProperties.h:45
Belle2::ParticleProperties::z
double z
measured z value of position
Definition: ParticleProperties.h:52
Belle2::MCParticle::c_PrimaryParticle
@ c_PrimaryParticle
bit 0: Particle is primary particle.
Definition: MCParticle.h:58
Belle2::StandardTrackingPerformanceModule::isPrimaryMcParticle
bool isPrimaryMcParticle(const MCParticle &mcParticle)
Tests if MCParticle is a primary one.
Definition: StandardTrackingPerformanceModule.cc:204