]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRunLoader.h
Make use of new method AliRawReader::GetNumberOfEvents() - goinf to the last event...
[u/mrichter/AliRoot.git] / STEER / AliRunLoader.h
index 2989830104c2b987553126b63456ad0bda721570..a722f41c7e1c47035e8d386b23114cdce3c9b919 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
 {
@@ -50,6 +53,9 @@ class AliRunLoader: public TNamed
     AliRunLoader();
     AliRunLoader(const char* topfoldername);
     AliRunLoader(TFolder* topfolder);
+    AliRunLoader(const AliRunLoader &rl);
+    AliRunLoader & operator = (const AliRunLoader &rl) 
+      {rl.Copy(*this); return *this;}
     
     virtual ~AliRunLoader();
     
@@ -66,16 +72,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 +95,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;}
     
@@ -95,6 +108,7 @@ class AliRunLoader: public TNamed
         
     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 +120,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");
@@ -149,8 +163,7 @@ class AliRunLoader: public TNamed
                                                                //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);
@@ -182,15 +195,19 @@ 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;          //default name of the run loader
-    static const TString   fgkHeaderContainerName;    //default name of the kinematics container (TREE) name - TreeE
-    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;       //default name of the branch containing the header
-    static const TString   fgkKineBranchName;         //default name of the branch with kinematics
-    static const TString   fgkGAliceName;             //default name for gAlice file    
-  protected:
+protected:
     /**********************************************/
     /************    PROTECTED      ***************/
     /*********        D A T A          ************/
@@ -201,9 +218,10 @@ class AliRunLoader: public TNamed
     
     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
+    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
@@ -212,6 +230,7 @@ class AliRunLoader: public TNamed
     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
 
 
     /*********************************************/
@@ -232,14 +251,27 @@ class AliRunLoader: public TNamed
     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
 
+private:
+    void Copy(TObject &arun) const;
+
+    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;       //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,2)
 };
 
 #endif