1ce084126b0b64e18116707b5bf72e36f63d16ea
[u/mrichter/AliRoot.git] / TOF / AliTOFAnalysisTaskCalibPass0.h
1 #ifndef ALITOFANALYSISTASKCALIBPASS0_H
2 #define ALITOFANALYSISTASKCALIBPASS0_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ///////////////////////////////////////////////////////////////
8 //                                                           //
9 //   This class provides TOF pass0/passX calibration tools   //
10 //                                                           //
11 ///////////////////////////////////////////////////////////////
12
13 #include "AliAnalysisTaskSE.h"
14
15 class AliESDtrack;
16 class AliESDEvent;
17 class AliPhysicsSelection;
18 class AliESDtrackCuts;
19 class AliESDVertex;
20 class AliGRPManager;
21 class AliGRPObject;
22 class AliTOFcalib;
23 class TList;
24 class TH2F;
25 class TF1;
26 class TH1D;
27
28 class AliTOFAnalysisTaskCalibPass0 :
29 public AliAnalysisTaskSE
30 {
31
32  public:
33
34   AliTOFAnalysisTaskCalibPass0(); // default constructor
35   virtual ~AliTOFAnalysisTaskCalibPass0(); // default destructor
36
37   virtual void UserCreateOutputObjects(); // user create output objects
38   virtual void UserExec(Option_t *); // user exec
39
40   /* getters */
41   AliPhysicsSelection *GetEventCuts() const {return fEventCuts;}; // getter
42   AliESDtrackCuts *GetTrackCuts() const {return fTrackCuts;}; // getter
43   AliTOFcalib *GetTOFcalib() const {return fTOFcalib;}; // getter
44   
45   /* setters */
46   void SetEventSelectionFlag(Bool_t value = kTRUE) {fEventSelectionFlag = value;}; // setter
47   void SetVertexSelectionFlag(Bool_t value = kTRUE) {fVertexSelectionFlag = value;}; // setter
48   void SetVertexCut(Double_t value) {fVertexCut = value;}; // setter
49
50   /* post-processing methods */
51   Bool_t ProcessOutput(const Char_t *filename, const Char_t *dbString); // process output
52   
53  protected:
54
55   AliTOFAnalysisTaskCalibPass0(const AliTOFAnalysisTaskCalibPass0 &); // copy constructor
56   AliTOFAnalysisTaskCalibPass0 &operator=(const AliTOFAnalysisTaskCalibPass0 &); // operator=
57
58   /* methods */
59   Bool_t InitRun(); // init run
60   Bool_t InitEvent(); // init event
61   Bool_t HasTOFMeasurement(const AliESDtrack *track) const ; // has TOF measurement
62
63   /* post-processing methods */
64   Bool_t CheckMatchingPerformance(const TH2F *histoDeltazEta, const TH2F *histoAcceptedTracksEtaPt, const TH2F *histoMatchedTracksEtaPt) const; // check matching efficiency
65   Bool_t CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F *histoDeltatTimestamp, const Char_t *dbString); // calibrate and store
66   Int_t FitPeak(TF1 *fitFunc, TH1D *h, Float_t startSigma, Float_t nSigmaMin, Float_t nSigmaMax); // fit peak
67
68   /* flags and cuts */
69   Bool_t fInitFlag; // init flag
70   Bool_t fEventSelectionFlag; // event selection flag
71   Bool_t fVertexSelectionFlag; // vertex selection flag
72   Double_t fVertexCut; // vertex cut
73
74   /* ESD analysis */
75   Int_t fRunNumber; // run number
76   AliESDEvent *fESDEvent; // ESD event
77   AliPhysicsSelection *fEventCuts; // event cuts
78   AliESDtrackCuts *fTrackCuts; // track cuts
79   UInt_t fStartTime; // start time
80   UInt_t fEndTime; // end time
81   UInt_t fEventTime; // event time
82   UInt_t fElapsedTime; // event time since start
83   const AliESDVertex *fkVertex; // vertex
84
85   /* GRP related stuff */
86   AliGRPManager *fGRPManager; // GRP manager
87   const AliGRPObject *fkGRPObject; // GRP object
88   
89   /* TOF related stuff */
90   AliTOFcalib *fTOFcalib; // TOF calib
91
92   /* lists and histos */
93   TList *fHistoList; // list of histograms
94   TH2F *fHistoVertexTimestamp; // vertex-timestamp histo
95   TH2F *fHistoDeltatTimestamp; // deltat-timestamp histo
96   TH2F *fHistoDeltazEta; // deltaz-eta histo
97   TH2F *fHistoDeltazCosTheta; // deltaz-costheta histo
98   TH2F *fHistoAcceptedTracksEtaPt; // accepted tracks eta-pt histo
99   TH2F *fHistoMatchedTracksEtaPt; // matched tracks eta-pt histo
100
101   /* post-processing variables */
102   static const Int_t fgkMaxNumberOfPoints; // max number of points
103   static const Double_t fgkMinVertexIntegral; // min vertex integral
104   static const Double_t fgkMinDeltatIntegral; // min vertex integral
105
106
107   ClassDef(AliTOFAnalysisTaskCalibPass0, 1);
108 };
109
110 #endif /* ALIANALYSISTASKEVENTTIME_H */