ClassImp(AliAODEvent)
+// definition of std AOD member names
+ const char* AliAODEvent::fAODListName[kAODListN] = {"header",
+ "tracks",
+ "vertices",
+ "v0s",
+ "tracklets",
+ "jets",
+ "caloCells",
+ "caloClusters",
+ "fmdClusters",
+ "pmdClusters"
+};
//______________________________________________________________________________
AliAODEvent::AliAODEvent() :
+ AliVEvent(),
fAODObjects(new TList()),
fHeader(0),
fTracks(0),
fVertices(0),
- fClusters(0),
+ fV0s(0),
+ fTracklets(0),
fJets(0),
- fTracklets(0)
+ fCaloCells(0),
+ fCaloClusters(0),
+ fFmdClusters(0),
+ fPmdClusters(0)
{
// default constructor
}
}
//______________________________________________________________________________
-TObject *AliAODEvent::GetObject(const char *objName) const
+TObject *AliAODEvent::FindListObject(const char *objName)
{
// Return the pointer to the object with the given name.
AddObject(new AliAODHeader());
AddObject(new TClonesArray("AliAODTrack", 0));
AddObject(new TClonesArray("AliAODVertex", 0));
- AddObject(new TClonesArray("AliAODCluster", 0));
- AddObject(new TClonesArray("AliAODJet", 0));
+ AddObject(new TClonesArray("AliAODv0", 0));
AddObject(new AliAODTracklets());
+ AddObject(new TClonesArray("AliAODJet", 0));
+ AddObject(new AliAODCaloCells());
+ AddObject(new TClonesArray("AliAODCaloCluster", 0));
+ AddObject(new TClonesArray("AliAODFmdCluster", 0));
+ AddObject(new TClonesArray("AliAODPmdCluster", 0));
+
+ // set names
+ SetStdNames();
// read back pointers
GetStdContent();
- // set names
- fTracks->SetName("tracks");
- fVertices->SetName("vertices");
- fClusters->SetName("clusters");
- fJets->SetName("jets");
- fTracklets->SetName("tracklets");
+ return;
}
+//______________________________________________________________________________
+void AliAODEvent::SetStdNames()
+{
+ // introduce the standard naming
+
+ if(fAODObjects->GetEntries()==kAODListN){
+ for(int i = 0;i < fAODObjects->GetEntries();i++){
+ TObject *fObj = fAODObjects->At(i);
+ if(fObj->InheritsFrom("TNamed")){
+ ((TNamed*)fObj)->SetName(fAODListName[i]);
+ }
+ else if(fObj->InheritsFrom("TClonesArray")){
+ ((TClonesArray*)fObj)->SetName(fAODListName[i]);
+ }
+ }
+ }
+ else{
+ printf("%s:%d SetStdNames() Wrong number of Std Entries \n",(char*)__FILE__,__LINE__);
+ }
+}
+
//______________________________________________________________________________
void AliAODEvent::GetStdContent()
{
// set pointers for standard content
- fHeader = (AliAODHeader*)fAODObjects->At(0);
- fTracks = (TClonesArray*)fAODObjects->At(1);
- fVertices = (TClonesArray*)fAODObjects->At(2);
- fClusters = (TClonesArray*)fAODObjects->At(3);
- fJets = (TClonesArray*)fAODObjects->At(4);
- fTracklets = (AliAODTracklets*)fAODObjects->At(5);
+ fHeader = (AliAODHeader*)fAODObjects->FindObject("header");
+ fTracks = (TClonesArray*)fAODObjects->FindObject("tracks");
+ fVertices = (TClonesArray*)fAODObjects->FindObject("vertices");
+ fV0s = (TClonesArray*)fAODObjects->FindObject("v0s");
+ fTracklets = (AliAODTracklets*)fAODObjects->FindObject("tracklets");
+ fJets = (TClonesArray*)fAODObjects->FindObject("jets");
+ fCaloCells = (AliAODCaloCells*)fAODObjects->FindObject("caloCells");
+ fCaloClusters = (TClonesArray*)fAODObjects->FindObject("caloClusters");
+ fFmdClusters = (TClonesArray*)fAODObjects->FindObject("fmdClusters");
+ fPmdClusters = (TClonesArray*)fAODObjects->FindObject("pmdClusters");
}
//______________________________________________________________________________
-void AliAODEvent::ResetStd(Int_t trkArrSize, Int_t vtxArrSize)
+void AliAODEvent::ResetStd(Int_t trkArrSize,
+ Int_t vtxArrSize,
+ Int_t v0ArrSize,
+ Int_t jetSize,
+ Int_t caloClusSize,
+ Int_t fmdClusSize,
+ Int_t pmdClusSize)
{
- // deletes content of standard arrays and resets size
+ // deletes content of standard arrays and resets size
+
fTracks->Delete();
if (trkArrSize > fTracks->GetSize())
fTracks->Expand(trkArrSize);
fVertices->Delete();
if (vtxArrSize > fVertices->GetSize())
fVertices->Expand(vtxArrSize);
+
+ fV0s->Delete();
+ if (v0ArrSize > fV0s->GetSize())
+ fV0s->Expand(v0ArrSize);
+
+ fJets->Delete();
+ if (jetSize > fJets->GetSize())
+ fJets->Expand(jetSize);
+
+ fCaloClusters->Delete();
+ if (caloClusSize > fCaloClusters->GetSize())
+ fCaloClusters->Expand(caloClusSize);
+
+ fFmdClusters->Delete();
+ if (fmdClusSize > fFmdClusters->GetSize())
+ fFmdClusters->Expand(fmdClusSize);
+
+ fPmdClusters->Delete();
+ if (pmdClusSize > fPmdClusters->GetSize())
+ fPmdClusters->Expand(pmdClusSize);
}
void AliAODEvent::ClearStd()
{
// clears the standard arrays
- fTracks ->Clear();
- fVertices ->Clear();
- fClusters ->Clear();
- fJets ->Clear();
- fTracklets->DeleteContainer();
+ fTracks ->Clear();
+ fVertices ->Clear();
+ fV0s ->Clear();
+ fTracklets ->DeleteContainer();
+ fJets ->Clear();
+ fCaloCells ->DeleteContainer();
+ fCaloClusters ->Clear();
+ fFmdClusters ->Clear();
+ fPmdClusters ->Clear();
}
//______________________________________________________________________________
AliAODTrack *track = 0;
for (Int_t iTrack = 0; iTrack < GetNTracks(); iTrack++) {
- if ((track = GetTrack(iTrack))->GetMostProbablePID() == AliAODTrack::kMuon) {
+ if ((track = GetTrack(iTrack))->IsMuonTrack()) {
muonTracks->Add(track);
}
}
- return muonTracks->GetSize();
+ return muonTracks->GetEntriesFast();
}
-
void AliAODEvent::ReadFromTree(TTree *tree)
{
- // connects aod event to tree
-
- fAODObjects = (TList*)((AliAODEvent*)tree->GetTree()->GetUserInfo()->FindObject("AliAODEvent"))->GetList();
- TIter next(fAODObjects);
- TNamed *el;
- while((el=(TNamed*)next())){
- TString bname(el->GetName());
- tree->SetBranchAddress(bname.Data(),fAODObjects->GetObjectRef(el));
- }
- GetStdContent();
+ // connects aod event to tree
+
+ // load the TTree
+ tree->LoadTree(0);
+
+ fAODObjects = (TList*)((AliAODEvent*)tree->GetTree()->GetUserInfo()->FindObject("AliAODEvent"))->GetList();
+ TIter next(fAODObjects);
+ TNamed *el;
+ while((el=(TNamed*)next())){
+ TString bname(el->GetName());
+ tree->SetBranchAddress(bname.Data(),fAODObjects->GetObjectRef(el));
+ }
+ GetStdContent();
}
+//______________________________________________________________________________
+void AliAODEvent::Print(Option_t *) const
+{
+ // Something meaningful should be implemented here.
+
+ return;
+}