]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDseedV1.cxx
update TRD code for PbPb 2011
[u/mrichter/AliRoot.git] / TRD / AliTRDseedV1.cxx
index 2eb57897533b828a24ba79dba26f760b08d8ee76..4fc2f7cfba0ce8c5b5ab3d3117ec92119220f44d 100644 (file)
@@ -542,6 +542,20 @@ Bool_t AliTRDseedV1::GetEstimatedCrossPoint(Float_t &x, Float_t &z) const
   return kTRUE;
 }
 
+//____________________________________________________________________
+Float_t AliTRDseedV1::GetQperTB(Int_t tb) const
+{
+  //
+  // Charge of the clusters at timebin
+  //
+  Float_t Q = 0;
+  if(fClusters[tb] /*&& fClusters[tb]->IsInChamber()*/)
+    Q += TMath::Abs(fClusters[tb]->GetQ());
+  if(fClusters[tb+kNtb] /*&& fClusters[tb+kNtb]->IsInChamber()*/)
+    Q += TMath::Abs(fClusters[tb+kNtb]->GetQ());
+  return Q/TMath::Sqrt(1. + fYref[1]*fYref[1] + fZref[1]*fZref[1]);
+}
+
 //____________________________________________________________________
 Float_t AliTRDseedV1::GetdQdl() const
 {
@@ -644,18 +658,29 @@ Float_t AliTRDseedV1::GetMomentum(Float_t *err) const
 
 
 //____________________________________________________________________
-Float_t AliTRDseedV1::GetOccupancyTB() const
+Int_t AliTRDseedV1::GetTBoccupancy() const
 {
-// Returns procentage of TB occupied by clusters
+// Returns no. of TB occupied by clusters
 
   Int_t n(0);
-  AliTRDcluster *c(NULL);
-  for(int ic=0; ic<AliTRDtrackerV1::GetNTimeBins(); ic++){
-    if(!(c = fClusters[ic]) && !(c = fClusters[ic+kNtb])) continue;
+  for(int ic(0); ic<kNtb; ic++){
+    if(!fClusters[ic] && !fClusters[ic+kNtb]) continue;
     n++;
   }
+  return n;
+}
+
+//____________________________________________________________________
+Int_t AliTRDseedV1::GetTBcross() const
+{
+// Returns no. of TB occupied by 2 clusters for pad row cross tracklets
 
-  return Float_t(n)/AliTRDtrackerV1::GetNTimeBins();
+  if(!IsRowCross()) return 0;
+  Int_t n(0);
+  for(int ic(0); ic<kNtb; ic++){
+    if(fClusters[ic] && fClusters[ic+kNtb]) n++;
+  }
+  return n;
 }
 
 //____________________________________________________________________
@@ -993,6 +1018,8 @@ Bool_t  AliTRDseedV1::AttachClusters(AliTRDtrackingChamber *const chamber, Bool_
 // Parameters
 //  - chamber : pointer to tracking chamber container used to search the tracklet
 //  - tilt    : switch for tilt correction during road building [default true]
+//  - chgPos  : mark same[kFALSE] and opposite[kTRUE] sign tracks with respect to Bz field sign [default true]
+//  - ev      : event number for debug purposes [default = -1]
 // Output
 //  - true    : if tracklet found successfully. Failure can happend because of the following:
 //      -
@@ -1050,13 +1077,13 @@ Bool_t  AliTRDseedV1::AttachClusters(AliTRDtrackingChamber *const chamber, Bool_
   if(fkReconstructor->IsHLT()) cp.SetRPhiMethod(AliTRDcluster::kCOG);
   if(!IsCalibrated()) Calibrate();
 
-  Int_t kroadyShift(0);
+/*  Int_t kroadyShift(0);
   Float_t bz(AliTrackerBase::GetBz());
   if(TMath::Abs(bz)>2.){
     if(bz<0.) kroadyShift = chgPos ? +1 : -1;
     else kroadyShift = chgPos ? -1 : +1;
-  }
-  AliDebug(4, Form("\n       syTrk[cm]=%4.2f dydxTrk[deg]=%+6.2f rs[%d] Chg[%c] rY[cm]=%4.2f rZ[cm]=%5.2f TC[%c]", syRef, TMath::ATan(fYref[1])*TMath::RadToDeg(), kroadyShift, chgPos?'+':'-', kroady, kroadz, tilt?'y':'n'));
+  }*/
+  AliDebug(4, Form("\n       syTrk[cm]=%4.2f dydxTrk[deg]=%+6.2f Chg[%c] rY[cm]=%4.2f rZ[cm]=%5.2f TC[%c]", syRef, TMath::ATan(fYref[1])*TMath::RadToDeg(), chgPos?'+':'-', kroady, kroadz, tilt?'y':'n'));
   Double_t phiTrk(TMath::ATan(fYref[1])),
            thtTrk(TMath::ATan(fZref[1]));
 
@@ -2008,6 +2035,9 @@ Bool_t AliTRDseedV1::FitRobust(Bool_t chg)
     } else { 
       kScalePulls = attach->GetScaleCov();//*lyScaler;
     }
+    // Retrieve chamber status
+    SetChmbGood(calibration->IsChamberGood(fDet));
+    if(!IsChmbGood()) kScalePulls*=10.;
   }  
   Double_t xc[kNclusters], yc[kNclusters], sy[kNclusters];
   Int_t n(0),           // clusters used in fit