PandaRoot
PndEventRequirements.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndEventRequirements header file -----
3 // ----- Created 16/09/19 by T.Stockmann -----
4 // -------------------------------------------------------------------------
5 
12 #pragma once
13 
15 #include "TVector3.h"
16 #include "TVector2.h"
17 #include <iostream>
18 
20 
21  public:
24 
26  virtual ~PndEventRequirements();
27 
28  // needs to be called before first use once the FairRootManager is available (in the init of the task using it)
29  void InitRequirements();
30 
31  friend std::ostream &operator<<(std::ostream &out, PndEventRequirements &track)
32  {
33  int i = 0;
34  for (auto req : track.fTrackRequirements) {
35  out << i++ << " : " << req << std::endl;
36  }
37  return out;
38  }
39 
42  {
43  if (val.GetCheckTracking() == true)
44  fChargedTracks.push_back(fTrackRequirements.size());
45  if (val.GetCheckNeutral() == true)
46  fNeutralTracks.push_back(fTrackRequirements.size());
47  fTrackRequirements.push_back(val);
48  }
49 
50  std::vector<PndParticleRequirements> GetRequirements() { return fTrackRequirements; }
51  int GetNRequirements() const { return fTrackRequirements.size(); }
52  int GetNParticles() { return fTrackRequirements.size(); }
53  std::vector<int> GetChargedRequirements() const { return fChargedTracks; }
54  std::vector<int> GetNeutralRequirements() const { return fNeutralTracks; }
55  void ClearFound()
56  {
57  for (auto &track : fTrackRequirements)
58  track.ClearFound();
59  }
60 
61  protected:
62 
63  private:
64  std::vector<PndParticleRequirements> fTrackRequirements;
65  std::vector<int> fChargedTracks; // index to requirement of charged particle
66  std::vector<int> fNeutralTracks; // index to requirement of neutral particle
67 
68  ClassDef(PndEventRequirements, 1);
69 };
70 
std::vector< int > GetNeutralRequirements() const
unsigned int i
Definition: P4_F32vec4.h:21
void AddTrackRequirement(PndParticleRequirements val)
virtual ~PndEventRequirements()
std::vector< int > GetChargedRequirements() const
friend std::ostream & operator<<(std::ostream &out, PndEventRequirements &track)
std::vector< PndParticleRequirements > GetRequirements()