AliTPCclustererKr.h - Adding debugging histograms
[u/mrichter/AliRoot.git] / TPC / AliTPCclustererKr.h
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: AliTPCclusterKr.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 AliTPCRawStream;
36 class AliTPCRecoParam;
37 class AliTPCReconstructor;
38 class AliRawReader;
39 class AliTPCCalROC;
40
41 //_____________________________________________________________________________
42 class AliTPCclustererKr: public TObject{
43 public:
44   AliTPCclustererKr();
45   AliTPCclustererKr(const AliTPCclustererKr &param);//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
54   //other
55   void GetXY(Short_t sec,Short_t row,Short_t pad,Double_t& xGlob,Double_t& yGlob);//give XY coordinate of the pad
56
57   virtual void SetInput(TTree * tree);  //set input tree with digits    
58   virtual void SetOutput(TTree * tree); //set output tree with clusters
59   virtual void SetParam(AliTPCParam *param){fParam=param;}//set TPC parameters
60   virtual void SetDigArr(AliTPCDigitsArray *digarr){fDigarr=digarr;}//set current array of digits
61   virtual void SetRecoParam(AliTPCRecoParam *recoParam=0);//set reconstruction parameters
62
63
64
65   //setters for cluster finder parameters
66   virtual void SetZeroSup(Int_t v){fZeroSup=v;}//set zero suppresion parameter
67   virtual void SetFirstBin(Short_t v){fFirstBin=v;}//set first considered timebin
68   virtual void SetLastBin(Short_t v){fLastBin=v;}//set last considered timebin
69   virtual void SetMaxNoiseAbs(Float_t v){fMaxNoiseAbs=v;}//set maximal noise value
70   virtual void SetMaxNoiseSigma(Float_t v){fMaxNoiseSigma=v;}//set maximal noise sigma
71
72   virtual void SetMinAdc(Short_t v){v<=0?fMinAdc=1:fMinAdc=v;}//set fMinAdc
73   virtual void SetMinTimeBins(Short_t v){fMinTimeBins=v;}//set fMinTimeBins
74 //  virtual void SetMaxPadRange(Short_t v){fMaxPadRange=v;}//set fMaxPadRange
75 //  virtual void SetMaxRowRange(Short_t v){fMaxRowRange=v;}//set fMaxRowRange
76   virtual void SetMaxTimeRange(Short_t v){fMaxTimeRange=v;}//set fMaxTimeRange
77   virtual void SetValueToSize(Float_t v){fValueToSize=v;}//set fValueToSize
78
79   virtual void SetMaxPadRangeCm(Double_t v){fMaxPadRangeCm=v;}//set fMaxPadRangeCm
80   virtual void SetMaxRowRangeCm(Double_t v){fMaxRowRangeCm=v;}//set fMaxRowRangeCm
81
82   virtual void SetDebugLevel(Int_t debug){fDebugLevel=debug;}
83   //debug = 0 to 71 -sector number to  print
84   // = 72 - all sectors
85   // = 73 - inners
86   // = 74 - outers
87
88   virtual void SetHistoRow(TH1F *histo)   {fHistoRow   =histo;}
89   virtual void SetHistoPad(TH1F *histo)   {fHistoPad   =histo;}
90   virtual void SetHistoTime(TH1F *histo)  {fHistoTime  =histo;}
91   virtual void SetHistoRowPad(TH2F *histo){fHistoRowPad=histo;}
92
93   //getters for cluster finder parameters
94   Int_t GetZeroSup() const {return fZeroSup;}//get zero suppresion parameter
95   Short_t GetFirstBin() const {return fFirstBin;}//get first considered timebin
96   Short_t GetLastBin() const {return fLastBin;}//get last considered timebin
97   Float_t GetMaxNoiseAbs() const {return fMaxNoiseAbs;}//get maximal noise value
98   Float_t GetMaxNoiseSigma() const {return fMaxNoiseSigma;}//get maximal noise sigma
99
100   Short_t GetMinAdc() const {return fMinAdc;}//get fMinAdc
101   Short_t GetMinTimeBins() const {return fMinTimeBins;}//get fMinTimeBins
102 //  Short_t GetMaxPadRange() const {return fMaxPadRange;}//get fMaxPadRange
103 //  Short_t GetMaxRowRange() const {return fMaxRowRange;}//get fMaxRowRange
104   Short_t GetMaxTimeRange() const {return fMaxTimeRange;}//get fMaxTimeRange
105   Float_t GetValueToSize() const {return fValueToSize;}//get fValueToSize
106
107   Double_t GetMaxPadRangeCm() const {return fMaxPadRangeCm;}//get fMaxPadRangeCm
108   Double_t GetMaxRowRangeCm() const {return fMaxRowRangeCm;}//get fMaxRowRangeCm
109
110   Int_t GetDebugLevel() const {return fDebugLevel;}
111   TH1F * GetHistoRow(){return fHistoRow;}
112   TH1F * GetHistoPad(){return fHistoPad;}
113   TH1F * GetHistoTime(){return fHistoTime;}
114   TH2F * GetHistoRowPad(){return fHistoRowPad;}
115
116 private:
117   Bool_t fRawData; //flag =0 for MC =1 for real data
118   AliTPCClustersRow * fRowCl;  //! current cluster row (used in rootuple fill)
119
120   TTree * fInput;   //!input  tree with digits - object not owner
121   TTree * fOutput;   //!output tree with clusters - object not owner
122   AliTPCParam * fParam;//!TPC parameters
123   AliTPCDigitsArray *fDigarr;//! pointer to current array if digits
124
125   //only for raw data :)
126   const AliTPCRecoParam  * fRecoParam;        //! reconstruction parameters
127
128   //cluster finder parameters
129   Int_t fZeroSup;//zero suppresion parameter = 2 def.
130   Short_t fFirstBin;//first considered time bin used by cluster finder = 60 def.
131   Short_t fLastBin;//last considered time bin used by cluster finder = 950 def.
132   Float_t fMaxNoiseAbs;// maximal noise value on pad used in cluster finder = 2 def.
133   Float_t fMaxNoiseSigma;// maximal noise sigma on pad used in cluster finder = 3 def.
134
135   Short_t fMinAdc;//minimal value of acd count in each timebin = 3 def.
136   Short_t fMinTimeBins;//minimal value of time bins one after each other = 2 def.
137 //  Short_t fMaxPadRange;//maximal pad range from maximum = 4 def.
138 //  Short_t fMaxRowRange;//maximal row range from maximum = 3 def.
139   Short_t fMaxTimeRange;//maximal time bin range from maximum = 7 def.
140   Float_t fValueToSize;//ratio cluster value to cluster size = 3.5 def.
141
142   Double_t fMaxPadRangeCm;//maximal pad range in cm from maximum = 2.5cm def.
143   Double_t fMaxRowRangeCm;//maximal row range in cm from maximum = 3.5cm def.
144
145   Int_t fDebugLevel;//! debug level variable
146   TH1F *fHistoRow;//!debug histo for rows
147   TH1F *fHistoPad;//!debug histo for pads
148   TH1F *fHistoTime;//!debug histo for timebins
149   TH2F *fHistoRowPad;//!debug histo for rows and pads
150
151   ClassDef(AliTPCclustererKr,6)  // Time Projection Chamber Kr clusters
152 };
153
154
155 #endif
156
157