]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRun.h
Possibility to define the magnetic field in the reconstruction (Yu.Belikov)
[u/mrichter/AliRoot.git] / STEER / AliRun.h
index 2e5acc4a490bedec192e8cfcff0be917974c039e..e3807990b3ac650488c317869acf2550fea096e3 100644 (file)
@@ -8,6 +8,7 @@
 class TBrowser;
 class TList;
 class TTree;
+class TBranch;
 class TGeometry;
 class TDatabasePDG;
 class TRandom;
@@ -73,6 +74,8 @@ public:
    AliDetector   *GetDetector(const char *name) const;
    AliMCQA       *GetMCQA() const {return fMCQA;}
    Int_t          GetModuleID(const char *name) const;
+   virtual  const char *GetBaseFile() const 
+    {return fBaseFileName.Data();}
    virtual  Int_t GetEvent(Int_t event);
    virtual  void  SetEvent(Int_t event) {fEvent=event;}
    virtual  void  SetConfigFunction(const char * config="Config();");
@@ -84,17 +87,19 @@ public:
                               Float_t &e, Float_t *vpos, Float_t *polar, 
                               Float_t &tof);
    Int_t          GetNtrack() const {return fNtrack;}
-   virtual  Int_t GetPrimary(Int_t track) const;
-   virtual  void  Hits2Digits(const char *detector=0);
-   virtual  void  Hits2SDigits(const char *detector=0);
-   virtual  void  SDigits2Digits(const char *detector=0);
+   virtual  Int_t GetPrimary(Int_t track);
+   virtual  void  Hits2Digits(const char *detector=0); 
+   virtual  void  Hits2SDigits(const char *detector=0)   {Tree2Tree("S",detector);}
+   virtual  void  SDigits2Digits(const char *detector=0) {Tree2Tree("D",detector);}
+   virtual  void  Digits2Reco(const char *detector=0)    {Tree2Tree("R",detector);}
+   virtual  void  Tree2Tree(Option_t *option, const char *detector=0);
    virtual  void  InitMC(const char *setup="Config.C");
    virtual  void  Init(const char *setup="Config.C") {InitMC(setup);}
    Bool_t         IsFolder() const {return kTRUE;}
    virtual AliLego* Lego() const {return fLego;}
    virtual  void  MakeTree(Option_t *option="KH", char *file = 0);
-   virtual  void  MakeBranchInTree(TTree *tree, const char* cname, void* address, Int_t size=32000, char *file=0);
-   virtual  void  MakeBranchInTree(TTree *tree, const char* cname, const char* name, void* address, Int_t size=32000, Int_t splitlevel=1, char *file=0);
+   virtual TBranch* MakeBranchInTree(TTree *tree, const char* cname, void* address, Int_t size=32000, char *file=0);
+   virtual TBranch* MakeBranchInTree(TTree *tree, const char* cname, const char* name, void* address, Int_t size=32000, Int_t splitlevel=1, char *file=0);
 
    TObjArray     *Particles() {return fParticleMap;};
    TParticle     *Particle(Int_t i);
@@ -107,7 +112,6 @@ public:
    virtual  void  ResetPoints();
    virtual  void  SetTransPar(char *filename="$(ALICE_ROOT)/data/galice.cuts");
    virtual  void  SetBaseFile(char *filename="galice.root");
-   virtual  void  OpenBaseFile(const char *option);
    virtual  void  ReadTransPar();
    virtual  void  ResetStack() {fCurrent=-1;fHgwmk=fNtrack=fLoadPoint=0;fParticles->Clear();}
    virtual  void  RunMC(Int_t nevent=1, const char *setup="Config.C");
@@ -117,6 +121,7 @@ public:
                          Int_t nc2=60,Float_t c2min=0,Float_t c2max=360,Float_t rmin=0,
                          Float_t rmax=430,Float_t zmax=10000, AliLegoGenerator* gener=NULL);
    virtual  Bool_t IsLegoRun() const {return (fLego!=0);}
+   virtual  void  RunReco(const char *detector=0);
    virtual  void  SetCurrentTrack(Int_t track);                           
    virtual  void  SetDebug(const Int_t level=1) {fDebug = level;}
    virtual  void  SetDisplay(AliDisplay *display) {fDisplay = display;}
@@ -195,12 +200,14 @@ protected:
   TString        fBaseFileName;      //  Name of the base root file
   TParticle     *fParticleBuffer;    //! Pointer to current particle for writing
   TObjArray     *fParticleMap;       //! Map of particles in the supporting TClonesArray
-  TArrayI        fParticleFileMap;   //  Map of particles in the file
+  TArrayI&       fParticleFileMap;   //! Map of particles in the file
 
 private:
 
-   AliRun(const AliRun &) {}
-   AliRun& operator = (const AliRun &) {return *this;}
+   AliRun(const AliRun &right) 
+     : fParticleFileMap(right.fParticleFileMap) {}  
+   AliRun& operator = (const AliRun &right) 
+      { fParticleFileMap= right.fParticleFileMap; return *this; }
 
    ClassDef(AliRun,4)      //Supervisor class for all Alice detectors
 };