]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliConfig.h
Fixes for bug #52499: Field polarities inconsistiency
[u/mrichter/AliRoot.git] / STEER / AliConfig.h
index ad00846c6f444005222fe63ffc83cf009c1d1997..65ad5c2c66325e09dd3bb431340e77b7b4cf262e 100644 (file)
@@ -4,36 +4,24 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
-/* 
- * $Log$
- * Revision 1.6  2002/10/22 15:02:15  alibrary
- * Introducing Riostream.h
- *
- * 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"
+//
+// Class to name the folders
+// This class contains 
+// the names of the top level folders
+// 
 
+//
+// Class to name the folders
+// This class contains 
+// the names of the top level folders
+// 
+
+#include <TNamed.h>
 class TDatabasePDG;
 class TFolder;
 class TString;
+class TVirtualMC;
 
 class AliConfig;
 class AliDetector;
@@ -44,44 +32,105 @@ class AliTasks;
 class AliConfig : public TNamed {
   
 public:
+  
+  virtual ~ AliConfig (); 
+
+  void       Add(TDatabasePDG *pdg);
+  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);
+  
+  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);
+  
+  static     AliConfig* Instance();
+  
+  TFolder*              BuildEventFolder(const char* name,const char* tilte);
+  
+  TFolder*              GetTopFolder(){return fTopFolder;}
+  TFolder*              GetTaskFolder(){return fTaskFolder;}
+  TFolder*              GetConstFolder(){return fConstFolder;}
+
+  static const TString& GetModulesFolderName(){return fgkModuleFolderName;}
+  static const TString& GetDefaultEventFolderName()
+    {return fgkDefaultEventFolderName;}
+  static const TString& GetTasksFolderName() {return fgkTasksFolderName;}
+  
+  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
 
-  AliConfig();
-  virtual ~ AliConfig ();
+private:  
+  AliConfig(const AliConfig&); // Not implemented
+  AliConfig& operator=(const AliConfig&); // Not implemented
+  AliConfig(); // Not implemented
+  AliConfig(const char * name, const char * title );
+  
+  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
   
-  void  Add (AliGenerator *generator);
-  void  Add (AliMC *mc);
-  void  Add (TDatabasePDG *pdg);
-  void  Add (AliModule *module);
-  void  Add (AliDetector *detector);
+  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
   
-  void  Add (char *list);
+  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 AliConfig* Instance();
+  static const TString  fgkCalibrationFolderName;  //name of calibration folder
+  static const TString  fgkAligmentFolderName;     //name of alignment folder
+  static const TString  fgkQAFolderName;           //name of QA folder
   
-private:
+  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
 
-  enum {kFolders=8, kTasks=5};
-  AliConfig(const char * name, const char * title);
-  AliConfig(const AliConfig&);
-  void  AddInFolder (const char * dir, TObject *obj);
-  void  AddSubFolder(char * dir[], TObject *obj);
-  void  AddSubTask(char * dir[], TObject *obj);
-  TObject* FindInFolder (const char *dir, const char *name);
-  AliConfig& operator = (const AliConfig&) {return *this;}
-  
-  TFolder  *fTopFolder;
-  AliTasks *fTasks;
+  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
-  const char*  fPDGFolder ; 
-  const char*  fGeneratorFolder ; 
-  const char*  fMCFolder ; 
-  const 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