From bad6eb00675b9f532a1c8b553537786842848ee0 Mon Sep 17 00:00:00 2001 From: jotwinow Date: Mon, 31 Oct 2011 16:27:18 +0000 Subject: [PATCH] Adding TPC cluster map for clusters used in fit (Marco van Leeuwen) --- TPC/AliTPCseed.cxx | 48 ++++--------------------------------- TPC/AliTPCseed.h | 10 +------- TPC/AliTPCtrackerMI.cxx | 53 ++++++++++++++++++++++------------------- TPC/AliTPCtrackerMI.h | 5 ++-- 4 files changed, 37 insertions(+), 79 deletions(-) diff --git a/TPC/AliTPCseed.cxx b/TPC/AliTPCseed.cxx index 45336b10768..2b99f3412f7 100644 --- a/TPC/AliTPCseed.cxx +++ b/TPC/AliTPCseed.cxx @@ -69,9 +69,7 @@ AliTPCseed::AliTPCseed(): fSeed1(-1), fSeed2(-1), fMAngular(0), - fCircular(0), - fClusterMap(159), - fSharedMap(159) + fCircular(0) { // for (Int_t i=0;i<160;i++) SetClusterIndex2(i,-3); @@ -84,11 +82,6 @@ AliTPCseed::AliTPCseed(): fNCDEDX[i] = 0; } for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1; - // for (Int_t i=0;i<160;i++) fClusterMap[i]=kFALSE; - //for (Int_t i=0;i<160;i++) fSharedMap[i]=kFALSE; - fClusterMap.ResetAllBits(kFALSE); - fSharedMap.ResetAllBits(kFALSE); - } AliTPCseed::AliTPCseed(const AliTPCseed &s, Bool_t clusterOwner): @@ -117,9 +110,7 @@ AliTPCseed::AliTPCseed(const AliTPCseed &s, Bool_t clusterOwner): fSeed1(-1), fSeed2(-1), fMAngular(0), - fCircular(0), - fClusterMap(s.fClusterMap), - fSharedMap(s.fSharedMap) + fCircular(0) { //--------------------- // dummy copy constructor @@ -172,9 +163,7 @@ AliTPCseed::AliTPCseed(const AliTPCtrack &t): fSeed1(-1), fSeed2(-1), fMAngular(0), - fCircular(0), - fClusterMap(159), - fSharedMap(159) + fCircular(0) { // // Constructor from AliTPCtrack @@ -197,12 +186,6 @@ AliTPCseed::AliTPCseed(const AliTPCtrack &t): fNCDEDX[i] = 0; } for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1; - - //for (Int_t i=0;i<160;i++) fClusterMap[i]=kFALSE; - //for (Int_t i=0;i<160;i++) fSharedMap[i]=kFALSE; - fClusterMap.ResetAllBits(kFALSE); - fSharedMap.ResetAllBits(kFALSE); - } AliTPCseed::AliTPCseed(Double_t xr, Double_t alpha, const Double_t xx[5], @@ -232,9 +215,7 @@ AliTPCseed::AliTPCseed(Double_t xr, Double_t alpha, const Double_t xx[5], fSeed1(-1), fSeed2(-1), fMAngular(0), - fCircular(0), - fClusterMap(159), - fSharedMap(159) + fCircular(0) { // // Constructor @@ -303,8 +284,6 @@ AliTPCseed & AliTPCseed::operator=(const AliTPCseed ¶m) fMAngular = param.fMAngular; fCircular = param.fCircular; for(int i = 0;i<160;++i)fTrackPoints[i] = param.fTrackPoints[i]; - fClusterMap = param.fClusterMap; - fSharedMap = param.fSharedMap; } return (*this); } @@ -893,25 +872,6 @@ Double_t AliTPCseed::GetYat(Double_t xk) const { return GetY() + (xk-GetX())*(c1+c2)/(r1+r2); } -void AliTPCseed::SetClusterMapBit(int ibit, Bool_t state) -{ - fClusterMap[ibit] = state; -} -Bool_t AliTPCseed::GetClusterMapBit(int ibit) -{ - return fClusterMap[ibit]; -} -void AliTPCseed::SetSharedMapBit(int ibit, Bool_t state) -{ - fSharedMap[ibit] = state; -} -Bool_t AliTPCseed::GetSharedMapBit(int ibit) -{ - return fSharedMap[ibit]; -} - - - Float_t AliTPCseed::CookdEdxNorm(Double_t low, Double_t up, Int_t type, Int_t i1, Int_t i2, Bool_t shapeNorm,Int_t posNorm, Int_t padNorm, Int_t returnVal){ diff --git a/TPC/AliTPCseed.h b/TPC/AliTPCseed.h index 27bfebc2399..4ee11970616 100644 --- a/TPC/AliTPCseed.h +++ b/TPC/AliTPCseed.h @@ -130,12 +130,6 @@ class AliTPCseed : public AliTPCtrack { Float_t GetCMeanSigmaZ2p30R() const {return fCMeanSigmaZ2p30R;} // // - void SetClusterMapBit(int ibit, Bool_t state); - Bool_t GetClusterMapBit(int ibit); - void SetSharedMapBit(int ibit, Bool_t state); - Bool_t GetSharedMapBit(int ibit); - const TBits& GetClusterMap() const { return fClusterMap; }; - const TBits& GetSharedMap() const { return fSharedMap; }; Float_t CookdEdxNorm(Double_t low=0.05, Double_t up=0.70, Int_t type=0, Int_t i1=0, Int_t i2=159, Bool_t shapeNorm=kTRUE, Int_t posNorm=0, Int_t padNorm=0,Int_t returnVal=0); @@ -187,9 +181,7 @@ class AliTPCseed : public AliTPCtrack { Float_t fMAngular; // mean angular factor Char_t fCircular; // indicates curlin track AliTPCTrackerPoint fTrackPoints[160]; //track points - array track points - TBits fClusterMap; // bit is 1 if track has a hit on padrow - TBits fSharedMap; // bit is 1 if track shares a hit on padrow - ClassDef(AliTPCseed,3) + ClassDef(AliTPCseed,4) }; diff --git a/TPC/AliTPCtrackerMI.cxx b/TPC/AliTPCtrackerMI.cxx index 3b5383a1a99..3dce6fc9c5f 100644 --- a/TPC/AliTPCtrackerMI.cxx +++ b/TPC/AliTPCtrackerMI.cxx @@ -1269,7 +1269,10 @@ Int_t AliTPCtrackerMI::LoadClusters() TTree * tree = fInput; TBranch * br = tree->GetBranch("Segment"); br->SetAddress(&clrow); - // + + // Conversion of pad, row coordinates in local tracking coords. + // Could be skipped here; is already done in clusterfinder + Int_t j=Int_t(tree->GetEntries()); for (Int_t i=0; iGetEntry(i); @@ -1881,9 +1884,9 @@ Int_t AliTPCtrackerMI::UpdateClusters(AliTPCseed& t, Int_t nr) { if (!cl){ index = t.GetClusterIndex2(nr); - if ( (index>0) && (index&0x8000)==0){ + if ( (index >= 0) && (index&0x8000)==0){ cl = t.GetClusterPointer(nr); - if ( (cl==0) && (index>0)) cl = GetClusterMI(index); + if ( (cl==0) && (index >= 0)) cl = GetClusterMI(index); t.SetCurrentClusterIndex1(index); if (cl) { t.SetCurrentCluster(cl); @@ -2014,7 +2017,7 @@ Int_t AliTPCtrackerMI::FollowBackProlongation(AliTPCseed& t, Int_t rf, Bool_t fr Double_t alpha=t.GetAlpha(); if (alpha > 2.*TMath::Pi()) alpha -= 2.*TMath::Pi(); if (alpha < 0. ) alpha += 2.*TMath::Pi(); - t.SetRelativeSector(Int_t(alpha/fSectors->GetAlpha())%fN); + t.SetRelativeSector(Int_t(alpha/fSectors->GetAlpha()+0.0001)%fN); Int_t first = t.GetFirstPoint(); Int_t ri = GetRowNumber(xt); @@ -2128,11 +2131,7 @@ void AliTPCtrackerMI::SignShared(AliTPCseed * s1, AliTPCseed * s2) // if ( (s1->GetClusterIndex2(i)&0xFFFF8FFF)==(s2->GetClusterIndex2(i)&0xFFFF8FFF) && s1->GetClusterIndex2(i)>0) { if ( (s1->GetClusterIndex2(i))==(s2->GetClusterIndex2(i)) && s1->GetClusterIndex2(i)>0) { sumshared++; - s1->SetSharedMapBit(i, kTRUE); - s2->SetSharedMapBit(i, kTRUE); } - if (s1->GetClusterIndex2(i)>0) - s1->SetClusterMapBit(i, kTRUE); } if (sumshared>cutN0){ // sign clusters @@ -2761,11 +2760,9 @@ Int_t AliTPCtrackerMI::RefitInward(AliESDEvent *event) seed->PropagateTo(fkParam->GetInnerRadiusLow()); seed->UpdatePoints(); AddCovariance(seed); - MakeBitmaps(seed); + MakeESDBitmaps(seed, esd); seed->CookdEdx(0.02,0.6); CookLabel(seed,0.1); //For comparison only - esd->SetTPCClusterMap(seed->GetClusterMap()); - esd->SetTPCSharedMap(seed->GetSharedMap()); // if (AliTPCReconstructor::StreamLevel()>1 && seed!=0) { TTreeSRedirector &cstream = *fDebugStreamer; @@ -2986,7 +2983,7 @@ void AliTPCtrackerMI::ReadSeeds(const AliESDEvent *const event, Int_t direction) if (esd->GetKinkIndex(0)<=0){ for (Int_t irow=0;irow<160;irow++){ Int_t index = seed->GetClusterIndex2(irow); - if (index>0){ + if (index >= 0){ // AliTPCclusterMI * cl = GetClusterMI(index); seed->SetClusterPointer(irow,cl); @@ -3867,7 +3864,7 @@ AliTPCseed *AliTPCtrackerMI::MakeSeed(AliTPCseed *const track, Float_t r0, Float if ( (indexGetX()>1){ clindex = track->GetClusterIndex2(i); - if (clindex>0){ + if (clindex >= 0){ x0[0] = trpoint->GetX(); x0[1] = trpoint->GetY(); x0[2] = trpoint->GetZ(); @@ -3878,7 +3875,7 @@ AliTPCseed *AliTPCtrackerMI::MakeSeed(AliTPCseed *const track, Float_t r0, Float if ( (indexGetX()>1)){ clindex = track->GetClusterIndex2(i); - if (clindex>0){ + if (clindex >= 0){ x1[0] = trpoint->GetX(); x1[1] = trpoint->GetY(); x1[2] = trpoint->GetZ(); @@ -3887,7 +3884,7 @@ AliTPCseed *AliTPCtrackerMI::MakeSeed(AliTPCseed *const track, Float_t r0, Float } if ( (indexGetX()>1)){ clindex = track->GetClusterIndex2(i); - if (clindex>0){ + if (clindex >= 0){ x2[0] = trpoint->GetX(); x2[1] = trpoint->GetY(); x2[2] = trpoint->GetZ(); @@ -5934,7 +5931,7 @@ Int_t AliTPCtrackerMI::Clusters2Tracks() { CookLabel(pt,0.1); if (pt->GetRemoval()==10) { if (pt->GetDensityFirst(20)>0.8 || pt->GetDensityFirst(30)>0.8 || pt->GetDensityFirst(40)>0.7) - pt->Desactivate(10); // make track again active + pt->Desactivate(10); // make track again active // MvL: should be 0 ? else{ pt->Desactivate(20); delete fSeeds->RemoveAt(i); @@ -6813,7 +6810,7 @@ Int_t AliTPCtrackerMI::GetRowNumber(Double_t x[3]) const -void AliTPCtrackerMI::MakeBitmaps(AliTPCseed *t) +void AliTPCtrackerMI::MakeESDBitmaps(AliTPCseed *t, AliESDtrack *esd) { //----------------------------------------------------------------------- // Fill the cluster and sharing bitmaps of the track @@ -6824,22 +6821,30 @@ void AliTPCtrackerMI::MakeBitmaps(AliTPCseed *t) AliTPCTrackerPoint *point; AliTPCclusterMI *cluster; + Int_t nclsf = 0; + TBits clusterMap(159); + TBits sharedMap(159); + TBits fitMap(159); for (int iter=firstpoint; iterGetClusterPointer(iter); if (cluster) { - t->SetClusterMapBit(iter, kTRUE); + clusterMap.SetBitNumber(iter, kTRUE); point = t->GetTrackPoint(iter); if (point->IsShared()) - t->SetSharedMapBit(iter,kTRUE); - else - t->SetSharedMapBit(iter, kFALSE); + sharedMap.SetBitNumber(iter,kTRUE); } - else { - t->SetClusterMapBit(iter, kFALSE); - t->SetSharedMapBit(iter, kFALSE); + if (t->GetClusterIndex(iter) >= 0 && (t->GetClusterIndex(iter) & 0x8000) == 0) { + fitMap.SetBitNumber(iter, kTRUE); + nclsf++; } } + esd->SetTPCClusterMap(clusterMap); + esd->SetTPCSharedMap(sharedMap); + esd->SetTPCFitMap(fitMap); + if (nclsf != t->GetNumberOfClusters()) + AliWarning(Form("Inconsistency between ncls %d and indices %d (found %d)",t->GetNumberOfClusters(),nclsf,esd->GetTPCClusterMap().CountBits())); } Bool_t AliTPCtrackerMI::IsFindable(AliTPCseed & track){ diff --git a/TPC/AliTPCtrackerMI.h b/TPC/AliTPCtrackerMI.h index c7aae305fc1..77c27a59c23 100644 --- a/TPC/AliTPCtrackerMI.h +++ b/TPC/AliTPCtrackerMI.h @@ -23,7 +23,8 @@ class TFile; class AliTPCParam; class AliTPCseed; class AliTPCTrackerPoint; -class AliESDEvent; +class AliESDEvent; +class AliESDtrack; class TTree; class AliESDkink; class TTreeSRedirector; @@ -166,7 +167,7 @@ private: Int_t UpdateTrack(AliTPCseed *t, Int_t accept); //update trackinfo - void MakeBitmaps(AliTPCseed *t); + void MakeESDBitmaps(AliTPCseed *t, AliESDtrack *esd); const Int_t fkNIS; //number of inner sectors AliTPCtrackerSector *fInnerSec; //array of inner sectors; -- 2.43.0