]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/AliTRDinfoGen.h
add trigger monitor plot (infoGen)
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDinfoGen.h
1 #ifndef ALITRDINFOGEN_H\r
2 #define ALITRDINFOGEN_H\r
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
4  * See cxx source for full Copyright notice                               */\r
5 \r
6 /* $Id: AliTRDinfoGen.h 27496 2008-07-22 08:35:45Z cblume $ */\r
7 \r
8 ////////////////////////////////////////////////////////////////////////////\r
9 //                                                                        //\r
10 //  TRD Performance tender wagon                                          //\r
11 //                                                                        //\r
12 ////////////////////////////////////////////////////////////////////////////\r
13 \r
14 #ifndef ALIANALYSISTASKSE_H\r
15 #include "AliAnalysisTaskSE.h"\r
16 #endif\r
17 \r
18 class AliESDEvent;\r
19 class AliMCEvent;\r
20 class AliESDfriend;\r
21 class AliTRDtrackInfo;\r
22 class AliTRDeventInfo;\r
23 class AliTRDv0Info;\r
24 class AliTRDeventCuts;\r
25 class AliESDtrackCuts;\r
26 class TObjArray;\r
27 class TString;\r
28 class TTreeSRedirector;\r
29 class AliTRDReconstructor;\r
30 class AliTRDgeometry;\r
31 class AliTRDinfoGen : public AliAnalysisTaskSE\r
32 {\r
33 public:\r
34   enum AliTRDinfoGenSteeringBits{\r
35     kMCdata               = BIT(18)\r
36    ,kUseLocalEvSelection  = BIT(19)\r
37    ,kUseLocalTrkSelection = BIT(20)\r
38    ,kCollision            = BIT(21)\r
39    ,kOCDB                 = BIT(22)\r
40   };\r
41   enum AliTRDinfoGenObjects{\r
42      kTracksESD =  0\r
43     ,kTracksMC\r
44     ,kV0\r
45     ,kTPC\r
46     ,kTRDin\r
47     ,kTRDout\r
48     ,kBarrel\r
49     ,kBarrelMC\r
50     ,kSA\r
51     ,kSAMC\r
52     ,kKink\r
53     ,kKinkMC\r
54     ,kBarrelFriend\r
55     ,kSAFriend\r
56     ,kNObjects\r
57   };\r
58   enum AliTRDinfoGenClasses{\r
59      kStatTrk = 0\r
60     ,kEvType\r
61     ,kBunchCross\r
62     ,kTrigger\r
63     ,kNclasses\r
64   };\r
65   AliTRDinfoGen();\r
66   AliTRDinfoGen(char* name);\r
67   virtual ~AliTRDinfoGen();\r
68   \r
69   static Float_t GetEndITS() { return fgkITS;}\r
70   static Float_t GetEndTPC() { return fgkTPC;}\r
71   static Float_t GetEndTRD() { return fgkTRD;}\r
72   Int_t   GetNRefFigures() const  { return 1;} \r
73   const char* GetOCDB() const {return fOCDB.Data();}\r
74   Bool_t  GetRefFigure(Int_t ifig);\r
75   Bool_t  Load(const Char_t *fn="AnalysisResults.root", const Char_t *dir="TRD_Performance", const Char_t *name=NULL);\r
76 \r
77   Bool_t  HasMCdata() const       { return TestBit(kMCdata);};\r
78   // temporary until check with AliAnalysisTaskSE collision selection mechanism\r
79   Bool_t  IsInitOCDB() const {return TestBit(kOCDB);}\r
80   Bool_t  IsCollision() const {return TestBit(kCollision);}\r
81   static const AliTRDReconstructor* Reconstructor() {return fgReconstructor;}\r
82   static AliTRDgeometry*      Geometry() {return fgGeo;}\r
83   void    SetInitOCDB(Bool_t set=kTRUE) {SetBit(kOCDB, set);}\r
84   void    SetCollision(Bool_t set=kTRUE) {SetBit(kCollision, set);}\r
85   //void    SetLocalEvSelection(const AliTRDeventCuts */*cut*/){;} \r
86   void    SetLocalEvSelection(Bool_t use=kTRUE) {SetBit(kUseLocalEvSelection, use);}\r
87   //void    SetLocalTrkSelection(const AliESDtrackCuts */*cut*/){;} \r
88   void    SetLocalTrkSelection(Bool_t use=kTRUE) {SetBit(kUseLocalTrkSelection, use);}\r
89   void    SetLocalV0Selection(const AliTRDv0Info *v0);\r
90   void    SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}\r
91   void    SetOCDB(const char *ocdb) {fOCDB=ocdb;}\r
92   void    SetTrigger(const Char_t *trigger);\r
93 \r
94   Bool_t  UseLocalEvSelection() const {return TestBit(kUseLocalEvSelection);}\r
95   Bool_t  UseLocalTrkSelection() const {return TestBit(kUseLocalTrkSelection);}\r
96   void    UserCreateOutputObjects();\r
97   void    UserExec(Option_t *);\r
98 \r
99 private:\r
100   // rough radial limits for TRD\r
101   static const Float_t fgkITS;      // end ITS\r
102   static const Float_t fgkTPC;      // end TPC\r
103   static const Float_t fgkTRD;      // end TRD\r
104 \r
105   // Trigger selection\r
106   TString              *fEvTrigger; // list of accepted trigger classes separated by space\r
107   // Vertex selection\r
108   static const Float_t fgkEvVertexZ;// cm\r
109   static const Int_t   fgkEvVertexN;// cm\r
110   // Track selection\r
111   static const Float_t fgkTrkDCAxy; // cm\r
112   static const Float_t fgkTrkDCAz;  // cm\r
113   static const Int_t   fgkNclTPC;   // N clusters TPC\r
114   static const Float_t fgkPt;       // min. pt\r
115   static const Float_t fgkEta;      // eta range\r
116   static AliTRDReconstructor   *fgReconstructor; // single instance of TRD reconstructor used by all tasks\r
117   static AliTRDgeometry        *fgGeo;           // single instance of TRD geometry used by all tasks\r
118 \r
119   AliTRDinfoGen(const AliTRDinfoGen&);\r
120   AliTRDinfoGen& operator=(const AliTRDinfoGen&);\r
121   TTreeSRedirector* DebugStream();\r
122 \r
123   AliESDEvent      *fESDev;          //! ESD event\r
124   AliMCEvent       *fMCev;           //! MC event\r
125   // event/track cuts OO - to be used\r
126   AliTRDeventCuts  *fEventCut;       // event cut\r
127   AliESDtrackCuts  *fTrackCut;       // track cut\r
128   AliTRDv0Info     *fV0Cut;          // v0 cut\r
129   TString           fOCDB;           // OCDB location\r
130   AliTRDtrackInfo  *fTrackInfo;      //! Track info\r
131   AliTRDeventInfo  *fEventInfo;      //! Event info\r
132   AliTRDv0Info     *fV0Info;         //! V0 info\r
133   TObjArray        *fTracksBarrel;   //! Array of barrel tracks\r
134   TObjArray        *fTracksSA;       //! Array of stand alone tracks\r
135   TObjArray        *fTracksKink;     //! Array of kink tracks\r
136   TObjArray        *fV0List;         //! V0 container\r
137   TObjArray        *fContainer;      //! container to store results\r
138   TObjArray        *fRecos;          //! array of reco params\r
139   TTreeSRedirector *fDebugStream;    //! debug stream\r
140 \r
141   ClassDef(AliTRDinfoGen, 7)         // entry to TRD analysis train\r
142 };\r
143 #endif\r