]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDInputHandlerRP.cxx
adding missing const
[u/mrichter/AliRoot.git] / STEER / AliESDInputHandlerRP.cxx
index 48987725549c1f85d0eed57ad0280f276b195fd8..ad9b55b043fdc71cb2ff42e3ac6a80764d3dca4d 100644 (file)
@@ -27,6 +27,7 @@
 #include <TSystemDirectory.h>
 #include <TString.h>
 #include <TObjString.h>
+#include <TObjArray.h>
 #include <TProcessID.h>
 
 #include "AliESDInputHandlerRP.h"
@@ -39,12 +40,11 @@ ClassImp(AliESDInputHandlerRP)
 //______________________________________________________________________________
 AliESDInputHandlerRP::AliESDInputHandlerRP() :
     AliESDInputHandler(),
-    fRTrees(   new TList()),
+    fRTrees(   new TObjArray()),
     fRFiles(   new TList()),
     fDetectors(new TList()),
     fDirR(0),
     fEventNumber(-1),
-    fNEvent(-1),
     fFileNumber(0),
     fEventsPerFile(0),
     fExtension(""),
@@ -58,12 +58,11 @@ AliESDInputHandlerRP::AliESDInputHandlerRP() :
 //______________________________________________________________________________
 AliESDInputHandlerRP::AliESDInputHandlerRP(const char* name, const char* title):
     AliESDInputHandler(name, title),
-    fRTrees(   new TList()),
+    fRTrees(   new TObjArray()),
     fRFiles(   new TList()),
     fDetectors(new TList()),
     fDirR(0),
     fEventNumber(-1),
-    fNEvent(-1),
     fFileNumber(0),
     fEventsPerFile(0),
     fExtension(""),
@@ -89,24 +88,29 @@ Bool_t AliESDInputHandlerRP::Init(Option_t* opt)
     TIter next(fDetectors);
     TNamed* det;
     TFile* file = 0;
-    while (det = ((TNamed*) next()))
+    while ((det = (TNamed*) next()))
     {
        if (!fIsArchive) {
            file = TFile::Open(Form("%s%s.RecPoints.root", fPathName->Data(), det->GetName()));
        } else {
            file = TFile::Open(Form("%s#%s.RecPoints.root", fPathName->Data(), det->GetName()));
        }
-       if (!file) AliFatal(Form("AliESDInputHandlerRP: TPC.RecPoints.root not found in %s ! \n", fPathName->Data()));
+       if (!file) AliFatal(Form("AliESDInputHandlerRP: %s.RecPoints.root not found in %s ! \n", det->GetName(), fPathName->Data()));
        fRFiles->Add(file);
     }
-    fEventsPerFile = file->GetNkeys() - file->GetNProcessIDs();
+
+    if (file) {
+       fEventsPerFile = file->GetNkeys() - file->GetNProcessIDs();
+    } else {
+       AliFatal(Form("AliESDInputHandlerRP: No file with RecPoints found in %s ! \n", fPathName->Data()));
+    }
+    
+
     // Reset the event number
     fEventNumber      = -1;
     fFileNumber       =  0;
     // Get number of events from esd tree 
-    fNEvent           =  fTree->GetEntries();
-    
-    printf("AliESDInputHandler::Init() %d\n",__LINE__);
+    printf("AliESDInputHandler::Init() %d %d\n",__LINE__, fNEvents);
     return kTRUE;
 }
 
@@ -123,8 +127,8 @@ Bool_t AliESDInputHandlerRP::BeginEvent(Long64_t entry)
        fEventNumber = entry;
     }
     
-    if (entry >= fNEvent) {
-       AliWarning(Form("AliESDInputHandlerRP: Event number out of range %5d %5d\n", entry, fNEvent));
+    if (entry >= fNEvents) {
+       AliWarning(Form("AliESDInputHandlerRP: Event number out of range %5d %5d\n", entry, fNEvents));
        return kFALSE;
     }
     return LoadEvent(entry);
@@ -148,17 +152,18 @@ Bool_t AliESDInputHandlerRP::LoadEvent(Int_t iev)
     // Tree R
     TIter next(fRFiles);
     TFile* file;
-    while (file = ((TFile*) next()))
+    Int_t idx = 0;
+    
+    while ((file = (TFile*) next()))
     {
        file->GetObject(folder, fDirR);
        if (!fDirR) {
            AliWarning(Form("AliESDInputHandlerRP: Event #%5d not found\n", iev));
            return kFALSE;
        }
-       TTree* tree;
-       fDirR ->GetObject("TreeR", tree);
-       fRTrees->Add(tree);
-       tree->ls();
+       TTree* tree = 0;
+       fDirR->GetObject("TreeR", tree);
+       fRTrees->AddAt(tree, idx++);
     }
     return kTRUE;
 }
@@ -177,7 +182,7 @@ Bool_t AliESDInputHandlerRP::OpenFile(Int_t i)
     TIter next(fDetectors);
     TNamed* det;
     TFile* file;
-    while (det = ((TNamed*) next()))
+    while ((det = (TNamed*) next()))
     {
        if (!fIsArchive) {
            file = TFile::Open(Form("%s%s.RecPoints%s.root", fPathName->Data(), det->GetName(), fExtension));
@@ -213,6 +218,7 @@ Bool_t AliESDInputHandlerRP::Notify(const char *path)
     if (fPathName->Contains(".zip")) fIsArchive = kTRUE;
 
     TSeqCollection* members;
+
     
     if (fIsArchive) {
        // Archive
@@ -224,13 +230,14 @@ Bool_t AliESDInputHandlerRP::Notify(const char *path)
        TSystemDirectory dir(".", fPathName->Data());
        members = dir.GetListOfFiles();
     }
-    
+
     TIter next(members);
     TFile* entry;
     Int_t ien = 0;
+    fDetectors->Delete();
+    
     while ( (entry = (TFile*) next()) )
     {
-       printf("File %s \n", entry->GetName());
        TString name(entry->GetName());
        TObjArray* tokens = name.Tokenize(".");
        Int_t ntok = tokens->GetEntries();
@@ -238,13 +245,14 @@ Bool_t AliESDInputHandlerRP::Notify(const char *path)
        TString str = ((TObjString*) tokens->At(1))->GetString();
        if (!(strcmp(str.Data(), "RecPoints"))){
            TString det = ((TObjString*) tokens->At(0))->GetString();
-           printf("Name  %s \n", det.Data());
-           TNamed* entry = new TNamed(det.Data(), det.Data());
-           entry->SetUniqueID(ien++);
-           fDetectors->Add(entry);
+           printf("Found file with RecPoints for %s \n", det.Data());
+           TNamed* ent = new TNamed(det.Data(), det.Data());
+           fRTrees->AddAt(0, ien);
+           ent->SetUniqueID(ien++);
+           fDetectors->Add(ent);
        }
     } // loop over files
-    
+
 
     // Now we have the path and the list of detectors
     
@@ -254,7 +262,7 @@ Bool_t AliESDInputHandlerRP::Notify(const char *path)
     InitIO("");
     // Some clean-up
     members->Delete();
-    //
+
     return kTRUE;
 }
 
@@ -269,12 +277,11 @@ Bool_t AliESDInputHandlerRP::FinishEvent()
 void AliESDInputHandlerRP::ResetIO()
 {
 // Delete trees and files
-    fRTrees->Delete();
     fRFiles->Delete();
     fExtension="";
 }
 
-TTree* AliESDInputHandlerRP::GetTreeR(char* det)
+TTree* AliESDInputHandlerRP::GetTreeR(const char* det)
 {
 // Return pointer to RecPoint tree for detector det
     TNamed* entry = (TNamed*) (fDetectors->FindObject(det));