Making the cluster finder ignore digits with large RO cycle values
authorbelikov <Iouri.Belikov@cern.ch>
Tue, 28 Oct 2014 10:13:42 +0000 (11:13 +0100)
committerbelikov <Iouri.Belikov@cern.ch>
Tue, 28 Oct 2014 10:13:42 +0000 (11:13 +0100)
ITS/UPGRADE/AliITSUClusterizer.cxx
ITS/UPGRADE/AliITSURecoParam.cxx
ITS/UPGRADE/AliITSURecoParam.h
ITS/UPGRADE/testITSU/MakeITSRecoParam.C

index b50a118..532cfca 100644 (file)
@@ -10,7 +10,7 @@
 #include "AliITSUClusterizer.h"
 #include "AliITSUGeomTGeo.h"
 #include "AliITSUSegmentationPix.h"
-#include "AliITSdigit.h"
+#include "AliITSUDigitPix.h"
 #include "AliITSURecoParam.h"
 #include "AliITSUAux.h"
 using namespace TMath;
@@ -121,14 +121,14 @@ AliITSUClusterizer::AliITSUClusterizerClusterDigit* AliITSUClusterizer::AllocDig
 AliITSUClusterizer::AliITSUClusterizerClusterDigit* AliITSUClusterizer::NextDigit() 
 {
   // get next digit
-  if (fInputDigitsReadIndex<fInputDigits->GetEntriesFast()) {
-    AliITSdigit *tmp=static_cast<AliITSdigit*>(fInputDigits->UncheckedAt(fInputDigitsReadIndex++));
+  while (fInputDigitsReadIndex<fInputDigits->GetEntriesFast()) {
+    AliITSUDigitPix *tmp=static_cast<AliITSUDigitPix*>(fInputDigits->UncheckedAt(fInputDigitsReadIndex++));
+    if (TMath::Abs(tmp->GetROCycle())>=fRecoParam->GetMaxROCycle()) continue;
     AliITSUClusterizerClusterDigit *digit=AllocDigit();
     digit->fDigit=tmp;
     return digit;
   }
-  else
-    return 0;
+  return 0;
 }
 
 //______________________________________________________________________________
index ddd525c..6a9cd1b 100644 (file)
@@ -64,6 +64,7 @@ AliITSURecoParam::AliITSURecoParam()
   ,fTrackingConditions(0)
   ,fTracker(0)
   ,fSAonly(kFALSE)
+  ,fMaxROCycle(126) // like in AliITSUSimulation::kMaxROCycleAccept
 {
   // def c-tor
   SetName("ITS");
@@ -91,6 +92,7 @@ AliITSURecoParam::AliITSURecoParam(Int_t nLr)
   ,fTrackingConditions(0)
   ,fTracker(0)
   ,fSAonly(kFALSE)
+  ,fMaxROCycle(126) // like in AliITSUSimulation::kMaxROCycleAccept
 {
   // def c-tor
   SetName("ITS");
index 782f35e..4c31d1e 100644 (file)
@@ -48,6 +48,7 @@ class AliITSURecoParam : public AliDetectorRecoParam
   Bool_t      GetUseMatLUT(Int_t step)           const {return (step<0||step>=kNTrackingPhases) ? kFALSE:fUseMatLUT[step];}
   Int_t GetTracker() const {return fTracker;}
   Bool_t GetSAonly() const {return fSAonly;}
+  Int_t GetMaxROCycle() const {return fMaxROCycle;}
   //
   void        SetNLayers(Int_t n);
   void        SetTanLorentzAngle(Int_t lr, Double_t v);
@@ -70,6 +71,7 @@ class AliITSURecoParam : public AliDetectorRecoParam
   virtual void Print(Option_t *opt="")  const;
   void SetTracker(Int_t opt) {fTracker=opt;}
   void SetSAonly(Bool_t sa=kTRUE) {fSAonly=sa;}
+  void SetMaxROCycle(Int_t ro) {fMaxROCycle=ro;}
   //
  protected:
   Int_t          fNLayers;          // number of layers 
@@ -110,7 +112,8 @@ class AliITSURecoParam : public AliDetectorRecoParam
   static const Bool_t   fgkAllowDiagonalClusterization;        // clusters of pixels with common corners
   //
   Int_t fTracker;  // 0 - global, 1 - cooked, 2 - CA
-  Bool_t fSAonly;  // kTRUE, if ITSU standalone tracking only  
+  Bool_t fSAonly;  // kTRUE, if ITSU standalone tracking only
+  Int_t fMaxROCycle; // max RO cycle accepted by the cluster finder  
  private:
   AliITSURecoParam(const AliITSURecoParam & param);
   AliITSURecoParam & operator=(const AliITSURecoParam &param);
index 5e5432c..de12a1a 100644 (file)
@@ -33,6 +33,7 @@ void MakeITSRecoParam(AliRecoParam::EventSpecie_t default=AliRecoParam::kLowMult
     itsRecoParam->SetTitle("Cosmic");
     itsRecoParam->SetTracker(0);
     itsRecoParam->SetSAonly(kFALSE);
+    itsRecoParam->SetMaxROCycle(126); // AliITSUSimulation::kMaxROCycleAccept
     recoParamArray->AddLast(itsRecoParam);
   }
   //
@@ -117,6 +118,7 @@ void MakeITSRecoParam(AliRecoParam::EventSpecie_t default=AliRecoParam::kLowMult
     itsRecoParam->SetTitle("LowMult");
     itsRecoParam->SetTracker(0);
     itsRecoParam->SetSAonly(kFALSE);
+    itsRecoParam->SetMaxROCycle(126); // AliITSUSimulation::kMaxROCycleAccept
     recoParamArray->AddLast(itsRecoParam);
     //******************************************************************
     for (int i=0;i<nLr;i++) itsRecoParam->SetAllowDiagonalClusterization(i,kAllowDiagCl);
@@ -217,6 +219,7 @@ void MakeITSRecoParam(AliRecoParam::EventSpecie_t default=AliRecoParam::kLowMult
     itsRecoParam->SetTitle("HighMult");
     itsRecoParam->SetTracker(0);
     itsRecoParam->SetSAonly(kFALSE);
+    itsRecoParam->SetMaxROCycle(126); // AliITSUSimulation::kMaxROCycleAccept
     recoParamArray->AddLast(itsRecoParam);
     //******************************************************************
     for (int i=0;i<nLr;i++) itsRecoParam->SetAllowDiagonalClusterization(i,kAllowDiagCl);