From 7df84be505d637c356313d10c9e8f8992eb74c0a Mon Sep 17 00:00:00 2001 From: zampolli Date: Tue, 19 Aug 2014 09:42:17 +0200 Subject: [PATCH] Updates for new TOF data structure: Setters (F. Noferini) --- STEER/ESD/AliESDTOFHit.h | 2 +- STEER/ESD/AliESDtrack.cxx | 147 +++++++++++++++++++++++++++++++++++++- STEER/ESD/AliESDtrack.h | 16 ++--- 3 files changed, 153 insertions(+), 12 deletions(-) diff --git a/STEER/ESD/AliESDTOFHit.h b/STEER/ESD/AliESDTOFHit.h index 360fe18b0f5..348d0a50dd4 100644 --- a/STEER/ESD/AliESDTOFHit.h +++ b/STEER/ESD/AliESDTOFHit.h @@ -39,7 +39,7 @@ class AliESDTOFHit : public AliVTOFHit virtual Int_t GetTOFchannel() const {return fTOFchannel;}; virtual Double_t GetTime() const {return fTime;} virtual Int_t GetTOFLabel(Int_t i) const {return (i >=0 && i < 3) ? fTOFLabel[i] : -1;} - virtual void SetTOFLabel(Int_t label[3]) {for(Int_t i=3;i--;) fTOFLabel[i] = label[i];} + virtual void SetTOFLabel(const Int_t label[3]) {for(Int_t i=3;i--;) fTOFLabel[i] = label[i];} Float_t GetR() const {return fR;}; Float_t GetZ() const {return fZ;}; Float_t GetPhi() const {return fPhi;}; diff --git a/STEER/ESD/AliESDtrack.cxx b/STEER/ESD/AliESDtrack.cxx index 12c98c5ce4f..0f558ea8fb1 100644 --- a/STEER/ESD/AliESDtrack.cxx +++ b/STEER/ESD/AliESDtrack.cxx @@ -2360,9 +2360,19 @@ void AliESDtrack::SetTOFpid(const Double_t *p) { //_______________________________________________________________________ void AliESDtrack::SetTOFLabel(const Int_t *p) { - // Sets (in TOF) - if(!fTOFLabel) fTOFLabel = new Int_t[3]; - for (Int_t i=0; i<3; i++) fTOFLabel[i]=p[i]; + + if(fNtofClusters>0){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + AliESDTOFCluster *tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + AliESDTOFHit* hit = tofcl->GetTOFHit(0); + + if(hit) hit->SetTOFLabel(p); + } + else{ + // Sets (in TOF) + if(!fTOFLabel) fTOFLabel = new Int_t[3]; + for (Int_t i=0; i<3; i++) fTOFLabel[i]=p[i]; + } } //_______________________________________________________________________ @@ -3062,6 +3072,137 @@ void AliESDtrack::AddTOFcluster(Int_t icl) } +//____________________________________________ +void AliESDtrack::SetTOFsignal(Double_t tof) +{ + if(fNtofClusters>0 && GetESDEvent()){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + AliESDTOFCluster *tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + AliESDTOFHit* hit = tofcl->GetTOFHit(0); + if(hit) hit->SetTime(tof); + } + else{ + if(fNtofClusters>0) AliInfo("No AliESDEvent available here!\n"); + fTOFsignal=tof; + } +} +//____________________________________________ +void AliESDtrack::SetTOFCalChannel(Int_t index){ + if(fNtofClusters>0 && GetESDEvent()){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + AliESDTOFCluster *tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + AliESDTOFHit* hit = tofcl->GetTOFHit(0); + if(hit) hit->SetTOFchannel(index); + } + else{ + if(fNtofClusters>0) AliInfo("No AliESDEvent available here!\n"); + fTOFCalChannel=index; + } +} +//____________________________________________ +void AliESDtrack::SetTOFsignalToT(Double_t ToT){ + if(fNtofClusters>0 && GetESDEvent()){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + AliESDTOFCluster *tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + AliESDTOFHit* hit = tofcl->GetTOFHit(0); + if(hit) hit->SetTOT(ToT); + } + else{ + if(fNtofClusters>0) AliInfo("No AliESDEvent available here!\n"); + fTOFsignalToT=ToT; + } +} +//____________________________________________ +void AliESDtrack::SetTOFsignalRaw(Double_t tof){ + if(fNtofClusters>0 && GetESDEvent()){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + AliESDTOFCluster *tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + AliESDTOFHit* hit = tofcl->GetTOFHit(0); + if(hit) hit->SetTimeRaw(tof); + } + else{ + if(fNtofClusters>0) AliInfo("No AliESDEvent available here!\n"); + fTOFsignalRaw=tof; + } +} +//____________________________________________ +void AliESDtrack::SetTOFsignalDz(Double_t dz){ + Int_t index = -1; + AliESDTOFCluster *tofcl; + + if(fNtofClusters>0 && GetESDEvent()){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + + for(Int_t i=0;i < tofcl->GetNMatchableTracks();i++){ + if(tofcl->GetTrackIndex(i) == GetID()) index = i; + } + + } + if(index > -1){ + AliESDTOFMatch* match = tofcl->GetTOFMatch(index); + if(match){ + match->SetDz(dz); + } + } + else{ + if(fNtofClusters>0) AliInfo("No AliESDEvent available here!\n"); + fTOFsignalDz=dz; + } + + +} +//____________________________________________ +void AliESDtrack::SetTOFsignalDx(Double_t dx){ + Int_t index = -1; + AliESDTOFCluster *tofcl; + + if(fNtofClusters>0 && GetESDEvent()){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + + for(Int_t i=0;i < tofcl->GetNMatchableTracks();i++){ + if(tofcl->GetTrackIndex(i) == GetID()) index = i; + } + + } + if(index > -1){ + AliESDTOFMatch* match = tofcl->GetTOFMatch(index); + if(match){ + match->SetDx(dx); + } + } + else{ + if(fNtofClusters>0) AliInfo("No AliESDEvent available here!\n"); + fTOFsignalDx=dx; + } +} +//____________________________________________ +void AliESDtrack::SetTOFDeltaBC(Short_t deltaBC){ + if(fNtofClusters>0 && GetESDEvent()){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + AliESDTOFCluster *tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + AliESDTOFHit* hit = tofcl->GetTOFHit(0); + if(hit) hit->SetDeltaBC(deltaBC); + } + else{ + if(fNtofClusters>0) AliInfo("No AliESDEvent available here!\n"); + fTOFdeltaBC=deltaBC; + } +} +//____________________________________________ +void AliESDtrack::SetTOFL0L1(Short_t l0l1){ + if(fNtofClusters>0 && GetESDEvent()){ + TClonesArray *tofclArray = GetESDEvent()->GetESDTOFClusters(); + AliESDTOFCluster *tofcl = (AliESDTOFCluster *) tofclArray->At(fTOFcluster[0]); + AliESDTOFHit* hit = tofcl->GetTOFHit(0); + if(hit) hit->SetL0L1Latency(l0l1); + } + else{ + if(fNtofClusters>0) AliInfo("No AliESDEvent available here!\n"); + fTOFl0l1=l0l1; + } +} //____________________________________________ Double_t AliESDtrack::GetTOFsignal() const { diff --git a/STEER/ESD/AliESDtrack.h b/STEER/ESD/AliESDtrack.h index 1970aed770d..e7daf9b0311 100644 --- a/STEER/ESD/AliESDtrack.h +++ b/STEER/ESD/AliESDtrack.h @@ -324,19 +324,19 @@ class AliESDtrack : public AliExternalTrackParam { void SortTOFcluster(); // RS? Not to be used? void ReMapTOFcluster(Int_t ncl,Int_t *mapping); // RS? Not to be used? - void SetTOFsignal(Double_t tof) {fTOFsignal=tof;} + void SetTOFsignal(Double_t tof); Double_t GetTOFsignal() const; - void SetTOFsignalToT(Double_t ToT) {fTOFsignalToT=ToT;} + void SetTOFsignalToT(Double_t ToT); Double_t GetTOFsignalToT() const; - void SetTOFsignalRaw(Double_t tof) {fTOFsignalRaw=tof;} + void SetTOFsignalRaw(Double_t tof); Double_t GetTOFsignalRaw() const; - void SetTOFsignalDz(Double_t dz) {fTOFsignalDz=dz;} + void SetTOFsignalDz(Double_t dz); Double_t GetTOFsignalDz() const; - void SetTOFsignalDx(Double_t dx) {fTOFsignalDx=dx;} + void SetTOFsignalDx(Double_t dx); Double_t GetTOFsignalDx() const; - void SetTOFDeltaBC(Short_t deltaBC) {fTOFdeltaBC=deltaBC;}; + void SetTOFDeltaBC(Short_t deltaBC); Short_t GetTOFDeltaBC() const; - void SetTOFL0L1(Short_t l0l1) {fTOFl0l1=l0l1;}; + void SetTOFL0L1(Short_t l0l1); Short_t GetTOFL0L1() const; Double_t GetTOFchi2() const {return fTOFchi2;}; void SetTOFpid(const Double_t *p); @@ -348,7 +348,7 @@ class AliESDtrack : public AliExternalTrackParam { Int_t GetTOFCalChannel() const; Int_t GetTOFcluster() const; void SetTOFcluster(Int_t index) {fTOFindex=index;} - void SetTOFCalChannel(Int_t index) {fTOFCalChannel=index;} + void SetTOFCalChannel(Int_t index); Int_t GetTOFclusterN() const; Bool_t IsTOFHitAlreadyMatched() const; void SetTOFsignalTunedOnData(Double_t signal){fTOFsignalTuned=signal;}