]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRunLoader.h
- Three classes by MinJung Kweon AliHFEpriVtx, AliHFEsecVtx and AliHFEmcQA for primar...
[u/mrichter/AliRoot.git] / STEER / AliRunLoader.h
index cea79aac9006af2e7ba435733a71d22cfb25e85d..fce21170414d8da18cefaf7f8dfb2658033c843a 100644 (file)
 /////////////////////////////////////////////////////////////////////
 
 #include <TNamed.h>
-#include <TFile.h>
+
 #include "AliConfig.h"
 #include "AliLoader.h"
 #include "AliDataLoader.h"
+#include "AliLog.h"
 
+class TFile;
 class TString;
 class TFolder;
 class TObjArray;
@@ -41,7 +43,8 @@ class AliDetector;
 class AliHeader;
 class AliStack;
 class AliRunDigitizer;
-
+class AliCDBEntry;
+class AliCentralTrigger;
 
 class AliRunLoader: public TNamed
 {
@@ -54,7 +57,7 @@ class AliRunLoader: public TNamed
     virtual ~AliRunLoader();
     
     static AliRunLoader* Open(const char* filename = "galice.root",
-                              const char* eventfoldername = AliConfig::fgkDefaultEventFolderName,
+                              const char* eventfoldername = AliConfig::GetDefaultEventFolderName(),
                  Option_t* option = "READ");
 
     Int_t       GetEventNumber() const {return fCurrentEvent;}
@@ -66,16 +69,21 @@ class AliRunLoader: public TNamed
     
     Int_t       GetNumberOfEvents();
     
+    AliCDBEntry* GetCDBEntry(const char* name) const;
+
     void        MakeTree(Option_t *option);
     void        MakeHeader();
+    void        MakeTrigger();
     void        MakeStack();
     
     Int_t       LoadgAlice();
     Int_t       LoadHeader();
     Int_t       LoadKinematics(Option_t* option = "READ");
+    Int_t       LoadTrigger(Option_t* option = "READ");
     Int_t       LoadTrackRefs(Option_t* option = "READ");
     
     void        UnloadHeader();
+    void        UnloadTrigger();
     void        UnloadKinematics();
     void        UnloadgAlice();
     void        UnloadTrackRefs();
@@ -84,7 +92,9 @@ class AliRunLoader: public TNamed
     void        SetTrackRefsFileName(const TString& fname){fTrackRefsDataLoader->SetFileName(fname);}
     
     TTree*      TreeE() const; //returns the tree from folder; shortcut method
+    TTree*      TreeCT() const; //returns the tree from folder; shortcut method
     AliHeader*  GetHeader() const;
+    AliCentralTrigger*  GetTrigger() const;
     
     AliStack*   Stack() const {return fStack;}
     
@@ -92,9 +102,11 @@ class AliRunLoader: public TNamed
     TTree*      TreeTR() const; //returns the tree from folder; shortcut method    
     
     AliRun*     GetAliRun()const;
+    Int_t       GetRunNumber() const {return fRun;}
+    void        SetRunNumber(Int_t run) {fRun=run;}
         
-    Int_t       WriteGeometry(Option_t* opt="");
     Int_t       WriteHeader(Option_t* opt="");
+    Int_t       WriteTrigger(Option_t* opt="");
     Int_t       WriteAliRun(Option_t* opt="");
     Int_t       WriteKinematics(Option_t* opt="");
     Int_t       WriteTrackRefs(Option_t* opt="");
@@ -106,12 +118,12 @@ class AliRunLoader: public TNamed
     Int_t       WriteRecPoints(Option_t* opt="");
     Int_t       WriteTracks(Option_t* opt="");
     
-    Int_t       LoadHits(Option_t* detectors = "all",Option_t* opt = "RAED");
-    Int_t       LoadSDigits(Option_t* detectors = "all",Option_t* opt = "RAED");
-    Int_t       LoadDigits(Option_t* detectors = "all",Option_t* opt = "RAED");
-    Int_t       LoadRecPoints(Option_t* detectors = "all",Option_t* opt = "RAED");
-    Int_t       LoadTracks(Option_t* detectors = "all",Option_t* opt = "RAED");
-    Int_t       LoadRecParticles(Option_t* detectors = "all",Option_t* opt = "RAED");
+    Int_t       LoadHits(Option_t* detectors = "all",Option_t* opt = "READ");
+    Int_t       LoadSDigits(Option_t* detectors = "all",Option_t* opt = "READ");
+    Int_t       LoadDigits(Option_t* detectors = "all",Option_t* opt = "READ");
+    Int_t       LoadRecPoints(Option_t* detectors = "all",Option_t* opt = "READ");
+    Int_t       LoadTracks(Option_t* detectors = "all",Option_t* opt = "READ");
+    Int_t       LoadRecParticles(Option_t* detectors = "all",Option_t* opt = "READ");
     
     void        UnloadHits(Option_t* detectors = "all");
     void        UnloadSDigits(Option_t* detectors = "all");
@@ -125,7 +137,7 @@ class AliRunLoader: public TNamed
     void        AddLoader(AliDetector* det);
     AliLoader*  GetLoader(const char* detname) const;
     AliLoader*  GetLoader(AliDetector* det) const;
-    Int_t       SetEventFolderName(const TString& name = AliConfig::fgkDefaultEventFolderName);//sets top folder name for this run; of alread
+    Int_t       SetEventFolderName(const TString& name = AliConfig::GetDefaultEventFolderName());//sets top folder name for this run; of alread
     void        CleanFolders();//removes all abjects from folder structure
     void        CleanDetectors();
     void        CleanKinematics(){Clean(fgkKineContainerName);}
@@ -143,14 +155,14 @@ class AliRunLoader: public TNamed
     void        SetDirName(TString& dirname);
     Int_t       GetFileOffset() const;
     void        SetNumberOfEventsPerFile(Int_t nevpf){fNEventsPerFile = nevpf;}
-    
+    void        SetNumberOfEventsPerRun(Int_t nevpr) {fNEventsPerRun = nevpr;}
+    Int_t       GetNumberOfEventsPerRun()            {return fNEventsPerRun;}
     void        SetDigitsFileNameSuffix(const TString& suffix);//adds the suffix before ".root", 
                                                                //e.g. TPC.Digits.root -> TPC.DigitsMerged.root
                                                                //made on Jiri Chudoba demand
     TString     GetFileName() const;//returns name of galice file
     const TObjArray* GetArrayOfLoaders() const {return fLoaders;}
-    Int_t GetDebug() const {return AliLoader::GetDebug();}
-    void cd(){fgRunLoader = this;}
+    void Cd(){fgRunLoader = this;}
     void Synchronize();
     
     AliLoader*    GetDetectorLoader(const char* detname);
@@ -160,61 +172,12 @@ class AliRunLoader: public TNamed
     TTree*        GetTreeR(const char* detname, Bool_t maketree);
     TTree*        GetTreeT(const char* detname, Bool_t maketree);
     TTree*        GetTreeP(const char* detname, Bool_t maketree);
-    
-  protected:
-    /**********************************************/
-    /************    PROTECTED      ***************/
-    /*********        D A T A          ************/
-    /**********************************************/
-
-    TObjArray     *fLoaders;          //  List of Detectors
-    TFolder       *fEventFolder;      //!top folder for this run
-    
-    Int_t          fCurrentEvent;//!Number of current event
-    
-    TFile         *fGAFile;//!  pointer to main file with AliRun and Run Loader -> galice.root 
-    AliHeader     *fHeader;//!  pointer to header
-    AliStack      *fStack; //!  pointer to stack
-    
-    AliDataLoader *fKineDataLoader;// kinematics data loader
-    AliDataLoader *fTrackRefsDataLoader;//track reference data loader
-    
-    Int_t          fNEventsPerFile;  //defines number of events stored per one file
-    TString        fUnixDirName;    //! name of unix path to directory that contains event
-    static const TString   fgkDefaultKineFileName;//default file name with kinamatics
-    static const TString   fgkDefaultTrackRefsFileName;//default file name with kinamatics
-
-
-    /*********************************************/
-    /************    PROTECTED      **************/
-    /*********     M E T H O D S       ***********/
-    /*********************************************/
-
-    void           SetGAliceFile(TFile* gafile);//sets the pointer to gAlice file
-    Int_t          OpenKineFile(Option_t* opt);
-    Int_t          OpenTrackRefsFile(Option_t* opt);
-
-    Int_t          OpenDataFile(const TString& filename,TFile*& file,TDirectory*& dir,Option_t* opt,Int_t cl);
-    void           SetUnixDir(const TString& udirname);
-    const TString  SetFileOffset(const TString& fname);//adds the proper number before .root
-    void           SetDetectorAddresses();
-        
-  private:
-    void  GetListOfDetectors(const char * namelist,TObjArray& pointerarray) const;
-
-    void  CleanHeader(){Clean(fgkHeaderContainerName);}
-    void  Clean(const TString& name);
-    
-    Int_t SetEvent();
-   
-    static AliRunLoader* fgRunLoader;
 
-  public:
   /******************************************/
   /*****   Public S T A T I C Stuff   *******/
   /******************************************/
     static AliRunLoader* GetRunLoader(const char* eventfoldername);
-    static AliRunLoader* GetRunLoader(){return fgRunLoader;}
+    static AliRunLoader* Instance(){return fgRunLoader;}
     static AliLoader*    GetDetectorLoader(const char* detname, const char* eventfoldername);
     static TTree*        GetTreeH(const char* detname, Bool_t maketree, const char* eventfoldername);
     static TTree*        GetTreeS(const char* detname, Bool_t maketree, const char* eventfoldername);
@@ -223,7 +186,6 @@ class AliRunLoader: public TNamed
     static TTree*        GetTreeT(const char* detname, Bool_t maketree, const char* eventfoldername);
     static TTree*        GetTreeP(const char* detname, Bool_t maketree, const char* eventfoldername);
 
-//    static AliRunDigitizer* GetRunDigitizer();
 //  Tasks are supposed to be singletons, that is why following methods are static
     static TTask*           GetRunDigitizer();        //
     static TTask*           GetRunSDigitizer();       //
@@ -231,16 +193,72 @@ class AliRunLoader: public TNamed
     static TTask*           GetRunTracker();          //
     static TTask*           GetRunPIDTask();          // 
     static TTask*           GetRunQATask();           //
+
+    static TString GetRunLoaderName () {return fgkRunLoaderName;}
+    static TString GetHeaderContainerName () {return fgkHeaderContainerName;}
+    static TString GetTriggerContainerName () {return fgkTriggerContainerName;}
+    static TString GetKineContainerName () {return fgkKineContainerName;}
+    static TString GetTrackRefsContainerName () {return fgkTrackRefsContainerName;}
+    static TString GetHeaderBranchName () {return fgkHeaderBranchName;}
+    static TString GetTriggerBranchName () {return fgkTriggerBranchName;}
+    static TString GetKineBranchName () {return fgkKineBranchName;}
+    static TString GetTriggerFileName() { return fgkDefaultTriggerFileName; }
+    static TString GetGAliceName () {return fgkGAliceName;}
      
-    static const TString   fgkRunLoaderName;
+protected:
+    void               SetGAliceFile(TFile* gafile);//sets the pointer to gAlice file
+    Int_t              OpenKineFile(Option_t* opt);
+    Int_t              OpenTrackRefsFile(Option_t* opt);
+
+    Int_t              OpenDataFile(const TString& filename,TFile*& file,TDirectory*& dir,Option_t* opt,Int_t cl);
+    void               SetUnixDir(const TString& udirname);
+    const TString      SetFileOffset(const TString& fname);//adds the proper number before .root
+    void               SetDetectorAddresses();
+
+    TObjArray         *fLoaders;          //  List of Detectors
+    TFolder           *fEventFolder;      //!top folder for this run
+    
+    Int_t              fRun;               //! Current run number
+    Int_t              fCurrentEvent;//!Number of current event
+    
+    TFile             *fGAFile;//!  pointer to main file with AliRun and Run Loader -> galice.root 
+    AliHeader         *fHeader;//!  pointer to header
+    AliStack          *fStack; //!  pointer to stack
+    AliCentralTrigger *fCTrigger; //! pointer to CEntral Trigger Processor
+    
+    AliDataLoader     *fKineDataLoader;// kinematics data loader
+    AliDataLoader     *fTrackRefsDataLoader;//track reference data loader
+    
+    Int_t              fNEventsPerFile;  //defines number of events stored per one file
+    Int_t              fNEventsPerRun;   //defines number of event per run
+    TString            fUnixDirName;     //! name of unix path to directory that contains event
+    static const TString   fgkDefaultKineFileName;//default file name with kinamatics
+    static const TString   fgkDefaultTrackRefsFileName;//default file name with kinamatics
+    static const TString   fgkDefaultTriggerFileName;//default file name with trigger
+
+        
+  private:
+    AliRunLoader(const AliRunLoader &r);      //Not implemented
+    AliRunLoader & operator = (const AliRunLoader &); //Not implemented 
+    void  GetListOfDetectors(const char * namelist,TObjArray& pointerarray) const;
+    void  CleanHeader(){Clean(fgkHeaderContainerName);}
+    void  CleanTrigger(){Clean(fgkTriggerContainerName);}
+    void  Clean(const TString& name);
+    Int_t SetEvent();
+   
+    static AliRunLoader*   fgRunLoader; //pointer to the AliRunLoader instance
+
+    static const TString   fgkRunLoaderName;          //default name of the run loader
     static const TString   fgkHeaderContainerName;    //default name of the kinematics container (TREE) name - TreeE
+    static const TString   fgkTriggerContainerName;   //default name of the trigger container (TREE) name - TreeCT
     static const TString   fgkKineContainerName;      //default name of the kinematics container (TREE) name - TreeK
     static const TString   fgkTrackRefsContainerName; //default name of the track references container (TREE) name - TreeTR
-    static const TString   fgkHeaderBranchName;
-    static const TString   fgkKineBranchName;
-    static const TString   fgkGAliceName;
+    static const TString   fgkHeaderBranchName;       //default name of the branch containing the header
+    static const TString   fgkTriggerBranchName;      //default name of the branch containing the trigger
+    static const TString   fgkKineBranchName;         //default name of the branch with kinematics
+    static const TString   fgkGAliceName;             //default name for gAlice file    
     
-    ClassDef(AliRunLoader,1)
+    ClassDef(AliRunLoader,3)
 };
 
 #endif