]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMCEventHandler.cxx
Cosmetics, init values provided in c'tor
[u/mrichter/AliRoot.git] / STEER / AliMCEventHandler.cxx
index 6c6470ebb081b7b00bd0aeea9615902b2dbfde87..c1d6660d905acd7e61f02c781631638d29b94e2b 100644 (file)
@@ -79,7 +79,8 @@ AliMCEventHandler::AliMCEventHandler(const char* name, const char* title) :
     fPathName(new TString("./")),
     fExtension(""),
     fFileNumber(0),
-    fEventsPerFile(0)
+    fEventsPerFile(0),
+    fReadTR(kTRUE)
 {
     // Constructor
 }
@@ -92,13 +93,12 @@ AliMCEventHandler::~AliMCEventHandler()
     delete fFileTR;
 }
 
-Bool_t AliMCEventHandler::InitIO(Option_t* opt)
+Bool_t AliMCEventHandler::Init(Option_t* opt)
 { 
     // Initialize input
     //
     if (!(strcmp(opt, "proof")) || !(strcmp(opt, "local"))) return kTRUE;
     //
-
     fFileE = TFile::Open(Form("%sgalice.root", fPathName->Data()));
     if (!fFileE) AliFatal(Form("AliMCEventHandler:galice.root not found in directory %s ! \n", fPathName->Data()));
 
@@ -123,7 +123,7 @@ Bool_t AliMCEventHandler::InitIO(Option_t* opt)
     // Reset the event number
     fEvent      = -1;
     fFileNumber =  0;
-    
+    printf("AliMCEvenHandler::Init() %d\n",__LINE__);
     AliInfo(Form("AliMCEventHandler:Number of events in this directory %5d \n", fNEvent));
     return kTRUE;
 }
@@ -195,15 +195,21 @@ Bool_t AliMCEventHandler::OpenFile(Int_t i)
     return ok;
 }
 
-Bool_t AliMCEventHandler::BeginEvent()
+Bool_t AliMCEventHandler::BeginEvent(Long64_t entry)
 { 
     // Read the next event
-    fEvent++;
-    if (fEvent >= fNEvent) {
-       AliWarning(Form("AliMCEventHandler: Event number out of range %5d\n", fEvent));
+    if (entry == -1) {
+       fEvent++;
+       entry = fEvent;
+    } else {
+       fEvent = entry;
+    }
+
+    if (entry >= fNEvent) {
+       AliWarning(Form("AliMCEventHandler: Event number out of range %5d %5d\n", entry,fNEvent));
        return kFALSE;
     }
-    return GetEvent(fEvent);
+    return GetEvent(entry);
 }
 
 Int_t AliMCEventHandler::GetParticleAndTR(Int_t i, TParticle*& particle, TClonesArray*& trefs)
@@ -237,21 +243,22 @@ Bool_t AliMCEventHandler::Notify(const char *path)
     
     ResetIO();
     InitIO("");
+
     return kTRUE;
 }
-    
+
 void AliMCEventHandler::ResetIO()
 {
 //  Clear header and stack
     fMCEvent->Clean();
     
-// Delete Tree E    
+// Delete Tree E
     delete fTreeE; fTreeE = 0;
-    
+
 // Reset files
-    if (fFileE)  delete fFileE;
-    if (fFileK)  delete fFileK;
-    if (fFileTR) delete fFileTR;
+    if (fFileE)  delete fFileE; fFileE = 0;
+    if (fFileK)  delete fFileK; fFileK = 0;
+    if (fFileTR) delete fFileTR; fFileTR = 0;
 }