ROOT logo
#ifndef ALIRUN_H
#define ALIRUN_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//
// General configuration class for Simulation and Reconstruction
// Basic driver for AliRoot runs
// Containing pointers to data elements for AliRoot
//

#include <TSystem.h>

class TRandom;

#include "AliRunLoader.h"
class AliGenEventHeader;
class AliGenerator;
class AliHeader;
class AliMC;
class AliMagF;
class AliStack;


class AliRun : public TNamed {

public:
   // Creators - distructors
   AliRun();
   AliRun(const char *name, const char *title);
   virtual ~AliRun();

   TObjArray     *Detectors() const {return fModules;}
   TObjArray     *Modules() const {return fModules;}
   void           AddModule(AliModule* mod);
   Int_t          GetEvNumber() const;
   void           SetEventNrInRun(Int_t event) {fEventNrInRun=event;}
   Int_t          GetEventNrInRun() const {return fEventNrInRun;}
   Int_t          GetNdets() const {return fNdets;}
   AliModule     *GetModule(const char *name) const;
   AliDetector   *GetDetector(const char *name) const;
   Int_t          GetModuleID(const char *name) const;
   virtual  const char *GetBaseFile() const 
    {return fBaseFileName.Data();}
   virtual  Int_t GetEvent(Int_t event);
   virtual  void  SetConfigFunction(const char * config="Config();")
   {fConfigFunction=config;}
   virtual  const char *GetConfigFunction() const 
   {return fConfigFunction.Data();}
   virtual  void  SetGenEventHeader(AliGenEventHeader* header);
   AliMC*         GetMCApp() const {return fMCApp;}
   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);}
   Bool_t         IsFolder() const {return kTRUE;}
   virtual  void  SetBaseFile(const char *filename="galice.root");
   //
   // End of MC Application

   void SetRunLoader(AliRunLoader* rloader);

  virtual  void Announce() const;
   
  virtual  void  InitLoaders(); //prepares run (i.e. creates getters)

protected:
  virtual  void  Tree2Tree(Option_t *option, const char *detector=0);
  Int_t          fEventNrInRun;      //! Current unique event number in run
  TObjArray     *fModules;           //  List of Detectors
  AliMC         *fMCApp;             //  Pointer to virtual MC Application
  Int_t          fNdets;             //  Number of detectors
  TString        fConfigFunction;    //  Configuration file to be executed
  TString        fBaseFileName;      //  Name of the base root file
  AliRunLoader  *fRunLoader;         //! run getter - written as a separate object
private:
  AliRun(const AliRun&); // Not implemented
  AliRun& operator = (const AliRun&); // Not implemented

  ClassDef(AliRun,15)      //Supervisor class for all Alice detectors
};
 
R__EXTERN  AliRun *gAlice;
  
#endif
 AliRun.h:1
 AliRun.h:2
 AliRun.h:3
 AliRun.h:4
 AliRun.h:5
 AliRun.h:6
 AliRun.h:7
 AliRun.h:8
 AliRun.h:9
 AliRun.h:10
 AliRun.h:11
 AliRun.h:12
 AliRun.h:13
 AliRun.h:14
 AliRun.h:15
 AliRun.h:16
 AliRun.h:17
 AliRun.h:18
 AliRun.h:19
 AliRun.h:20
 AliRun.h:21
 AliRun.h:22
 AliRun.h:23
 AliRun.h:24
 AliRun.h:25
 AliRun.h:26
 AliRun.h:27
 AliRun.h:28
 AliRun.h:29
 AliRun.h:30
 AliRun.h:31
 AliRun.h:32
 AliRun.h:33
 AliRun.h:34
 AliRun.h:35
 AliRun.h:36
 AliRun.h:37
 AliRun.h:38
 AliRun.h:39
 AliRun.h:40
 AliRun.h:41
 AliRun.h:42
 AliRun.h:43
 AliRun.h:44
 AliRun.h:45
 AliRun.h:46
 AliRun.h:47
 AliRun.h:48
 AliRun.h:49
 AliRun.h:50
 AliRun.h:51
 AliRun.h:52
 AliRun.h:53
 AliRun.h:54
 AliRun.h:55
 AliRun.h:56
 AliRun.h:57
 AliRun.h:58
 AliRun.h:59
 AliRun.h:60
 AliRun.h:61
 AliRun.h:62
 AliRun.h:63
 AliRun.h:64
 AliRun.h:65
 AliRun.h:66
 AliRun.h:67
 AliRun.h:68
 AliRun.h:69
 AliRun.h:70
 AliRun.h:71
 AliRun.h:72
 AliRun.h:73
 AliRun.h:74
 AliRun.h:75
 AliRun.h:76
 AliRun.h:77
 AliRun.h:78
 AliRun.h:79
 AliRun.h:80
 AliRun.h:81
 AliRun.h:82
 AliRun.h:83
 AliRun.h:84
 AliRun.h:85
 AliRun.h:86
 AliRun.h:87