This file is indexed.

/usr/include/root/TGeoMCGeometry.h is in libroot-montecarlo-vmc-dev 5.34.30-0ubuntu8.

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