modifs for ITSU v1
authorshahoian <ruben.shahoyan@cern.ch>
Mon, 10 Mar 2014 14:27:25 +0000 (15:27 +0100)
committershahoian <ruben.shahoyan@cern.ch>
Mon, 10 Mar 2014 14:27:25 +0000 (15:27 +0100)
ITS/UPGRADE/AliITSURecoLayer.cxx
ITS/UPGRADE/AliITSURecoSens.cxx
ITS/UPGRADE/AliITSURecoSens.h

index 69f1b16..e3bea39 100644 (file)
@@ -230,6 +230,8 @@ Int_t AliITSURecoLayer::FindSensors(const double* impPar, AliITSURecoSens *senso
   //
   AliITSURecoSens* sensN,*sens = GetSensor(sesnID);
   //
+  int res = sens->CheckCoverage(impPar);
+
   // make sure this is best matching sensor
   if (sens->GetZMin()<impPar[2] && sens->GetZMax()>impPar[2] && 
       OKforPhiMin(sens->GetPhiMin(),impPar[0]) && OKforPhiMax(sens->GetPhiMax(),impPar[0]) ) 
index 91e916d..aa132bb 100644 (file)
@@ -124,3 +124,19 @@ Int_t AliITSURecoSens::Compare(const TObject* obj)  const
   return 0;
   //
 }
+
+//______________________________________________________________________________
+Int_t AliITSURecoSens::CheckCoverage(const double* impPar) const
+{
+  // check if the sensor contains the impact point (phi,dphi,z,dz)
+  // if not, tell in which direction to move. 
+  // kLeft, kRight are for smaller/larger angles, kUp,kDown for larger/smaller Z
+  //
+  int res = 0;
+  if      (impPar[2]<fZMin) res |= kDown;
+  else if (impPar[2]>fZMax) res |= kUp;
+  //
+  if      (!OKforPhiMin(fPhiMin,impPar[0])) res |= kLeft;
+  else if (!OKforPhiMax(fPhiMax,impPar[0])) res |= kRight;
+  return res;
+}
index 66ce21b..a54caf4 100644 (file)
@@ -15,12 +15,15 @@ class AliITSURecoSens : public TObject
 {
  public:
   //
+  enum {kLeft=BIT(1),kRight=BIT(2),kUp=BIT(3),kDown=BIT(4)};
+  //
   AliITSURecoSens(Int_t id);
   AliITSURecoSens(const AliITSURecoSens &source); 
   virtual ~AliITSURecoSens() {}
   AliITSURecoSens& operator=(const AliITSURecoSens &source); 
   //
   Int_t              GetID()                       const {return (int)GetUniqueID();}
+  Int_t              CheckCoverage(const double* impPar) const;
   Double_t           GetXTF()                      const {return fXTF;}
   Double_t           GetPhiTF()                    const {return fPhiTF;}
   Double_t           GetPhiMin()                   const {return fPhiMin;}