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 */
6 /* $Id: AliTPCclusterKr.h,v 1.8 2008/02/07 16:07:15 matyja Exp $ */
8 //-------------------------------------------------------
9 // TPC Kr Cluster Class
11 // Origin: Adam Matyja, INP PAN, adam.matyja@ifj.edu.pl
12 //-------------------------------------------------------
14 #include "AliTPCclusterKr.h"
17 #include "AliPadMax.h"
18 #include "AliSimDigits.h"
20 #include "AliTPCParam.h"
21 #include "AliTPCDigitsArray.h"
22 #include "AliTPCvtpr.h"
23 #include "AliTPCClustersRow.h"
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"
37 //_____________________________________________________________________________
38 class AliTPCclustererKr: public TObject{
41 AliTPCclustererKr(const AliTPCclustererKr ¶m);//copy constructor
42 AliTPCclustererKr &operator = (const AliTPCclustererKr & param);
46 Int_t FinderIO();//for MC
47 Int_t FinderIO(AliRawReader* rawReader);//for data
48 Int_t FindClusterKrIO();//main routine for finding clusters
51 void GetXY(Short_t sec,Short_t row,Short_t pad,Double_t& xGlob,Double_t& yGlob);//give XY coordinate of the pad
53 virtual void SetInput(TTree * tree); //set input tree with digits
54 virtual void SetOutput(TTree * tree); //set output tree with clusters
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; };
62 Bool_t fRawData; //flague =0 for MC =1 for real data
63 AliTPCClustersRow * fRowCl; //! current cluster row (used in rootuple fill)
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
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
79 void SetMaxPadRangeCm(Double_t v){fMaxPadRangeCm=v;}//set fMaxPadRangeCm
80 void SetMaxRowRangeCm(Double_t v){fMaxRowRangeCm=v;}//set fMaxRowRangeCm
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
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
96 Double_t GetMaxPadRangeCm(){return fMaxPadRangeCm;}//get fMaxPadRangeCm
97 Double_t GetMaxRowRangeCm(){return fMaxRowRangeCm;}//get fMaxRowRangeCm
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
105 //only for raw data :)
106 const AliTPCRecoParam * fRecoParam; //! reconstruction parameters
107 Bool_t fIsOldRCUFormat; // assume old RCU raw data format
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.
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.
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.
126 ClassDef(AliTPCclustererKr,2) // Time Projection Chamber Kr clusters