Corrections to obey our coding conventions
[u/mrichter/AliRoot.git] / STEER / AliConfig.h
1 #ifndef ALICONFIG_H
2 #define ALICONFIG_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include <TNamed.h>
9 class TDatabasePDG;
10 class TFolder;
11 class TString;
12 class TVirtualMC;
13
14 class AliConfig;
15 class AliDetector;
16 class AliGenerator;
17 class AliModule;
18 class AliTasks;
19
20 class AliConfig : public TNamed {
21   
22 public:
23   
24   AliConfig();
25   
26   virtual ~ AliConfig (); 
27
28   void       Add(TDatabasePDG *pdg);
29   void       Add(char *list);
30   
31   void       Add(AliGenerator *generator,const char* eventfolder = fgkDefaultEventFolderName);
32   void       Add (TVirtualMC *mc,const char* eventfolder = fgkDefaultEventFolderName);
33   void       Add (AliModule *module,const char* eventfolder = fgkDefaultEventFolderName);
34   void       Add (AliDetector *detector,const char* eventfolder = fgkDefaultEventFolderName);
35
36   Int_t      AddDetector(const char* evntfoldername,const char *name, const char* title);
37   Int_t      AddDetector(TFolder* evntfolder,const char *name, const char* title);
38   
39   Int_t      CreateDetectorFolders(const char* evntfoldername,const char *name, const char* title);//Used by AliRunGetter
40   Int_t      CreateDetectorFolders(TFolder* evntfolder,const char *name, const char* title);//Used by AliRunGetter
41   Int_t      CreateDetectorTasks(const char *name, const char* title);
42   
43   static     AliConfig* Instance();
44   
45   TFolder*              BuildEventFolder(const char* name,const char* tilte);
46   
47   TFolder*              GetTopFolder(){return fTopFolder;}
48   TFolder*              GetTaskFolder(){return fTaskFolder;}
49   TFolder*              GetConstFolder(){return fConstFolder;}
50
51   static const TString& GetModulesFolderName(){return fgkModuleFolderName;}
52   
53   TString               GetQATaskName() const; //returns path to QA tasks
54   TString               GetDigitizerTaskName () const;
55   TString               GetSDigitizerTaskName () const;
56   TString               GetReconstructionerTaskName () const;
57   TString               GetTrackerTaskName () const;
58   TString               GetPIDTaskName () const;
59   
60   
61   const TString&        GetQAFolderName() const; //returns path to folder with QA output
62   
63   const TString&        GetDataFolderName() const;//returns name of data folder
64   
65   static const TString  fgkTopFolderName; //name of top AliRoot folder
66  
67   static const TString  fgkDefaultEventFolderName; //name of event folder
68   static const TString  fgkTasksFolderName;        //name of task folder
69   static const TString  fgkConstantsFolderName;    //name of constants folder
70   
71   static const TString  fgkDataFolderName;         //name of data folde
72   static const TString  fgkConditionsFolderName;   //name of conditions folder
73   static const TString  fgkConfigurationFolderName;//name of configuration foolder
74   static const TString  fgkHeaderFolderName;       //name of header folder
75   
76   static const TString  fgkDigitizerTaskName;      //name of digitizer task
77   static const TString  fgkSDigitizerTaskName;     //name of sdigitizer task
78   static const TString  fgkQATaskName;             //name of Q-A task
79   static const TString  fgkReconstructionerTaskName;//name of reconstructioner
80                                                     //task
81   static const TString  fgkTrackerTaskName;        //name of tracker task 
82   static const TString  fgkPIDTaskName;            //name of PID task
83   
84   static const TString  fgkCalibrationFolderName;  //name of calibration folder
85   static const TString  fgkAligmentFolderName;     //name of alignment folder
86   static const TString  fgkQAFolderName;           //name of QA folder
87   
88   static const TString  fgkFieldFolderName;        //name of magn.field folder
89   static const TString  fgkGeneratorsFolderName;   //name of generator folder
90   static const TString  fgkVirtualMCFolderName;    //name of virtual MC folder
91
92 private:
93   AliConfig(const char * name, const char * title );
94   AliConfig(const AliConfig&);
95   AliConfig& operator=(const AliConfig&);
96
97   void          AddInFolder (const char * dir, TObject *obj);
98   Int_t         AddSubTask(const char *taskname, const char* name, const char* title);
99   Int_t         AddSubFolder(TFolder* topfolder, const char* infoler, //helper method
100                      const char* newfoldname, const char* newfoldtitle);
101   TObject*      FindInFolder (const char *dir, const char *name);
102   
103   // folders
104   TFolder*              fTopFolder;    //pointer to top folder
105   TFolder*              fTaskFolder;   //pointer to task folder
106   TFolder*              fConstFolder;  //pointer to constants folder
107
108   static const TString  fgkPDGFolderName; //name of PDG folder
109   static const TString  fgkGeneratorFolderName; //name of generator name
110   static const TString  fgkMCFolderName;        //name of MC folder
111   static const TString  fgkModuleFolderName;    //name of module folder
112   
113   TString              *fDetectorTask;//!array with names for detector tasks
114   TString              *fDetectorFolder;//!array with names for detector folders (where detector is going to be put)
115   
116   static AliConfig*     fgInstance; //pointer to the AliConfig instance
117   
118   
119   ClassDef(AliConfig,2) //Configuration class for AliRun
120 };                              // end class AliConfig
121
122 #endif