1 #ifndef ALITPCCALIBKR_H
\r
2 #define ALITPCCALIBKR_H
\r
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
\r
4 * See cxx source for full Copyright notice */
\r
7 #include <TObjArray.h>
\r
10 #include <TClonesArray.h>
\r
12 #include "AliTPCclusterKr.h"
\r
17 class AliTPCCalibKr : public TObject {
\r
21 AliTPCCalibKr(const AliTPCCalibKr&); // copy constructor
\r
22 virtual ~AliTPCCalibKr();
\r
24 AliTPCCalibKr& operator=(const AliTPCCalibKr&);
\r
28 Bool_t Process(AliTPCclusterKr *cluster);
\r
29 Bool_t Accept(AliTPCclusterKr *cluster);
\r
30 Bool_t Update(AliTPCclusterKr *cluster);
\r
31 TH3F* CreateHisto(Int_t chamber);
\r
33 const TObjArray* GetHistoKrArray () {return &fHistoKrArray;} // get calibration object
\r
34 TH3F* GetHistoKr(Int_t sector) const; // get refernce histogram
\r
36 Bool_t IsCSide(Int_t chamber);
\r
37 Bool_t IsIROC(Int_t chamber);
\r
40 static TH1D* ProjectHisto(TH3F* histo3D, const char* name = "_pz", Int_t firstxbin = 0, Int_t lastxbin = 0, Int_t firstybin = 0, Int_t lastybin = 0);
\r
42 void SetASide(Bool_t bA = kTRUE) {fASide = bA;} // fill histo only A TPC side
\r
43 void SetBSide(Bool_t bC = kTRUE) {fCSide = bC;} // fill histo only C TPC side
\r
45 //Merge output objects (needed by PROOF)
\r
46 virtual Long64_t Merge(TCollection* list);
\r
49 void SetADCOverClustSizeRange(Float_t min=0.0,Float_t max=1.0e9) {fADCOverClustSizeMin = min ; fADCOverClustSizeMax = max; }
\r
50 void SetMaxADCOverClustADCRange(Float_t min=0.0,Float_t max=1.0e9) {fMaxADCOverClustADCMin = min ; fMaxADCOverClustADCMax = max; }
\r
51 void SetTimeRange(Float_t min=0.0, Float_t max=1.0e9) {fTimeMin = min ; fTimeMax = max; }
\r
52 void SetClustSizeRange(Float_t min=0.0, Float_t max=1.0e9) {fClustSizeMin = min ; fClustSizeMax = max; }
\r
54 void SetTimebinRmsMin(Float_t iroc=0.0,Float_t oroc=0.0) {fTimebinRmsIrocMin = iroc ; fTimebinRmsOrocMin = oroc; }
\r
55 void SetPadRmsMin(Float_t iroc=0.0,Float_t oroc=0.0) {fPadRmsIrocMin = iroc ; fPadRmsOrocMin = oroc; }
\r
56 void SetRowRmsMin(Float_t iroc=0.0,Float_t oroc=0.0) {fRowRmsIrocMin = iroc ; fRowRmsOrocMin = oroc; }
\r
57 void SetClusterPadSize1DMax(Short_t iroc=200,Short_t oroc=200) {fClusterPadSize1DIrocMax = iroc ; fClusterPadSize1DOrocMax = oroc; }
\r
58 void SetCurveCoefficient(Float_t iroc=1.0e9,Float_t oroc=1.0e9) {fCurveCoefficientIroc = iroc ; fCurveCoefficientOroc = oroc; }
\r
60 void SetIrocHistogram(Int_t nbins=200,Float_t min=100,Float_t max=6000) {fIrocHistogramNbins = nbins ; fIrocHistogramMin = min ; fIrocHistogramMax = max; }
\r
61 void SetOrocHistogram(Int_t nbins=200,Float_t min=100,Float_t max=5500) {fOrocHistogramNbins = nbins ; fOrocHistogramMin = min ; fOrocHistogramMax = max; }
\r
63 void SetRadius(UInt_t row=0, UInt_t pad=0) {fRowRadius = row ; fPadRadius = pad; }
\r
64 void SetStep(UInt_t row=1, UInt_t pad=1) {fRowStep = (row>=1?row:1) ; fPadStep = (pad>=1?pad:1) ; }
\r
68 Bool_t fASide; //! Only A side
\r
69 Bool_t fCSide; //! Only C side
\r
70 TObjArray fHistoKrArray; // Calibration histograms for Kr distribution
\r
72 Float_t fADCOverClustSizeMin; // min ADCcluster over Cluster size ratio
\r
73 Float_t fADCOverClustSizeMax; // max ADCcluster over Cluster size ratio
\r
74 Float_t fMaxADCOverClustADCMin; // min MaxADC over ADCcluster ratio
\r
75 Float_t fMaxADCOverClustADCMax; // max MaxADC over ADCcluster ratio
\r
76 Float_t fTimeMin; // min time bin for MaxADC
\r
77 Float_t fTimeMax; // max time bin for MaxADC
\r
78 Float_t fClustSizeMin; // min cluster size
\r
79 Float_t fClustSizeMax; // max cluster size
\r
81 Float_t fTimebinRmsIrocMin; // min Timebin RMS for IROCs
\r
82 Float_t fPadRmsIrocMin; // min Pad RMS for IROCs
\r
83 Float_t fRowRmsIrocMin; // min Row RMS for IROCs
\r
84 Short_t fClusterPadSize1DIrocMax; // max size of cluster in pad dir. for IROCs
\r
85 Float_t fCurveCoefficientIroc; // A coefficient in curve function for IROCs
\r
87 Float_t fTimebinRmsOrocMin; // min Timebin RMS for OROCs
\r
88 Float_t fPadRmsOrocMin; // min Pad RMS for OROCs
\r
89 Float_t fRowRmsOrocMin; // min Row RMS for OROCs
\r
90 Short_t fClusterPadSize1DOrocMax; // max size of cluster in pad dir. for OROCs
\r
91 Float_t fCurveCoefficientOroc; // A coefficient in curve function for OROCs
\r
93 Float_t fIrocHistogramMin; // minimal range of histogram for IROCs
\r
94 Float_t fIrocHistogramMax; // maximal range of histogram for IROCs
\r
95 Int_t fIrocHistogramNbins; // number of bins in IROC histogram
\r
96 Float_t fOrocHistogramMin; // minimal range of histogram for OROCs
\r
97 Float_t fOrocHistogramMax; // maximal range of histogram for OROCs
\r
98 Int_t fOrocHistogramNbins; // number of bins in OROC histogram
\r
100 UInt_t fRowRadius; // window size around pad +/-; set to 0 for pad-by-pad calib
\r
101 UInt_t fPadRadius; // window size around pad +/-; set to 0 for pad-by-pad calib
\r
102 UInt_t fRowStep; // step size; set to 1 for finest granularity
\r
103 UInt_t fPadStep; // step size; set to 1 for finest granularity
\r
108 ClassDef(AliTPCCalibKr, 4) // Implementation of the TPC krypton calibration
\r