]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/AliTRDinfoGen.h
move OCDB manipulation from local train (run.C) to the task level
[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 AliTRDinfoGen : public AliAnalysisTaskSE
30 {
31 public:
32   enum AliTRDinfoGenSteeringBits{
33     kMCdata               = BIT(18)
34    ,kUseLocalEvSelection  = BIT(19)
35    ,kUseLocalTrkSelection = BIT(20)
36    ,kCollision            = BIT(21)
37    ,kOCDB                 = BIT(22)
38   };
39
40   AliTRDinfoGen();
41   AliTRDinfoGen(char* name);
42   virtual ~AliTRDinfoGen();
43   
44   void    ConnectInputData(Option_t *opt) {AliAnalysisTaskSE::ConnectInputData(opt);}
45   static Float_t GetEndITS() { return fgkITS;}
46   static Float_t GetEndTPC() { return fgkTPC;}
47   static Float_t GetEndTRD() { return fgkTRD;}
48   Int_t   GetNRefFigures() const  { return 1;} 
49   const char* GetOCDB() const {return fOCDB.Data();}
50   Bool_t  GetRefFigure(Int_t ifig);
51   Bool_t  Load(const Char_t *fn="AnalysisResults.root", const Char_t *dir="TRD_Performance", const Char_t *name=NULL);
52
53   Bool_t  HasMCdata() const       { return TestBit(kMCdata);};
54   // temporary until check with AliAnalysisTaskSE collision selection mechanism
55   Bool_t  IsInitOCDB() const {return TestBit(kOCDB);}
56   Bool_t  IsCollision() const {return TestBit(kCollision);}
57   void    SetInitOCDB(Bool_t set=kTRUE) {SetBit(kOCDB, set);}
58   void    SetCollision(Bool_t set=kTRUE) {SetBit(kCollision, set);}
59   void    SetLocalEvSelection(AliTRDeventCuts */*cut*/){;} 
60   void    SetLocalEvSelection(Bool_t use=kTRUE) {SetBit(kUseLocalEvSelection, use);}
61   void    SetLocalTrkSelection(AliESDtrackCuts */*cut*/){;} 
62   void    SetLocalTrkSelection(Bool_t use=kTRUE) {SetBit(kUseLocalTrkSelection, use);}
63   void    SetLocalV0Selection(AliTRDv0Info *v0);
64   void    SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}
65   void    SetOCDB(const char *ocdb) {fOCDB=ocdb;}
66   void    SetTrigger(const Char_t *trigger);
67
68   Bool_t  UseLocalEvSelection() const {return TestBit(kUseLocalEvSelection);}
69   Bool_t  UseLocalTrkSelection() const {return TestBit(kUseLocalTrkSelection);}
70   void    UserCreateOutputObjects();
71   void    UserExec(Option_t *);
72
73 private:
74   // rough radial limits for TRD
75   static const Float_t fgkITS;      // end ITS
76   static const Float_t fgkTPC;      // end TPC
77   static const Float_t fgkTRD;      // end TRD
78
79   // Trigger selection
80   TString              *fEvTrigger; // list of trigger classes separated by space
81   // Vertex selection
82   static const Float_t fgkEvVertexZ;// cm
83   static const Int_t   fgkEvVertexN;// cm
84   // Track selection
85   static const Float_t fgkTrkDCAxy; // cm
86   static const Float_t fgkTrkDCAz;  // cm
87   static const Int_t   fgkNclTPC;   // N clusters TPC
88   static const Float_t fgkPt;       // min. pt
89   static const Float_t fgkEta;      // eta range
90   
91   AliTRDinfoGen(const AliTRDinfoGen&);
92   AliTRDinfoGen& operator=(const AliTRDinfoGen&);
93   TTreeSRedirector* DebugStream();
94
95   AliESDEvent      *fESDev;          //! ESD event
96   AliMCEvent       *fMCev;           //! MC event
97   // event/track cuts OO - to be used
98   AliTRDeventCuts  *fEventCut;       // event cut
99   AliESDtrackCuts  *fTrackCut;       // track cut
100   AliTRDv0Info     *fV0Cut;          // v0 cut
101   TString           fOCDB;           // OCDB location
102   AliTRDtrackInfo  *fTrackInfo;      //! Track info
103   AliTRDeventInfo  *fEventInfo;      //! Event info
104   AliTRDv0Info     *fV0Info;         //! V0 info
105   TObjArray        *fTracksBarrel;   //! Array of barrel tracks
106   TObjArray        *fTracksSA;       //! Array of stand alone tracks
107   TObjArray        *fTracksKink;     //! Array of kink tracks
108   TObjArray        *fV0List;         //! V0 container
109   TObjArray        *fContainer;      //! container to store results
110   TTreeSRedirector *fDebugStream;    //! debug stream
111
112   ClassDef(AliTRDinfoGen, 6)         // entry to TRD analysis train
113 };
114 #endif