Skip to content
Snippets Groups Projects
Commit c396d157 authored by Ivana Hrivnacova's avatar Ivana Hrivnacova
Browse files

Fixes in comments for Doxygen documentation

parent 45eb4eca
No related branches found
No related tags found
No related merge requests found
Showing
with 915 additions and 930 deletions
......@@ -140,10 +140,10 @@ private:
Double_t* CreateDoubleArray(Float_t* array, Int_t size) const;
void Vname(const char *name, char *vname) const;
Bool_t fG3CompatibleVolumeNames; // option to convert volumes names to
// be compatible with G3
/// Option to convert volumes names to be compatible with G3
Bool_t fG3CompatibleVolumeNames;
static TGeoMCGeometry* fgInstance; // singleton instance
static TGeoMCGeometry* fgInstance; ///< Singleton instance
ClassDef(TGeoMCGeometry,2) // VMC TGeo Geometry builder
};
......
......@@ -17,28 +17,31 @@
//
#include "Rtypes.h"
/// Optical surface models
enum EMCOpSurfaceModel
{
kGlisur, // original GEANT3 model
kUnified // UNIFIED model
kGlisur, ///< original GEANT3 model
kUnified ///< UNIFIED model
};
/// Optical surface types
enum EMCOpSurfaceType
{
kDielectric_metal, // dielectric-metal interface
kDielectric_dielectric, // dielectric-dielectric interface
kFirsov, // for Firsov Process
kXray // for x-ray mirror process
kDielectric_metal, ///< dielectric-metal interface
kDielectric_dielectric, ///< dielectric-dielectric interface
kFirsov, ///< for Firsov Process
kXray ///< for x-ray mirror process
};
/// Optical surface finish types
enum EMCOpSurfaceFinish
{
kPolished, // smooth perfectly polished surface
kPolishedfrontpainted, // smooth top-layer (front) paint
kPolishedbackpainted, // same is 'polished' but with a back-paint
kGround, // rough surface
kGroundfrontpainted, // rough top-layer (front) paint
kGroundbackpainted // same as 'ground' but with a back-paint
kPolished, ///< smooth perfectly polished surface
kPolishedfrontpainted, ///< smooth top-layer (front) paint
kPolishedbackpainted, ///< same is 'polished' but with a back-paint
kGround, ///< rough surface
kGroundfrontpainted, ///< rough top-layer (front) paint
kGroundbackpainted ///< same as 'ground' but with a back-paint
};
#endif //ROOT_TMCOPtical
......@@ -20,18 +20,19 @@
#include "Rtypes.h"
/// VMC particle type codes
enum TMCParticleType
{
kPTGamma, // particle tracked as gamma
kPTElectron, // particle tracked as electron
kPTNeutron, // particle tracked as neutron
kPTHadron, // particle tracked as hadron
kPTMuon, // particle tracked as muon
kPTGeantino, // particle tracked as geantino
kPTChargedGeantino,// particle tracked as charged geantino
kPTOpticalPhoton, // particle tracked as light photon
kPTIon, // particle tracked as heavy ion
kPTUndefined // unknown particle type
kPTGamma, ///< particle tracked as gamma
kPTElectron, ///< particle tracked as electron
kPTNeutron, ///< particle tracked as neutron
kPTHadron, ///< particle tracked as hadron
kPTMuon, ///< particle tracked as muon
kPTGeantino, ///< particle tracked as geantino
kPTChargedGeantino,///< particle tracked as charged geantino
kPTOpticalPhoton, ///< particle tracked as light photon
kPTIon, ///< particle tracked as heavy ion
kPTUndefined ///< unknown particle type
};
#endif
......@@ -19,71 +19,72 @@
const Int_t kMaxMCProcess = 49;
/// VMC physics process codes
enum TMCProcess
{
kPPrimary = 0, // Primary interaction
kPMultipleScattering = 1, // multiple scattering
kPCoulombScattering = 45, // single Coulomb scattering
kPEnergyLoss = 2, // continuous energy loss
kPMagneticFieldL = 3, // bending in mag. field
kPDecay = 4, // particle decay
kPPair = 5, // photon pair production or
// muon direct pair production
kPCompton = 6, // Compton scattering
kPPhotoelectric = 7, // photoelectric effect
kPBrem = 8, // bremsstrahlung
kPDeltaRay = 9, // delta-ray production
kPAnnihilation = 10, // positron annihilation
kPAnnihilationRest = 11, // positron annihilation at rest
kPAnnihilationFlight = 12, // positron annihilation in flight
kPHadronic = 13, // hadronic interaction
kPEvaporation = 14, // nuclear evaporation
kPNuclearFission = 15, // nuclear fission
kPNuclearAbsorption = 16, // nuclear absorption
kPPbarAnnihilation = 17, // antiproton annihilation
kPNbarAnnihilation = 18, // antineutron annihilation
kPNCapture = 19, // neutron capture
kPHElastic = 20, // hadronic elastic scattering
kPHIElastic = 21, // hadronic elastic incoherent scattering
kPHCElastic = 22, // hadronic elastic coherent scattering
kPHInhelastic = 23, // hadronic inelastic scattering
kPPhotonInhelastic = 24, // photon inelastic scattering
kPMuonNuclear = 25, // muon nuclear interaction
kPElectronNuclear = 26, // electron nuclear interaction
kPPositronNuclear = 27, // positron nuclear interaction
kPPhotoNuclear = 46, // photo nuclear interaction
kPTOFlimit = 28, // exceeded time of flight cut
kPPhotoFission = 29, // nuclear photofission
kPRayleigh = 30, // Rayleigh scattering
kPNull = 31, // no mechanism is active, usually at the entrance
// of a new volume
kPStop = 32, // particle has fallen below energy threshold
// and tracking stops
kPLightAbsorption = 33, // Cerenkov photon absorption
kPLightDetection = 34, // Optical photon detection (absorption + photoelectron production)
kPLightScattering = 35, // Cerenkov photon reflection/refraction
kPLightWLShifting = 48, // Optical photon wavelength shifting
kStepMax = 36, // step limited by STEMAX
kPCerenkov = 37, // Cerenkov photon generation
kPFeedBackPhoton = 38, // Feed back photon in RICH -- ALICE specific
kPLightReflection = 39, // Cerenkov photon reflection
kPLightRefraction = 40, // Cerenkov photon refraction or
// dichroic mirror transmission
kPSynchrotron = 41, // synchrotron radiation generation
kPScintillation = 42, // scintillation
kPTransportation = 43, // Transportation
kPUserDefined = 47, // User defined process
kPNoProcess = 44 // unknown process
kPPrimary = 0, ///< Primary interaction
kPMultipleScattering = 1, ///< multiple scattering
kPCoulombScattering = 45, ///< single Coulomb scattering
kPEnergyLoss = 2, ///< continuous energy loss
kPMagneticFieldL = 3, ///< bending in mag. field
kPDecay = 4, ///< particle decay
kPPair = 5, ///< photon pair production or
///< muon direct pair production
kPCompton = 6, ///< Compton scattering
kPPhotoelectric = 7, ///< photoelectric effect
kPBrem = 8, ///< bremsstrahlung
kPDeltaRay = 9, ///< delta-ray production
kPAnnihilation = 10, ///< positron annihilation
kPAnnihilationRest = 11, ///< positron annihilation at rest
kPAnnihilationFlight = 12, ///< positron annihilation in flight
kPHadronic = 13, ///< hadronic interaction
kPEvaporation = 14, ///< nuclear evaporation
kPNuclearFission = 15, ///< nuclear fission
kPNuclearAbsorption = 16, ///< nuclear absorption
kPPbarAnnihilation = 17, ///< antiproton annihilation
kPNbarAnnihilation = 18, ///< antineutron annihilation
kPNCapture = 19, ///< neutron capture
kPHElastic = 20, ///< hadronic elastic scattering
kPHIElastic = 21, ///< hadronic elastic incoherent scattering
kPHCElastic = 22, ///< hadronic elastic coherent scattering
kPHInhelastic = 23, ///< hadronic inelastic scattering
kPPhotonInhelastic = 24, ///< photon inelastic scattering
kPMuonNuclear = 25, ///< muon nuclear interaction
kPElectronNuclear = 26, ///< electron nuclear interaction
kPPositronNuclear = 27, ///< positron nuclear interaction
kPPhotoNuclear = 46, ///< photo nuclear interaction
kPTOFlimit = 28, ///< exceeded time of flight cut
kPPhotoFission = 29, ///< nuclear photofission
kPRayleigh = 30, ///< Rayleigh scattering
kPNull = 31, ///< no mechanism is active, usually at the entrance
///< of a new volume
kPStop = 32, ///< particle has fallen below energy threshold
///< and tracking stops
kPLightAbsorption = 33, ///< Cerenkov photon absorption
kPLightDetection = 34, ///< Optical photon detection (absorption + photoelectron production)
kPLightScattering = 35, ///< Cerenkov photon reflection/refraction
kPLightWLShifting = 48, ///< Optical photon wavelength shifting
kStepMax = 36, ///< step limited by STEMAX
kPCerenkov = 37, ///< Cerenkov photon generation
kPFeedBackPhoton = 38, ///< Feed back photon in RICH -- ALICE specific
kPLightReflection = 39, ///< Cerenkov photon reflection
kPLightRefraction = 40, ///< Cerenkov photon refraction or
/// dichroic mirror transmission
kPSynchrotron = 41, ///< synchrotron radiation generation
kPScintillation = 42, ///< scintillation
kPTransportation = 43, ///< Transportation
kPUserDefined = 47, ///< User defined process
kPNoProcess = 44 ///< unknown process
};
static const char * const TMCProcessName[kMaxMCProcess] = {
......
......@@ -16,7 +16,7 @@
//
// Class TMCVerbose
// ----------------
// Class for printing detailed info from MC application.
// Class for printing a detailed infomation from MC application.
// Defined levels:
// 0 no output
// 1 info up to event level
......@@ -63,8 +63,8 @@ private:
void PrintStepHeader() const;
// data members
Int_t fLevel; // verbose level
Int_t fStepNumber; // current step number
Int_t fLevel; ///< Verbose level
Int_t fStepNumber; ///< Current step number
ClassDef(TMCVerbose,1) //Verbose class for MC application
};
......
This diff is collapsed.
......@@ -30,90 +30,95 @@
class TVirtualMCApplication : public TNamed {
public:
// Standard constructor
/// Standard constructor
TVirtualMCApplication(const char *name, const char *title);
// Default constructor
/// Default constructor
TVirtualMCApplication();
// Destructor
/// Destructor
virtual ~TVirtualMCApplication();
// Static access method
/// Static access method
static TVirtualMCApplication* Instance();
//
// methods
//
// Construct user geometry
/// Construct user geometry
virtual void ConstructGeometry() = 0;
// Misalign user geometry (optional)
/// Misalign user geometry (optional)
virtual Bool_t MisalignGeometry() {return kFALSE;}
// Define parameters for optical processes (optional)
/// Define parameters for optical processes (optional)
virtual void ConstructOpGeometry() {}
// Initialize geometry
// (Usually used to define sensitive volumes IDs)
/// Initialize geometry
/// (Usually used to define sensitive volumes IDs)
virtual void InitGeometry() = 0;
// Add user defined particles (optional)
/// Add user defined particles (optional)
virtual void AddParticles() {}
// Add user defined ions (optional)
/// Add user defined ions (optional)
virtual void AddIons() {}
// Generate primary particles
/// Generate primary particles
virtual void GeneratePrimaries() = 0;
// Define actions at the beginning of the event
/// Define actions at the beginning of the event
virtual void BeginEvent() = 0;
// Define actions at the beginning of the primary track
/// Define actions at the beginning of the primary track
virtual void BeginPrimary() = 0;
// Define actions at the beginning of each track
/// Define actions at the beginning of each track
virtual void PreTrack() = 0;
// Define action at each step
/// Define action at each step
virtual void Stepping() = 0;
// Define actions at the end of each track
/// Define actions at the end of each track
virtual void PostTrack() = 0;
// Define actions at the end of the primary track
/// Define actions at the end of the primary track
virtual void FinishPrimary() = 0;
// Define actions at the end of the event
/// Define actions at the end of the event
virtual void FinishEvent() = 0;
// Define maximum radius for tracking (optional)
/// Define maximum radius for tracking (optional)
virtual Double_t TrackingRmax() const { return DBL_MAX; }
// Define maximum z for tracking (optional)
/// Define maximum z for tracking (optional)
virtual Double_t TrackingZmax() const { return DBL_MAX; }
// Calculate user field \a b at point \a x
/// Calculate user field \a b at point \a x
virtual void Field(const Double_t* x, Double_t* b) const;
// Define action at each step for Geane
/// Define action at each step for Geane
virtual void GeaneStepping() {;}
// New functions for multi-threading applications
/// Clone MC application on worker
virtual TVirtualMCApplication* CloneForWorker() const { return 0;}
/// Initialize MC application on worker
virtual void InitForWorker() const {}
/// Define actions at the beginning of the worker run if needed
virtual void BeginWorkerRun() const {}
/// Define actions at the end of the worker run if needed
virtual void FinishWorkerRun() const {}
/// Merge the data accumulated on workers to the master if needed
virtual void Merge(TVirtualMCApplication* /*localMCApplication*/) {}
private:
// static data members
#if !defined(__CINT__)
static TMCThreadLocal TVirtualMCApplication* fgInstance; // singleton instance
static TMCThreadLocal TVirtualMCApplication* fgInstance; ///< Singleton instance
#else
static TVirtualMCApplication* fgInstance; // singleton instance
static TVirtualMCApplication* fgInstance; ///< Singleton instance
#endif
ClassDef(TVirtualMCApplication,1) //Interface to MonteCarlo application
......
......@@ -42,85 +42,85 @@ public:
// ------------------------------------------------
//
// Define a material
// kmat number assigned to the material
// name material name
// a atomic mass in au
// z atomic number
// dens density in g/cm3
// absl absorption length in cm;
// if >=0 it is ignored and the program
// calculates it, if <0. -absl is taken
// radl radiation length in cm
// if >=0 it is ignored and the program
// calculates it, if <0. -radl is taken
// buf pointer to an array of user words
// nwbuf number of user words
/// Define a material
/// - kmat number assigned to the material
/// - name material name
/// - a atomic mass in au
/// - z atomic number
/// - dens density in g/cm3
/// - absl absorption length in cm;
/// if >=0 it is ignored and the program
/// calculates it, if <0. -absl is taken
/// - radl radiation length in cm
/// if >=0 it is ignored and the program
/// calculates it, if <0. -radl is taken
/// - buf pointer to an array of user words
/// - nwbuf number of user words
virtual void Material(Int_t& kmat, const char* name, Double_t a,
Double_t z, Double_t dens, Double_t radl, Double_t absl,
Float_t* buf, Int_t nwbuf) = 0;
// The same as previous but in double precision
/// The same as previous but in double precision
virtual void Material(Int_t& kmat, const char* name, Double_t a,
Double_t z, Double_t dens, Double_t radl, Double_t absl,
Double_t* buf, Int_t nwbuf) = 0;
// Define mixture or compound
// with a number kmat composed by the basic nlmat materials defined
// by arrays a, z and wmat
/// Define mixture or compound
/// with a number kmat composed by the basic nlmat materials defined
/// by arrays a, z and wmat
//
// If nlmat > 0 then wmat contains the proportion by
// weights of each basic material in the mixture.
/// If nlmat > 0 then wmat contains the proportion by
/// weights of each basic material in the mixture.
//
// If nlmat < 0 then wmat contains the number of atoms
// of a given kind into the molecule of the compound.
// In this case, wmat in output is changed to relative
// weights.
/// If nlmat < 0 then wmat contains the number of atoms
/// of a given kind into the molecule of the compound.
/// In this case, wmat in output is changed to relative
/// weights.
virtual void Mixture(Int_t& kmat, const char *name, Float_t *a,
Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat) = 0;
// The same as previous but in double precision
/// The same as previous but in double precision
virtual void Mixture(Int_t& kmat, const char *name, Double_t *a,
Double_t *z, Double_t dens, Int_t nlmat, Double_t *wmat) = 0;
// Define a medium.
// kmed tracking medium number assigned
// name tracking medium name
// nmat material number
// isvol sensitive volume flag
// ifield magnetic field:
// - ifield = 0 if no magnetic field;
// - ifield = -1 if user decision in guswim;
// - ifield = 1 if tracking performed with g3rkuta;
// - ifield = 2 if tracking
// fieldm max. field value (kilogauss)
// tmaxfd max. angle due to field (deg/step)
// stemax max. step allowed
// deemax max. fraction of energy lost in a step
// epsil tracking precision (cm)
// stmin min. step due to continuous processes (cm)
// ubuf pointer to an array of user words
// nbuf number of user words
// performed with g3helix; ifield = 3 if tracking performed with g3helx3.
/// Define a medium.
/// - kmed tracking medium number assigned
/// - name tracking medium name
/// - nmat material number
/// - isvol sensitive volume flag
/// - ifield magnetic field:
/// - ifield = 0 if no magnetic field;
/// - ifield = -1 if user decision in guswim;
/// - ifield = 1 if tracking performed with g3rkuta;
/// - ifield = 2 if tracking performed with g3helix;
/// - ifield = 3 if tracking performed with g3helx3.
/// - fieldm max. field value (kilogauss)
/// - tmaxfd max. angle due to field (deg/step)
/// - stemax max. step allowed
/// - deemax max. fraction of energy lost in a step
/// - epsil tracking precision (cm)
/// - stmin min. step due to continuous processes (cm)
/// - ubuf pointer to an array of user words
/// - nbuf number of user words
virtual void Medium(Int_t& kmed, const char *name, Int_t nmat,
Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd,
Double_t stemax, Double_t deemax, Double_t epsil,
Double_t stmin, Float_t* ubuf, Int_t nbuf) = 0;
// The same as previous but in double precision
/// The same as previous but in double precision
virtual void Medium(Int_t& kmed, const char *name, Int_t nmat,
Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd,
Double_t stemax, Double_t deemax, Double_t epsil,
Double_t stmin, Double_t* ubuf, Int_t nbuf) = 0;
// Define a rotation matrix
// krot rotation matrix number assigned
// thetaX polar angle for axis X
// phiX azimuthal angle for axis X
// thetaY polar angle for axis Y
// phiY azimuthal angle for axis Y
// thetaZ polar angle for axis Z
// phiZ azimuthal angle for axis Z
/// Define a rotation matrix
/// - krot rotation matrix number assigned
/// - thetaX polar angle for axis X
/// - phiX azimuthal angle for axis X
/// - thetaY polar angle for axis Y
/// - phiY azimuthal angle for axis Y
/// - thetaZ polar angle for axis Z
/// - phiZ azimuthal angle for axis Z
virtual void Matrix(Int_t& krot, Double_t thetaX, Double_t phiX,
Double_t thetaY, Double_t phiY, Double_t thetaZ,
Double_t phiZ) = 0;
......@@ -130,92 +130,92 @@ public:
// ------------------------------------------------
//
// Create a new volume
// name Volume name
// shape Volume type
// nmed Tracking medium number
// np Number of shape parameters
// upar Vector containing shape parameters
/// Create a new volume
/// - name Volume name
/// - shape Volume type
/// - nmed Tracking medium number
/// - np Number of shape parameters
/// - upar Vector containing shape parameters
virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed,
Float_t *upar, Int_t np) = 0;
// The same as previous but in double precision
/// The same as previous but in double precision
virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed,
Double_t *upar, Int_t np) = 0;
// Create a new volume by dividing an existing one.
// It divides a previously defined volume
// name Volume name
// mother Mother volume name
// ndiv Number of divisions
// iaxis Axis value:
// X,Y,Z of CAXIS will be translated to 1,2,3 for IAXIS.
/// Create a new volume by dividing an existing one.
/// It divides a previously defined volume
/// - name Volume name
/// - mother Mother volume name
/// - ndiv Number of divisions
/// - iaxis Axis value:
/// X,Y,Z of CAXIS will be translated to 1,2,3 for IAXIS.
virtual void Gsdvn(const char *name, const char *mother, Int_t ndiv,
Int_t iaxis) = 0;
// Create a new volume by dividing an existing one.
// Divide mother into ndiv divisions called name
// along axis iaxis starting at coordinate value c0i.
// The new volume created will be medium number numed.
/// Create a new volume by dividing an existing one.
/// Divide mother into ndiv divisions called name
/// along axis iaxis starting at coordinate value c0i.
/// The new volume created will be medium number numed.
virtual void Gsdvn2(const char *name, const char *mother, Int_t ndiv,
Int_t iaxis, Double_t c0i, Int_t numed) = 0;
// Create a new volume by dividing an existing one
// Divide mother into divisions called name along
// axis iaxis in steps of step. If not exactly divisible
// will make as many as possible and will center them
// with respect to the mother. Divisions will have medium
// number numed. If numed is 0, numed of mother is taken.
// ndvmx is the expected maximum number of divisions
// (If 0, no protection tests are performed in Geant3)
/// Create a new volume by dividing an existing one
/// Divide mother into divisions called name along
/// axis iaxis in steps of step. If not exactly divisible
/// will make as many as possible and will center them
/// with respect to the mother. Divisions will have medium
/// number numed. If numed is 0, numed of mother is taken.
/// ndvmx is the expected maximum number of divisions
/// (If 0, no protection tests are performed in Geant3)
virtual void Gsdvt(const char *name, const char *mother, Double_t step,
Int_t iaxis, Int_t numed, Int_t ndvmx) = 0;
// Create a new volume by dividing an existing one
// Divides mother into divisions called name along
// axis iaxis starting at coordinate value c0 with step
// size step.
// The new volume created will have medium number numed.
// If numed is 0, numed of mother is taken.
// ndvmx is the expected maximum number of divisions
// (If 0, no protection tests are performed in Geant3)
/// Create a new volume by dividing an existing one
/// Divides mother into divisions called name along
/// axis iaxis starting at coordinate value c0 with step
/// size step.
/// The new volume created will have medium number numed.
/// If numed is 0, numed of mother is taken.
/// ndvmx is the expected maximum number of divisions
/// (If 0, no protection tests are performed in Geant3)
virtual void Gsdvt2(const char *name, const char *mother, Double_t step,
Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx) = 0;
// Flag volume name whose contents will have to be ordered
// along axis iax, by setting the search flag to -iax
// (Geant3 only)
/// Flag volume name whose contents will have to be ordered
/// along axis iax, by setting the search flag to -iax
/// (Geant3 only)
virtual void Gsord(const char *name, Int_t iax) = 0;
// Position a volume into an existing one.
// It positions a previously defined volume in the mother.
// name Volume name
// nr Copy number of the volume
// mother Mother volume name
// x X coord. of the volume in mother ref. sys.
// y Y coord. of the volume in mother ref. sys.
// z Z coord. of the volume in mother ref. sys.
// irot Rotation matrix number w.r.t. mother ref. sys.
// konly ONLY/MANY flag
/// Position a volume into an existing one.
/// It positions a previously defined volume in the mother.
/// - name Volume name
/// - nr Copy number of the volume
/// - mother Mother volume name
/// - x X coord. of the volume in mother ref. sys.
/// - y Y coord. of the volume in mother ref. sys.
/// - z Z coord. of the volume in mother ref. sys.
/// - irot Rotation matrix number w.r.t. mother ref. sys.
/// - konly ONLY/MANY flag
virtual void Gspos(const char *name, Int_t nr, const char *mother,
Double_t x, Double_t y, Double_t z, Int_t irot,
const char *konly="ONLY") = 0;
// Place a copy of generic volume name with user number
// nr inside mother, with its parameters upar(1..np)
/// Place a copy of generic volume name with user number
/// nr inside mother, with its parameters upar(1..np)
virtual void Gsposp(const char *name, Int_t nr, const char *mother,
Double_t x, Double_t y, Double_t z, Int_t irot,
const char *konly, Float_t *upar, Int_t np) = 0;
// The same as previous but in double precision
/// The same as previous but in double precision
virtual void Gsposp(const char *name, Int_t nr, const char *mother,
Double_t x, Double_t y, Double_t z, Int_t irot,
const char *konly, Double_t *upar, Int_t np) = 0;
// Helper function for resolving MANY.
// Specify the ONLY volume that overlaps with the
// specified MANY and has to be substracted.
// (Geant4 only)
/// Helper function for resolving MANY.
/// Specify the ONLY volume that overlaps with the
/// specified MANY and has to be substracted.
/// (Geant4 only)
virtual void Gsbool(const char* onlyVolName, const char* manyVolName) = 0;
//
......@@ -223,25 +223,25 @@ public:
// ------------------------------------------------
//
// Return the transformation matrix between the volume specified by
// the path volumePath and the top or master volume.
/// Return the transformation matrix between the volume specified by
/// the path volumePath and the top or master volume.
virtual Bool_t GetTransformation(const TString& volumePath,
TGeoHMatrix& matrix) = 0;
// Return the name of the shape (shapeType) and its parameters par
// for the volume specified by the path volumePath .
/// Return the name of the shape (shapeType) and its parameters par
/// for the volume specified by the path volumePath .
virtual Bool_t GetShape(const TString& volumePath,
TString& shapeType, TArrayD& par) = 0;
// Return the material parameters for the volume specified by
// the volumeName.
/// Return the material parameters for the volume specified by
/// the volumeName.
virtual Bool_t GetMaterial(const TString& volumeName,
TString& name, Int_t& imat,
Double_t& a, Double_t& z, Double_t& density,
Double_t& radl, Double_t& inter, TArrayD& par) = 0;
// Return the medium parameters for the volume specified by the
// volumeName.
/// Return the medium parameters for the volume specified by the
/// volumeName.
virtual Bool_t GetMedium(const TString& volumeName,
TString& name, Int_t& imed,
Int_t& nmat, Int_t& isvol, Int_t& ifield,
......@@ -265,28 +265,28 @@ public:
//
// Return the unique numeric identifier for volume name volName
/// Return the unique numeric identifier for volume name volName
virtual Int_t VolId(const char* volName) const = 0;
// Return the volume name for a given volume identifier id
/// Return the volume name for a given volume identifier id
virtual const char* VolName(Int_t id) const = 0;
// Return the unique numeric identifier for medium name mediumName
/// Return the unique numeric identifier for medium name mediumName
virtual Int_t MediumId(const char* mediumName) const = 0;
// Return total number of volumes in the geometry
/// Return total number of volumes in the geometry
virtual Int_t NofVolumes() const = 0;
// Return number of daughters of the volume specified by volName
/// Return number of daughters of the volume specified by volName
virtual Int_t NofVolDaughters(const char* volName) const = 0;
// Return the name of i-th daughter of the volume specified by volName
/// Return the name of i-th daughter of the volume specified by volName
virtual const char* VolDaughterName(const char* volName, Int_t i) const = 0;
// Return the copyNo of i-th daughter of the volume specified by volName
/// Return the copyNo of i-th daughter of the volume specified by volName
virtual Int_t VolDaughterCopyNo(const char* volName, Int_t i) const = 0;
// Return material number for a given volume id
/// Return material number for a given volume id
virtual Int_t VolId2Mate(Int_t id) const = 0;
protected:
......
......@@ -36,19 +36,19 @@ public:
// Methods for stacking
//
// Create a new particle and push into stack;
// toBeDone - 1 if particles should go to tracking, 0 otherwise
// parent - number of the parent track, -1 if track is primary
// pdg - PDG encoding
// px, py, pz - particle momentum [GeV/c]
// e - total energy [GeV]
// vx, vy, vz - position [cm]
// tof - time of flight [s]
// polx, poly, polz - polarization
// mech - creator process VMC code
// ntr - track number (is filled by the stack
// weight - particle weight
// is - generation status code
/// Create a new particle and push into stack;
/// - toBeDone - 1 if particles should go to tracking, 0 otherwise
/// - parent - number of the parent track, -1 if track is primary
/// - pdg - PDG encoding
/// - px, py, pz - particle momentum [GeV/c]
/// - e - total energy [GeV]
/// - vx, vy, vz - position [cm]
/// - tof - time of flight [s]
/// - polx, poly, polz - polarization
/// - mech - creator process VMC code
/// - ntr - track number (is filled by the stack
/// - weight - particle weight
/// - is - generation status code
virtual void PushTrack(Int_t toBeDone, 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,
......@@ -56,40 +56,40 @@ public:
TMCProcess mech, Int_t& ntr, Double_t weight,
Int_t is) = 0;
// The stack has to provide two pop mechanisms:
// The first pop mechanism required.
// Pop all particles with toBeDone = 1, both primaries and seconadies
/// The stack has to provide two pop mechanisms:
/// The first pop mechanism required.
/// Pop all particles with toBeDone = 1, both primaries and seconadies
virtual TParticle* PopNextTrack(Int_t& itrack) = 0;
// The second pop mechanism required.
// Pop only primary particles with toBeDone = 1, stacking of secondaries
// is done by MC
/// The second pop mechanism required.
/// Pop only primary particles with toBeDone = 1, stacking of secondaries
/// is done by MC
virtual TParticle* PopPrimaryForTracking(Int_t i) = 0;
//
// Set methods
//
// Set the current track number
/// Set the current track number
virtual void SetCurrentTrack(Int_t trackNumber) = 0;
//
// Get methods
//
// Total number of tracks
/// Total number of tracks
virtual Int_t GetNtrack() const = 0;
// Total number of primary tracks
/// Total number of primary tracks
virtual Int_t GetNprimary() const = 0;
// Current track particle
/// Current track particle
virtual TParticle* GetCurrentTrack() const= 0;
// Current track number
/// Current track number
virtual Int_t GetCurrentTrackNumber() const = 0;
// Number of the parent of the current track
/// Number of the parent of the current track
virtual Int_t GetCurrentParentTrackNumber() const = 0;
ClassDef(TVirtualMCStack,1) //Interface to a particles stack
......
This diff is collapsed.
......@@ -19,22 +19,20 @@
#include "TMCVerbose.h"
//______________________________________________________________________________
//
// Class for printing detailed info from MC application.
// Defined levels:
// 0 no output
// 1 info up to event level
// 2 info up to tracking level
// 3 detailed info for each step
//______________________________________________________________________________
/** \class TMCVerbose
Class for printing a detailed infomation from MC application.
Defined levels:
- 0 no output
- 1 info up to event level
- 2 info up to tracking level
- 3 detailed info for each step
*/
ClassImp(TMCVerbose)
////////////////////////////////////////////////////////////////////////////////
/// Standard constructor
/// ---
TMCVerbose::TMCVerbose(Int_t level)
: TObject(),
......@@ -45,7 +43,6 @@ TMCVerbose::TMCVerbose(Int_t level)
////////////////////////////////////////////////////////////////////////////////
/// Default constructor
/// ---
TMCVerbose::TMCVerbose()
: TObject(),
......@@ -56,7 +53,6 @@ TMCVerbose::TMCVerbose()
////////////////////////////////////////////////////////////////////////////////
/// Destructor
/// ---
TMCVerbose::~TMCVerbose()
{
......@@ -68,7 +64,6 @@ TMCVerbose::~TMCVerbose()
////////////////////////////////////////////////////////////////////////////////
/// Prints banner for track information
/// ---
void TMCVerbose::PrintBanner() const
{
......@@ -79,7 +74,6 @@ void TMCVerbose::PrintBanner() const
////////////////////////////////////////////////////////////////////////////////
/// Prints track information
/// ---
void TMCVerbose::PrintTrackInfo() const
{
......@@ -103,7 +97,6 @@ void TMCVerbose::PrintTrackInfo() const
////////////////////////////////////////////////////////////////////////////////
/// Prints the header for stepping information
/// ---
void TMCVerbose::PrintStepHeader() const
{
......@@ -126,7 +119,6 @@ void TMCVerbose::PrintStepHeader() const
////////////////////////////////////////////////////////////////////////////////
/// Initialize MC info.
/// ---
void TMCVerbose::InitMC()
{
......@@ -136,7 +128,6 @@ void TMCVerbose::InitMC()
////////////////////////////////////////////////////////////////////////////////
/// MC run info.
/// ---
void TMCVerbose::RunMC(Int_t nofEvents)
{
......@@ -146,7 +137,6 @@ void TMCVerbose::RunMC(Int_t nofEvents)
////////////////////////////////////////////////////////////////////////////////
/// Finish MC run info.
/// ---
void TMCVerbose::FinishRun()
{
......@@ -156,7 +146,6 @@ void TMCVerbose::FinishRun()
////////////////////////////////////////////////////////////////////////////////
/// Construct geometry info
/// ---
void TMCVerbose::ConstructGeometry()
{
......@@ -166,7 +155,6 @@ void TMCVerbose::ConstructGeometry()
////////////////////////////////////////////////////////////////////////////////
/// Construct geometry for optical physics info
/// ---
void TMCVerbose::ConstructOpGeometry()
{
......@@ -176,7 +164,6 @@ void TMCVerbose::ConstructOpGeometry()
////////////////////////////////////////////////////////////////////////////////
/// Initialize geometry info
/// ---
void TMCVerbose::InitGeometry()
{
......@@ -186,7 +173,6 @@ void TMCVerbose::InitGeometry()
////////////////////////////////////////////////////////////////////////////////
/// Add particles info
/// ---
void TMCVerbose::AddParticles()
{
......@@ -196,7 +182,6 @@ void TMCVerbose::AddParticles()
////////////////////////////////////////////////////////////////////////////////
/// Add ions info
/// ---
void TMCVerbose::AddIons()
{
......@@ -206,7 +191,6 @@ void TMCVerbose::AddIons()
////////////////////////////////////////////////////////////////////////////////
/// Generate primaries info
/// ---
void TMCVerbose::GeneratePrimaries()
{
......@@ -216,7 +200,6 @@ void TMCVerbose::GeneratePrimaries()
////////////////////////////////////////////////////////////////////////////////
/// Begin event info
/// ---
void TMCVerbose::BeginEvent()
{
......@@ -226,7 +209,6 @@ void TMCVerbose::BeginEvent()
////////////////////////////////////////////////////////////////////////////////
/// Begin of a primary track info
/// ---
void TMCVerbose::BeginPrimary()
{
......@@ -236,7 +218,6 @@ void TMCVerbose::BeginPrimary()
////////////////////////////////////////////////////////////////////////////////
/// Begin of each track info
/// ---
void TMCVerbose::PreTrack()
{
......@@ -257,7 +238,6 @@ void TMCVerbose::PreTrack()
////////////////////////////////////////////////////////////////////////////////
/// Stepping info
/// ---
void TMCVerbose::Stepping()
{
......@@ -318,7 +298,6 @@ void TMCVerbose::Stepping()
////////////////////////////////////////////////////////////////////////////////
/// Finish of each track info
/// ---
void TMCVerbose::PostTrack()
{
......@@ -328,7 +307,6 @@ void TMCVerbose::PostTrack()
////////////////////////////////////////////////////////////////////////////////
/// Finish of a primary track info
/// ---
void TMCVerbose::FinishPrimary()
{
......@@ -338,7 +316,6 @@ void TMCVerbose::FinishPrimary()
////////////////////////////////////////////////////////////////////////////////
/// Finish of an event info
/// ---
void TMCVerbose::FinishEvent()
{
......
......@@ -12,17 +12,20 @@
#include "TVirtualMC.h"
//______________________________________________________________________________
// Virtual MC provides a virtual interface to Monte Carlo.
// It enables the user to build a virtual Monte Carlo application
// independent of any actual underlying Monte Carlo implementation itself.
//
// A user will have to implement a class derived from the abstract
// Monte Carlo application class, and provide functions like
// ConstructGeometry(), BeginEvent(), FinishEvent(), ... .
// The concrete Monte Carlo (Geant3, Geant4) is selected at run time -
// when processing a ROOT macro where the concrete Monte Carlo is instantiated.
//______________________________________________________________________________
/** \class TVirtualMC
Abstract Monte Carlo interface
Virtual MC provides a virtual interface to Monte Carlo.
It enables the user to build a virtual Monte Carlo application
independent of any actual underlying Monte Carlo implementation itself.
A user will have to implement a class derived from the abstract
Monte Carlo application class, and provide functions like
ConstructGeometry(), BeginEvent(), FinishEvent(), ... .
The concrete Monte Carlo (Geant3, Geant4) is selected at run time -
when processing a ROOT macro where the concrete Monte Carlo is instantiated.
*/
ClassImp(TVirtualMC)
......
......@@ -13,10 +13,11 @@
#include "TVirtualMCApplication.h"
#include "TError.h"
//______________________________________________________________________________
//
// Interface to a user Monte Carlo application.
//______________________________________________________________________________
/** \class TVirtualMCApplication
Interface to a user Monte Carlo application.
*/
ClassImp(TVirtualMCApplication)
......
......@@ -12,10 +12,13 @@
#include "TVirtualMCGeometry.h"
//______________________________________________________________________________
// Virtual MCGeometry provides a virtual interface to Monte Carlo
// geometry construction.
//______________________________________________________________________________
/** \class TVirtualMCGeometry
Interface to Monte Carlo geometry construction.
This class has been separated from VirtualMC and it is used
internally in TVirtualMC implementations.
*/
ClassImp(TVirtualMCGeometry)
......
......@@ -12,20 +12,22 @@
#include "TVirtualMCStack.h"
//______________________________________________________________________________
//
// Interface to a user defined particles stack.
//______________________________________________________________________________
/** \class TVirtualMCStack
Interface to a user defined particles stack.
*/
ClassImp(TVirtualMCStack)
////////////////////////////////////////////////////////////////////////////////
/// Default constructor
TVirtualMCStack::TVirtualMCStack()
: TObject()
{}
////////////////////////////////////////////////////////////////////////////////
/// Destructor
TVirtualMCStack::~TVirtualMCStack()
{}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment