added in min tower cut and fixed bug in clusteriser
authormhorner <mhorner@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 24 Jun 2004 17:04:04 +0000 (17:04 +0000)
committermhorner <mhorner@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 24 Jun 2004 17:04:04 +0000 (17:04 +0000)
EMCAL/AliEMCALClusterizerv1.cxx
EMCAL/AliEMCALClusterizerv1.h

index ca3f9d7..ed8fdfa 100644 (file)
@@ -298,6 +298,7 @@ void AliEMCALClusterizerv1::InitParameters()
   fTimeGate = 1.e-8 ; 
   fToUnfold = kFALSE ;
   fRecPointsInRun  = 0 ;
+  fMinECut = 0;
 }
 
 //____________________________________________________________________________
@@ -325,7 +326,6 @@ Int_t AliEMCALClusterizerv1::AreNeighbours(AliEMCALDigit * d1, AliEMCALDigit * d
   Int_t coldiff = TMath::Abs( relid1[1] - relid2[1] ) ;  
   
   if (( coldiff <= 1 )  && ( rowdiff <= 1 )){
-    if(TMath::Abs(d1->GetTime() - d2->GetTime() ) < fTimeGate)
       rv = 1 ; 
   }
   else {
@@ -445,7 +445,9 @@ void AliEMCALClusterizerv1::MakeClusters()
       while (index < iDigitInECACluster){ // scan over digits already in cluster 
        digit =  (AliEMCALDigit*)digits->At(clusterECAdigitslist[index])  ;      
        index++ ; 
-        while ( (digitN = (AliEMCALDigit *)nextdigit()) ) { // scan over the reduced list of digits 
+        while ( (digitN = (AliEMCALDigit *)nextdigit())) { // scan over the reduced list of digits 
+          // check that the digit is above the min E Cut
+          if(Calibrate(digitN->GetAmp()) < fMinECut  )  digitsC->Remove(digitN);
          Int_t ineb = AreNeighbours(digit, digitN);       // call (digit,digitN) in THAT oder !!!!! 
          switch (ineb ) {
           case 0 :   // not a neighbour
@@ -459,16 +461,15 @@ void AliEMCALClusterizerv1::MakeClusters()
           case 2 :   // too far from each other
            goto endofloop1;   
          } // switch
-         
        } // while digitN
        
       endofloop1: ;
        nextdigit.Reset() ; 
       } // loop over ECA cluster
-    } // energy theshold
-    else{ // if below the energy threshold then we remove it
+    } // energy threshold
+    else if(Calibrate(digit->GetAmp()) < fMinECut  ){
       digitsC->Remove(digit);
-    }     
+    }
   } // while digit  
   delete digitsC ;
 }
index ee8d369..5b70dba 100644 (file)
@@ -46,7 +46,8 @@ public:
   virtual void    GetNumberOfClustersFound(int numb )const{ numb = fNumberOfECAClusters ;} 
   virtual Float_t GetECAClusteringThreshold()const{ return fECAClusteringThreshold;}  
   virtual Float_t GetECALocalMaxCut()const       { return fECALocMaxCut;} 
-  virtual Float_t GetECALogWeight()const         { return fECAW0;}   
+  virtual Float_t GetECALogWeight()const         { return fECAW0;}
+  virtual Float_t GetMinECut()const              { return fMinECut;}
 
   virtual Float_t GetTimeGate() const            { return fTimeGate ; }
   virtual const char *  GetRecPointsBranch() const{ return GetName() ;}
@@ -57,6 +58,7 @@ public:
   virtual void Print(Option_t * option)const ;
 
   virtual void SetECAClusteringThreshold(Float_t cluth)  { fECAClusteringThreshold = cluth ; }
+  virtual void SetMinECut(Float_t mine)                  { fMinECut = mine; }
   virtual void SetECALocalMaxCut(Float_t cut)            { fECALocMaxCut = cut ; }
   virtual void SetECALogWeight(Float_t w)                { fECAW0 = w ; }
   virtual void SetTimeGate(Float_t gate)                 { fTimeGate = gate ;}
@@ -102,13 +104,15 @@ private:
   Float_t fADCchannelECA ;          // width of one ADC channel for EC section (GeV)
   Float_t fADCpedestalECA ;         // pedestal of ADC for EC section (GeV) 
  
-  Float_t fECAClusteringThreshold ;  // minimum energy to include a EC digit in a cluster
+  Float_t fECAClusteringThreshold ;  // minimum energy to seed a EC digit in a cluster
   Float_t fECALocMaxCut ;            // minimum energy difference to distinguish local maxima in a cluster
   Float_t fECAW0 ;                   // logarithmic weight for the cluster center of gravity calculation
   Int_t fRecPointsInRun ;            //! Total number of recpoints in one run
   Float_t fTimeGate ;                // Maximum time difference between the digits in ont EMC cluster
+  Float_t fMinECut;                  // Minimum energy for a digit to be a member of a cluster
+
     
-  ClassDef(AliEMCALClusterizerv1,3)   // Clusterizer implementation version 1
+  ClassDef(AliEMCALClusterizerv1,4)   // Clusterizer implementation version 1
 
 };