AliRoot Core  v5-06-30 (35d6c57)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliQAHistNavigator.h
Go to the documentation of this file.
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice */
3 
5 //
6 // (see AliQAHistNavigator.cxx for details)
7 //
8 // Origin: Mikolaj Krzewicki, Nikhef, Mikolaj.Krzewicki@cern.ch
9 //
11 
12 #ifndef ALIQAHISTNAVIGATOR_H
13 #define ALIQAHISTNAVIGATOR_H
14 
15 #include <TNamed.h>
16 #include <TObjString.h>
17 
18 class TList;
19 class TFile;
20 class TString;
21 class TH1;
22 
23 class AliQADirList : public TNamed{
24 public:
25  AliQADirList();
26  virtual ~AliQADirList();
27  TList* GetItems() const {return fPItems;}
28  TList* GetDirs() const {return fPDirs;}
29  AliQADirList* GetParent() const {return fPParent;}
30  void SetParent(AliQADirList* const l) {fPParent = l;}
31 
32 private:
33  AliQADirList* fPParent; //pointer to parent folder
34  TList* fPItems; //List of items contained in the list
35  TList* fPDirs; //List of dirs
36  AliQADirList(const AliQADirList&); // Not implemented
37  AliQADirList& operator=(const AliQADirList&); // Not implemented
38 
39  ClassDef(AliQADirList,999) //AliQADirListDir
40 };
41 
42 class AliQADirListItem : public TObjString{
43 public:
44  AliQADirListItem(const char* s="");
45  virtual ~AliQADirListItem();
47  void SetParent(AliQADirList* const parent) {fPParent=parent;}
48 
49 private:
51  AliQADirListItem(const AliQADirListItem&); // Not implemented
52  AliQADirListItem& operator=(const AliQADirListItem&); // Not implemented
53 
54  ClassDef(AliQADirListItem,999)
55 };
56 
58 
59 public:
60  AliQAHistNavigator( Int_t run=0 );
61  virtual ~AliQAHistNavigator();
62 
63  Bool_t GetHistogram(TH1*& hist);
64  Bool_t Next();
65  Bool_t Prev();
66 
67  Bool_t SetFile (TString file );
68  Bool_t SetFile (Int_t file );
69  Bool_t SetDetector( TString detector );
70  Bool_t SetDetector( Int_t detector );
71  Bool_t SetLevel( TString type );
72  Bool_t SetLevel( Int_t type );
73  Bool_t SetItem( TString histo );
74  Bool_t SetItem( Int_t histo );
75 
76  void SetLoopAllFiles( const Bool_t s=kTRUE ) {fLoopAllFiles=s;}
77  void SetLoopAllDetectors( const Bool_t s=kTRUE ) {fLoopAllDetectors=s;}
78  void SetLoopAllLevels( const Bool_t s=kTRUE ) {fLoopAllLevels=s;}
79 
80  TString GetDetectorName();
81  TString GetLevelName();
82  TString GetItemName();
83  TString GetFileName();
84  TString GetDirName();
85  TString GetPath(AliQADirListItem* const item);
86 
90  TList* GetItemList();
92  AliQADirList* GetCurrFile() const {return fPCurrFile;}
96 
97  Bool_t InitOK() const {return fInitOK;}
98  Bool_t ReReadFiles();
99  void SetExpertMode(Bool_t mode);
100 
101  Bool_t CloneDirStructure();
102 
103 private:
104 
105  Bool_t OpenCurrentFile();
106  Bool_t OpenCurrentDirectory();
107  Bool_t GetListOfFiles();
108  Bool_t Crawl(AliQADirList* parent);
109 
110  TFile* fPFile; //pointer to current open file
111  TFile* fPCORRFile; //pointer to file with ntuple
112  TFile* fPQAResultFile; //pointer to file with AliQA object
113  Int_t fRun; //runnumber
114 
115  //The state of the navigator, these help navigate the "tree"
116  AliQADirList* fPCurrFile; //current list holding detectors
117  AliQADirList* fPCurrDetector; //current list holding levels
118  AliQADirList* fPCurrLevel; //current list holding histograms
119  AliQADirListItem* fPCurrItem; //current histogram name
120 
121  AliQADirList* fPListOfFiles; //Tree-like structure of lists within lists mirroring the layout of histogtams in files
122 
123  Bool_t fLoopAllFiles; //whether to loop over all files
124  Bool_t fLoopAllDetectors; //whether to loop over all detectors
125  Bool_t fLoopAllLevels; //whether to loop over all levels
126 
127  Bool_t fInitOK; //whether there is data to navigate
128  Bool_t fExpertMode; //expert histogram mode
129  TString fExpertDirName; //expert dir name
130  TList* fPEmptyList; //just an empty list
131 
132  AliQAHistNavigator(const AliQAHistNavigator&); // Not implemented
133  AliQAHistNavigator& operator=(const AliQAHistNavigator&); // Not implemented
134 
135  ClassDef(AliQAHistNavigator,999) //AliQAHistNavigator class
136 };
137 
138 #endif
139 
AliQADirList * GetLevelList() const
Bool_t SetFile(TString file)
AliQAHistNavigator & operator=(const AliQAHistNavigator &)
AliQADirList & operator=(const AliQADirList &)
AliQADirList * fPListOfFiles
Bool_t GetHistogram(TH1 *&hist)
AliQADirList * fPCurrLevel
AliQADirList * fPParent
AliQADirList * GetDetectorList() const
AliQADirList * GetCurrDetector() const
void SetExpertMode(Bool_t mode)
Bool_t Crawl(AliQADirList *parent)
TList * GetItems() const
AliQADirList * GetCurrFile() const
AliQADirList * fPCurrFile
AliQADirList * GetFileList() const
Bool_t SetItem(TString histo)
AliQADirListItem * GetCurrItem() const
Bool_t SetLevel(TString type)
TList * GetDirs() const
void SetParent(AliQADirList *const l)
Bool_t SetDetector(TString detector)
AliQADirListItem(const char *s="")
AliQADirList * GetParent()
AliQADirListItem & operator=(const AliQADirListItem &)
AliQADirList * fPParent
AliQADirList * fPCurrDetector
AliQADirList * GetCurrListOfFiles() const
Bool_t InitOK() const
AliQADirListItem * fPCurrItem
TString GetPath(AliQADirListItem *const item)
AliQADirList * GetParent() const
void SetLoopAllDetectors(const Bool_t s=kTRUE)
AliQAHistNavigator(Int_t run=0)
void SetParent(AliQADirList *const parent)
AliQADirList * GetCurrLevel() const
void SetLoopAllFiles(const Bool_t s=kTRUE)
void SetLoopAllLevels(const Bool_t s=kTRUE)