/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/io/include/RAT/TrackNav.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/io/include/RAT/TrackNav.hh Source File
Ratpac-two
TrackNav.hh
1 #ifndef __RAT_TrackNav__
2 #define __RAT_TrackNav__
3 
4 #include <RAT/DS/Root.hh>
5 #include <RAT/TrackCursor.hh>
6 #include <RAT/TrackNode.hh>
7 #include <map>
8 
9 namespace RAT {
10 
11 class TrackNav {
12  public:
13  TrackNav(RAT::DS::Root *ds, bool verbose = false) { Load(ds->GetMC(), verbose); };
14  TrackNav(RAT::DS::MC *mc, bool verbose = false) { Load(mc, verbose); };
15  void Load(RAT::DS::MC *mc, bool verbose = false);
16  void Clear();
17 
18  TrackNode *Head() { return fHead; };
19  TrackCursor Cursor(bool verbose = false) { return TrackCursor(fHead, verbose); };
20 
21  TrackNode *FindID(int trackID);
22  TrackNode *FindParticle(const std::string &particleName, bool verbose = false);
23 
24  protected:
25  TrackNode *fHead;
26  std::map<int, TrackNode *> fTracks; // Access by Track ID
27  // point to first node of each track
28 };
29 
30 } // namespace RAT
31 
32 #endif
Definition: MC.hh:30
Definition: Root.hh:39
virtual MC * GetMC()
Definition: Root.hh:97
Definition: TrackCursor.hh:15
Definition: TrackNav.hh:11
Definition: TrackNode.hh:8
Definition: CCCrossSecMessenger.hh:29