A special getter of AliVertexer class needed for accessing all the primary vertices...
authorbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 16 Apr 2009 12:57:08 +0000 (12:57 +0000)
committerbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 16 Apr 2009 12:57:08 +0000 (12:57 +0000)
STEER/AliReconstruction.cxx
STEER/AliVertexer.h

index ff6e2b5..1285ae2 100644 (file)
@@ -2125,6 +2125,12 @@ Bool_t AliReconstruction::RunVertexFinder(AliESDEvent*& esd)
   vertex->GetSigmaXYZ(vtxErr);
 
   esd->SetPrimaryVertexSPD(vertex);
+  AliESDVertex *vpileup = NULL;
+  Int_t novertices = 0;
+  vpileup = vertexer->GetAllVertices(novertices);
+  if(novertices>1){
+    for (Int_t kk=1; kk<novertices; kk++)esd->AddPileupVertexSPD(&vpileup[kk]);
+  }
   // if SPD multiplicity has been determined, it is stored in the ESD
   AliMultiplicity *mult = vertexer->GetMultiplicity();
   if(mult)esd->SetMultiplicity(mult);
index adc2ddd..4883c30 100644 (file)
@@ -33,7 +33,12 @@ class AliVertexer : public TObject {
       { fNominalCov[0]=sx*sx; fNominalCov[2]=sy*sy; fNominalCov[5]=sz*sz;
       fNominalCov[1]=0.; fNominalCov[3]=0.; fNominalCov[4]=0.; }
     void SetVtxStart(AliESDVertex *vtx);
-
+    // the following method can be implemented in daughter classes 
+    // (e.g. in AliITSVertexer3D). It is intended to tag pile-up events
+    // novertices is the total number of vertices (1 means no pileup)
+    // The returned pointer points to an array of AliESDVertx opbjects
+    // with size=novertices
+    virtual  AliESDVertex* GetAllVertices(Int_t &novertices) const {novertices = 0; return NULL;}
     const Double_t* GetNominalPos() const {return fNominalPos;}
 
  protected: