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