Protected retrieval of statistics histograms from EventStat_temp.root when AOD is...
authoragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 Mar 2011 15:30:54 +0000 (15:30 +0000)
committeragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 Mar 2011 15:30:54 +0000 (15:30 +0000)
STEER/AliAODInputHandler.cxx
STEER/AliInputEventHandler.h

index 6f082f8..52af5cd 100644 (file)
@@ -135,9 +135,17 @@ Bool_t AliAODInputHandler::Notify(const char* path)
     
   TTree *ttree = fTree->GetTree();
   if (!ttree) ttree = fTree;
-  TString statFname(gSystem->DirName(ttree->GetCurrentFile()->GetName()));
-  statFname += "/EventStat_temp.root";
-  TFile *statFile = TFile::Open(statFname, "READ");
+  TString statFname(ttree->GetCurrentFile()->GetName());
+  Int_t indarchive = statFname.Index("#");
+  if (indarchive<0) {
+     statFname = gSystem->DirName(statFname);
+     statFname += "/";
+  } else {
+     statFname.Remove(indarchive+1);
+  }   
+  statFname += "EventStat_temp.root";
+  TFile *statFile = 0;
+  if (IsCheckStatistics()) statFile = TFile::Open(statFname, "READ");
   if (statFile) {
      TList *list = (TList*)statFile->Get("cstatsout");
      if (list) {
index 10c8ae6..d5ced99 100644 (file)
@@ -24,7 +24,8 @@ class AliInputEventHandler : public AliVEventHandler {
 
  public:
  enum EInputHandlerFlags {
-    kUserCallSelectionMask = BIT(14) // Watch out for defining base class bits
+    kUserCallSelectionMask = BIT(14), // Watch out for defining base class bits
+    kCheckStatistics       = BIT(15)
  };
     AliInputEventHandler();
     AliInputEventHandler(const char* name, const char* title);
@@ -46,6 +47,7 @@ class AliInputEventHandler : public AliVEventHandler {
     virtual void         SetInputTree(TTree* tree)                    {fTree = tree;}
     virtual void         SetEventSelection(AliVCuts* cuts)            {fEventCuts = cuts;}
     virtual void         SetUserCallSelectionMask(Bool_t flag=kTRUE)  {TObject::SetBit(kUserCallSelectionMask,flag);}
+    virtual void         SetCheckStatistics(Bool_t flag=kTRUE)        {TObject::SetBit(kCheckStatistics,flag);}
     //
     void SetInactiveBranches(const char* branches) {fBranches   = branches;}
     void SetActiveBranches  (const char* branches) {fBranchesOn = branches;}
@@ -59,6 +61,7 @@ class AliInputEventHandler : public AliVEventHandler {
     virtual TTree       *GetTree( )        const                      {return fTree;}
     virtual AliVCuts    *GetEventSelection() const                    {return fEventCuts;}
     virtual Long64_t     GetReadEntry()    const;
+    virtual Bool_t       IsCheckStatistics() const                    {return TObject::TestBit(kCheckStatistics);}
     virtual Bool_t       IsUserCallSelectionMask() const              {return TObject::TestBit(kUserCallSelectionMask);}
     virtual Bool_t       NewEvent()
        {Bool_t ne = fNewEvent; fNewEvent = kFALSE; return ne;}