From 9b5c8b95bd1ff4c0946a71efb8642727aae3c8af Mon Sep 17 00:00:00 2001 From: morsch Date: Thu, 4 Apr 2013 13:18:57 +0000 Subject: [PATCH] Implementation of track length in AOD Pietro Antonioli --- ANALYSIS/AliAnalysisTaskESDfilter.cxx | 11 ++++++++++- STEER/AOD/AliAODTrack.cxx | 5 +++++ STEER/AOD/AliAODTrack.h | 7 +++++-- STEER/STEERBase/AliVTrack.h | 3 ++- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ANALYSIS/AliAnalysisTaskESDfilter.cxx b/ANALYSIS/AliAnalysisTaskESDfilter.cxx index 3c6cd9dcd9d..52f8fc93216 100644 --- a/ANALYSIS/AliAnalysisTaskESDfilter.cxx +++ b/ANALYSIS/AliAnalysisTaskESDfilter.cxx @@ -594,6 +594,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd) aodTrack->SetChi2perNDF(Chi2perNDF(esdCascadeBach)); aodTrack->SetTPCPointsF(esdCascadeBach->GetTPCNclsF()); aodTrack->SetTPCNCrossedRows(UShort_t(esdCascadeBach->GetTPCCrossedRows())); + aodTrack->SetIntegratedLength(esdCascadeBach->GetIntegratedLength()); fAODTrackRefs->AddAt(aodTrack,idxBachFromCascade); if (esdCascadeBach->GetSign() > 0) ++fNumberOfPositiveTracks; @@ -680,6 +681,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd) aodTrack->SetChi2perNDF(Chi2perNDF(esdCascadePos)); aodTrack->SetTPCPointsF(esdCascadePos->GetTPCNclsF()); aodTrack->SetTPCNCrossedRows(UShort_t(esdCascadePos->GetTPCCrossedRows())); + aodTrack->SetIntegratedLength(esdCascadePos->GetIntegratedLength()); fAODTrackRefs->AddAt(aodTrack,idxPosFromV0Dghter); if (esdCascadePos->GetSign() > 0) ++fNumberOfPositiveTracks; @@ -728,6 +730,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd) aodTrack->SetChi2perNDF(Chi2perNDF(esdCascadeNeg)); aodTrack->SetTPCPointsF(esdCascadeNeg->GetTPCNclsF()); aodTrack->SetTPCNCrossedRows(UShort_t(esdCascadeNeg->GetTPCCrossedRows())); + aodTrack->SetIntegratedLength(esdCascadeNeg->GetIntegratedLength()); fAODTrackRefs->AddAt(aodTrack,idxNegFromV0Dghter); if (esdCascadeNeg->GetSign() > 0) ++fNumberOfPositiveTracks; @@ -972,6 +975,7 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd) aodTrack->SetChi2perNDF(Chi2perNDF(esdV0Pos)); aodTrack->SetTPCPointsF(esdV0Pos->GetTPCNclsF()); aodTrack->SetTPCNCrossedRows(UShort_t(esdV0Pos->GetTPCCrossedRows())); + aodTrack->SetIntegratedLength(esdV0Pos->GetIntegratedLength()); fAODTrackRefs->AddAt(aodTrack,posFromV0); // if (fDebug > 0) printf("-------------------Bo: pos track from original pt %.3f \n",aodTrack->Pt()); if (esdV0Pos->GetSign() > 0) ++fNumberOfPositiveTracks; @@ -1018,7 +1022,7 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd) aodTrack->SetChi2perNDF(Chi2perNDF(esdV0Neg)); aodTrack->SetTPCPointsF(esdV0Neg->GetTPCNclsF()); aodTrack->SetTPCNCrossedRows(UShort_t(esdV0Neg->GetTPCCrossedRows())); - + aodTrack->SetIntegratedLength(esdV0Neg->GetIntegratedLength()); fAODTrackRefs->AddAt(aodTrack,negFromV0); // if (fDebug > 0) printf("-------------------Bo: neg track from original pt %.3f \n",aodTrack->Pt()); if (esdV0Neg->GetSign() > 0) ++fNumberOfPositiveTracks; @@ -1227,6 +1231,7 @@ void AliAnalysisTaskESDfilter::ConvertTPCOnlyTracks(const AliESDEvent& esd) aodTrack->SetFlags(track->GetStatus()); aodTrack->SetTPCPointsF(track->GetTPCNclsF()); aodTrack->SetTPCNCrossedRows(UShort_t(track->GetTPCCrossedRows())); + aodTrack->SetIntegratedLength(track->GetIntegratedLength()); //Perform progagation of tracks if needed if(fDoPropagateTrackToEMCal) PropagateTrackToEMCal(esdTrack); @@ -1374,6 +1379,7 @@ void AliAnalysisTaskESDfilter::ConvertGlobalConstrainedTracks(const AliESDEvent& aodTrack->SetFlags(esdTrack->GetStatus()); aodTrack->SetTPCPointsF(esdTrack->GetTPCNclsF()); aodTrack->SetTPCNCrossedRows(UShort_t(esdTrack->GetTPCCrossedRows())); + aodTrack->SetIntegratedLength(esdTrack->GetIntegratedLength()); if(isHybridGC){ // only copy AOD information for hybrid, no duplicate information @@ -1448,6 +1454,7 @@ void AliAnalysisTaskESDfilter::ConvertTracks(const AliESDEvent& esd) aodTrack->SetChi2perNDF(Chi2perNDF(esdTrack)); aodTrack->SetTPCPointsF(esdTrack->GetTPCNclsF()); aodTrack->SetTPCNCrossedRows(UShort_t(esdTrack->GetTPCCrossedRows())); + aodTrack->SetIntegratedLength(esdTrack->GetIntegratedLength()); if(esdTrack->IsEMCAL()) aodTrack->SetEMCALcluster(esdTrack->GetEMCALcluster()); if(esdTrack->IsPHOS()) aodTrack->SetPHOScluster(esdTrack->GetPHOScluster()); @@ -1828,6 +1835,7 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd) mother->SetChi2perNDF(Chi2perNDF(esdTrackM)); mother->SetTPCPointsF(esdTrackM->GetTPCNclsF()); mother->SetTPCNCrossedRows(UShort_t(esdTrackM->GetTPCCrossedRows())); + mother->SetIntegratedLength(esdTrackM->GetIntegratedLength()); fAODTrackRefs->AddAt(mother, imother); @@ -1893,6 +1901,7 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd) daughter->SetTPCSharedMap (esdTrackD->GetTPCSharedMap()); daughter->SetTPCPointsF(esdTrackD->GetTPCNclsF()); daughter->SetTPCNCrossedRows(UShort_t(esdTrackD->GetTPCCrossedRows())); + daughter->SetIntegratedLength(esdTrackD->GetIntegratedLength()); fAODTrackRefs->AddAt(daughter, idaughter); if (esdTrackD->GetSign() > 0) ++fNumberOfPositiveTracks; diff --git a/STEER/AOD/AliAODTrack.cxx b/STEER/AOD/AliAODTrack.cxx index 11de9d15700..0fab45e8c4c 100644 --- a/STEER/AOD/AliAODTrack.cxx +++ b/STEER/AOD/AliAODTrack.cxx @@ -42,6 +42,7 @@ AliAODTrack::AliAODTrack() : fFlags(0), fLabel(-999), fTOFLabel(), + fTrackLength(0), fITSMuonClusterMap(0), fMUONtrigHitsMapTrg(0), fMUONtrigHitsMapTrk(0), @@ -99,6 +100,7 @@ AliAODTrack::AliAODTrack(Short_t id, fFlags(0), fLabel(label), fTOFLabel(), + fTrackLength(0), fITSMuonClusterMap(0), fMUONtrigHitsMapTrg(0), fMUONtrigHitsMapTrk(0), @@ -160,6 +162,7 @@ AliAODTrack::AliAODTrack(Short_t id, fFlags(0), fLabel(label), fTOFLabel(), + fTrackLength(0), fITSMuonClusterMap(0), fMUONtrigHitsMapTrg(0), fMUONtrigHitsMapTrk(0), @@ -216,6 +219,7 @@ AliAODTrack::AliAODTrack(const AliAODTrack& trk) : fFlags(trk.fFlags), fLabel(trk.fLabel), fTOFLabel(), + fTrackLength(trk.fTrackLength), fITSMuonClusterMap(trk.fITSMuonClusterMap), fMUONtrigHitsMapTrg(trk.fMUONtrigHitsMapTrg), fMUONtrigHitsMapTrk(trk.fMUONtrigHitsMapTrk), @@ -272,6 +276,7 @@ AliAODTrack& AliAODTrack::operator=(const AliAODTrack& trk) trk.GetPID(fPID); fFlags = trk.fFlags; fLabel = trk.fLabel; + fTrackLength = trk.fTrackLength; fITSMuonClusterMap = trk.fITSMuonClusterMap; fMUONtrigHitsMapTrg = trk.fMUONtrigHitsMapTrg; fMUONtrigHitsMapTrk = trk.fMUONtrigHitsMapTrk; diff --git a/STEER/AOD/AliAODTrack.h b/STEER/AOD/AliAODTrack.h index 98d7d40d2b0..3f0f0c20447 100644 --- a/STEER/AOD/AliAODTrack.h +++ b/STEER/AOD/AliAODTrack.h @@ -295,6 +295,8 @@ class AliAODTrack : public AliVTrack { virtual AliTPCdEdxInfo* GetTPCdEdxInfo() const {return fDetPid?fDetPid->GetTPCdEdxInfo():0;} Double_t GetTPCmomentum() const { return fDetPid?fDetPid->GetTPCmomentum():0.; } Double_t GetTOFsignal() const { return fDetPid?fDetPid->GetTOFsignal():0.; } + Double_t GetIntegratedLength() const { return fTrackLength;} + void SetIntegratedLength(Double_t l) {fTrackLength = l;} Double_t GetTOFsignalTunedOnData() const { return fTOFsignalTuned;} void SetTOFsignalTunedOnData(Double_t signal) {fTOFsignalTuned = signal;} Double_t GetHMPIDsignal() const; @@ -419,7 +421,8 @@ class AliAODTrack : public AliVTrack { ULong_t fFlags; // reconstruction status flags Int_t fLabel; // track label, points back to MC track - Int_t fTOFLabel[3]; // TOF label + Int_t fTOFLabel[3]; // TOF label + Double32_t fTrackLength; // Track length UInt_t fITSMuonClusterMap; // map of ITS and muon clusters, one bit per layer // (ITS: bit 1-8, muon trigger: bit 9-16, muon tracker: bit 17-26, muon match trigger: bit 31-32) UInt_t fMUONtrigHitsMapTrg; // Muon trigger hits map from trigger @@ -454,7 +457,7 @@ class AliAODTrack : public AliVTrack { const AliAODEvent* fAODEvent; //! - ClassDef(AliAODTrack, 20); + ClassDef(AliAODTrack, 21); }; inline Bool_t AliAODTrack::IsPrimaryCandidate() const diff --git a/STEER/STEERBase/AliVTrack.h b/STEER/STEERBase/AliVTrack.h index 711c0f67e33..64b19961e81 100644 --- a/STEER/STEERBase/AliVTrack.h +++ b/STEER/STEERBase/AliVTrack.h @@ -107,7 +107,8 @@ public: virtual void GetIntegratedTimes(Double_t */*times*/) const { return; } virtual Double_t GetTRDmomentum(Int_t /*plane*/, Double_t */*sp*/=0x0) const {return 0.;} virtual void GetHMPIDpid(Double_t */*p*/) const {;} - + virtual Double_t GetIntegratedLength() const { return 0.;} + virtual ULong_t GetStatus() const = 0; virtual Bool_t GetXYZ(Double_t *p) const = 0; virtual Bool_t GetXYZAt(Double_t /*x*/, Double_t /*b*/, Double_t* /*r*/ ) const {return kFALSE;} -- 2.43.0