]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TRD/AliTRDinfoGen.h
end-of-line normalization
[u/mrichter/AliRoot.git] / PWGPP / 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 AliESDv0KineCuts;
27 class TObjArray;
28 class TString;
29 class TTreeSRedirector;
30 class AliTRDReconstructor;
31 class AliTRDgeometry;
32 class AliTRDinfoGen : public AliAnalysisTaskSE
33 {
34 public:
35   enum AliTRDinfoGenSteeringBits{
36     kMCdata               = BIT(18)
37    ,kUseLocalTrkSelection = BIT(19)
38    ,kCollision            = BIT(20)
39    ,kOCDB                 = BIT(21)
40    ,kTrkPoints            = BIT(22)
41   };
42   enum AliTRDinfoGenObjects{
43      kTracksESD =  0
44     ,kTracksMC
45     ,kV0
46     ,kTPC
47     ,kITS
48     ,kTRDin
49     ,kTRDout
50     ,kBarrel
51     ,kBarrelMC
52     ,kSA
53     ,kSAMC
54     ,kKink
55     ,kKinkMC
56     ,kBarrelFriend
57     ,kSAFriend
58     ,kNObjects
59   };
60   enum AliTRDinfoGenClasses{
61      kStatTrk = 0
62     ,kEvType
63 //    ,kBCtrack
64     ,kBC
65     ,kTrigger
66     ,kChmb
67     ,kNclasses
68   };
69   AliTRDinfoGen();
70   AliTRDinfoGen(char* name);
71   virtual ~AliTRDinfoGen();
72   
73   static Float_t GetEndITS() { return fgkITS;}
74   static Float_t GetEndTPC() { return fgkTPC;}
75   static Float_t GetEndTRD() { return fgkTRD;}
76   Int_t   GetNRefFigures() const  { return 1;} 
77   const char* GetOCDB() const {return fOCDB.Data();}
78   Bool_t  GetRefFigure(Int_t ifig);
79   Bool_t  Load(const Char_t *fn="AnalysisResults.root", const Char_t *dir="TRD_Performance", const Char_t *name=NULL);
80
81   Bool_t  HasMCdata() const       { return TestBit(kMCdata);};
82   // temporary until check with AliAnalysisTaskSE collision selection mechanism
83   Bool_t  IsInitOCDB() const {return TestBit(kOCDB);}
84   Bool_t  IsCollision() const {return TestBit(kCollision);}
85   Bool_t  HasTrackPoints() const {return TestBit(kTrkPoints);}
86   void    MakeSummary();
87   static const AliTRDReconstructor* Reconstructor() {return fgReconstructor;}
88   static AliTRDgeometry*      Geometry() {return fgGeo;}
89   void    SetInitOCDB(Bool_t set=kTRUE) {SetBit(kOCDB, set);}
90   void    SetCollision(Bool_t set=kTRUE) {SetBit(kCollision, set);}
91   //void    SetLocalEvSelection(const AliTRDeventCuts */*cut*/){;} 
92   void    SetLocalEvSelection(const AliTRDeventCuts &ec);
93   //void    SetLocalTrkSelection(const AliESDtrackCuts */*cut*/){;} 
94   void    SetLocalTrkSelection(Bool_t use=kTRUE) {SetBit(kUseLocalTrkSelection, use);}
95   void    SetLocalV0Selection(const AliTRDv0Info &v0);
96   void    SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}
97   void    SetOCDB(const char *ocdb) {fOCDB=ocdb;}
98
99   Bool_t  UseLocalEvSelection() const {return Bool_t(fEventCut);}
100   Bool_t  UseLocalTrkSelection() const {return TestBit(kUseLocalTrkSelection);}
101   void    UseTrackPoints(Bool_t use=kTRUE) {SetBit(kTrkPoints, use);}
102   void    UserCreateOutputObjects();
103   void    UserExec(Option_t *);
104   void    Terminate(Option_t* option = "");
105 private:
106   // rough radial limits for TRD
107   static const Float_t fgkITS;      // end ITS
108   static const Float_t fgkTPC;      // end TPC
109   static const Float_t fgkTRD;      // end TRD
110
111   // Track selection
112   static const Float_t fgkTrkDCAxy; // cm
113   static const Float_t fgkTrkDCAz;  // cm
114   static const Int_t   fgkNclTPC;   // N clusters TPC
115   static const Float_t fgkPt;       // min. pt
116   static const Float_t fgkEta;      // eta range
117   static AliTRDReconstructor   *fgReconstructor; // single instance of TRD reconstructor used by all tasks
118   static AliTRDgeometry        *fgGeo;           // single instance of TRD geometry used by all tasks
119
120   AliTRDinfoGen(const AliTRDinfoGen&);
121   AliTRDinfoGen& operator=(const AliTRDinfoGen&);
122   TTreeSRedirector* DebugStream();
123   void              MakeChambers();
124
125 //  UShort_t          fBF;             //! Bunch Fill of previous event
126   AliESDEvent      *fESDev;          //! ESD event
127   AliMCEvent       *fMCev;           //! MC event
128   // event/track cuts OO - to be used
129   AliTRDeventCuts  *fEventCut;       // event cut
130   AliESDtrackCuts  *fTrackCut;       // track cut
131   AliESDv0KineCuts *fV0Identifier;   // V0 identifier
132   AliTRDv0Info     *fV0Cut;          // v0 cut
133   TString           fOCDB;           // OCDB location
134   AliTRDtrackInfo  *fTrackInfo;      //! Track info
135   AliTRDeventInfo  *fEventInfo;      //! Event info
136   AliTRDv0Info     *fV0Info;         //! V0 info
137   TObjArray        *fTracksBarrel;   //! Array of barrel(TPC) tracks
138   TObjArray        *fTracksITS;      //! Array of ITS seeded tracks
139   TObjArray        *fTracksSA;       //! Array of stand alone tracks
140   TObjArray        *fTracksKink;     //! Array of kink tracks
141   TObjArray        *fV0List;         //! V0 container
142   TObjArray        *fClusters;       //! Clusters container
143   TObjArray        *fContainer;      //! container to store results
144   TObjArray        *fRecos;          //! array of reco params
145   TTreeSRedirector *fDebugStream;    //! debug stream
146
147   ClassDef(AliTRDinfoGen, 8)         // entry to TRD analysis train
148 };
149 #endif