]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDcluster.cxx
1. Adding time dependent sigma - (important for v drift)
[u/mrichter/AliRoot.git] / TRD / AliTRDcluster.cxx
index 036f7790ad00041252685cd75fb59fb0cdf4d597..a8246c5b97491aae9b5b36d4cf9c88f7ca96e44c 100644 (file)
@@ -476,7 +476,7 @@ Float_t AliTRDcluster::GetXloc(Double_t t0, Double_t vd, Double_t *const /*q*/,
 
   // apply fitted correction 
   Float_t x = td*vd + GetXcorr(fLocalTimeBin);
-  if(x>.5*AliTRDgeometry::CamHght()+AliTRDgeometry::CdrHght()) SetInChamber(kFALSE);
+  if(x>0.&&x<.5*AliTRDgeometry::CamHght()+AliTRDgeometry::CdrHght()) SetInChamber();
 
   return x;
 
@@ -513,7 +513,7 @@ Float_t AliTRDcluster::GetYloc(Double_t y0, Double_t s2, Double_t W, Double_t *c
   if(y1) (*y1)*=W;
   if(y2) (*y2)*=W;
 
-  return y0-fCenter*W;
+  return y0+fCenter*W+(IsRPhiMethod(kLUT)?GetYcorr(AliTRDgeometry::GetLayer(fDetector), fCenter):0.);
 }
 
 //_____________________________________________________________________________
@@ -545,9 +545,13 @@ Bool_t AliTRDcluster::IsEqual(const TObject *o) const
 //_____________________________________________________________________________
 void AliTRDcluster::Print(Option_t *o) const
 {
-  AliInfo(Form("Det[%3d] LTrC[%+6.2f %+6.2f %+6.2f] Q[%5.1f] Stat[in(%c) use(%c) sh(%c)]", 
+  AliInfo(Form("Det[%3d] LTrC[%+6.2f %+6.2f %+6.2f] Q[%5.1f] FLAG[in(%c) use(%c) sh(%c)] Y[%s]", 
     fDetector, GetX(), GetY(), GetZ(), fQ, 
-    IsInChamber() ? 'y' : 'n', IsUsed() ? 'y' : 'n', IsShared() ? 'y' : 'n'));
+    IsInChamber() ? 'y' : 'n', 
+    IsUsed() ? 'y' : 'n', 
+    IsShared() ? 'y' : 'n',
+    IsRPhiMethod(kGAUS)?"GAUS":(IsRPhiMethod(kLUT)?"LUT":"COG")
+  ));
 
   if(strcmp(o, "a")!=0) return;
   AliInfo(Form("LChC[c(%3d) r(%2d) t(%2d)] t-t0[%2d] Npad[%d] cen[%5.3f] mask[%d]", fPadCol, fPadRow, fPadTime, fLocalTimeBin, fNPads, fCenter, fClusterMasking)); 
@@ -592,7 +596,6 @@ Float_t AliTRDcluster::GetDYcog(Double_t *const, Double_t *const)
 // Get COG position
 // Used for clusters with more than 3 pads - where LUT not applicable
 //
-
   Double_t sum = fSignals[1]
                 +fSignals[2]
                 +fSignals[3] 
@@ -697,8 +700,15 @@ Float_t AliTRDcluster::GetDYgauss(Double_t s2w, Double_t *const y1, Double_t *co
 // Alex Bercuci <A.Bercuci@gsi.de>
 // Theodor Rascanu <trascanu@stud.uni-frankfurt.de>
 //
-  Double_t w1  = fSignals[2]*fSignals[2];
-  Double_t w2  = fSignals[4]*fSignals[4];
+  Double_t w1 = fSignals[2]*fSignals[2];
+  Double_t w2 = fSignals[4]*fSignals[4];
+  Double_t w = w1+w2;
+  if(w<1.){
+    AliError("Missing side signals for cluster.");
+    Print("a");
+    return 0.;
+  }  
+
   //Double_t s2w = s2/W/W;
   Float_t y1r  = fSignals[2]>0 ? (-0.5 + s2w*TMath::Log(fSignals[3]/(Float_t)fSignals[2])) : 0.;
   Float_t y2r  = fSignals[4]>0 ? (0.5 + s2w*TMath::Log(fSignals[4]/(Float_t)fSignals[3])) : 0.;
@@ -706,7 +716,7 @@ Float_t AliTRDcluster::GetDYgauss(Double_t s2w, Double_t *const y1, Double_t *co
   if(y1) (*y1) = y1r;
   if(y2) (*y2) = y2r;
 
-  return fCenter      = (w1*y1r+w2*y2r)/(w1+w2);
+  return fCenter      = (w1*y1r+w2*y2r)/w;
 }