]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSCorrMapSDD.cxx
Sorting the clusters by means of insertion
[u/mrichter/AliRoot.git] / ITS / AliITSCorrMapSDD.cxx
index b22cba99937b0ce3faf96328c83a78ddb700e29f..58259956853b54d6a9cdc2c3663a7a737ed263d8 100644 (file)
@@ -25,6 +25,7 @@
 #include "TH1F.h"
 #include "TH2F.h"
 #include "AliITSCorrMapSDD.h"
+#include "AliITSsegmentationSDD.h"
 
 const Int_t AliITSCorrMapSDD::fgkNAnodePtsDefault = 1;
 const Int_t AliITSCorrMapSDD::fgkNDriftPtsDefault = 72;
@@ -67,6 +68,7 @@ void AliITSCorrMapSDD::ComputeGridPoints(Float_t z, Float_t x, AliITSsegmentatio
   if(bina>=nAnodesHybrid) bina-=nAnodesHybrid;
   Float_t stept = seg->Dx()*kMicronTocm/(Float_t)fNDriftPts;
   fDrLen= seg->Dx()*kMicronTocm-TMath::Abs(x);
+  if(fDrLen<0) fDrLen=0;
   Int_t bint = TMath::Abs((Int_t)(fDrLen/stept));
   if(bint==fNDriftPts) bint-=1;
   if(bint>=fNDriftPts){
@@ -119,7 +121,7 @@ Float_t AliITSCorrMapSDD::GetCorrection(Float_t z, Float_t x, AliITSsegmentation
   Float_t q=fXt1-m*fXm1;
   Float_t xcorr=m*fDrLen+q;
   // fDrLen is the measured drift distance, xcorr is the corresponding true
-  return (xcorr-fDrLen)
+  return GetInversionBit() ? fDrLen-xcorr : xcorr-fDrLen
 }
 //______________________________________________________________________
 Float_t AliITSCorrMapSDD::GetShiftForSimulation(Float_t z, Float_t x, AliITSsegmentationSDD *seg){
@@ -129,7 +131,7 @@ Float_t AliITSCorrMapSDD::GetShiftForSimulation(Float_t z, Float_t x, AliITSsegm
   Float_t q=fXm1-m*fXt1;
   Float_t xshifted=m*fDrLen+q;
   // fDrLen is the true drift distance, xshifted is the one with map shift
-  return (fDrLen-xshifted);
+  return GetInversionBit() ? xshifted-fDrLen : fDrLen-xshifted;
 }
 //______________________________________________________________________
 TH2F* AliITSCorrMapSDD::GetMapHisto() const{
@@ -173,3 +175,4 @@ TH1F* AliITSCorrMapSDD::GetResidualDistr(Float_t dmin, Float_t dmax) const{
   }
   return hd;
 }
+