FairRoot/PandaRoot
PndGemEventBuilderOnTracks.h
Go to the documentation of this file.
1 //* $Id: */
2 
3 // -------------------------------------------------------------------------
4 // ----- PndGemEventBuilderOnTracks header file -----
5 // ----- Created 22/08/2013 by R. Karabowicz -----
6 // -------------------------------------------------------------------------
7 
8 
19 #ifndef PNDGEMEVENTBUILDERONTRACKS_H
20 #define PNDGEMEVENTBUILDERONTRACKS_H 1
21 
22 #include "PndTrack.h"
23 
24 #include "FairEventBuilder.h"
25 
26 #include "TStopwatch.h"
27 
28 #include <map>
29 #include <set>
30 #include <vector>
31 
32 class TClonesArray;
33 
34 class FairRecoEventHeader;
35 
36 struct RecoEvent {
37  std::vector<Int_t> trackIndex;
38  Int_t nofTracks;
40 };
41 
42 class PndGemEventBuilderOnTracks : public FairEventBuilder
43 {
44 
45 
46  public :
47 
50 
52  PndGemEventBuilderOnTracks(const char* name, Int_t iVerbose=0);
53 
54 
57 
58 
59  virtual void StoreEventData(FairRecoEventHeader* recoEvent);
60 
61  std::vector<std::pair<double, FairRecoEventHeader*> > FindEvents();
62 
63  std::vector<std::pair<double, PndTrack*> > Modify(std::pair<double, PndTrack*> oldData, std::pair<double, PndTrack*> newData);
64  void AddNewDataToTClonesArray(FairTimeStamp* data);
65  double FindTimeForData(FairTimeStamp* data);
66  void FillDataMap(FairTimeStamp* data, double activeTime);
67  void EraseDataFromDataMap(FairTimeStamp* data);
68 
69  private:
70 
71  TClonesArray* fGemTracks;
72  TClonesArray* fGemOutTracks;
73 
74  Int_t fTNofEvents;
75  Int_t fTNofTracks;
77 
79  TStopwatch fTimer;
81  std::vector<RecoEvent> fRecoEvents;
82 
83  std::map<FairRecoEventHeader,double> fEvent_map;
84  std::map<PndTrack,double> fData_map;
85 
87  virtual void SetParContainers();
88 
89 
91  virtual Bool_t Init();
92 
93 
95  virtual Bool_t ReInit();
96 
97  virtual void Print();
98 
100  virtual void Finish();
101 
102  Int_t CompareTrackToPreviousEvents(Int_t trackId, PndTrack* tempTrack);
103 
105 
106 };
107 
108 #endif
void FillDataMap(FairTimeStamp *data, double activeTime)
void EraseDataFromDataMap(FairTimeStamp *data)
ClassDef(PndGemEventBuilderOnTracks, 1)
std::vector< std::pair< double, FairRecoEventHeader * > > FindEvents()
std::map< FairRecoEventHeader, double > fEvent_map
Double_t
std::vector< Int_t > trackIndex
std::vector< std::pair< double, PndTrack * > > Modify(std::pair< double, PndTrack * > oldData, std::pair< double, PndTrack * > newData)
double FindTimeForData(FairTimeStamp *data)
void AddNewDataToTClonesArray(FairTimeStamp *data)
std::vector< RecoEvent > fRecoEvents
TString name
Int_t CompareTrackToPreviousEvents(Int_t trackId, PndTrack *tempTrack)
Int_t iVerbose
virtual void StoreEventData(FairRecoEventHeader *recoEvent)
std::map< PndTrack, double > fData_map