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