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