]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMCEventHandler.cxx
Set max field default value to 15 kG to be above compensator dipole values
[u/mrichter/AliRoot.git] / STEER / AliMCEventHandler.cxx
index ca1855e9cabb2b830858ffa5d58e8d5dbff28046..b6425a1f95fd1230d44064c6189868e1c23a26b0 100644 (file)
@@ -66,7 +66,8 @@ AliMCEventHandler::AliMCEventHandler() :
     fReadTR(kTRUE),
     fInitOk(kFALSE),
     fSubsidiaryHandlers(0),
-    fEventsInContainer(0)
+    fEventsInContainer(0),
+    fPreReadMode(kNoPreRead)
 {
   //
   // Default constructor
@@ -97,7 +98,8 @@ AliMCEventHandler::AliMCEventHandler(const char* name, const char* title) :
     fReadTR(kTRUE),
     fInitOk(kFALSE),
     fSubsidiaryHandlers(0),
-    fEventsInContainer(0)
+    fEventsInContainer(0),
+    fPreReadMode(kNoPreRead)
 {
   //
   // Constructor
@@ -178,42 +180,55 @@ Bool_t AliMCEventHandler::GetEvent(Int_t iev)
     // Load the event number iev
     //
     // Calculate the file number
-    if (!fInitOk) return kFALSE;
+  if (!fInitOk) return kFALSE;
     
-    Int_t inew  = iev / fEventsPerFile;
-    if (inew != fFileNumber) {
-       fFileNumber = inew;
-       if (!OpenFile(fFileNumber)){
-           return kFALSE;
-       }
-    }
-    // Folder name
-    char folder[20];
-    sprintf(folder, "Event%d", iev);
-    // TreeE
-    fTreeE->GetEntry(iev);
-    // Tree K
-    fFileK->GetObject(folder, fDirK);
-    if (!fDirK) {
-       AliWarning(Form("AliMCEventHandler: Event #%5d not found\n", iev));
-       return kFALSE;
+  Int_t inew  = iev / fEventsPerFile;
+  if (inew != fFileNumber) {
+    fFileNumber = inew;
+    if (!OpenFile(fFileNumber)){
+      return kFALSE;
     }
+  }
+  // Folder name
+  char folder[20];
+  sprintf(folder, "Event%d", iev);
+  // TreeE
+  fTreeE->GetEntry(iev);
+  // Tree K
+  fFileK->GetObject(folder, fDirK);
+  if (!fDirK) {
+    AliWarning(Form("AliMCEventHandler: Event #%5d - Cannot get kinematics\n", iev));
+    return kFALSE;
+  }
     
-    fDirK ->GetObject("TreeK", fTreeK);
-    // Connect TreeK to MCEvent
-    fMCEvent->ConnectTreeK(fTreeK);
-    //Tree TR 
-    if (fFileTR) {
-       // Check which format has been read
-       fFileTR->GetObject(folder, fDirTR);
-       fDirTR->GetObject("TreeTR", fTreeTR);
-       //
-       // Connect TR to MCEvent
-       fMCEvent->ConnectTreeTR(fTreeTR);
-    }
-
+  fDirK ->GetObject("TreeK", fTreeK);
+  if (!fTreeK) {
+    AliError(Form("AliMCEventHandler: Event #%5d - Cannot get TreeK\n",iev));
+    return kFALSE;
+  }  
+  // Connect TreeK to MCEvent
+  fMCEvent->ConnectTreeK(fTreeK);
+  //Tree TR 
+  if (fFileTR) {
+    // Check which format has been read
+    fFileTR->GetObject(folder, fDirTR);
+    if (!fDirTR) {
+      AliError(Form("AliMCEventHandler: Event #%5d - Cannot get track references\n",iev));
+      return kFALSE;
+    }  
+     
+    fDirTR->GetObject("TreeTR", fTreeTR);
     //
-    return kTRUE;
+    if (!fTreeTR) {
+      AliError(Form("AliMCEventHandler: Event #%5d - Cannot get TreeTR\n",iev));
+      return kFALSE;
+    }  
+    // Connect TR to MCEvent
+    fMCEvent->ConnectTreeTR(fTreeTR);
+  }
+
+  //
+  return kTRUE;
 }
 
 Bool_t AliMCEventHandler::OpenFile(Int_t i)
@@ -286,6 +301,11 @@ Bool_t AliMCEventHandler::BeginEvent(Long64_t entry)
        }
        fMCEvent->InitEvent();
     }
+    
+    if (fPreReadMode == kLmPreRead) {
+       fMCEvent->PreReadAll();
+    }
+
     return result;
     
 }