]>
Commit | Line | Data |
---|---|---|
a65a7e70 | 1 | #ifndef ALITPCCLUSTERERKR_H |
2 | #define ALITPCCLUSTERERKR_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliTPCclustererKr.h,v 1.8 2008/02/07 16:07:15 matyja Exp $ */ | |
7 | ||
8 | //------------------------------------------------------- | |
9 | // TPC Kr Clusterer Class | |
10 | // | |
11 | // Origin: Adam Matyja, INP PAN, adam.matyja@ifj.edu.pl | |
12 | //------------------------------------------------------- | |
13 | ||
14 | #include "TObject.h" | |
15 | ||
16 | class AliTPCclusterKr; | |
17 | class AliPadMax; | |
18 | class AliSimDigits; | |
19 | class AliTPCv4; | |
20 | class AliTPCParam; | |
21 | class AliTPCDigitsArray; | |
22 | class AliTPCvtpr; | |
23 | class AliTPCClustersRow; | |
24 | class TTree; | |
25 | class TH1F; | |
26 | class TH2F; | |
27 | ||
28 | class AliTPCTransform; | |
29 | ||
30 | //used in raw data finder | |
31 | class AliTPCROC; | |
32 | class AliTPCCalPad; | |
33 | class AliTPCAltroMapping; | |
34 | class AliTPCcalibDB; | |
35 | class AliTPCRecoParam; | |
36 | class AliTPCReconstructor; | |
37 | class AliRawReader; | |
38 | class AliTPCCalROC; | |
39 | class TTreeSRedirector; | |
40 | class AliRawEventHeaderBase; | |
41 | //_____________________________________________________________________________ | |
42 | class AliTPCclustererKr: public TObject{ | |
43 | public: | |
44 | AliTPCclustererKr(); | |
45 | AliTPCclustererKr(const AliTPCclustererKr ¶m);//copy constructor | |
46 | AliTPCclustererKr &operator = (const AliTPCclustererKr & param); | |
47 | virtual ~AliTPCclustererKr(); | |
48 | ||
49 | //finders | |
50 | virtual Int_t FinderIO();//for MC | |
51 | virtual Int_t FinderIO(AliRawReader* rawReader);//for data | |
52 | virtual Int_t FindClusterKrIO();//main routine for finding clusters | |
53 | virtual void CleanSector(Int_t sector); // clean isolated digits | |
54 | ||
55 | //other | |
56 | void GetXY(Int_t sec,Int_t row,Int_t pad,Double_t& xGlob,Double_t& yGlob);//give XY coordinate of the pad | |
57 | ||
58 | virtual void SetInput(TTree * tree); //set input tree with digits | |
59 | virtual void SetOutput(TTree * tree); //set output tree with clusters | |
60 | virtual void SetParam(AliTPCParam *param){fParam=param;}//set TPC parameters | |
61 | virtual void SetDigArr(AliTPCDigitsArray *digarr){fDigarr=digarr;}//set current array of digits | |
62 | virtual void SetRecoParam(AliTPCRecoParam *recoParam=0);//set reconstruction parameters | |
63 | ||
64 | virtual void SetTimeStamp(UInt_t timestamp){ fTimeStamp = timestamp; } | |
65 | virtual void SetRun(UInt_t run){ fRun = run; } | |
66 | ||
67 | //setters for cluster finder parameters | |
68 | virtual void SetZeroSup(Int_t v){fZeroSup=v;}//set zero suppresion parameter | |
69 | virtual void SetFirstBin(Int_t v){fFirstBin=v;}//set first considered timebin | |
70 | virtual void SetLastBin(Int_t v){fLastBin=v;}//set last considered timebin | |
71 | virtual void SetMaxNoiseAbs(Float_t v){fMaxNoiseAbs=v;}//set maximal noise value | |
72 | virtual void SetMaxNoiseSigma(Float_t v){fMaxNoiseSigma=v;}//set maximal noise sigma | |
73 | ||
74 | virtual void SetMinAdc(Int_t v){v<=0?fMinAdc=1:fMinAdc=v;}//set fMinAdc | |
75 | virtual void SetMinTimeBins(Int_t v){fMinTimeBins=v;}//set fMinTimeBins | |
76 | // virtual void SetMaxPadRange(Int_t v){fMaxPadRange=v;}//set fMaxPadRange | |
77 | // virtual void SetMaxRowRange(Int_t v){fMaxRowRange=v;}//set fMaxRowRange | |
78 | virtual void SetMaxTimeRange(Int_t v){fMaxTimeRange=v;}//set fMaxTimeRange | |
79 | virtual void SetValueToSize(Float_t v){fValueToSize=v;}//set fValueToSize | |
80 | ||
81 | virtual void SetMaxPadRangeCm(Double_t v){fMaxPadRangeCm=v;}//set fMaxPadRangeCm | |
82 | virtual void SetMaxRowRangeCm(Double_t v){fMaxRowRangeCm=v;}//set fMaxRowRangeCm | |
83 | ||
84 | virtual void SetIsolCut(Short_t v){fIsolCut=v;} | |
85 | ||
86 | virtual void SetDebugLevel(Int_t debug){fDebugLevel=debug;} | |
87 | //debug = 0 to 71 -sector number to print | |
88 | // = 72 - all sectors | |
89 | // = 73 - inners | |
90 | // = 74 - outers | |
91 | ||
92 | virtual void SetHistoRow(TH1F *histo) {fHistoRow =histo;} | |
93 | virtual void SetHistoPad(TH1F *histo) {fHistoPad =histo;} | |
94 | virtual void SetHistoTime(TH1F *histo) {fHistoTime =histo;} | |
95 | virtual void SetHistoRowPad(TH2F *histo){fHistoRowPad=histo;} | |
96 | ||
97 | //getters for cluster finder parameters | |
98 | Int_t GetZeroSup() const {return fZeroSup;}//get zero suppresion parameter | |
99 | Int_t GetFirstBin() const {return fFirstBin;}//get first considered timebin | |
100 | Int_t GetLastBin() const {return fLastBin;}//get last considered timebin | |
101 | Float_t GetMaxNoiseAbs() const {return fMaxNoiseAbs;}//get maximal noise value | |
102 | Float_t GetMaxNoiseSigma() const {return fMaxNoiseSigma;}//get maximal noise sigma | |
103 | ||
104 | Int_t GetMinAdc() const {return fMinAdc;}//get fMinAdc | |
105 | Int_t GetMinTimeBins() const {return fMinTimeBins;}//get fMinTimeBins | |
106 | // Int_t GetMaxPadRange() const {return fMaxPadRange;}//get fMaxPadRange | |
107 | // Int_t GetMaxRowRange() const {return fMaxRowRange;}//get fMaxRowRange | |
108 | Int_t GetMaxTimeRange() const {return fMaxTimeRange;}//get fMaxTimeRange | |
109 | Float_t GetValueToSize() const {return fValueToSize;}//get fValueToSize | |
110 | ||
111 | Double_t GetMaxPadRangeCm() const {return fMaxPadRangeCm;}//get fMaxPadRangeCm | |
112 | Double_t GetMaxRowRangeCm() const {return fMaxRowRangeCm;}//get fMaxRowRangeCm | |
113 | ||
114 | Short_t GetIsolCut() const {return fIsolCut;} | |
115 | ||
116 | Int_t GetDebugLevel() const {return fDebugLevel;} | |
117 | TH1F * GetHistoRow(){return fHistoRow;} | |
118 | TH1F * GetHistoPad(){return fHistoPad;} | |
119 | TH1F * GetHistoTime(){return fHistoTime;} | |
120 | TH2F * GetHistoRowPad(){return fHistoRowPad;} | |
121 | ||
122 | UInt_t GetTimeStamp() const {return fTimeStamp;} | |
123 | UInt_t GetRun() const {return fRun;} | |
124 | ||
125 | private: | |
126 | void MakeClusters(TObjArray * maximaInSector, Int_t iSec, Int_t &clusterCounter); | |
127 | Bool_t fRawData; //flag =0 for MC =1 for real data | |
128 | ||
129 | TTree * fInput; //!input tree with digits - object not owner | |
130 | TTreeSRedirector * fOutput; //!output tree with clusters - object not owner | |
131 | ||
132 | AliTPCParam * fParam;//!TPC parameters | |
133 | AliTPCDigitsArray *fDigarr;//! pointer to current array if digits | |
134 | ||
135 | //only for raw data :) | |
136 | const AliTPCRecoParam * fRecoParam; //! reconstruction parameters | |
137 | ||
138 | //cluster finder parameters | |
139 | Int_t fZeroSup;//zero suppresion parameter = 2 def. | |
140 | Int_t fFirstBin;//first considered time bin used by cluster finder = 60 def. | |
141 | Int_t fLastBin;//last considered time bin used by cluster finder = 950 def. | |
142 | Float_t fMaxNoiseAbs;// maximal noise value on pad used in cluster finder = 2 def. | |
143 | Float_t fMaxNoiseSigma;// maximal noise sigma on pad used in cluster finder = 3 def. | |
144 | ||
145 | Int_t fMinAdc;//minimal value of acd count in each timebin = 3 def. | |
146 | Int_t fMinTimeBins;//minimal value of time bins one after each other = 2 def. | |
147 | // Int_t fMaxPadRange;//maximal pad range from maximum = 4 def. | |
148 | // Int_t fMaxRowRange;//maximal row range from maximum = 3 def. | |
149 | Int_t fMaxTimeRange;//maximal time bin range from maximum = 7 def. | |
150 | Float_t fValueToSize;//ratio cluster value to cluster size = 3.5 def. | |
151 | ||
152 | Double_t fMaxPadRangeCm;//maximal pad range in cm from maximum = 2.5cm def. | |
153 | Double_t fMaxRowRangeCm;//maximal row range in cm from maximum = 3.5cm def. | |
154 | ||
155 | Short_t fIsolCut;//isolation cut in 3D = 5 def. | |
156 | ||
157 | Int_t fDebugLevel;//! debug level variable | |
158 | TH1F *fHistoRow;//!debug histo for rows | |
159 | TH1F *fHistoPad;//!debug histo for pads | |
160 | TH1F *fHistoTime;//!debug histo for timebins | |
161 | TH2F *fHistoRowPad;//!debug histo for rows and pads | |
162 | ||
163 | UInt_t fTimeStamp; //!time stamp from event header | |
164 | UInt_t fRun; //!run from event header | |
165 | ClassDef(AliTPCclustererKr,8) // Time Projection Chamber Kr clusters | |
166 | }; | |
167 | ||
168 | ||
169 | #endif |