]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding to ESD the primary vertex reconstructed with TPC stand-alone
authorbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 29 Jan 2008 16:03:41 +0000 (16:03 +0000)
committerbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 29 Jan 2008 16:03:41 +0000 (16:03 +0000)
STEER/AliESDEvent.cxx
STEER/AliESDEvent.h
STEER/AliReconstruction.cxx

index 554a1fd3a37f8472520e2bc8f2302efe6bd92da1..015450d52e8032c6ac8ee503adebb9bf8d3c6851 100644 (file)
@@ -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());
 
index a8127b1a8056f4b2a813d2ca919b5b5bbb44131a..22392d5ff60ad82c2f0d64d3e61576f1c7f5a880 100644 (file)
@@ -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 
 
index ff71e1e71cc5e17cdb23fd39c1d7b528281b0e7f..1674ee4f014a0d54075e913698a2b7d9563e3882 100644 (file)
@@ -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);