]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
implementation of :
authorabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 30 Sep 2008 17:44:19 +0000 (17:44 +0000)
committerabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 30 Sep 2008 17:44:19 +0000 (17:44 +0000)
- variable number of dEdx slices in ESD
- IsElectron functionality

TRD/AliTRDtrackV1.cxx
TRD/AliTRDtrackV1.h
TRD/AliTRDtrackerV1.cxx

index 77cfdaa5d0affba8c87f61099193454301769d9f..93b9fbaad090a6ca56f87635226226c575964a95 100644 (file)
@@ -41,6 +41,7 @@ ClassImp(AliTRDtrackV1)
 AliTRDtrackV1::AliTRDtrackV1() : AliKalmanTrack()
   ,fPIDquality(0)
   ,fDE(0.)
+  ,fReconstructor(0x0)
   ,fBackupTrack(0x0)
 {
   //
@@ -63,6 +64,7 @@ AliTRDtrackV1::AliTRDtrackV1() : AliKalmanTrack()
 AliTRDtrackV1::AliTRDtrackV1(const AliTRDtrackV1 &ref) : AliKalmanTrack(ref)
   ,fPIDquality(ref.fPIDquality)
   ,fDE(ref.fDE)
+  ,fReconstructor(ref.fReconstructor)
   ,fBackupTrack(0x0)
 {
   //
@@ -87,6 +89,7 @@ AliTRDtrackV1::AliTRDtrackV1(const AliTRDtrackV1 &ref) : AliKalmanTrack(ref)
 AliTRDtrackV1::AliTRDtrackV1(const AliESDtrack &t) : AliKalmanTrack()
   ,fPIDquality(0)
   ,fDE(0.)
+  ,fReconstructor(0x0)
   ,fBackupTrack(0x0)
 {
   //
@@ -134,6 +137,7 @@ AliTRDtrackV1::AliTRDtrackV1(AliTRDseedV1 *trklts, const Double_t p[5], const Do
              , Double_t x, Double_t alpha) : AliKalmanTrack()
   ,fPIDquality(0)
   ,fDE(0.)
+  ,fReconstructor(0x0)
   ,fBackupTrack(0x0)
 {
   //
@@ -385,8 +389,7 @@ Double_t AliTRDtrackV1::GetPredictedChi2(const AliTRDseedV1 *trklt) const
 //_______________________________________________________________
 Bool_t AliTRDtrackV1::IsElectron() const
 {
-/*  reco = fReconstructor->GetRecoParam();
-  if(GetPID(0) > reco->GetPIDThreshold(GetP())) return kTRUE;*/
+  if(GetPID(0) > fReconstructor->GetRecoParam()->GetPIDThreshold(GetP())) return kTRUE;
   return kFALSE;
 }
 
@@ -669,14 +672,15 @@ void AliTRDtrackV1::UpdateESDtrack(AliESDtrack *track)
   // Update the TRD PID information in the ESD track
   //
 
-  track->SetNumberOfTRDslices(kNslice);
+  Int_t nslices = fReconstructor->IsEightSlices() ? (Int_t)AliTRDReconstructor::kNNslices : (Int_t)AliTRDReconstructor::kLQslices;
+  track->SetNumberOfTRDslices(nslices);
 
   for (Int_t ip = 0; ip < kNplane; ip++) {
     if(fTrackletIndex[ip] == 0xffff) continue;
     if(!fTracklet[ip]->IsOK()) continue;
-    fTracklet[ip]->CookdEdx(kNslice);
+    fTracklet[ip]->CookdEdx(nslices);
     Float_t *dedx = fTracklet[ip]->GetdEdx();
-    for (Int_t js = 0; js < kNslice; js++) track->SetTRDslice(dedx[js], ip, js);
+    for (Int_t js = 0; js < nslices; js++, dedx++) track->SetTRDslice(*dedx, ip, js);
   }
 
   // copy PID to ESD
index 124ca5d50d5a926fca4c44bf28fd37f1da4a476c..ec570f93ee35a310274ca4890e5ada947f2ff619 100644 (file)
@@ -103,11 +103,12 @@ private:
   Double32_t   fPID[AliPID::kSPECIES];//  PID probabilities
   Double32_t   fBudget[3];            //  Integrated material budget
   Double32_t   fDE;                   //  Integrated delta energy
+  const AliTRDReconstructor *fReconstructor;//! reconstructor link 
   AliTRDseedV1 *fTracklet[kNplane];   //  Tracklets array defining the track
   AliTRDtrackV1 *fBackupTrack;        // Backup track
 
 
-  ClassDef(AliTRDtrackV1, 2)          // new TRD track
+  ClassDef(AliTRDtrackV1, 3)          // new TRD track
 };
 
 //____________________________________________________
@@ -146,6 +147,7 @@ inline void AliTRDtrackV1::SetReconstructor(const AliTRDReconstructor *rec)
     if(!fTracklet[ip]) continue;
     fTracklet[ip]->SetReconstructor(rec);
   }
+  fReconstructor = rec;
 }
 
 
index 5df0384ed7fea5bdd45b06bafa7c57104d9c0f6b..fe2354dfc7d52ac2dc8f1f51bb60c1c4575cd41e 100644 (file)
@@ -284,7 +284,8 @@ Int_t AliTRDtrackerV1::PropagateBack(AliESDEvent *event)
   
     // Do the back prolongation
     new(&track) AliTRDtrackV1(*seed);
-    //track->Print();
+    track.SetReconstructor(fReconstructor);
+
     //Int_t   lbl         = seed->GetLabel();
     //track.SetSeedLabel(lbl);
 
@@ -2657,6 +2658,7 @@ AliTRDtrackV1* AliTRDtrackerV1::MakeTrack(AliTRDseedV1 *seeds, Double_t *params)
   if (nc < 30) return 0x0;
 
   AliTRDtrackV1 *ptrTrack = SetTrack(&track);
+  ptrTrack->SetReconstructor(fReconstructor);
   ptrTrack->CookLabel(.9);
   
   // computes PID for track