X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliMC.h;h=23166f407d073bc1422e0e1c5ecf6dcdce9ed810;hb=fb33abde6779409faa3295d8e2e3d566cec0a208;hp=48735035abc30e5a8ef79ca3dabe92877f8ea80e;hpb=4fc0efd3de29678a75e9d909bc76f142a613e606;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliMC.h b/STEER/AliMC.h index 48735035abc..23166f407d0 100644 --- a/STEER/AliMC.h +++ b/STEER/AliMC.h @@ -5,10 +5,19 @@ /* $Id$ */ +// +// This is the ALICE implementation of TVirtualMCApplication +// for simulation with different implementations +// of the Virtual MonteCarlo +// + #include #include +#include +#include #include +class TParticle; class AliGenerator; class AliMCQA; @@ -29,7 +38,9 @@ public: // MC Application // virtual void ConstructGeometry(); + virtual void ConstructOpGeometry(); virtual void InitGeometry(); + virtual void SetAllAlignableVolumes(); virtual void GeneratePrimaries(); virtual void BeginEvent(); virtual void BeginPrimary(); @@ -57,9 +68,10 @@ public: {fEventEnergy[id]+=edep;} virtual void ResetHits(); virtual void TrackingLimits( Float_t rmax=1.e10, Float_t zmax=1.e10) - {fTrRmax=rmax; fTrZmax=zmax;} - Int_t GetDebug() const {return fDebug;} - virtual void SetDebug(Int_t level=0) {fDebug = level;} + {fTrRmax=rmax; fTrZmax=zmax;} + virtual void DecayLimits( Float_t rmin = -1., Float_t rmax = -1., Int_t pdg = 0) + {fRDecayMin = rmin; fRDecayMax = rmax; fDecayPdg = pdg;} + virtual void Init(); virtual void SetTransPar(const char *filename="$(ALICE_ROOT)/data/galice.cuts"); virtual void Browse(TBrowser *b); @@ -79,25 +91,24 @@ public: virtual void PushTrack(Int_t done, Int_t parent, Int_t pdg, Float_t *pmom, Float_t *vpos, Float_t *polar, Float_t tof, TMCProcess mech, Int_t &ntr, - Float_t weight = 1, Int_t is = 0); + Float_t weight = 1, Int_t is = 0) const; virtual void PushTrack(Int_t done, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Float_t weight=1, - Int_t is = 0); - virtual void SetHighWaterMark(Int_t nt); + Int_t is = 0) const; + virtual void SetHighWaterMark(Int_t nt) const; - virtual void KeepTrack(Int_t itra); - virtual void FlagTrack(Int_t track); - virtual void SetCurrentTrack(Int_t track); + virtual void KeepTrack(Int_t itra) const; + virtual void FlagTrack(Int_t track) const; + virtual void SetCurrentTrack(Int_t track) const; // Track reference related virtual void AddTrackReference(Int_t label); TClonesArray *TrackReferences() const {return fTrackReferences;} virtual void RemapTrackReferencesIDs(Int_t *map); //remaping track references MI virtual void ResetTrackReferences(); - - + virtual void FixParticleDecaytime(); private: void Copy (TObject &mc) const; @@ -107,7 +118,9 @@ private: TArrayF fSum2Energy; //! Energy squared per event in each volume Float_t fTrRmax; // Maximum radius for tracking Float_t fTrZmax; // Maximu z for tracking - Int_t fDebug; // Debug flag + Float_t fRDecayMax; // Maximum radius for decay + Float_t fRDecayMin; // Minimum radius for decay + Int_t fDecayPdg; // PDG code of particle with forced decay length TArrayI *fImedia; //! Array of correspondence between media and detectors TString fTransParName; // Name of the transport parameters file AliMCQA *fMCQA; // Pointer to MC Quality assurance class @@ -115,7 +128,7 @@ private: TList *fHitLists; //! Lists of hits to be remapped by PurifyKine TClonesArray *fTrackReferences; //!list of track references - for one primary track only -MI - ClassDef(AliMC,1) + ClassDef(AliMC,2) };