]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFAnalysisTaskCalibTree.h
Fix for TOF new calib task for CPass
[u/mrichter/AliRoot.git] / TOF / AliTOFAnalysisTaskCalibTree.h
1 #ifndef ALITOFANALYSISTASKCALIBTREE_H
2 #define ALITOFANALYSISTASKCALIBTREE_H
3
4 #include "AliAnalysisTaskSE.h"
5 #include "TString.h"
6 #include "TMath.h"
7
8 class AliESDEvent;
9 class AliESDtrackCuts;
10 class AliESDtrackCuts;
11 class AliESDtrack;
12 class AliESDVertex;
13 class AliESDpid;
14
15 class AliPhysicsSelection;
16
17 class AliTOFcalibHisto;
18 class AliTOFcalib;
19 class AliTOFT0maker;
20 class AliTOFT0v1;
21
22 class AliGRPManager;
23 class AliGRPObject;
24
25 class TH2F;
26
27 #define MAXHITS 100000
28
29 class AliTOFAnalysisTaskCalibTree :
30 public AliAnalysisTaskSE
31 {
32
33  public:
34
35   AliTOFAnalysisTaskCalibTree(const Char_t* name = "TOFcalibTree"); // default constructor
36   virtual ~AliTOFAnalysisTaskCalibTree(); // default destructor
37
38   virtual void UserCreateOutputObjects(); // user create output objects
39   virtual void UserExec(Option_t *option); // user exec
40
41   // getters
42   AliPhysicsSelection *GetEventCuts() const {return fEventCuts;}; // getter
43   AliESDtrackCuts *GetTrackCuts() const {return fTrackCuts;}; // getter
44   AliTOFcalib *GetTOFcalib() const {return fTOFcalib;}; // getter
45   AliTOFT0maker *GetTOFT0maker() const {return fTOFT0maker;}; // getter
46   AliTOFT0v1 *GetTOFT0v1() const {return fTOFT0v1;}; // getter
47   Float_t GetTimeResolution() const {return fTimeResolution;}; // time resolution
48   AliESDpid *GetESDpid() const {return fESDpid;}; // get ESD PID
49
50   // setters
51   void SetEventSelectionFlag(Bool_t value = kTRUE) {fEventSelectionFlag = value;}; // setter
52   void SetVertexSelectionFlag(Bool_t value = kTRUE) {fVertexSelectionFlag = value;}; // setter
53   void SetVertexCut(Double_t value) {fVertexCut = value;}; // setter
54   void SetDiscardPileupEventFlag(Bool_t value = kTRUE) {fDiscardPileupEventFlag = value;}; // setter
55   void SetPrimaryDCASelectionFlag(Bool_t value = kTRUE) {fPrimaryDCASelectionFlag = value;}; // setter
56   void SetTimeResolution(Float_t value) {fTimeResolution = value;}; // set time resolution
57   void SetCalibrateTOFsignal(Bool_t value = kTRUE) {fCalibrateTOFsignal = value;}; // setter
58   void SetComputeT0TOF(Bool_t value = kTRUE) {fComputeT0TOF = value;}; // setter
59   void SetUseT0TOF(Bool_t value = kTRUE) {fUseT0TOF = value;}; // setter
60   void SetUseLHCClockPhase(Bool_t value = kTRUE) {fUseLHCClockPhase = value;}; // setter
61   void SetSpecificStorageParOffline(Char_t *value) {fSpecificStorageParOffline = value;}; // set specific storage ParOffline
62   void SetSpecificStorageRunParams(Char_t *value) {fSpecificStorageRunParams = value;}; // set specific storage RunParams
63
64  protected:
65
66   AliTOFAnalysisTaskCalibTree(const AliTOFAnalysisTaskCalibTree &); // copy constructor
67   AliTOFAnalysisTaskCalibTree &operator=(const AliTOFAnalysisTaskCalibTree &); // operator=
68
69   // methods:
70
71   Bool_t InitRun(); // init run
72   Bool_t InitEvent(); // init event
73   Bool_t HasTOFMeasurement(AliESDtrack *track); // has TOF
74   Bool_t HasPrimaryDCA(AliESDtrack *track); // has primary DCA
75
76   // members:
77
78   // flags and cuts
79   Bool_t fInitFlag;                   // init flag
80   Bool_t fEventSelectionFlag;         // event selection flag
81   Bool_t fVertexSelectionFlag;        // vertex selection flag
82   Double_t fVertexCut;                // vertex cut
83   Bool_t fDiscardPileupEventFlag;     // discard pile-up event flag
84   Bool_t fCalibrateTOFsignal;         // calibrate TOF signal
85   Bool_t fComputeT0TOF;               // compute T0-TOF
86   Bool_t fUseT0TOF;                   // use T0-TOF
87   Bool_t fUseLHCClockPhase;           // use LHC-clock phase
88   Bool_t fPrimaryDCASelectionFlag;    // selection of primaries with DCA cut
89
90   // ESD related stuff
91   Int_t fRunNumber;                   // run number
92   AliESDEvent *fESDEvent;             // ESD event
93   AliPhysicsSelection *fEventCuts;    // event cuts
94   AliESDtrackCuts *fTrackCuts;        // track cuts
95   AliESDpid *fESDpid;                 // ESD PID
96   UInt_t fStartTime;                  // start time
97   UInt_t fEndTime;                    // end time
98   UInt_t fElapsedTime;                // event time since start
99   Bool_t fIsCollisionCandidate;       // is collision candidate
100   Bool_t fHasVertex;                  // has vertex
101   const AliESDVertex *fVertex;        // vertex
102
103   // GRP related stuff
104   AliGRPManager *fGRPManager;         // GRP manager
105   const AliGRPObject *fGRPObject;     // GRP object
106
107   // TOF related stuff
108   TString fSpecificStorageParOffline; // specific storage ParOffline
109   TString fSpecificStorageRunParams;  // specific storage RunParams
110   Float_t fTimeResolution;            // time resolution
111   AliTOFcalib *fTOFcalib;             // TOF calib
112   AliTOFT0maker *fTOFT0maker;         // TOF-T0 maker
113   AliTOFT0v1 *fTOFT0v1;               // TOF-T0 v1
114
115   // task related stuff
116   UInt_t ftimestamp;
117   Float_t fVertexZ;
118   Float_t ftimezero;
119   Int_t fnhits;
120   Float_t fmomentum[MAXHITS];
121   Float_t flength[MAXHITS];
122   Int_t findex[MAXHITS];
123   Float_t ftime[MAXHITS];
124   Float_t ftot[MAXHITS];
125   Float_t ftexp[MAXHITS];
126
127   TTree* fOutputTree;                 // output tree
128
129   ClassDef(AliTOFAnalysisTaskCalibTree, 2);
130 };
131
132 #endif /* ALIANALYSISTASKTOFCOMPACTCALIB_H */