#include "AliMagF.h"
#include "AliMC.h"
#include "AliGenerator.h"
-#include "AliLego.h"
+class AliLego;
+//#include "AliLego.h"
enum {Keep_Bit=1, Daughters_Bit=2, Done_Bit=4};
Bool_t fInitDone; //true when initialisation done
AliLego *fLego; //pointer to aliLego object if it exists
TDatabasePDG *fPDGDB; //Particle factory object!
+ TList *fHitLists; //Lists of hits to be remapped by PurifyKine
+ TArrayF fEventEnergy; //Energy deposit for current event
+ TArrayF fSummEnergy; //Energy per event in each volume
+ TArrayF fSum2Energy; //Energy squared per event in each volume
+ TString fConfigFunction; //Configuration file to be executed
+
public:
// Creators - distructors
virtual void AddHit(Int_t id, Int_t track, Int_t *vol, Float_t *hits) const;
virtual void AddDigit(Int_t id, Int_t *tracks, Int_t *digits) const;
+ virtual void AddHitList(TCollection *hitList) {fHitLists->Add(hitList);}
virtual void Browse(TBrowser *b);
virtual void Build();
virtual void BuildSimpleGeometry();
virtual void FinishEvent();
virtual void FinishRun();
virtual void FlagTrack(Int_t track);
+ void AddEnergyDeposit(Int_t id, Float_t edep)
+ {fEventEnergy[id]+=edep;}
Int_t GetEvNumber() const {return fEvent;}
Int_t GetRunNumber() const {return fRun;}
void SetRunNumber(Int_t run) {fRun=run;}
AliDetector *GetDetector(const char *name);
Int_t GetModuleID(const char *name);
virtual Int_t GetEvent(Int_t event);
+ virtual void SetEvent(Int_t event) {fEvent=event;}
+ virtual void SetConfigFunction(const char * config="Config();")
+ {fConfigFunction=config;}
+ virtual const char *GetConfigFunction() const
+ {return fConfigFunction.Data();}
TGeometry *GetGeometry();
AliHeader *GetHeader() {return &fHeader;}
- virtual void GetNextTrack(Int_t &mtrack, Int_t &ipart, Float_t *pmom, Float_t &e, Float_t *vpos, Float_t *polar, Float_t &tof);
+ virtual void GetNextTrack(Int_t &mtrack, Int_t &ipart, Float_t *pmom,
+ Float_t &e, Float_t *vpos, Float_t *polar,
+ Float_t &tof);
Int_t GetNtrack() {return fNtrack;}
virtual Int_t GetPrimary(Int_t track);
- virtual void Init(const char *setup="Config.C");
+ virtual void InitMC(const char *setup="Config.C");
+ virtual void Init(const char *setup="Config.C") {InitMC(setup);}
Bool_t IsFolder() {return kTRUE;}
+ virtual AliLego* Lego() const {return fLego;}
virtual void MakeTree(Option_t *option="KH");
TClonesArray *Particles() {return fParticles;};
virtual void PurifyKine();
virtual Int_t PurifyKine(Int_t lastSavedTrack, Int_t nofTracks);
- virtual void Reset(Int_t run, Int_t idevent);
+ virtual void BeginEvent();
virtual void ResetDigits();
virtual void ResetHits();
virtual void ResetPoints();
virtual void SetTransPar(char *filename="$(ALICE_ROOT)/data/galice.cuts");
virtual void ResetStack() {fCurrent=-1;fHgwmk=0;fNtrack=0;fParticles->Clear();}
- virtual void Run(Int_t nevent=1, const char *setup="Config.C");
+ virtual void RunMC(Int_t nevent=1, const char *setup="Config.C");
+ virtual void Run(Int_t nevent=1, const char *setup="Config.C")
+ {RunMC(nevent,setup);}
virtual void RunLego(const char *setup="Config.C",Int_t ntheta=60,Float_t themin=2,Float_t themax=178,
Int_t nphi=60,Float_t phimin=0,Float_t phimax=360,Float_t rmin=0,
- Float_t rmax=570,Float_t zmax=10000);
+ Float_t rmax=430,Float_t zmax=10000);
+ virtual Bool_t IsLegoRun() const {return (fLego!=0);}
virtual void SetCurrentTrack(Int_t track);
virtual void SetDebug(const Int_t level=1) {fDebug = level;}
virtual void SetDisplay(AliDisplay *display) {fDisplay = display;}
- virtual void StepManager(Int_t id) const;
+ virtual void StepManager(Int_t id);
virtual void SetField(Int_t type=2, Int_t version=1, Float_t scale=1, Float_t maxField=10, char*filename="$(ALICE_ROOT)/data/field01.dat");
virtual void SetTrack(Int_t done, Int_t parent, Int_t pdg,
Float_t *pmom, Float_t *vpos, Float_t *polar,
virtual Int_t DetFromMate(Int_t i) { return (*fImedia)[i];}
virtual AliGenerator* Generator() {return fGenerator;}
virtual void SetGenerator(AliGenerator *generator);
+ virtual void ResetGenerator(AliGenerator *generator);
virtual void EnergySummary();
virtual const TDatabasePDG* PDGDB() const {return fPDGDB;}
- // Functions from GEOCAD
- //_______________________________________________________________________
-
- virtual void ReadEuclid(const char*, const AliModule*, char*);
- virtual void ReadEuclidMedia(const char*, const AliModule*);
TTree *TreeD() {return fTreeD;}
TTree *TreeE() {return fTreeE;}
// --------------------------- commons -------------------------------------
- ClassDef(AliRun,2) //Supervisor class for all Alice detectors
+ ClassDef(AliRun,3) //Supervisor class for all Alice detectors
};
-EXTERN AliRun *gAlice;
+R__EXTERN AliRun *gAlice;
#endif