From 06cc9d95b6c5227909519c0c99e343b3403873ec Mon Sep 17 00:00:00 2001 From: belikov Date: Tue, 29 Jan 2008 16:03:41 +0000 Subject: [PATCH] Adding to ESD the primary vertex reconstructed with TPC stand-alone --- STEER/AliESDEvent.cxx | 29 ++++++++++++++++++++++++++--- STEER/AliESDEvent.h | 15 ++++++++++++--- STEER/AliReconstruction.cxx | 4 ++-- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/STEER/AliESDEvent.cxx b/STEER/AliESDEvent.cxx index 554a1fd3a37..015450d52e8 100644 --- a/STEER/AliESDEvent.cxx +++ b/STEER/AliESDEvent.cxx @@ -74,6 +74,7 @@ ClassImp(AliESDEvent) "AliESDFMD", "AliESDVZERO", "AliESDTZERO", + "TPCVertex", "SPDVertex", "PrimaryVertex", "AliMultiplicity", @@ -100,6 +101,7 @@ AliESDEvent::AliESDEvent(): fESDFMD(0), fESDVZERO(0), fESDTZERO(0), + fTPCVertex(0), fSPDVertex(0), fPrimaryVertex(0), fSPDMult(0), @@ -134,6 +136,7 @@ AliESDEvent::AliESDEvent(const AliESDEvent& esd): fESDFMD(new AliESDFMD(*esd.fESDFMD)), fESDVZERO(new AliESDVZERO(*esd.fESDVZERO)), fESDTZERO(new AliESDTZERO(*esd.fESDTZERO)), + fTPCVertex(new AliESDVertex(*esd.fTPCVertex)), fSPDVertex(new AliESDVertex(*esd.fSPDVertex)), fPrimaryVertex(new AliESDVertex(*esd.fPrimaryVertex)), fSPDMult(new AliMultiplicity(*esd.fSPDMult)), @@ -166,6 +169,7 @@ AliESDEvent::AliESDEvent(const AliESDEvent& esd): AddObject(fESDFMD); AddObject(fESDVZERO); AddObject(fESDTZERO); + AddObject(fTPCVertex); AddObject(fSPDVertex); AddObject(fPrimaryVertex); AddObject(fSPDMult); @@ -201,6 +205,7 @@ AliESDEvent & AliESDEvent::operator=(const AliESDEvent& source) { fESDFMD = new AliESDFMD(*source.fESDFMD); fESDVZERO = new AliESDVZERO(*source.fESDVZERO); fESDTZERO = new AliESDTZERO(*source.fESDTZERO); + fTPCVertex = new AliESDVertex(*source.fTPCVertex); fSPDVertex = new AliESDVertex(*source.fSPDVertex); fPrimaryVertex = new AliESDVertex(*source.fPrimaryVertex); fSPDMult = new AliMultiplicity(*source.fSPDMult); @@ -229,6 +234,7 @@ AliESDEvent & AliESDEvent::operator=(const AliESDEvent& source) { AddObject(fESDFMD); AddObject(fESDVZERO); AddObject(fESDTZERO); + AddObject(fTPCVertex); AddObject(fSPDVertex); AddObject(fPrimaryVertex); AddObject(fSPDMult); @@ -317,6 +323,11 @@ void AliESDEvent::ResetStdContent() } if(fESDTZERO) fESDTZERO->Reset(); // CKB no clear/reset implemented + if(fTPCVertex){ + fTPCVertex->~AliESDVertex(); + new (fTPCVertex) AliESDVertex(); + fTPCVertex->SetName(fgkESDListName[kTPCVertex]); + } if(fSPDVertex){ fSPDVertex->~AliESDVertex(); new (fSPDVertex) AliESDVertex(); @@ -654,7 +665,7 @@ Bool_t AliESDEvent::Clean(Float_t *cleanPars) { Float_t dmax=cleanPars[2], zmax=cleanPars[3]; - const AliESDVertex *vertex=GetVertex(); + const AliESDVertex *vertex=GetPrimaryVertexSPD(); Bool_t vtxOK=vertex->GetStatus(); Int_t nTracks=GetNumberOfTracks(); @@ -731,7 +742,17 @@ void AliESDEvent::AddRawDataErrorLog(const AliRawDataErrorLog *log) { new(errlogs[errlogs.GetEntriesFast()]) AliRawDataErrorLog(*log); } -void AliESDEvent::SetVertex(const AliESDVertex *vertex) +void AliESDEvent::SetPrimaryVertexTPC(const AliESDVertex *vertex) +{ + // Set the TPC vertex + // use already allocated space + if(fTPCVertex){ + *fTPCVertex = *vertex; + fTPCVertex->SetName(fgkESDListName[kTPCVertex]); + } +} + +void AliESDEvent::SetPrimaryVertexSPD(const AliESDVertex *vertex) { // Set the SPD vertex // use already allocated space @@ -816,6 +837,7 @@ void AliESDEvent::GetStdContent() fESDFMD = (AliESDFMD*)fESDObjects->FindObject(fgkESDListName[kESDFMD]); fESDVZERO = (AliESDVZERO*)fESDObjects->FindObject(fgkESDListName[kESDVZERO]); fESDTZERO = (AliESDTZERO*)fESDObjects->FindObject(fgkESDListName[kESDTZERO]); + fTPCVertex = (AliESDVertex*)fESDObjects->FindObject(fgkESDListName[kTPCVertex]); fSPDVertex = (AliESDVertex*)fESDObjects->FindObject(fgkESDListName[kSPDVertex]); fPrimaryVertex = (AliESDVertex*)fESDObjects->FindObject(fgkESDListName[kPrimaryVertex]); fSPDMult = (AliMultiplicity*)fESDObjects->FindObject(fgkESDListName[kSPDMult]); @@ -867,6 +889,7 @@ void AliESDEvent::CreateStdContent() AddObject(new AliESDTZERO()); AddObject(new AliESDVertex()); AddObject(new AliESDVertex()); + AddObject(new AliESDVertex()); AddObject(new AliMultiplicity()); AddObject(new AliESDCaloTrigger()); AddObject(new AliESDCaloTrigger()); @@ -1167,7 +1190,7 @@ void AliESDEvent::CopyFromOldESD() // VZERO if (fESDOld->GetVZEROData()) SetVZEROData(fESDOld->GetVZEROData()); - if(fESDOld->GetVertex())SetVertex(fESDOld->GetVertex()); + if(fESDOld->GetVertex())SetPrimaryVertexSPD(fESDOld->GetVertex()); if(fESDOld->GetPrimaryVertex())SetPrimaryVertex(fESDOld->GetPrimaryVertex()); diff --git a/STEER/AliESDEvent.h b/STEER/AliESDEvent.h index a8127b1a805..22392d5ff60 100644 --- a/STEER/AliESDEvent.h +++ b/STEER/AliESDEvent.h @@ -63,6 +63,7 @@ public: kESDFMD, kESDVZERO, kESDTZERO, + kTPCVertex, kSPDVertex, kPrimaryVertex, kSPDMult, @@ -172,8 +173,15 @@ public: - void SetVertex(const AliESDVertex *vertex); - const AliESDVertex *GetVertex() const {return fSPDVertex;} + void SetPrimaryVertexTPC(const AliESDVertex *vertex); + const AliESDVertex *GetPrimaryVertexTPC() const {return fTPCVertex;} + + void SetPrimaryVertexSPD(const AliESDVertex *vertex); + const AliESDVertex *GetPrimaryVertexSPD() const {return fSPDVertex;} + const AliESDVertex *GetVertex() const { + //For the backward compatibily only + return GetPrimaryVertexSPD(); + } void SetPrimaryVertex(const AliESDVertex *vertex); const AliESDVertex *GetPrimaryVertex() const {return fPrimaryVertex;} @@ -340,6 +348,7 @@ protected: AliESDFMD *fESDFMD; //! FMD object containing rough multiplicity AliESDVZERO *fESDVZERO; //! VZERO object containing rough multiplicity AliESDTZERO *fESDTZERO; //! TZEROObject + AliESDVertex *fTPCVertex; //! Primary vertex estimated by the TPC AliESDVertex *fSPDVertex; //! Primary vertex estimated by the SPD AliESDVertex *fPrimaryVertex; //! Primary vertex estimated using ESD tracks AliMultiplicity *fSPDMult; //! SPD tracklet multiplicity @@ -373,7 +382,7 @@ protected: Int_t fPHOSClusters; // Number of PHOS clusters (subset of caloclusters) Int_t fFirstPHOSCluster; // First PHOS cluster in the fCaloClusters list - ClassDef(AliESDEvent,6) //ESDEvent class + ClassDef(AliESDEvent,7) //ESDEvent class }; #endif diff --git a/STEER/AliReconstruction.cxx b/STEER/AliReconstruction.cxx index ff71e1e71cc..1674ee4f014 100644 --- a/STEER/AliReconstruction.cxx +++ b/STEER/AliReconstruction.cxx @@ -894,7 +894,7 @@ Bool_t AliReconstruction::Run(const char* input, Bool_t IsOnline) // HLT tracking if (!fRunTracking.IsNull()) { if (fRunHLTTracking) { - hltesd->SetVertex(esd->GetVertex()); + hltesd->SetPrimaryVertexSPD(esd->GetVertex()); if (!RunHLTTracking(hltesd)) { if (fStopOnError) {CleanUp(file, fileOld); return kFALSE;} } @@ -1311,7 +1311,7 @@ Bool_t AliReconstruction::RunVertexFinder(AliESDEvent*& esd) AliWarning("no vertex reconstructed"); vertex = new AliESDVertex(vtxPos, vtxErr); } - esd->SetVertex(vertex); + esd->SetPrimaryVertexSPD(vertex); // if SPD multiplicity has been determined, it is stored in the ESD AliMultiplicity *mult = fVertexer->GetMultiplicity(); if(mult)esd->SetMultiplicity(mult); -- 2.43.0