]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/AliTRDinfoGen.h
implement LocalInit function
[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   };
38
39   AliTRDinfoGen();
40   AliTRDinfoGen(char* name);
41   virtual ~AliTRDinfoGen();
42   
43   void    ConnectInputData(Option_t *opt) {AliAnalysisTaskSE::ConnectInputData(opt);}
44   static Float_t GetTPCx() { return fgkTPC;}
45   static Float_t GetTOFx() { return fgkTOF;}
46
47   Bool_t  HasMCdata() const       { return TestBit(kMCdata);};
48   // temporary until check with AliAnalysisTaskSE collision selection mechannism
49   Bool_t  IsCollision() const {return TestBit(kCollision);}
50   void    SetCollision(Bool_t set=kTRUE) {SetBit(kCollision, set);}
51
52   void    SetLocalEvSelection(AliTRDeventCuts */*cut*/){;} 
53   void    SetLocalEvSelection(Bool_t use=kTRUE) {SetBit(kUseLocalEvSelection, use);}
54   void    SetLocalTrkSelection(AliESDtrackCuts */*cut*/){;} 
55   void    SetLocalTrkSelection(Bool_t use=kTRUE) {SetBit(kUseLocalTrkSelection, use);}
56   void    SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}
57   void    SetTrigger(const Char_t *trigger);
58
59   Bool_t  UseLocalEvSelection() const {return TestBit(kUseLocalEvSelection);}
60   Bool_t  UseLocalTrkSelection() const {return TestBit(kUseLocalTrkSelection);}
61   void    UserCreateOutputObjects();
62   void    UserExec(Option_t *);
63
64 private:
65   // rough radial limits for TRD
66   static const Float_t fgkTPC;      // end TPC
67   static const Float_t fgkTOF;      // begin TOF
68   // Trigger selection
69   TString              *fEvTrigger; // list of trigger classes separated by space
70   // Vertex selection
71   static const Float_t fgkEvVertexZ;// cm
72   static const Int_t   fgkEvVertexN;// cm
73   // Track selection
74   static const Float_t fgkTrkDCAxy; // cm
75   static const Float_t fgkTrkDCAz;  // cm
76   static const Int_t   fgkNclTPC;   // N clusters TPC
77   static const Float_t fgkPt;       // min. pt
78   static const Float_t fgkEta;      // eta range
79   
80   AliTRDinfoGen(const AliTRDinfoGen&);
81   AliTRDinfoGen& operator=(const AliTRDinfoGen&);
82   TTreeSRedirector* DebugStream();
83
84   AliESDEvent      *fESDev;          //! ESD event
85   AliMCEvent       *fMCev;           //! MC event
86   // event/track cuts OO - to be used
87   AliTRDeventCuts  *fEventCut;       // event cut
88   AliESDtrackCuts  *fTrackCut;       // track cut
89   AliTRDtrackInfo  *fTrackInfo;      //! Track info
90   AliTRDeventInfo  *fEventInfo;      //! Event info
91   AliTRDv0Info     *fV0Info;         //! V0 info
92   TObjArray        *fTracksBarrel;   //! Array of barrel tracks
93   TObjArray        *fTracksSA;       //! Array of stand alone tracks
94   TObjArray        *fTracksKink;     //! Array of kink tracks
95   TObjArray        *fV0List;         //! V0 container
96   TTreeSRedirector *fDebugStream;    //! debug stream
97
98   ClassDef(AliTRDinfoGen, 5)         // entry to TRD analysis train
99 };
100 #endif