VMC Examples Version 6.8
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 void SetUseAssemblies(Bool_t value);
57
58 //
59 // get methods
60
61 /// \return The number of calorimeter layers
62 Int_t GetNbOfLayers() const { return fNbOfLayers; }
63
64 /// \return The world size x component
65 Double_t GetWorldSizeX() const { return fWorldSizeX; }
66
67 /// \return The world size y,z component
68 Double_t GetWorldSizeYZ() const { return fWorldSizeYZ; }
69
70 /// \return The calorimeter size y,z component
71 Double_t GetCalorSizeYZ() const { return fCalorSizeYZ; }
72
73 /// \return The calorimeter thickness
74 Double_t GetCalorThickness() const { return fCalorThickness; }
75
76 /// \return The absorber thickness
77 Double_t GetAbsorberThickness() const { return fAbsorberThickness; }
78
79 /// \return The gap thickness
80 Double_t GetGapThickness() const { return fGapThickness; }
81
82 /// \return Whether the alternative geometry with assemblies is enabled
83 Bool_t GetUseAssemblies() const { return fUseAssemblies; }
84
85 private:
86 // helper type for setting cuts
88 {
90 TString name, Double_t p1, Double_t p2, Double_t p3, Double_t p4)
91 : fName(name), fCUTGAM(p1), fBCUTE(p2), fCUTELE(p3), fDCUTE(p4)
92 {}
93 TString fName;
94 Double_t fCUTGAM;
95 Double_t fBCUTE;
96 Double_t fCUTELE;
97 Double_t fDCUTE;
98 };
99
100 // methods
102
103 // data members
104 Int_t fNbOfLayers; ///< The number of calorimeter layers
105 Double_t fWorldSizeX; ///< The world size x component
106 Double_t fWorldSizeYZ; ///< The world size y,z component
107 Double_t fCalorSizeYZ; ///< The calorimeter size y,z component
108 Double_t fCalorThickness; ///< The calorimeter thickness
109 Double_t fLayerThickness; ///< The calorimeter layer thickness
110 Double_t fAbsorberThickness; ///< The absorber thickness
111 Double_t fGapThickness; ///< The gap thickness
112
113 TString fDefaultMaterial; ///< The default material name
114 TString fAbsorberMaterial; ///< The absorber material name
115 TString fGapMaterial; ///< The gap material name
116
117 Bool_t fUseAssemblies; ///< Option to place the calorimeter in assemblies
118
119 ClassDef(Ex03DetectorConstruction, 1) // Ex03DetectorConstruction
120};
121
122/// Enable or disable the alternative geometry with assemblies
123/// \param value If true, place the calorimeter in nested assemblies
125{
126 fUseAssemblies = value;
127}
128
129#endif // EX03_DETECTOR_CONSTRUCTION_H
Bool_t fUseAssemblies
Option to place the calorimeter in assemblies.
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)