]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODEvent.cxx
Typo fixed
[u/mrichter/AliRoot.git] / STEER / AliAODEvent.cxx
index d0d14978d215ecf7b3075bddf7544cb160a289e1..4c4110c5d4724a7c725b085d22f02e5d9253d18e 100644 (file)
@@ -30,6 +30,7 @@
 #include "AliAODEvent.h"
 #include "AliAODHeader.h"
 #include "AliAODTrack.h"
+#include "AliAODDimuon.h"
 
 ClassImp(AliAODEvent)
 
@@ -45,7 +46,8 @@ ClassImp(AliAODEvent)
                                                      "phosCells",
                                                      "caloClusters",
                                                      "fmdClusters",
-                                                     "pmdClusters"
+                                                     "pmdClusters",
+                                                     "dimuons"
                                                      
 };
 //______________________________________________________________________________
@@ -65,7 +67,8 @@ AliAODEvent::AliAODEvent() :
   fPhosCells(0),
   fCaloClusters(0),
   fFmdClusters(0),
-  fPmdClusters(0)
+  fPmdClusters(0),
+  fDimuons(0)
 {
   // default constructor
 }
@@ -74,7 +77,7 @@ AliAODEvent::AliAODEvent() :
 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)),
@@ -87,7 +90,8 @@ AliAODEvent::AliAODEvent(const AliAODEvent& aod):
   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);
@@ -102,6 +106,7 @@ AliAODEvent::AliAODEvent(const AliAODEvent& aod):
   AddObject(fCaloClusters);
   AddObject(fFmdClusters);
   AddObject(fPmdClusters);
+  AddObject(fDimuons);
   fConnected = aod.fConnected;
   GetStdContent();
   CreateStdFolders();
@@ -214,6 +219,7 @@ AliAODEvent::~AliAODEvent()
     }
 
     delete fAODFolder;
+    fAODFolder = 0;
 }
 
 //______________________________________________________________________________
@@ -235,7 +241,7 @@ void AliAODEvent::RemoveObject(TObject* obj)
 }
 
 //______________________________________________________________________________
-TObject *AliAODEvent::FindListObject(const char *objName)
+TObject *AliAODEvent::FindListObject(const char *objName) const
 {
   // Return the pointer to the object with the given name.
 
@@ -260,6 +266,7 @@ void AliAODEvent::CreateStdContent()
   AddObject(new TClonesArray("AliAODCaloCluster", 0));
   AddObject(new TClonesArray("AliAODFmdCluster", 0));
   AddObject(new TClonesArray("AliAODPmdCluster", 0));
+  AddObject(new TClonesArray("AliAODDimuon", 0));
   // set names
   SetStdNames();
 
@@ -308,6 +315,7 @@ void AliAODEvent::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++){
@@ -341,6 +349,7 @@ void AliAODEvent::GetStdContent()
   fCaloClusters  = (TClonesArray*)fAODObjects->FindObject("caloClusters");
   fFmdClusters   = (TClonesArray*)fAODObjects->FindObject("fmdClusters");
   fPmdClusters   = (TClonesArray*)fAODObjects->FindObject("pmdClusters");
+  fDimuons       = (TClonesArray*)fAODObjects->FindObject("dimuons");
 }
 
 //______________________________________________________________________________
@@ -351,7 +360,8 @@ void AliAODEvent::ResetStd(Int_t trkArrSize,
                           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 
@@ -387,6 +397,10 @@ void AliAODEvent::ResetStd(Int_t trkArrSize,
   fPmdClusters->Delete();
   if (pmdClusSize > fPmdClusters->GetSize()) 
     fPmdClusters->Expand(pmdClusSize);
+    
+  fDimuons->Delete();
+  if (dimuonArrSize > fDimuons->GetSize()) 
+    fDimuons->Expand(dimuonArrSize);
 
   // Reset the tracklets
   fTracklets->DeleteContainer();
@@ -410,6 +424,7 @@ void AliAODEvent::ClearStd()
   fCaloClusters  ->Delete();
   fFmdClusters   ->Clear();
   fPmdClusters   ->Clear();
+  fDimuons       ->Clear();
 }
 
 //_________________________________________________________________
@@ -478,6 +493,21 @@ Int_t AliAODEvent::GetMuonTracks(TRefArray *muonTracks) const
 }
 
 
+//______________________________________________________________________________
+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