]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCclustererMI.h
New classes to fit signal shape (AliTPCCalibTCF)
[u/mrichter/AliRoot.git] / TPC / AliTPCclustererMI.h
index 9233c03cf7cdfc5bb77523fe71ecdb429ecb9f1e..a8d3b37f4d4ef161bba518a45ef2436c0964525b 100644 (file)
@@ -26,10 +26,15 @@ class AliRawReader;
 class AliSimDigits;
 class TTree;
 class TTreeSRedirector;
+class  AliRawEventHeaderBase;
+class AliTPCCalROC;
+class TVirtualFFT;
 
 class AliTPCclustererMI : public TObject{
 public:
   AliTPCclustererMI(const AliTPCParam* par, const AliTPCRecoParam * recoParam = 0);
+  AliTPCclustererMI(const AliTPCclustererMI &param); // copy constructor
+  AliTPCclustererMI &operator = (const AliTPCclustererMI & param); //assignment
   virtual ~AliTPCclustererMI();
   virtual void Digits2Clusters();
   virtual void Digits2Clusters(AliRawReader* rawReader);
@@ -46,16 +51,17 @@ private:
   Float_t  GetSigmaY2(Int_t iz);
   Float_t  GetSigmaZ2(Int_t iz);
   Float_t  FitMax(Float_t vmatrix[5][5], Float_t y, Float_t z, Float_t sigmay, Float_t sigmaz);
-  void AddCluster(AliTPCclusterMI &c);  // add the cluster to the array
+  void AddCluster(AliTPCclusterMI &c, Float_t *matrix, Int_t pos);  // add the cluster to the array
   void UnfoldCluster(Float_t * matrix[7], Float_t recmatrix[5][5], 
                     Float_t & meani, Float_t & meanj, Float_t & sum, Float_t &overlap );
-  void FindClusters();
-  Double_t  ProcesSignal(Float_t * signal, Int_t nchannels, Int_t id[3]);
-  void DumpHistos();
-
+  void FindClusters(AliTPCCalROC * noiseROC);
+  Double_t  ProcesSignal(Float_t * signal, Int_t nchannels, Int_t id[3], Double_t &rms, Double_t &pedestalCalib);
+  void DumpHistos(); 
+  Int_t  TransformFFT(Float_t *input, Float_t threshold, Bool_t locMax, Float_t *freq, Float_t *re, Float_t *im, Float_t *mag, Float_t *phi);
 
   Float_t * fBins;       //!digits array
-  Float_t * fResBins;    //!digits array with res. after 1 finder
+  Int_t   * fSigBins; //!digits array containg only timebins above threshold
+  Int_t     fNSigBins;//!size of fSigBins
   Int_t fLoop;         //loop - cf in 2 loops
   Int_t fMaxBin;       //current ( for current sector)  maximal bin
   Int_t fMaxTime;      //current ( for current sector)  maximal time
@@ -67,10 +73,11 @@ private:
   Float_t fPadWidth;  // the width of the pad
   Float_t fPadLength;  // the width of the pad
   Float_t fZWidth;     //the z bin width
-
   Bool_t  fPedSubtraction; // perform pedestal subtraction or not
   Bool_t  fIsOldRCUFormat; // assume old RCU raw data format
-
+  AliRawEventHeaderBase *fEventHeader; //! event header information
+  UInt_t  fTimeStamp;   // Time Stamp
+  UInt_t  fEventType;   // Event Type
   TTree * fInput;   //!input  tree with digits - object not owner
   TTree * fOutput;   //!output tree with digits - object not owner
   AliTPCClustersRow * fRowCl;  //! current cluster row
@@ -80,6 +87,8 @@ private:
   TObjArray * fAmplitudeHisto;          //! array of histograms of amplitudes
   TTreeSRedirector *fDebugStreamer;     //!debug streamer
   const AliTPCRecoParam  * fRecoParam;        //! reconstruction parameters
+  Bool_t  fBDumpSignal; // dump signal flag
+  TVirtualFFT *fFFTr2c;                 //! Fast Furier transform object   
   ClassDef(AliTPCclustererMI,1)  // Time Projection Chamber digits
 };