1 #ifndef ALITPCCALIBTIMEGAIN_H
2 #define ALITPCCALIBTIMEGAIN_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 #include "AliTPCcalibBase.h"
11 #include "TObjArray.h"
21 class AliTPCcalibLaser;
23 #include "TTreeStream.h"
26 class AliTPCcalibTimeGain:public AliTPCcalibBase {
28 AliTPCcalibTimeGain();
29 AliTPCcalibTimeGain(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeGain);
30 virtual ~AliTPCcalibTimeGain();
32 virtual void Process(AliESDEvent *event);
33 virtual Long64_t Merge(TCollection *li);
34 virtual void Analyze();
36 void ProcessCosmicEvent(AliESDEvent *event);
37 void ProcessBeamEvent(AliESDEvent *event);
39 void CalculateBetheAlephParams(TH2F *hist, Double_t * ini);
40 static void BinLogX(THnSparse *h, Int_t axisDim);
41 static void BinLogX(TH1 *h);
43 THnSparse * GetHistGainTime(){return (THnSparse*) fHistGainTime;};
44 TH2F * GetHistDeDxTotal(){return (TH2F*) fHistDeDxTotal;};
46 TGraphErrors * GetGraphGainVsTime(){return fGainVsTime;};
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;};
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
63 Float_t fIntegrationTimeDeDx; // required statistics for each dEdx time bin
65 Float_t fMIP; // rough MIP position in order to have scaleable histograms
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
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
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);}
81 ClassDef(AliTPCcalibTimeGain, 1);