#include "AliLog.h"
#include "AliESDACORDE.h"
#include "AliESDHLTDecision.h"
+#include "AliCentrality.h"
ClassImp(AliESDEvent)
// here we define the names, some classes are no TNamed, therefore the classnames
// are the Names
const char* AliESDEvent::fgkESDListName[kESDListN] = {"AliESDRun",
- "AliESDHeader",
- "AliESDZDC",
- "AliESDFMD",
- "AliESDVZERO",
- "AliESDTZERO",
- "TPCVertex",
- "SPDVertex",
- "PrimaryVertex",
- "AliMultiplicity",
- "PHOSTrigger",
- "EMCALTrigger",
- "SPDPileupVertices",
- "TrkPileupVertices",
- "Tracks",
- "MuonTracks",
- "PmdTracks",
- "TrdTracks",
- "V0s",
- "Cascades",
- "Kinks",
- "CaloClusters",
- "EMCALCells",
- "PHOSCells",
- "AliRawDataErrorLogs",
- "AliESDACORDE"};
+ "AliESDHeader",
+ "AliESDZDC",
+ "AliESDFMD",
+ "AliESDVZERO",
+ "AliESDTZERO",
+ "TPCVertex",
+ "SPDVertex",
+ "PrimaryVertex",
+ "AliMultiplicity",
+ "PHOSTrigger",
+ "EMCALTrigger",
+ "SPDPileupVertices",
+ "TrkPileupVertices",
+ "Tracks",
+ "MuonTracks",
+ "PmdTracks",
+ "TrdTracks",
+ "V0s",
+ "Cascades",
+ "Kinks",
+ "CaloClusters",
+ "EMCALCells",
+ "PHOSCells",
+ "AliRawDataErrorLogs",
+ "AliESDACORDE",
+ "AliTOFHeader"};
//______________________________________________________________________________
AliESDEvent::AliESDEvent():
fESDOld(0),
fESDFriendOld(0),
fConnected(kFALSE),
- fUseOwnList(kFALSE)
+ fUseOwnList(kFALSE),
+ fTOFHeader(0),
+ fCentrality(0)
{
}
//______________________________________________________________________________
fESDOld(esd.fESDOld ? new AliESD(*esd.fESDOld) : 0),
fESDFriendOld(esd.fESDFriendOld ? new AliESDfriend(*esd.fESDFriendOld) : 0),
fConnected(esd.fConnected),
- fUseOwnList(esd.fUseOwnList)
-
+ fUseOwnList(esd.fUseOwnList),
+ fTOFHeader(new AliTOFHeader(*esd.fTOFHeader)),
+ fCentrality(new AliCentrality(*esd.fCentrality))
{
// CKB init in the constructor list and only add here ...
AddObject(fESDRun);
AddObject(fPHOSCells);
AddObject(fErrorLogs);
AddObject(fESDACORDE);
+ AddObject(fTOFHeader);
GetStdContent();
}
}
- fConnected = source.fConnected;
+ fCentrality = source.fCentrality;
+
+ fConnected = source.fConnected;
fUseOwnList = source.fUseOwnList;
return *this;
-
}
delete fESDObjects;
fESDObjects = 0;
}
-
+ if (fCentrality) delete fCentrality;
}
((TClonesArray*)pObject)->Delete();
}
else if(!pObject->InheritsFrom(TCollection::Class())){
- ResetWithPlacementNew(pObject);
+ TClass *pClass = TClass::GetClass(pObject->ClassName());
+ if (pClass && pClass->GetListOfMethods()->FindObject("Clear")) {
+ AliDebug(1, Form("Clear for object %s class %s", pObject->GetName(), pObject->ClassName()));
+ pObject->Clear();
+ }
+ else {
+ AliDebug(1, Form("ResetWithPlacementNew for object %s class %s", pObject->GetName(), pObject->ClassName()));
+ ResetWithPlacementNew(pObject);
+ }
}
else{
AliWarning(Form("No reset for %s \n",
fSPDMult->~AliMultiplicity();
new (fSPDMult) AliMultiplicity();
}
- if(fPHOSTrigger)fPHOSTrigger->Reset();
- if(fEMCALTrigger)fEMCALTrigger->Reset();
+ if(fTOFHeader){
+ fTOFHeader->~AliTOFHeader();
+ new (fTOFHeader) AliTOFHeader();
+ //fTOFHeader->SetName(fgkESDListName[kTOFHeader]);
+ }
+ if(fPHOSTrigger)fPHOSTrigger->DeAllocate();
+ if(fEMCALTrigger)fEMCALTrigger->DeAllocate();
if(fSPDPileupVertices)fSPDPileupVertices->Delete();
if(fTrkPileupVertices)fTrkPileupVertices->Delete();
if(fTracks)fTracks->Delete();
fPHOSCells = (AliESDCaloCells*)fESDObjects->FindObject(fgkESDListName[kPHOSCells]);
fErrorLogs = (TClonesArray*)fESDObjects->FindObject(fgkESDListName[kErrorLogs]);
fESDACORDE = (AliESDACORDE*)fESDObjects->FindObject(fgkESDListName[kESDACORDE]);
-
+ fTOFHeader = (AliTOFHeader*)fESDObjects->FindObject(fgkESDListName[kTOFHeader]);
}
void AliESDEvent::SetStdNames(){
AddObject(new AliESDCaloCells());
AddObject(new TClonesArray("AliRawDataErrorLog",0));
AddObject(new AliESDACORDE());
+ AddObject(new AliTOFHeader());
// check the order of the indices against enum...
if(bname.CompareTo("AliESDfriend")==0)
{
// AliESDfriend does not have a name ...
- TBranch *br = tree->GetBranch(bname.Data());
+ TBranch *br = tree->GetBranch("ESDfriend.");
if (br) tree->SetBranchAddress("ESDfriend.",fESDObjects->GetObjectRef(el));
}
else{
else return IsPileupFromSPD(5,0.8);
}
+void AliESDEvent::SetTOFHeader(const AliTOFHeader *header)
+{
+ //
+ // Set the TOF event_time
+ //
+
+ if (fTOFHeader) {
+ *fTOFHeader=*header;
+ //fTOFHeader->SetName(fgkESDListName[kTOFHeader]);
+ }
+ else {
+ // for analysis of reconstructed events
+ // when this information is not avaliable
+ fTOFHeader = new AliTOFHeader(*header);
+ //AddObject(fTOFHeader);
+ }
+
+}
+
+AliCentrality* AliESDEvent::GetCentrality()
+{
+ if (!fCentrality) fCentrality = new AliCentrality();
+ return fCentrality;
+}