From 17896e82a9709336c596ee3754b0b5009f8bb134 Mon Sep 17 00:00:00 2001 From: abercuci Date: Thu, 26 Nov 2009 12:24:18 +0000 Subject: [PATCH] - move tracklet index stored in track from UShort_t to Int_t - follow the same convention as for the other detectors - remove TLinearFitters from tracklets as we have moved to private/fast linear fitter --- TRD/AliTRDseedV1.cxx | 20 -------------------- TRD/AliTRDseedV1.h | 6 +----- TRD/AliTRDtrackV1.cxx | 24 ++++++++++++------------ TRD/AliTRDtrackV1.h | 12 ++++++------ TRD/AliTRDtrackerV1.cxx | 9 ++++++--- 5 files changed, 25 insertions(+), 46 deletions(-) diff --git a/TRD/AliTRDseedV1.cxx b/TRD/AliTRDseedV1.cxx index e9e8761d2f2..a1ab57695f7 100644 --- a/TRD/AliTRDseedV1.cxx +++ b/TRD/AliTRDseedV1.cxx @@ -36,8 +36,6 @@ //////////////////////////////////////////////////////////////////////////// #include "TMath.h" -#include "TLinearFitter.h" -#include "TClonesArray.h" // tmp #include #include "AliLog.h" @@ -62,9 +60,6 @@ ClassImp(AliTRDseedV1) -TLinearFitter *AliTRDseedV1::fgFitterY = NULL; -TLinearFitter *AliTRDseedV1::fgFitterZ = NULL; - //____________________________________________________________________ AliTRDseedV1::AliTRDseedV1(Int_t det) :AliTRDtrackletBase() @@ -771,21 +766,6 @@ UShort_t AliTRDseedV1::GetVolumeId() const return fClusters[ic] ? fClusters[ic]->GetVolumeId() : 0; } -//____________________________________________________________________ -TLinearFitter* AliTRDseedV1::GetFitterY() -{ - if(!fgFitterY) fgFitterY = new TLinearFitter(1, "pol1"); - fgFitterY->ClearPoints(); - return fgFitterY; -} - -//____________________________________________________________________ -TLinearFitter* AliTRDseedV1::GetFitterZ() -{ - if(!fgFitterZ) fgFitterZ = new TLinearFitter(1, "pol1"); - fgFitterZ->ClearPoints(); - return fgFitterZ; -} //____________________________________________________________________ void AliTRDseedV1::Calibrate() diff --git a/TRD/AliTRDseedV1.h b/TRD/AliTRDseedV1.h index 59c702344b8..3e93580ac85 100644 --- a/TRD/AliTRDseedV1.h +++ b/TRD/AliTRDseedV1.h @@ -124,8 +124,6 @@ public: void GetCalibParam(Float_t &exb, Float_t &vd, Float_t &t0, Float_t &s2, Float_t &dl, Float_t &dt) const { exb = fExB; vd = fVD; t0 = fT0; s2 = fS2PRF; dl = fDiffL; dt = fDiffT;} AliTRDcluster* GetClusters(Int_t i) const { return i<0 || i>=kNclusters ? NULL: fClusters[i];} - static TLinearFitter* GetFitterY(); - static TLinearFitter* GetFitterZ(); Int_t GetIndexes(Int_t i) const{ return i<0 || i>=kNclusters ? -1 : fIndexes[i];} Int_t GetLabels(Int_t i) const { return fLabels[i];} Float_t GetMomentum(Float_t *err = NULL) const; @@ -238,10 +236,8 @@ private: Int_t fLabels[3]; // most frequent MC labels and total number of different labels Double_t fRefCov[7]; // covariance matrix of the track in the yz plane + the rest of the diagonal elements Double_t fCov[3]; // covariance matrix of the tracklet in the xy plane - static TLinearFitter *fgFitterY; // Linear Fitter for tracklet fit in xy-plane - static TLinearFitter *fgFitterZ; // Linear Fitter for tracklet fit in xz-plane - ClassDef(AliTRDseedV1, 9) // The offline TRD tracklet + ClassDef(AliTRDseedV1, 10) // The offline TRD tracklet }; //____________________________________________________________ diff --git a/TRD/AliTRDtrackV1.cxx b/TRD/AliTRDtrackV1.cxx index 214e75cd296..56e88610b66 100644 --- a/TRD/AliTRDtrackV1.cxx +++ b/TRD/AliTRDtrackV1.cxx @@ -58,7 +58,7 @@ AliTRDtrackV1::AliTRDtrackV1() : AliKalmanTrack() for(int is =0; isGetClusters(ic))) continue; for (Int_t k = 0; k < 3; k++) { @@ -328,7 +328,7 @@ UChar_t AliTRDtrackV1::GetNumberOfTrackletsPID() const UChar_t nPID = 0; Float_t *prob = NULL; for(int ip=0; ipIsOK()) continue; if(!(prob = fTracklet[ip]->GetProbability(kFALSE))) continue; @@ -355,7 +355,7 @@ UChar_t AliTRDtrackV1::SetNumberOfTrackletsPID(Bool_t recalc) // steer PID calculation @ tracklet level Float_t *prob = NULL; for(int ip=0; ipIsOK()) continue; if(!(prob = fTracklet[ip]->GetProbability(recalc))) return 0; @@ -725,7 +725,7 @@ void AliTRDtrackV1::SetNumberOfClusters() Int_t ncls = 0; for(int ip=0; ipGetN(); + if(fTracklet[ip] && fTrackletIndex[ip] != -1) ncls += fTracklet[ip]->GetN(); } AliKalmanTrack::SetNumberOfClusters(ncls); } @@ -740,7 +740,7 @@ void AliTRDtrackV1::SetOwner() if(TestBit(kOwner)) return; for (Int_t ip = 0; ip < kNplane; ip++) { - if(fTrackletIndex[ip] == 0xffff) continue; + if(fTrackletIndex[ip] == -1) continue; fTracklet[ip] = new AliTRDseedV1(*fTracklet[ip]); fTracklet[ip]->SetOwner(); } @@ -777,7 +777,7 @@ void AliTRDtrackV1::SetTrackHigh(const AliExternalTrackParam *op) void AliTRDtrackV1::UnsetTracklet(Int_t plane) { if(plane<0 && plane >= kNplane) return; - fTrackletIndex[plane] = 0xffff; + fTrackletIndex[plane] = -1; fTracklet[plane] = NULL; } @@ -816,7 +816,7 @@ void AliTRDtrackV1::UpdateESDtrack(AliESDtrack *track) // store raw signals Float_t p, sp; Double_t spd; for (Int_t ip = 0; ip < kNplane; ip++) { - if(fTrackletIndex[ip] == 0xffff) continue; + if(fTrackletIndex[ip] == -1) continue; if(!fTracklet[ip]->HasPID()) continue; const Float_t *dedx = fTracklet[ip]->GetdEdx(); for (Int_t js = 0; js < nslices; js++, dedx++) track->SetTRDslice(*dedx, ip, js); diff --git a/TRD/AliTRDtrackV1.h b/TRD/AliTRDtrackV1.h index bc3e5a55b4f..08122877efa 100644 --- a/TRD/AliTRDtrackV1.h +++ b/TRD/AliTRDtrackV1.h @@ -97,7 +97,7 @@ public: GetTrackLow() const { return fTrackLow;} AliExternalTrackParam* GetTrackHigh() const { return fTrackHigh;} - const UShort_t* GetTrackletIndexes() const { return &fTrackletIndex[0];} + const Int_t* GetTrackletIndexes() const { return &fTrackletIndex[0];} Bool_t IsEqual(const TObject *inTrack) const; Bool_t IsKink() const { return TestBit(kKink);} @@ -135,23 +135,23 @@ public: private: UInt_t fStatus; // Bit map for the status of propagation - UShort_t fTrackletIndex[kNplane];// Tracklets index in the tracker list + Int_t fTrackletIndex[kNplane];// Tracklets index in the tracker list Double32_t fPID[AliPID::kSPECIES]; // PID probabilities Double32_t fBudget[3]; // Integrated material budget Double32_t fDE; // Integrated delta energy const AliTRDReconstructor *fkReconstructor;//! reconstructor link AliTRDtrackV1 *fBackupTrack; //! Backup track - AliTRDseedV1 *fTracklet[kNplane]; // Tracklets array defining the track + AliTRDseedV1 *fTracklet[kNplane]; // Tracklets array defining the track AliExternalTrackParam *fTrackLow; // parameters of the track which enter TRD from below (TPC) - AliExternalTrackParam *fTrackHigh; // parameters of the track which enter TRD from above (HMPID, PHOS) + AliExternalTrackParam *fTrackHigh; // parameters of the track which enter TRD from above (HMPID, PHOS) - ClassDef(AliTRDtrackV1, 5) // TRD track - tracklet based + ClassDef(AliTRDtrackV1, 6) // TRD track - tracklet based }; //____________________________________________________ inline Float_t AliTRDtrackV1::GetMomentum(Int_t plane) const { - return plane >=0 && plane < kNplane && fTrackletIndex[plane] != 0xff ? fTracklet[plane]->GetMomentum() : -1.; + return plane >=0 && plane < kNplane && fTrackletIndex[plane] != -1 ? fTracklet[plane]->GetMomentum() : -1.; } //____________________________________________________ diff --git a/TRD/AliTRDtrackerV1.cxx b/TRD/AliTRDtrackerV1.cxx index bead39a214a..af61618f1e4 100644 --- a/TRD/AliTRDtrackerV1.cxx +++ b/TRD/AliTRDtrackerV1.cxx @@ -549,8 +549,9 @@ Int_t AliTRDtrackerV1::FollowProlongation(AliTRDtrackV1 &t) Bool_t kStoreIn = kTRUE; Int_t nClustersExpected = 0; for (Int_t iplane = kNPlanes; iplane--;) { - Int_t index = 0; + Int_t index(-1); AliTRDseedV1 *tracklet = GetTracklet(&t, iplane, index); + AliDebug(2, Form("Tracklet[%p] ly[%d] idx[%d]", (void*)tracklet, iplane, index)); if(!tracklet) continue; if(!tracklet->IsOK()){ AliDebug(1, Form("Tracklet Det[%d] !OK", tracklet->GetDetector())); @@ -946,8 +947,10 @@ Int_t AliTRDtrackerV1::FollowBackProlongation(AliTRDtrackV1 &t) // load tracklet to the tracker ptrTracklet->Update(&t); ptrTracklet = SetTracklet(ptrTracklet); - t.SetTracklet(ptrTracklet, fTracklets->GetEntriesFast()-1); + Int_t index(fTracklets->GetEntriesFast()-1); + t.SetTracklet(ptrTracklet, index); n += ptrTracklet->GetN(); + AliDebug(2, Form("Setting Tracklet[%d] @ Idx[%d]", ily, index)); // Reset material budget if 2 consecutive gold // if(ilayer>0 && t.GetTracklet(ilayer-1) && ptrTracklet->GetN() + t.GetTracklet(ilayer-1)->GetN() > 20) t.SetBudget(2, 0.); @@ -2043,7 +2046,7 @@ AliTRDseedV1* AliTRDtrackerV1::GetTracklet(AliTRDtrackV1 *const track, Int_t p, // Detailed description // idx = track->GetTrackletIndex(p); - AliTRDseedV1 *tracklet = (idx==0xffff) ? NULL : (AliTRDseedV1*)fTracklets->UncheckedAt(idx); + AliTRDseedV1 *tracklet = (idx<0) ? NULL : (AliTRDseedV1*)fTracklets->UncheckedAt(idx); return tracklet; } -- 2.43.0