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