added weight option to onTheFly
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTimeGain.h
CommitLineData
489dce1b 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
13class TH1F;
14class TH3F;
15class TH2F;
16class THnSparse;
17class TList;
d0b31f57 18class TGraphErrors;
489dce1b 19class AliESDEvent;
20class AliESDtrack;
21class AliTPCcalibLaser;
22
23#include "TTreeStream.h"
24
d0b31f57 25
489dce1b 26class AliTPCcalibTimeGain:public AliTPCcalibBase {
27public:
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 //
d0b31f57 36 void ProcessCosmicEvent(AliESDEvent *event);
37 void ProcessBeamEvent(AliESDEvent *event);
38 //
489dce1b 39 void CalculateBetheAlephParams(TH2F *hist, Double_t * ini);
40 static void BinLogX(THnSparse *h, Int_t axisDim);
41 static void BinLogX(TH1 *h);
489dce1b 42 //
43 THnSparse * GetHistGainTime(){return (THnSparse*) fHistGainTime;};
489dce1b 44 TH2F * GetHistDeDxTotal(){return (TH2F*) fHistDeDxTotal;};
45 //
d0b31f57 46 TGraphErrors * GetGraphGainVsTime(){return fGainVsTime;};
47 //
489dce1b 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;};
d0b31f57 55 void SetLowMemoryConsumption(Bool_t LowMemoryConsumption){fLowMemoryConsumption = LowMemoryConsumption;};
489dce1b 56
57private:
58 //
d0b31f57 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
489dce1b 62 //
63 Float_t fIntegrationTimeDeDx; // required statistics for each dEdx time bin
64 //
d0b31f57 65 Float_t fMIP; // rough MIP position in order to have scaleable histograms
489dce1b 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 //
d0b31f57 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
489dce1b 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