ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GammaRayTelDetectorConstruction.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file GammaRayTelDetectorConstruction.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 // ------------------------------------------------------------
28 // GEANT 4 class header file
29 // CERN Geneva Switzerland
30 //
31 //
32 // ------------ GammaRayTelDetectorConstruction ------
33 // by F.Longo, R.Giannitrapani & G.Santin (13 nov 2000)
34 //
35 // ************************************************************
36 
37 #ifndef GammaRayTelDetectorConstruction_h
38 #define GammaRayTelDetectorConstruction_h 1
39 
41 #include "G4Cache.hh"
42 #include "globals.hh"
43 
44 class G4Box;
45 class G4LogicalVolume;
46 class G4VPhysicalVolume;
47 class G4Material;
48 class G4UniformMagField;
49 class G4Region;
55 
56 //class GammaRayTelTrackerROGeometry;
57 
58 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
59 
61 {
62 public:
63 
66 
67 public:
68 
69  void SetNbOfTKRLayers (G4int); // TKR number of layers, material, detector
71  void SetNbOfTKRTiles (G4int);
74 
77 
78  void SetConverterMaterial (G4String); // TKR Converter material & thickness
80 
81  void SetNbOfCALLayers (G4int); // CAL material, lenght, thickness
82  void SetNbOfCALBars (G4int);
84 
85  void SetACDThickness (G4double); //ACD Thickness
86 
87  void SetMagField(G4double); // Magnetic Field
88 
89 
91  void UpdateGeometry();
92  void ConstructSDandField();
93 
94 public:
95 
97 
98 
99  G4double GetWorldSizeZ() const {return WorldSizeZ;};
101 
104 
105  G4double GetTKRSizeZ() const {return TKRSizeZ;};
106  G4double GetTKRSizeXY() const {return TKRSizeXY;};
107 
108  G4double GetCALSizeZ() const {return CALSizeZ;};
110 
115  G4int GetNbOfTKRTiles() const {return NbOfTKRTiles;};
119 
124 
127 
130  G4int GetNbOfCALBars() const {return NbOfCALBars;};
131 
135 
136 private:
137 
140 
144 
147 
151 
154 
160 
164 
168 
172 
176 
177 
180 
186 
189 
195 
198 
205 
206  G4Box* solidWorld; // World
209 
210  G4Box* solidPayload; // Payload
213 
214  G4Box* solidTKR; // Tracker
217 
218  G4Box* solidCAL; // Calorimeter
221 
222  G4Box* solidACT; // Top Anticoincidence
225 
226  G4Box* solidACL1; // Lateral Anticoincidence
229 
233 
234  G4Box* solidTKRDetectorX; // Tracker PLANE X
237 
238  G4Box* solidTKRDetectorY; // Tracker PLANE Y
241 
242  G4Box* solidCALLayerX; // Calorimeter PLANE X
245 
246  G4Box* solidCALLayerY; // Calorimeter PLANE Y
249 
250  G4Box* solidCALDetectorX; // Calorimeter DETECTOR X
253 
254  G4Box* solidCALDetectorY; // Calorimeter DETECTOR Y
257 
258  G4Box* solidPlane; // Support Plane
261 
262  G4Box* solidConverter; // Converter
265 
268 
269  // magnetic field messenger
271 
272  GammaRayTelDetectorMessenger* detectorMessenger; //pointer to the Messenger
273 
274 
275  G4Cache<GammaRayTelTrackerSD*> trackerSD; //pointer to the sensitive detector
276  G4Cache<GammaRayTelCalorimeterSD*> calorimeterSD; //pointer to the sensitive detector
277  G4Cache<GammaRayTelAnticoincidenceSD*> anticoincidenceSD; //pointer to the sensitive detector
278 
279  //G4Region* aTKRRegion; // TKR cut region
280  //G4Region* aCALRegion; // CAL cut region
281 
282 private:
283 
284  void DefineMaterials();
287 };
288 
289 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
290 
292 {
293  // Compute derived parameters of the payload
294 
299 
303 
304  SiliconGuardRing = TKRActiveTileXY - NbOfTKRStrips*TKRSiliconPitch;
306 
310 
313 
314  CALBarX = CALSizeXY;
317 
320 
324 
328 
329  PayloadSizeZ = 1.1*(ACL1SizeZ + ACTSizeZ);
331 
333 
334 }
335 
336 #endif
337 
338 
339 
340 
341 
342 
343 
344 
345