]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliConfig.h
Some more code cleanup
[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  * $Log$
9  * Revision 1.7  2002/10/29 14:26:49  hristov
10  * Code clean-up (F.Carminati)
11  *
12  * Revision 1.6  2002/10/22 15:02:15  alibrary
13  * Introducing Riostream.h
14  *
15  * Revision 1.5  2002/10/14 14:57:32  hristov
16  * Merging the VirtualMC branch to the main development branch (HEAD)
17  *
18  * Revision 1.4.8.1  2002/06/10 14:43:06  hristov
19  * Merged with v3-08-02
20  *
21  * Revision 1.4  2001/10/05 12:11:40  hristov
22  * iostream.h used instead of iostream (HP)
23  *
24  * Revision 1.3  2001/10/04 15:30:56  hristov
25  * Changes to accommodate the set of PHOS folders and tasks (Y.Schutz)
26  *
27  * Revision 1.2  2001/05/21 17:22:51  buncic
28  * Fixed problem with missing AliConfig while reading galice.root
29  *
30  * Revision 1.1  2001/05/16 14:57:22  alibrary
31  * New files for folders and Stack
32  * 
33  */
34
35 #include "AliMC.h"
36
37 class TDatabasePDG;
38 class TFolder;
39 class TString;
40
41 class AliConfig;
42 class AliDetector;
43 class AliGenerator;
44 class AliModule;
45 class AliTasks;
46
47 class AliConfig : public TNamed {
48   
49 public:
50
51   AliConfig();
52   virtual ~ AliConfig ();
53   
54   void  Add (AliGenerator *generator);
55   void  Add (AliMC *mc);
56   void  Add (TDatabasePDG *pdg);
57   void  Add (AliModule *module);
58   void  Add (AliDetector *detector);
59   
60   void  Add (char *list);
61   
62   static AliConfig* Instance();
63   
64 private:
65
66   enum {kFolders=8, kTasks=5};
67   AliConfig(const char * name, const char * title);
68   AliConfig(const AliConfig&);
69   void  AddInFolder (const char * dir, TObject *obj);
70   void  AddSubFolder(const char * dir[], TObject *obj);
71   void  AddSubTask(const char * dir[], TObject *obj);
72   TObject* FindInFolder (const char *dir, const char *name);
73   AliConfig& operator = (const AliConfig&) {return *this;}
74   
75   TFolder  *fTopFolder;
76   AliTasks *fTasks;
77   // folders
78   const char*  fPDGFolder ; 
79   const char*  fGeneratorFolder ; 
80   const char*  fMCFolder ; 
81   const char*  fModuleFolder ; 
82   const char** fDetectorFolder ; 
83   const char** fDetectorTask ; 
84
85   static AliConfig*  fInstance;
86     
87     ClassDef(AliConfig,1) //Configuration class for AliRun
88 };                              // end class AliConfig
89
90 #endif