/usr/include/root/TGeoMCGeometry.h is in libroot-montecarlo-vmc-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | // @(#)root/vmc:$Id$
// Authors: Al;ice collaboration 25/06/2002
/*************************************************************************
* Copyright (C) 2006, Rene Brun and Fons Rademakers. *
* Copyright (C) 2002, ALICE Experiment at CERN. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TGeoMCGeometry
#define ROOT_TGeoMCGeometry
//
// Class TGeoMCGeometry
// --------------------
// Implementation of the TVirtualMCGeometry interface
// for building TGeo geometry.
//
#include "TVirtualMCGeometry.h"
class TGeoManager;
class TGeoHMatrix;
class TArrayD;
class TString;
class TGeoMCGeometry : public TVirtualMCGeometry {
public:
TGeoMCGeometry(const char* name, const char* title,
Bool_t g3CompatibleVolumeNames = false);
TGeoMCGeometry();
virtual ~TGeoMCGeometry();
// detector composition
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);
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);
virtual void Mixture(Int_t& kmat, const char *name, Float_t *a,
Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat);
virtual void Mixture(Int_t& kmat, const char *name, Double_t *a,
Double_t *z, Double_t dens, Int_t nlmat, Double_t *wmat);
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);
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);
virtual void Matrix(Int_t& krot, Double_t thetaX, Double_t phiX,
Double_t thetaY, Double_t phiY, Double_t thetaZ,
Double_t phiZ);
// functions from GGEOM
virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed,
Float_t *upar, Int_t np);
virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed,
Double_t *upar, Int_t np);
virtual void Gsdvn(const char *name, const char *mother, Int_t ndiv,
Int_t iaxis);
virtual void Gsdvn2(const char *name, const char *mother, Int_t ndiv,
Int_t iaxis, Double_t c0i, Int_t numed);
virtual void Gsdvt(const char *name, const char *mother, Double_t step,
Int_t iaxis, Int_t numed, Int_t ndvmx);
virtual void Gsdvt2(const char *name, const char *mother, Double_t step,
Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx);
virtual void Gsord(const char *name, Int_t iax);
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);
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);
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);
virtual void Gsbool(const char* /*onlyVolName*/, const char* /*manyVolName*/) {}
// functions for access to geometry
//
// 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);
// Return the name of the shape and its parameters for the volume
// specified by the volume name.
virtual Bool_t GetShape(const TString& volumePath,
TString& shapeType, TArrayD& par);
// Returns the material parameters for the volume specified by
// the volume name.
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);
// Returns the medium parameters for the volume specified by the
// volume name.
virtual Bool_t GetMedium(const TString& volumeName,
TString& name, Int_t& imed,
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,
TArrayD& par);
// functions for drawing
//virtual void DrawOneSpec(const char* name);
//virtual void Gsatt(const char* name, const char* att, Int_t val);
//virtual void Gdraw(const char*,Double_t theta, Double_t phi,
// Double_t psi, Double_t u0, Double_t v0,
// Double_t ul, Double_t vl);
// Euclid
//virtual void WriteEuclid(const char*, const char*, Int_t, Int_t);
// get methods
virtual Int_t VolId(const char* volName) const;
virtual const char* VolName(Int_t id) const;
virtual Int_t MediumId(const char* mediumName) const;
virtual Int_t NofVolumes() const;
virtual Int_t NofVolDaughters(const char* volName) const;
virtual const char* VolDaughterName(const char* volName, Int_t i) const;
virtual Int_t VolDaughterCopyNo(const char* volName, Int_t i) const;
virtual Int_t VolId2Mate(Int_t id) const;
private:
TGeoMCGeometry(const TGeoMCGeometry& /*rhs*/);
TGeoMCGeometry& operator=(const TGeoMCGeometry& /*rhs*/);
TGeoManager* GetTGeoManager() const;
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
static TGeoMCGeometry* fgInstance; // singleton instance
ClassDef(TGeoMCGeometry,2) // VMC TGeo Geometry builder
};
#endif
|