VMC Examples Version 6.6
Loading...
Searching...
No Matches
Ex03DetectorConstruction.h
Go to the documentation of this file.
1#ifndef EX03_DETECTOR_CONSTRUCTION_H
2#define EX03_DETECTOR_CONSTRUCTION_H
3
4//------------------------------------------------
5// The Virtual Monte Carlo examples
6// Copyright (C) 2014 - 2018 Ivana Hrivnacova
7// All rights reserved.
8//
9// For the licensing terms see geant4_vmc/LICENSE.
10// Contact: root-vmc@cern.ch
11//-------------------------------------------------
12
13/// \file Ex03DetectorConstruction.h
14/// \brief Definition of the Ex03DetectorConstruction class
15///
16/// Geant4 ExampleN03 adapted to Virtual Monte Carlo: \n
17/// Id: ExN03DetectorConstruction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp
18/// GEANT4 tag $Name: $
19///
20/// \author I. Hrivnacova; IPN, Orsay
21
22#include <map>
23
24#include <Riostream.h>
25#include <TObject.h>
26#include <TString.h>
27
28/// \ingroup E03
29/// \brief The detector construction (via TGeo )
30///
31/// \date 06/03/2003
32/// \author I. Hrivnacova; IPN, Orsay
33
35{
36 public:
39
40 public:
41 void ConstructMaterials();
42 void ConstructGeometry();
43 void SetCuts();
44 void SetControls();
46 // void UpdateGeometry();
47
48 // set methods
49 void SetNbOfLayers(Int_t value);
50 void SetDefaultMaterial(const TString& materialName);
51 void SetAbsorberMaterial(const TString& materialName);
52 void SetGapMaterial(const TString& materialName);
53 void SetCalorSizeYZ(Double_t value);
54 void SetAbsorberThickness(Double_t value);
55 void SetGapThickness(Double_t value);
56
57 //
58 // get methods
59
60 /// \return The number of calorimeter layers
61 Int_t GetNbOfLayers() const { return fNbOfLayers; }
62
63 /// \return The world size x component
64 Double_t GetWorldSizeX() const { return fWorldSizeX; }
65
66 /// \return The world size y,z component
67 Double_t GetWorldSizeYZ() const { return fWorldSizeYZ; }
68
69 /// \return The calorimeter size y,z component
70 Double_t GetCalorSizeYZ() const { return fCalorSizeYZ; }
71
72 /// \return The calorimeter thickness
73 Double_t GetCalorThickness() const { return fCalorThickness; }
74
75 /// \return The absorber thickness
76 Double_t GetAbsorberThickness() const { return fAbsorberThickness; }
77
78 /// \return The gap thickness
79 Double_t GetGapThickness() const { return fGapThickness; }
80
81 private:
82 // helper type for setting cuts
83 struct MaterialCuts
84 {
86 TString name, Double_t p1, Double_t p2, Double_t p3, Double_t p4)
87 : fName(name), fCUTGAM(p1), fBCUTE(p2), fCUTELE(p3), fDCUTE(p4)
88 {}
89 TString fName;
90 Double_t fCUTGAM;
91 Double_t fBCUTE;
92 Double_t fCUTELE;
93 Double_t fDCUTE;
94 };
95
96 // methods
98
99 // data members
100 Int_t fNbOfLayers; ///< The number of calorimeter layers
101 Double_t fWorldSizeX; ///< The world size x component
102 Double_t fWorldSizeYZ; ///< The world size y,z component
103 Double_t fCalorSizeYZ; ///< The calorimeter size y,z component
104 Double_t fCalorThickness; ///< The calorimeter thickness
105 Double_t fLayerThickness; ///< The calorimeter layer thickness
106 Double_t fAbsorberThickness; ///< The absorber thickness
107 Double_t fGapThickness; ///< The gap thickness
108
109 TString fDefaultMaterial; ///< The default material name
110 TString fAbsorberMaterial; ///< The absorber material name
111 TString fGapMaterial; ///< The gap material name
112
113 ClassDef(Ex03DetectorConstruction, 1) // Ex03DetectorConstruction
114};
115
116#endif // EX03_DETECTOR_CONSTRUCTION_H
The detector construction (via TGeo )
Double_t fWorldSizeYZ
The world size y,z component.
Int_t fNbOfLayers
The number of calorimeter layers.
Double_t fGapThickness
The gap thickness.
TString fDefaultMaterial
The default material name.
void SetAbsorberThickness(Double_t value)
TString fAbsorberMaterial
The absorber material name.
Double_t fLayerThickness
The calorimeter layer thickness.
TString fGapMaterial
The gap material name.
Double_t fAbsorberThickness
The absorber thickness.
void SetAbsorberMaterial(const TString &materialName)
void SetDefaultMaterial(const TString &materialName)
Double_t fCalorThickness
The calorimeter thickness.
Double_t fWorldSizeX
The world size x component.
void SetGapMaterial(const TString &materialName)
Double_t fCalorSizeYZ
The calorimeter size y,z component.
MaterialCuts(TString name, Double_t p1, Double_t p2, Double_t p3, Double_t p4)