]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCclustererKr.h
Update of the cluster finder (Marian, Adam Matyja)
[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 Cluster Class
10 //
11 //   Origin: Adam Matyja, INP PAN, adam.matyja@ifj.edu.pl
12 //-------------------------------------------------------
13
14 #include "AliTPCclusterKr.h"
15 #include <vector>
16 #include "TObject.h"
17 #include "AliPadMax.h"
18 #include "AliSimDigits.h"
19 #include "AliTPCv4.h"
20 #include "AliTPCParam.h"
21 #include "AliTPCDigitsArray.h"
22 #include "AliTPCvtpr.h"
23 #include "AliTPCClustersRow.h"
24 #include "TTree.h"
25
26 //used in raw data finder
27 #include "AliTPCROC.h"
28 #include "AliTPCCalPad.h"
29 #include "AliTPCAltroMapping.h"
30 #include "AliTPCcalibDB.h"
31 #include "AliTPCRawStream.h"
32 #include "AliTPCRecoParam.h"
33 #include "AliTPCReconstructor.h"
34 #include "AliRawReader.h"
35 #include "AliTPCCalROC.h"
36
37 //_____________________________________________________________________________
38 class AliTPCclustererKr: public TObject{
39 public:
40   AliTPCclustererKr();
41   AliTPCclustererKr(const AliTPCclustererKr &param);//copy constructor
42   AliTPCclustererKr &operator = (const AliTPCclustererKr & param); 
43   ~AliTPCclustererKr();
44
45   //finders
46   Int_t FinderIO();//for MC
47   Int_t FinderIO(AliRawReader* rawReader);//for data
48   Int_t FindClusterKrIO();//main routine for finding clusters
49
50   //other
51   void GetXY(Short_t sec,Short_t row,Short_t pad,Double_t& xGlob,Double_t& yGlob);//give XY coordinate of the pad
52
53   virtual void SetInput(TTree * tree);  //set input tree with digits    
54   virtual void SetOutput(TTree * tree); //set output tree with clusters
55
56   void SetParam(AliTPCParam *param){fParam=param;}//set TPC parameters
57   void SetDigArr(AliTPCDigitsArray *digarr){fDigarr=digarr;}//set current array of digits
58   void SetRecoParam(AliTPCRecoParam *recoParam=0);//set reconstruction parameters
59   virtual void SetOldRCUFormat(Bool_t rcuFormat = kFALSE)
60     { fIsOldRCUFormat = rcuFormat; };
61
62   Bool_t fRawData; //flague =0 for MC =1 for real data
63   AliTPCClustersRow * fRowCl;  //! current cluster row (used in rootuple fill)
64
65   //setters for cluster finder parameters
66   void SetZeroSup(Int_t v){fZeroSup=v;}//set zero suppresion parameter
67   void SetFirstBin(Short_t v){fFirstBin=v;}//set first considered timebin
68   void SetLastBin(Short_t v){fLastBin=v;}//set last considered timebin
69   void SetMaxNoiseAbs(Float_t v){fMaxNoiseAbs=v;}//set maximal noise value
70   void SetMaxNoiseSigma(Float_t v){fMaxNoiseSigma=v;}//set maximal noise sigma
71
72   void SetMinAdc(Short_t v){v<=0?fMinAdc=1:fMinAdc=v;}//set fMinAdc
73   void SetMinTimeBins(Short_t v){fMinTimeBins=v;}//set fMinTimeBins
74 //  void SetMaxPadRange(Short_t v){fMaxPadRange=v;}//set fMaxPadRange
75 //  void SetMaxRowRange(Short_t v){fMaxRowRange=v;}//set fMaxRowRange
76   void SetMaxTimeRange(Short_t v){fMaxTimeRange=v;}//set fMaxTimeRange
77   void SetValueToSize(Float_t v){fValueToSize=v;}//set fValueToSize
78
79   void SetMaxPadRangeCm(Double_t v){fMaxPadRangeCm=v;}//set fMaxPadRangeCm
80   void SetMaxRowRangeCm(Double_t v){fMaxRowRangeCm=v;}//set fMaxRowRangeCm
81
82   //getters for cluster finder parameters
83   Int_t GetZeroSup(){return fZeroSup;}//get zero suppresion parameter
84   Short_t GetFirstBin(){return fFirstBin;}//get first considered timebin
85   Short_t GetLastBin(){return fLastBin;}//get last considered timebin
86   Float_t GetMaxNoiseAbs(){return fMaxNoiseAbs;}//get maximal noise value
87   Float_t GetMaxNoiseSigma(){return fMaxNoiseSigma;}//get maximal noise sigma
88
89   Short_t GetMinAdc(){return fMinAdc;}//get fMinAdc
90   Short_t GetMinTimeBins(){return fMinTimeBins;}//get fMinTimeBins
91 //  Short_t GetMaxPadRange(){return fMaxPadRange;}//get fMaxPadRange
92 //  Short_t GetMaxRowRange(){return fMaxRowRange;}//get fMaxRowRange
93   Short_t GetMaxTimeRange(){return fMaxTimeRange;}//get fMaxTimeRange
94   Float_t GetValueToSize(){return fValueToSize;}//get fValueToSize
95
96   Double_t GetMaxPadRangeCm(){return fMaxPadRangeCm;}//get fMaxPadRangeCm
97   Double_t GetMaxRowRangeCm(){return fMaxRowRangeCm;}//get fMaxRowRangeCm
98
99 private:
100   TTree * fInput;   //!input  tree with digits - object not owner
101   TTree * fOutput;   //!output tree with clusters - object not owner
102   AliTPCParam * fParam;//!TPC parameters
103   AliTPCDigitsArray *fDigarr;//! pointer to current array if digits
104
105   //only for raw data :)
106   const AliTPCRecoParam  * fRecoParam;        //! reconstruction parameters
107   Bool_t fIsOldRCUFormat; // assume old RCU raw data format
108
109   //cluster finder parameters
110   Int_t fZeroSup;//zero suppresion parameter = 2 def.
111   Short_t fFirstBin;//first considered time bin used by cluster finder = 60 def.
112   Short_t fLastBin;//last considered time bin used by cluster finder = 950 def.
113   Float_t fMaxNoiseAbs;// maximal noise value on pad used in cluster finder = 2 def.
114   Float_t fMaxNoiseSigma;// maximal noise sigma on pad used in cluster finder = 3 def.
115
116   Short_t fMinAdc;//minimal value of acd count in each timebin = 3 def.
117   Short_t fMinTimeBins;//minimal value of time bins one after each other = 2 def.
118 //  Short_t fMaxPadRange;//maximal pad range from maximum = 4 def.
119 //  Short_t fMaxRowRange;//maximal row range from maximum = 3 def.
120   Short_t fMaxTimeRange;//maximal time bin range from maximum = 7 def.
121   Float_t fValueToSize;//ratio cluster value to cluster size = 3.5 def.
122
123   Double_t fMaxPadRangeCm;//maximal pad range in cm from maximum = 2.5cm def.
124   Double_t fMaxRowRangeCm;//maximal row range in cm from maximum = 3.5cm def.
125
126   ClassDef(AliTPCclustererKr,2)  // Time Projection Chamber Kr clusters
127 };
128
129
130 #endif
131
132