]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/AliTRDinfoGen.h
new event cut class by Markus for local event selection for TRD
[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 //  Reconstruction QA                                                     //
11 //                                                                        //
12 ////////////////////////////////////////////////////////////////////////////
13
14 #ifndef ALITRDRECOTASK_H
15 #include "AliTRDrecoTask.h"
16 #endif
17
18 #ifndef ROOT_TString
19 #include "TString.h"
20 #endif
21
22 class AliESDEvent;
23 class AliMCEvent;
24 class AliESDfriend;
25 class AliTRDtrackInfo;
26 class AliTRDeventInfo;
27 class AliTRDv0Info;
28 class AliTRDeventCuts;
29 class AliESDtrackCuts;
30 class TObjArray;
31 class TTreeSRedirector;
32 class AliTRDinfoGen : public AliTRDrecoTask{
33 public:
34   enum AliTRDinfoGenSteeringBits{
35     kUseLocalEvSelection  = BIT(21)
36    ,kUseLocalTrkSelection = BIT(22)
37    ,kCollision            = BIT(23)
38   };
39   AliTRDinfoGen();
40   AliTRDinfoGen(char* name);
41   virtual ~AliTRDinfoGen();
42   
43
44   void  UserCreateOutputObjects();
45   void  UserExec(Option_t *);
46   static Float_t GetTPCx() { return fgkTPC;}
47   static Float_t GetTOFx() { return fgkTOF;}
48
49   Bool_t  IsCollision() const {return TestBit(kCollision);}
50
51   void    SetCollision(Bool_t set=kTRUE) {SetBit(kCollision, set);}
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    SetTrigger(const Char_t *trigger) {fEvTrigger = trigger;}
57
58   Bool_t  UseLocalEvSelection() const {return TestBit(kUseLocalEvSelection);}
59   Bool_t  UseLocalTrkSelection() const {return TestBit(kUseLocalTrkSelection);}
60
61 private:
62   // rough radial limits for TRD
63   static const Float_t fgkTPC;      // end TPC
64   static const Float_t fgkTOF;      // begin TOF
65   // Trigger selection
66   TString              fEvTrigger;  // list of trigger classes separated by space
67   // Vertex selection
68   static const Float_t fgkEvVertexZ;// cm
69   static const Int_t   fgkEvVertexN;// cm
70   // Track selection
71   static const Float_t fgkTrkDCAxy; // cm
72   static const Float_t fgkTrkDCAz;  // cm
73   static const Int_t   fgkNclTPC;   // N clusters TPC
74   static const Float_t fgkPt;       // min. pt
75   static const Float_t fgkEta;      // eta range
76   
77   AliTRDinfoGen(const AliTRDinfoGen&);
78   AliTRDinfoGen& operator=(const AliTRDinfoGen&);
79
80   AliESDEvent      *fESDev;          //! ESD event
81   AliMCEvent       *fMCev;           //! MC event
82   AliTRDtrackInfo  *fTrackInfo;      //! Track info
83   AliTRDeventInfo  *fEventInfo;      //! Event info
84   TObjArray        *fV0container;    //! V0 container
85   AliTRDv0Info     *fV0Info;           //! V0 info
86   // event/track cuts OO - to be used
87   AliTRDeventCuts  *fEventCut;       // event cut
88   AliESDtrackCuts  *fTrackCut;       // track cut
89
90   ClassDef(AliTRDinfoGen, 4)         // entry to TRD analysis train
91 };
92 #endif