]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCcalibTimeGain.h
update train to use TPC performance task
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTimeGain.h
1 #ifndef ALITPCCALIBTIMEGAIN_H
2 #define ALITPCCALIBTIMEGAIN_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 #include "AliTPCcalibBase.h"
8 #include "TH2F.h"
9 #include "TF1.h"
10 #include "TArrayD.h"
11 #include "TObjArray.h"
12
13 class TH1F;
14 class TH3F;
15 class TH2F;
16 class THnSparse;
17 class TList;
18 class TGraphErrors;
19 class AliESDEvent;
20 class AliESDtrack;
21 class AliTPCcalibLaser;
22
23 #include "TTreeStream.h"
24
25
26 class AliTPCcalibTimeGain:public AliTPCcalibBase {
27 public:
28   AliTPCcalibTimeGain(); 
29   AliTPCcalibTimeGain(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeGain);
30   virtual ~AliTPCcalibTimeGain();
31   //
32   virtual void           Process(AliESDEvent *event);
33   virtual Long64_t       Merge(TCollection *li);
34   virtual void           Analyze();
35   //
36   void                   ProcessCosmicEvent(AliESDEvent *event);
37   void                   ProcessBeamEvent(AliESDEvent *event);
38   //
39   void                   CalculateBetheAlephParams(TH2F *hist, Double_t * ini);
40   static void            BinLogX(THnSparse *h, Int_t axisDim);
41   static void            BinLogX(TH1 *h);
42   //
43   THnSparse *            GetHistGainTime(){return (THnSparse*) fHistGainTime;};
44   TH2F      *            GetHistDeDxTotal(){return (TH2F*) fHistDeDxTotal;};
45   //
46   TGraphErrors *         GetGraphGainVsTime(){return fGainVsTime;};
47   //
48   void SetMIP(Float_t MIP){fMIP = MIP;};  
49   void SetLowerTrunc(Float_t LowerTrunc){fLowerTrunc = LowerTrunc;};
50   void SetUpperTrunc(Float_t UpperTrunc){fUpperTrunc = UpperTrunc;};
51   void SetUseShapeNorm(Bool_t UseShapeNorm){fUseShapeNorm = UseShapeNorm;};
52   void SetUsePosNorm(Bool_t UsePosNorm){fUsePosNorm = UsePosNorm;};
53   void SetUsePadNorm(Int_t UsePadNorm){fUsePadNorm = UsePadNorm;};
54   void SetIsCosmic(Bool_t IsCosmic){fIsCosmic = IsCosmic;};
55   void SetLowMemoryConsumption(Bool_t LowMemoryConsumption){fLowMemoryConsumption = LowMemoryConsumption;};
56
57 private:
58   //
59   THnSparse    * fHistGainTime;            // dEdx vs. time, type, Driftlength, momentum P
60   TGraphErrors * fGainVsTime;              // multiplication factor vs. time
61   TH2F         * fHistDeDxTotal;           // dEdx vs. momentum for quality assurance
62   //
63   Float_t fIntegrationTimeDeDx;         // required statistics for each dEdx time bin
64   //
65   Float_t fMIP;                         // rough MIP position in order to have scaleable histograms
66   //
67   Float_t fLowerTrunc;                  // lower truncation of dE/dx ; at most 5%
68   Float_t fUpperTrunc;                  // upper truncation of dE/dx ; ca. 70%
69   Bool_t  fUseShapeNorm;                // use empirical correction of dependencies
70   Bool_t  fUsePosNorm;                  // charge correction (analytical?)
71   Int_t   fUsePadNorm;                  // normalization of pad geometries
72   //
73   Bool_t  fIsCosmic;                    // kTRUE if the analyzed runs contain cosmic events
74   Bool_t  fLowMemoryConsumption;        // set this option kTRUE if the momenta information should not be stored in order to save memory
75   //
76   AliTPCcalibTimeGain(const AliTPCcalibTimeGain&); 
77   AliTPCcalibTimeGain& operator=(const AliTPCcalibTimeGain&); 
78   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
79   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
80
81   ClassDef(AliTPCcalibTimeGain, 1); 
82 };
83
84 #endif
85
86