]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCclustererMI.h
Added possibility to run without reading the MC (Andrea)
[u/mrichter/AliRoot.git] / TPC / AliTPCclustererMI.h
index 03c076e5581d8d5f39d41ed83953d03c745b2159..5793521e667b07399299c4dc3a2eae09860065af 100644 (file)
@@ -18,6 +18,7 @@
 #define kMAXCLUSTER 2500
 
 class TFile;
+class TClonesArray;
 class AliTPCParam;
 class AliTPCRecoParam;
 class AliTPCclusterMI;
@@ -36,13 +37,16 @@ public:
   AliTPCclustererMI &operator = (const AliTPCclustererMI & param); //assignment
   virtual ~AliTPCclustererMI();
   virtual void Digits2Clusters();
+  virtual void Digits2ClustersOld(AliRawReader* rawReader);
   virtual void Digits2Clusters(AliRawReader* rawReader);
-  virtual void SetOldRCUFormat(Bool_t rcuFormat = kFALSE)
-    { fIsOldRCUFormat = rcuFormat; };
-  virtual void SetInput(TTree * tree);  // set input tree with digits    
+  virtual void SetInput(TTree * tree);  // set input tree with digits
   virtual void SetOutput(TTree * tree); // set output tree with 
   virtual void FillRow();               // fill the output container - Tree or TObjArray
   TObjArray * GetOutputArray(){return fOutputArray;}
+  TClonesArray * GetOutputClonesArray(){return fOutputClonesArray;}
+
+  void StoreInClonesArray(Bool_t bOutput = kTRUE) {fBClonesArray = bOutput;} // store output clusters in TClonesArray
+
 private:
   Bool_t IsMaximum(Float_t k, Int_t max, const Float_t *bins) const; 
   void MakeCluster2(Int_t k,Int_t max,Float_t *bins,UInt_t m,
@@ -56,8 +60,10 @@ private:
   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(AliTPCCalROC * noiseROC);
+  Bool_t AcceptCluster(AliTPCclusterMI*c);
   Double_t  ProcesSignal(Float_t * signal, Int_t nchannels, Int_t id[3], Double_t &rms, Double_t &pedestalCalib);
-
+  void ProcessSectorData(Float_t** allBins, Int_t** allSigBins, Int_t*  allNSigBins);
+  
   Float_t * fBins;       //!digits array
   Int_t   * fSigBins; //!digits array containg only timebins above threshold
   Int_t     fNSigBins;//!size of fSigBins
@@ -73,21 +79,24 @@ private:
   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
   TObjArray *fOutputArray;     //! output TObjArray with pointers arrays of cluster
+  TClonesArray *fOutputClonesArray; //! output TClonesArray with clusters
   AliTPCClustersRow * fRowCl;  //! current cluster row
   AliSimDigits * fRowDig;      //! current digits row
   const AliTPCParam * fParam;        //! tpc parameters
   Int_t fNcluster;             // number of clusters - for given row
+  Int_t fNclusters;            // tot number of clusters
   TTreeSRedirector *fDebugStreamer;     //!debug streamer
   const AliTPCRecoParam  * fRecoParam;        //! reconstruction parameters
   Bool_t  fBDumpSignal; // dump signal flag
-  ClassDef(AliTPCclustererMI,1)  // Time Projection Chamber digits
+  Bool_t  fBClonesArray; // output clusters stored in TClonesArray 
+
+  ClassDef(AliTPCclustererMI,2)  // Time Projection Chamber digits
 };
 
 inline Bool_t AliTPCclustererMI::IsMaximum(Float_t q,Int_t max,const Float_t *bins) const {