* See cxx source for full Copyright notice */
/* $Id$ */
-/*
- * $Log$
- * Revision 1.5 2002/10/14 14:57:32 hristov
- * Merging the VirtualMC branch to the main development branch (HEAD)
- *
- * Revision 1.4.8.1 2002/06/10 14:43:06 hristov
- * Merged with v3-08-02
- *
- * Revision 1.4 2001/10/05 12:11:40 hristov
- * iostream.h used instead of iostream (HP)
- *
- * Revision 1.3 2001/10/04 15:30:56 hristov
- * Changes to accommodate the set of PHOS folders and tasks (Y.Schutz)
- *
- * Revision 1.2 2001/05/21 17:22:51 buncic
- * Fixed problem with missing AliConfig while reading galice.root
- *
- * Revision 1.1 2001/05/16 14:57:22 alibrary
- * New files for folders and Stack
- *
- */
-
-#include "AliMC.h"
+#include <TNamed.h>
class TDatabasePDG;
class TFolder;
class TString;
+class TVirtualMC;
class AliConfig;
class AliDetector;
class AliConfig : public TNamed {
public:
-
+
AliConfig();
- virtual ~ AliConfig ();
- void Add (AliGenerator *generator);
- void Add (AliMC *mc);
- void Add (TDatabasePDG *pdg);
- void Add (AliModule *module);
- void Add (AliDetector *detector);
+ virtual ~ AliConfig ();
+
+ void Add(TDatabasePDG *pdg);
+ void Add(char *list);
- void Add (char *list);
+ void Add(AliGenerator *generator,const char* eventfolder = fgkDefaultEventFolderName);
+ void Add (TVirtualMC *mc,const char* eventfolder = fgkDefaultEventFolderName);
+ void Add (AliModule *module,const char* eventfolder = fgkDefaultEventFolderName);
+ void Add (AliDetector *detector,const char* eventfolder = fgkDefaultEventFolderName);
+
+ Int_t AddDetector(const char* evntfoldername,const char *name, const char* title);
+ Int_t AddDetector(TFolder* evntfolder,const char *name, const char* title);
- static AliConfig* Instance();
+ Int_t CreateDetectorFolders(const char* evntfoldername,const char *name, const char* title);//Used by AliRunGetter
+ Int_t CreateDetectorFolders(TFolder* evntfolder,const char *name, const char* title);//Used by AliRunGetter
+ Int_t CreateDetectorTasks(const char *name, const char* title);
-private:
+ static AliConfig* Instance();
+
+ TFolder* BuildEventFolder(const char* name,const char* tilte);
+
+ TFolder* GetTopFolder(){return fTopFolder;}
+ TFolder* GetTaskFolder(){return fTaskFolder;}
+ TFolder* GetConstFolder(){return fConstFolder;}
- enum {kFolders=8, kTasks=5};
- AliConfig(const char * name, const char * title);
+ static const TString& GetModulesFolderName(){return fgkModuleFolderName;}
+
+ TString GetQATaskName() const; //returns path to QA tasks
+ TString GetDigitizerTaskName () const;
+ TString GetSDigitizerTaskName () const;
+ TString GetReconstructionerTaskName () const;
+ TString GetTrackerTaskName () const;
+ TString GetPIDTaskName () const;
+
+
+ const TString& GetQAFolderName() const; //returns path to folder with QA output
+
+ const TString& GetDataFolderName() const;//returns name of data folder
+
+ static const TString fgkTopFolderName; //name of top AliRoot folder
+
+ static const TString fgkDefaultEventFolderName; //name of event folder
+ static const TString fgkTasksFolderName; //name of task folder
+ static const TString fgkConstantsFolderName; //name of constants folder
+
+ static const TString fgkDataFolderName; //name of data folde
+ static const TString fgkConditionsFolderName; //name of conditions folder
+ static const TString fgkConfigurationFolderName;//name of configuration foolder
+ static const TString fgkHeaderFolderName; //name of header folder
+
+ static const TString fgkDigitizerTaskName; //name of digitizer task
+ static const TString fgkSDigitizerTaskName; //name of sdigitizer task
+ static const TString fgkQATaskName; //name of Q-A task
+ static const TString fgkReconstructionerTaskName;//name of reconstructioner
+ //task
+ static const TString fgkTrackerTaskName; //name of tracker task
+ static const TString fgkPIDTaskName; //name of PID task
+
+ static const TString fgkCalibrationFolderName; //name of calibration folder
+ static const TString fgkAligmentFolderName; //name of alignment folder
+ static const TString fgkQAFolderName; //name of QA folder
+
+ static const TString fgkFieldFolderName; //name of magn.field folder
+ static const TString fgkGeneratorsFolderName; //name of generator folder
+ static const TString fgkVirtualMCFolderName; //name of virtual MC folder
+
+private:
+ AliConfig(const char * name, const char * title );
AliConfig(const AliConfig&);
- void AddInFolder (char * dir, TObject *obj);
- void AddSubFolder(char * dir[], TObject *obj);
- void AddSubTask(char * dir[], TObject *obj);
- TObject* FindInFolder (char *dir, const char *name);
- AliConfig& operator = (const AliConfig&) {return *this;}
-
- TFolder *fTopFolder;
- AliTasks *fTasks;
+ AliConfig& operator=(const AliConfig&);
+
+ void AddInFolder (const char * dir, TObject *obj);
+ Int_t AddSubTask(const char *taskname, const char* name, const char* title);
+ Int_t AddSubFolder(TFolder* topfolder, const char* infoler, //helper method
+ const char* newfoldname, const char* newfoldtitle);
+ TObject* FindInFolder (const char *dir, const char *name);
+
// folders
- char* fPDGFolder ;
- char* fGeneratorFolder ;
- char* fMCFolder ;
- char* fModuleFolder ;
- char** fDetectorFolder ;
- char** fDetectorTask ;
+ TFolder* fTopFolder; //pointer to top folder
+ TFolder* fTaskFolder; //pointer to task folder
+ TFolder* fConstFolder; //pointer to constants folder
- static AliConfig* fInstance;
-
- ClassDef(AliConfig,1) //Configuration class for AliRun
+ static const TString fgkPDGFolderName; //name of PDG folder
+ static const TString fgkGeneratorFolderName; //name of generator name
+ static const TString fgkMCFolderName; //name of MC folder
+ static const TString fgkModuleFolderName; //name of module folder
+
+ TString *fDetectorTask;//!array with names for detector tasks
+ TString *fDetectorFolder;//!array with names for detector folders (where detector is going to be put)
+
+ static AliConfig* fgInstance; //pointer to the AliConfig instance
+
+
+ ClassDef(AliConfig,2) //Configuration class for AliRun
}; // end class AliConfig
#endif