Fix for the mirrored C-side TPC sectors (Marek). Removal of BYMirror option in reco...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Jun 2008 16:38:56 +0000 (16:38 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Jun 2008 16:38:56 +0000 (16:38 +0000)
TPC/AliTPC.cxx
TPC/AliTPCParamSR.cxx
TPC/AliTPCRecoParam.cxx
TPC/AliTPCRecoParam.h
TPC/AliTPCclustererMI.cxx
TPC/AliTPCtrackerMI.cxx

index 48cfe97..ddaee22 100644 (file)
@@ -1698,7 +1698,10 @@ Float_t AliTPC::GetSignal(TObjArray *p1, Int_t ntr,
     Float_t *weight = & (fTPCParam->GetResWeight(0));
 
     if (n>0) for (Int_t i =0; i<n; i++){       
-      Int_t pad=index[1]+centralPad;  //in digit coordinates central pad has coordinate 0
+      //Int_t pad=index[1]+centralPad;  //in digit coordinates central pad has coordinate 0
+      Int_t pad = (xyz[1]>0.) ? index[1]+centralPad : index[1]+centralPad -1; //corr M.K.
+      pad = (xyz[2]>0.) ? pad : 2*centralPad-pad-1; // corr M.K.
+
 
       if (pad>=0){
        Int_t time=index[2];     
index 77ad0cf..d3a7369 100644 (file)
@@ -520,7 +520,7 @@ Int_t  AliTPCParamSR::CalcResponseFast(Float_t* xyz, Int_t * index, Int_t row)
   // calculate central padrow, pad, time
   Int_t npads = GetNPads(index[1],index[3]-1);
   Int_t cpadrow = index[2]; // electrons are here
-  Int_t cpad    = TMath::Nint(xyz[1]);
+  Int_t cpad    = (Int_t)xyz[1]; // correction MK
   Int_t ctime   = TMath::Nint(xyz[2]+zoffset2+xyz[3]-GetNTBinsL1());
   //calulate deviation
   Float_t dpadrow = xyz[0];
@@ -541,8 +541,8 @@ Int_t  AliTPCParamSR::CalcResponseFast(Float_t* xyz, Int_t * index, Int_t row)
     lpadrow = (index[2]<GetNRow(index[1])-1) ? 1:0;
   }
 
-  Int_t fpad =  (cpad > -npads/2+1) ? -2: -npads/2-cpad;
-  Int_t lpad =  (cpad < npads/2-2)  ?  2: npads/2-1-cpad;
+  Int_t fpad =  (cpad > -npads/2+2) ? -2: -npads/2-cpad+1; // correction MK
+  Int_t lpad =  (cpad < npads/2-2)  ?  2: npads/2-1-cpad; // correction MK
   Int_t ftime =  (ctime>1) ? -2: -ctime;
   Int_t ltime =  (ctime<maxt-2) ? 2: maxt-ctime-1;
 
@@ -603,7 +603,7 @@ Int_t  AliTPCParamSR::CalcResponseFast(Float_t* xyz, Int_t * index, Int_t row)
          Float_t cweight2 = cweight*rftime[atime];
          if (cweight2>fResponseThreshold) {
            fResponseBin[cindex3++]=cpadrow+ipadrow;
-           fResponseBin[cindex3++]=cpad+ipad;
+           fResponseBin[cindex3++]=cpad+ipad; //correction MK
            fResponseBin[cindex3++]=ctime+itime;
            fResponseWeight[cindex++]=cweight2;             
          }
index 6b1ac7d..a4bd18e 100644 (file)
@@ -62,7 +62,6 @@ AliTPCRecoParam::AliTPCRecoParam():
   fCtgRange(1.05),       
   fMaxSnpTracker(0.95),
   fMaxSnpTrack(0.999),
-  fBYMirror(kTRUE),
   fDumpSignal(kFALSE),
   fFirstBin(0),
   fLastBin(-1),
@@ -136,7 +135,6 @@ AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
   param->fLastBin  = 1000;  
   param->fMaxSnpTracker = 0.9; 
   param->fMaxC          = 0.06; 
-  param->fBYMirror      = kFALSE;
   //
   param->SetName("Hlt Param");
   param->SetTitle("Hlt Param"); 
@@ -160,7 +158,6 @@ AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
   param->fMaxSnpTracker = 0.98;
   param->fMaxC          = 0.02;
   param->fBSpecialSeeding = kTRUE;
-  param->fBYMirror      = kFALSE;
   //
   //
   param->SetName("Laser Flux");
@@ -182,7 +179,6 @@ AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
   param->fBSpecialSeeding = kTRUE;
   param->fMaxC          = 0.07;
   param->fBKinkFinder   = kFALSE;
-  param->fBYMirror      = kFALSE;
   param->SetName("Cosmic Flux");
   param->SetTitle("Cosmic Flux");
 
index 327c6a9..6a512db 100644 (file)
@@ -53,8 +53,6 @@ class AliTPCRecoParam : public AliDetectorRecoParam
   Bool_t   GetDoKinks() const      { return fBKinkFinder;}
   Float_t  GetMaxC()    const      { return fMaxC;}
   Bool_t   GetSpecialSeeding() const { return fBSpecialSeeding;}
-  Bool_t   GetBYMirror() const { return fBYMirror;}
-  void     SetBYMirror(Bool_t mirror)  { fBYMirror = mirror;} //
   //
   void     SetSystematicError(Double_t *systematic){ for (Int_t i=0; i<5;i++) fSystematicErrors[i]=systematic[i];}
   const Double_t * GetSystematicError() const { return fSystematicErrors;}
@@ -70,7 +68,6 @@ class AliTPCRecoParam : public AliDetectorRecoParam
   Double_t fCtgRange;        // +-fCtgRange is the ctg(Theta) window used for clusterization and tracking (MI) 
   Double_t fMaxSnpTracker;   // max sin of local angle  - for TPC tracker
   Double_t fMaxSnpTrack;     // max sin of local angle  - for track 
-  Bool_t   fBYMirror;        // mirror of the y - pad coordinate 
   //
   //   clusterer parameters
   //
@@ -97,7 +94,7 @@ class AliTPCRecoParam : public AliDetectorRecoParam
   //  misscalibration
   //
   Double_t fSystematicErrors[5];  //systematic errors in the track parameters - to be added to TPC covariance matrix    
-  ClassDef(AliTPCRecoParam, 3)
+  ClassDef(AliTPCRecoParam, 4)
 };
 
 
index 364c4b5..345dd0f 100644 (file)
@@ -591,10 +591,8 @@ void AliTPCclustererMI::AddCluster(AliTPCclusterMI &c, Float_t * matrix, Int_t p
   c.SetZ(x[2]);
   //
   //
-  if (!fRecoParam->GetBYMirror()){
-    if (fSector%36>17){
-      c.SetY(-c.GetY());
-    }
+  if (fSector%36>17){
+    c.SetY(-c.GetY());
   }
 
   if (ki<=1 || ki>=fMaxPad-1 || kj==1 || kj==fMaxTime-2) {
index d09514a..a714993 100644 (file)
@@ -1264,10 +1264,8 @@ void   AliTPCtrackerMI::Transform(AliTPCclusterMI * cluster){
   Double_t x[3]={cluster->GetRow(),cluster->GetPad(),cluster->GetTimeBin()};
   Int_t i[1]={cluster->GetDetector()};
   transform->Transform(x,i,0,1);  
-  if (!AliTPCReconstructor::GetRecoParam()->GetBYMirror()){
-    if (cluster->GetDetector()%36>17){
-      x[1]*=-1;
-    }
+  if (cluster->GetDetector()%36>17){
+    x[1]*=-1;
   }
 
   //