Updating the effecftive multiplicity calculation using the official
[u/mrichter/AliRoot.git] / TPC / Upgrade / AliToyMCDrawer.h
1 #ifndef AliToyMCDrawer_H
2 #define AliToyMCDrawer_H
3
4 #include <TGraph2D.h>
5 #include <TH3F.h>
6 #include <TTree.h>
7 #include <TFile.h>
8 #include <TString.h>
9
10 #include <AliTPCParam.h>
11 #include <AliTPCROC.h>
12
13 #include "AliToyMCEvent.h"
14 #include "AliToyMCTrack.h"
15
16 class TPolyMarker3D;
17 // class AliTPCROC;
18 class TClonesArray;
19
20 /* Visualization class. To use */
21
22 /*  AliToyMCDrawer* draw = new AliToyMCDrawer() */
23 /*  draw->SetFileName("path/to/toyMC.root") */
24
25 /*  draw->FillEventArray(Int_t centerEventNumber) */
26 /*         or                  */
27 /*  draw->FillEventArray(Double_t time) */
28 /*    to display with a certain event in the center or at a certain time  */
29
30 /*  draw->DrawEvents(Bool_t both, Bool_t before) */
31 /*    where "both" will display events before and after the middle event and  */
32 /*    before will show also events before (after) the middle event if true (false)  */
33 /*    when "both" is false */
34
35 class AliToyMCDrawer : public TObject {
36
37
38  public:
39   AliToyMCDrawer();
40   AliToyMCDrawer(const AliToyMCDrawer &drawer);
41   AliToyMCDrawer& operator = (const AliToyMCDrawer &drawer);
42
43   virtual ~AliToyMCDrawer();
44   
45   Int_t FillEventArray(Int_t middleEventNbr, Double_t snapShotTime = -1.);
46   Int_t FillEventArray(Double_t snapShotTime);
47   Int_t GetNumberOfEvents()     const {return fEventArray->GetEntriesFast(); }
48   
49   void SetFileName(const Char_t* filename) {fFileName = filename;}
50   void DrawEvent(AliToyMCEvent *currentEvent, Double_t centerTime, Int_t color);
51   void DrawTrack(const AliToyMCTrack *track,  Double_t centerTime, Double_t currentEventTime, Int_t color);
52   void DrawLaserEvent(Int_t nLaserEvents=1, Int_t side=-1, Int_t rod=-1, Int_t bundle=-1, Int_t beam=-1);
53   void DrawGeometry();
54   void DrawEvents(Bool_t both = kFALSE, Bool_t before = kTRUE);
55   //  void DrawEvents(Bool_t time = kTRUE, Bool_t both = kTRUE, Bool_t before = kTRUE);
56  
57   const AliToyMCEvent* GetEvent(Int_t eventnr) const {return static_cast<const AliToyMCEvent*>(fEventArray->At(eventnr));}
58 private:
59
60   TTree* fInputTree;
61   TFile* fInFile;
62   TString fFileName;
63   AliToyMCEvent* fEvent;
64   TClonesArray* fEventArray;
65   TH3F* fDispHist;
66   
67   Double_t fCenterTime;
68   Double_t fDriftVel;
69   AliTPCParam *fTPCParam;
70   Double_t fMaxZ0;
71   Double_t fIFCRadius;
72   Double_t fOFCRadius;
73   Double_t fTimeRange;
74   AliTPCROC *fRoc;
75   TClonesArray *fPoints;
76   TClonesArray *fDistPoints;
77
78   Bool_t ConnectInputTree();
79   
80   ClassDef(AliToyMCDrawer, 1);
81
82 };
83
84
85
86
87
88
89
90
91
92
93 #endif