]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisSelector.cxx
o updates (Giacomo, Pietro)
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisSelector.cxx
index 24483203cffd25cc61e7d3be03003b19e3555b92..a77bc4353ffc4ddca92b8d71aaeaec0d5d97997f 100644 (file)
@@ -107,7 +107,6 @@ void AliAnalysisSelector::Begin(TTree *)
 void AliAnalysisSelector::SlaveBegin(TTree *tree)
 {
 // Called on each worker. We "unpack" analysis manager here and call InitAnalysis.
-   TObject::SetObjectStat(kFALSE);
    RestoreAnalysisManager();
    if (fAnalysis) {
       if (fAnalysis->GetDebugLevel()>1) {
@@ -136,19 +135,29 @@ Bool_t AliAnalysisSelector::Notify()
 Bool_t AliAnalysisSelector::Process(Long64_t entry)
 {
 // Event loop.
+   static Int_t count = 0;
+   count++;
    if (fAnalysis->GetDebugLevel() > 1) {
       cout << "->AliAnalysisSelector::Process()" << endl;
    }
-   Int_t nobjCount = TProcessID::GetObjectCount();
+   static Bool_t init=kTRUE;
+   static Int_t nobjCount = 0;
+   if(init) {
+     nobjCount = TProcessID::GetObjectCount();
+     init=kFALSE;
+   }
+   TProcessID::SetObjectCount(nobjCount);
    Int_t returnCode = fAnalysis->GetEntry(entry);
    if (returnCode <= 0) {
       cout << "Error retrieving event:" << entry << " Skipping ..." << endl;
       fAnalysis->CountEvent(1,0,1,0);
+      // Try to skip file
+      Abort("Bad stream to file. Trying next image.", kAbortFile);
+      return kFALSE;
    } else {
       fAnalysis->ExecAnalysis();
       if (returnCode<100000000) fAnalysis->CountEvent(1,1,0,0);
    }   
-   TProcessID::SetObjectCount(nobjCount);
    if (fAnalysis->GetDebugLevel() > 1) {
       cout << "<-AliAnalysisSelector::Process()" << endl;
    }