X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliRunLoader.h;h=fce21170414d8da18cefaf7f8dfb2658033c843a;hb=6db3170859444cc30c9e5a12dad1ed2b28eb1ea6;hp=8ce457296429b2fae4cb6b80537dea1b7ed1b500;hpb=f0f6f85615154d428afd39751009ec53ff441bb7;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliRunLoader.h b/STEER/AliRunLoader.h index 8ce45729642..fce21170414 100644 --- a/STEER/AliRunLoader.h +++ b/STEER/AliRunLoader.h @@ -23,11 +23,13 @@ ///////////////////////////////////////////////////////////////////// #include -#include + #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,18 +118,26 @@ 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 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"); + void UnloadDigits(Option_t* detectors = "all"); + void UnloadRecPoints(Option_t* detectors = "all"); + void UnloadTracks(Option_t* detectors = "all"); + void UnloadRecParticles(Option_t* detectors = "all"); + void UnloadAll(Option_t* detectors = "all"); void AddLoader(AliLoader* loader); 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);} @@ -135,96 +155,110 @@ 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(); - protected: - /**********************************************/ - /************ PROTECTED ***************/ - /********* D A T A ************/ - /**********************************************/ + AliLoader* GetDetectorLoader(const char* detname); + TTree* GetTreeH(const char* detname, Bool_t maketree); + TTree* GetTreeS(const char* detname, Bool_t maketree); + TTree* GetTreeD(const char* detname, Bool_t maketree); + TTree* GetTreeR(const char* detname, Bool_t maketree); + TTree* GetTreeT(const char* detname, Bool_t maketree); + TTree* GetTreeP(const char* detname, Bool_t maketree); + + /******************************************/ + /***** Public S T A T I C Stuff *******/ + /******************************************/ + static AliRunLoader* GetRunLoader(const char* eventfoldername); + 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); + static TTree* GetTreeD(const char* detname, Bool_t maketree, const char* eventfoldername); + static TTree* GetTreeR(const char* detname, Bool_t maketree, const char* eventfoldername); + static TTree* GetTreeT(const char* detname, Bool_t maketree, const char* eventfoldername); + static TTree* GetTreeP(const char* detname, Bool_t maketree, const char* eventfoldername); + +// Tasks are supposed to be singletons, that is why following methods are static + static TTask* GetRunDigitizer(); // + static TTask* GetRunSDigitizer(); // + static TTask* GetRunReconstructioner(); // + 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;} + +protected: + void SetGAliceFile(TFile* gafile);//sets the pointer to gAlice file + Int_t OpenKineFile(Option_t* opt); + Int_t OpenTrackRefsFile(Option_t* opt); - TObjArray *fLoaders; // List of Detectors - TFolder *fEventFolder; //!top folder for this run + 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 fCurrentEvent;//!Number of current event + 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 + 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 + 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 + 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 - - /*********************************************/ - /************ 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: + 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; + static AliRunLoader* fgRunLoader; //pointer to the AliRunLoader instance - public: - /******************************************/ - /***** Public S T A T I C Stuff *******/ - /******************************************/ - static AliRunLoader* GetRunLoader(const char* eventfoldername); - static AliRunLoader* GetRunLoader(){return fgRunLoader;} - static AliLoader* GetDetectorLoader(const char* detname); - static TTree* GetTreeH(const char* detname, Bool_t maketree); - static TTree* GetTreeS(const char* detname, Bool_t maketree); - static TTree* GetTreeD(const char* detname, Bool_t maketree); - static TTree* GetTreeR(const char* detname, Bool_t maketree); - static TTree* GetTreeT(const char* detname, Bool_t maketree); - static TTree* GetTreeP(const char* detname, Bool_t maketree); - -// static AliRunDigitizer* GetRunDigitizer(); -// Tasks are supposed to be singletons, that is why following methods are static - static TTask* GetRunDigitizer(); // - static TTask* GetRunSDigitizer(); // - static TTask* GetRunReconstructioner(); // - static TTask* GetRunTracker(); // - static TTask* GetRunPIDTask(); // - static TTask* GetRunQATask(); // - - static const TString fgkRunLoaderName; + 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