#include "AliAODEvent.h"
#include "AliAODHeader.h"
#include "AliAODTrack.h"
+#include "AliAODDimuon.h"
ClassImp(AliAODEvent)
"phosCells",
"caloClusters",
"fmdClusters",
- "pmdClusters"
+ "pmdClusters",
+ "dimuons"
};
//______________________________________________________________________________
fPhosCells(0),
fCaloClusters(0),
fFmdClusters(0),
- fPmdClusters(0)
+ fPmdClusters(0),
+ fDimuons(0)
{
// default constructor
}
AliAODEvent::AliAODEvent(const AliAODEvent& aod):
AliVEvent(aod),
fAODObjects(new TList()),
- fAODFolder(new TFolder()),
+ fAODFolder(0),
fConnected(kFALSE),
fHeader(new AliAODHeader(*aod.fHeader)),
fTracks(new TClonesArray(*aod.fTracks)),
fPhosCells(new AliAODCaloCells(*aod.fPhosCells)),
fCaloClusters(new TClonesArray(*aod.fCaloClusters)),
fFmdClusters(new TClonesArray(*aod.fFmdClusters)),
- fPmdClusters(new TClonesArray(*aod.fPmdClusters))
+ fPmdClusters(new TClonesArray(*aod.fPmdClusters)),
+ fDimuons(new TClonesArray(*aod.fDimuons))
{
// Copy constructor
AddObject(fHeader);
AddObject(fCaloClusters);
AddObject(fFmdClusters);
AddObject(fPmdClusters);
+ AddObject(fDimuons);
fConnected = aod.fConnected;
GetStdContent();
CreateStdFolders();
}
delete fAODFolder;
+ fAODFolder = 0;
}
//______________________________________________________________________________
}
//______________________________________________________________________________
-TObject *AliAODEvent::FindListObject(const char *objName)
+TObject *AliAODEvent::FindListObject(const char *objName) const
{
// Return the pointer to the object with the given name.
AddObject(new TClonesArray("AliAODCaloCluster", 0));
AddObject(new TClonesArray("AliAODFmdCluster", 0));
AddObject(new TClonesArray("AliAODPmdCluster", 0));
+ AddObject(new TClonesArray("AliAODDimuon", 0));
// set names
SetStdNames();
void AliAODEvent::CreateStdFolders()
{
// Create the standard folder structure
+ if(fAODFolder)delete fAODFolder;
fAODFolder = gROOT->GetRootFolder()->AddFolder("AOD", "AOD");
if(fAODObjects->GetEntries()==kAODListN){
for(int i = 0;i < fAODObjects->GetEntries();i++){
fCaloClusters = (TClonesArray*)fAODObjects->FindObject("caloClusters");
fFmdClusters = (TClonesArray*)fAODObjects->FindObject("fmdClusters");
fPmdClusters = (TClonesArray*)fAODObjects->FindObject("pmdClusters");
+ fDimuons = (TClonesArray*)fAODObjects->FindObject("dimuons");
}
//______________________________________________________________________________
Int_t jetSize,
Int_t caloClusSize,
Int_t fmdClusSize,
- Int_t pmdClusSize
+ Int_t pmdClusSize,
+ Int_t dimuonArrSize
)
{
// deletes content of standard arrays and resets size
fPmdClusters->Delete();
if (pmdClusSize > fPmdClusters->GetSize())
fPmdClusters->Expand(pmdClusSize);
+
+ fDimuons->Delete();
+ if (dimuonArrSize > fDimuons->GetSize())
+ fDimuons->Expand(dimuonArrSize);
// Reset the tracklets
fTracklets->DeleteContainer();
fCaloClusters ->Delete();
fFmdClusters ->Clear();
fPmdClusters ->Clear();
+ fDimuons ->Clear();
}
//_________________________________________________________________
}
+//______________________________________________________________________________
+Int_t AliAODEvent::GetNumberOfMuonTracks() const
+{
+ // get number of muon tracks
+ Int_t nMuonTracks=0;
+ AliAODTrack *track = 0;
+ for (Int_t iTrack = 0; iTrack < GetNTracks(); iTrack++) {
+ if ((track = GetTrack(iTrack))->IsMuonTrack()) {
+ nMuonTracks++;
+ }
+ }
+
+ return nMuonTracks;
+}
+
void AliAODEvent::ReadFromTree(TTree *tree, Option_t* opt /*= ""*/)
{
// Connects aod event to tree