Line data Source code
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 0 : virtual void SetParam(AliTPCParam *param){fParam=param;}//set TPC parameters
61 0 : virtual void SetDigArr(AliTPCDigitsArray *digarr){fDigarr=digarr;}//set current array of digits
62 : virtual void SetRecoParam(AliTPCRecoParam *recoParam=0);//set reconstruction parameters
63 :
64 0 : virtual void SetTimeStamp(UInt_t timestamp){ fTimeStamp = timestamp; }
65 0 : virtual void SetRun(UInt_t run){ fRun = run; }
66 :
67 : //setters for cluster finder parameters
68 0 : virtual void SetZeroSup(Int_t v){fZeroSup=v;}//set zero suppresion parameter
69 0 : virtual void SetFirstBin(Int_t v){fFirstBin=v;}//set first considered timebin
70 0 : virtual void SetLastBin(Int_t v){fLastBin=v;}//set last considered timebin
71 0 : virtual void SetMaxNoiseAbs(Float_t v){fMaxNoiseAbs=v;}//set maximal noise value
72 0 : virtual void SetMaxNoiseSigma(Float_t v){fMaxNoiseSigma=v;}//set maximal noise sigma
73 :
74 0 : virtual void SetMinAdc(Int_t v){v<=0?fMinAdc=1:fMinAdc=v;}//set fMinAdc
75 0 : 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 0 : virtual void SetMaxTimeRange(Int_t v){fMaxTimeRange=v;}//set fMaxTimeRange
79 0 : virtual void SetValueToSize(Float_t v){fValueToSize=v;}//set fValueToSize
80 :
81 0 : virtual void SetMaxPadRangeCm(Double_t v){fMaxPadRangeCm=v;}//set fMaxPadRangeCm
82 0 : virtual void SetMaxRowRangeCm(Double_t v){fMaxRowRangeCm=v;}//set fMaxRowRangeCm
83 :
84 0 : virtual void SetIsolCut(Short_t v){fIsolCut=v;}
85 :
86 0 : 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 0 : virtual void SetHistoRow(TH1F *histo) {fHistoRow =histo;}
93 0 : virtual void SetHistoPad(TH1F *histo) {fHistoPad =histo;}
94 0 : virtual void SetHistoTime(TH1F *histo) {fHistoTime =histo;}
95 0 : virtual void SetHistoRowPad(TH2F *histo){fHistoRowPad=histo;}
96 :
97 : //getters for cluster finder parameters
98 0 : Int_t GetZeroSup() const {return fZeroSup;}//get zero suppresion parameter
99 0 : Int_t GetFirstBin() const {return fFirstBin;}//get first considered timebin
100 0 : Int_t GetLastBin() const {return fLastBin;}//get last considered timebin
101 0 : Float_t GetMaxNoiseAbs() const {return fMaxNoiseAbs;}//get maximal noise value
102 0 : Float_t GetMaxNoiseSigma() const {return fMaxNoiseSigma;}//get maximal noise sigma
103 :
104 0 : Int_t GetMinAdc() const {return fMinAdc;}//get fMinAdc
105 0 : 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 0 : Int_t GetMaxTimeRange() const {return fMaxTimeRange;}//get fMaxTimeRange
109 0 : Float_t GetValueToSize() const {return fValueToSize;}//get fValueToSize
110 :
111 0 : Double_t GetMaxPadRangeCm() const {return fMaxPadRangeCm;}//get fMaxPadRangeCm
112 0 : Double_t GetMaxRowRangeCm() const {return fMaxRowRangeCm;}//get fMaxRowRangeCm
113 :
114 0 : Short_t GetIsolCut() const {return fIsolCut;}
115 :
116 0 : Int_t GetDebugLevel() const {return fDebugLevel;}
117 0 : TH1F * GetHistoRow(){return fHistoRow;}
118 0 : TH1F * GetHistoPad(){return fHistoPad;}
119 0 : TH1F * GetHistoTime(){return fHistoTime;}
120 0 : TH2F * GetHistoRowPad(){return fHistoRowPad;}
121 :
122 0 : UInt_t GetTimeStamp() const {return fTimeStamp;}
123 0 : 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 16 : ClassDef(AliTPCclustererKr,8) // Time Projection Chamber Kr clusters
166 : };
167 :
168 :
169 : #endif
|