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