]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCclustererMI.h
Adding the marker size as additional parameters
[u/mrichter/AliRoot.git] / TPC / AliTPCclustererMI.h
index 5793521e667b07399299c4dc3a2eae09860065af..2419cf011ff0bf5338491be94ebdae3736820da5 100644 (file)
@@ -15,6 +15,7 @@
 //-------------------------------------------------------
 #include <Rtypes.h>
 #include <TObject.h>
+#include <AliTPCRecoParam.h>
 #define kMAXCLUSTER 2500
 
 class TFile;
@@ -33,8 +34,6 @@ class AliTPCCalROC;
 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 Digits2ClustersOld(AliRawReader* rawReader);
@@ -47,7 +46,12 @@ public:
 
   void StoreInClonesArray(Bool_t bOutput = kTRUE) {fBClonesArray = bOutput;} // store output clusters in TClonesArray
 
+  void SetUseHLTClusters(Int_t useHLTClusters) {fUseHLTClusters = useHLTClusters;} // set usage from HLT clusters from rec.C options
+
 private:
+  AliTPCclustererMI(const AliTPCclustererMI &param); // copy constructor
+  AliTPCclustererMI &operator = (const AliTPCclustererMI & param); //assignment
+
   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,
    AliTPCclusterMI &c);  
@@ -62,7 +66,8 @@ private:
   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);
+  void ProcessSectorData();
+  Int_t ReadHLTClusters();
   
   Float_t * fBins;       //!digits array
   Int_t   * fSigBins; //!digits array containg only timebins above threshold
@@ -95,8 +100,16 @@ private:
   const AliTPCRecoParam  * fRecoParam;        //! reconstruction parameters
   Bool_t  fBDumpSignal; // dump signal flag
   Bool_t  fBClonesArray; // output clusters stored in TClonesArray 
+  Int_t  fUseHLTClusters; // use HLT clusters instead of offline clusters
+
+  // Non-persistent arrays
 
-  ClassDef(AliTPCclustererMI,2)  // Time Projection Chamber digits
+  Float_t** fAllBins; //! All sector bins
+  Int_t** fAllSigBins;//! All signal bins in a sector
+  Int_t*  fAllNSigBins;//! Number of signal bins in a sector
+  TObject* fHLTClusterAccess;// interface to HLT clusters
+
+  ClassDef(AliTPCclustererMI,0)  // TPC cluster finder
 };
 
 inline Bool_t AliTPCclustererMI::IsMaximum(Float_t q,Int_t max,const Float_t *bins) const {
@@ -109,6 +122,17 @@ inline Bool_t AliTPCclustererMI::IsMaximum(Float_t q,Int_t max,const Float_t *bi
   if (bins[+max-1] >= q) return kFALSE; 
   if (bins[+max+1] > q) return kFALSE; 
   if (bins[-max+1] >= q) return kFALSE;
+  //
+  //
+  if (fRecoParam->GetClusterMaxRange(1)>0){  //local maxima in z on more than 1 time bin 
+    if (bins[-2] > q) return kFALSE;
+    if (bins[ 2] > q) return kFALSE;
+  }
+  if (fRecoParam->GetClusterMaxRange(0)>0){  //local maxima in y on more than pad 
+    if (bins[-2*max] > q) return kFALSE;
+    if (bins[ 2*max] > q) return kFALSE;
+  }
+
   return kTRUE; 
 }