"AliESDFMD",
"AliESDVZERO",
"AliESDTZERO",
+ "TPCVertex",
"SPDVertex",
"PrimaryVertex",
"AliMultiplicity",
fESDFMD(0),
fESDVZERO(0),
fESDTZERO(0),
+ fTPCVertex(0),
fSPDVertex(0),
fPrimaryVertex(0),
fSPDMult(0),
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)),
AddObject(fESDFMD);
AddObject(fESDVZERO);
AddObject(fESDTZERO);
+ AddObject(fTPCVertex);
AddObject(fSPDVertex);
AddObject(fPrimaryVertex);
AddObject(fSPDMult);
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);
AddObject(fESDFMD);
AddObject(fESDVZERO);
AddObject(fESDTZERO);
+ AddObject(fTPCVertex);
AddObject(fSPDVertex);
AddObject(fPrimaryVertex);
AddObject(fSPDMult);
}
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();
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();
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
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]);
AddObject(new AliESDTZERO());
AddObject(new AliESDVertex());
AddObject(new AliESDVertex());
+ AddObject(new AliESDVertex());
AddObject(new AliMultiplicity());
AddObject(new AliESDCaloTrigger());
AddObject(new AliESDCaloTrigger());
// 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());
kESDFMD,
kESDVZERO,
kESDTZERO,
+ kTPCVertex,
kSPDVertex,
kPrimaryVertex,
kSPDMult,
- 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;}
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
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
// 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;}
}
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);