1#ifndef ExtBesEmcConstruction_h
2#define ExtBesEmcConstruction_h 1
10#include "G4VPVParameterisation.hh"
19class G4VPhysicalVolume;
21class G4UniformMagField;
25class G4SubtractionSolid;
75 const G4VPhysicalVolume*
GetEMC() {
return physiEMC; }
76 const G4VPhysicalVolume*
GetBSCPhi() {
return physiBSCPhi;};
77 const G4VPhysicalVolume*
GetBSCTheta() {
return physiBSCTheta;};
85 void DefineMaterials();
93 G4Material* fCrystalMaterial;
96 G4int thetaNbCrystals;
99 G4Material* fCasingMaterial;
101 G4Material* defaultMaterial;
105 G4UnionSolid* solidEMC;
106 G4LogicalVolume* logicEMC;
107 G4VPhysicalVolume* physiEMC;
109 G4Tubs* solidBSCPhiTub;
110 G4Cons* solidConsPhi;
111 G4SubtractionSolid* solidBSCPhi1;
112 G4SubtractionSolid* solidBSCPhi;
113 G4LogicalVolume* logicBSCPhi;
114 G4VPhysicalVolume* physiBSCPhi;
116 G4Trap* solidBSCTheta;
117 G4LogicalVolume* logicBSCTheta;
118 G4VPhysicalVolume* physiBSCTheta;
120 G4Trap* solidBSCCrystal;
121 G4LogicalVolume* logicBSCCrystal;
122 G4VPhysicalVolume* physiBSCCrystal;
124 G4UniformMagField* magField;
130 G4VPVParameterisation* crystalParam;
135 G4LogicalVolume* logicEnd;
136 G4VPhysicalVolume* physiEnd;
139 G4LogicalVolume* logicEndPhi;
140 G4VPhysicalVolume* physiEndPhi;
142 G4IrregBox* solidEndCasing;
143 G4LogicalVolume* logicEndCasing;
144 G4VPhysicalVolume* physiEndCasing;
146 G4IrregBox* solidEndCrystal;
147 G4LogicalVolume* logicEndCrystal;
148 G4VPhysicalVolume* physiEndCrystal;
154 G4LogicalVolume* logicRear;
155 G4VPhysicalVolume* physiRear;
157 G4Box* solidCasingBox;
159 G4SubtractionSolid* solidRearCasing;
160 G4LogicalVolume* logicRearCasing;
161 G4VPhysicalVolume* physiRearCasing;
163 G4Box* solidOrgGlass;
164 G4LogicalVolume* logicOrgGlass;
165 G4VPhysicalVolume* physiOrgGlass;
168 G4LogicalVolume* logicPD;
169 G4VPhysicalVolume* physiPD;
172 G4SubtractionSolid* solidAlPlate;
173 G4LogicalVolume* logicAlPlate;
174 G4VPhysicalVolume* physiAlPlate;
176 G4Box* solidPreAmpBox;
177 G4LogicalVolume* logicPreAmpBox;
178 G4VPhysicalVolume* physiPreAmpBox;
180 G4Box* solidAirInPABox;
181 G4LogicalVolume* logicAirInPABox;
182 G4VPhysicalVolume* physiAirInPABox;
184 G4Box* solidHangingPlate;
185 G4LogicalVolume* logicHangingPlate;
186 G4VPhysicalVolume* physiHangingPlate;
188 G4Cons* solidOCGirder;
189 G4LogicalVolume* logicOCGirder;
190 G4VPhysicalVolume* physiOCGirder;
193 G4LogicalVolume* logicCable;
194 G4VPhysicalVolume* physiCable;
196 G4Tubs* solidWaterPipe;
197 G4LogicalVolume* logicWaterPipe;
198 G4VPhysicalVolume* physiWaterPipe;
202 G4Tubs* solidSupportBar;
203 G4LogicalVolume* logicSupportBar;
204 G4VPhysicalVolume* physiSupportBar;
206 G4Tubs* solidSupportBar1;
207 G4LogicalVolume* logicSupportBar1;
208 G4VPhysicalVolume* physiSupportBar1;
210 G4Tubs* solidEndRing;
211 G4LogicalVolume* logicEndRing;
212 G4VPhysicalVolume* physiEndRing;
215 G4LogicalVolume* logicGear;
216 G4VPhysicalVolume* physiGear;
218 G4Tubs* solidTaperRing1;
219 G4LogicalVolume* logicTaperRing1;
220 G4VPhysicalVolume* physiTaperRing1;
222 G4Cons* solidTaperRing2;
223 G4LogicalVolume* logicTaperRing2;
224 G4VPhysicalVolume* physiTaperRing2;
226 G4Cons* solidTaperRing3;
227 G4LogicalVolume* logicTaperRing3;
228 G4VPhysicalVolume* physiTaperRing3;
231 G4Material* rearCasingMaterial;
232 G4Material* organicGlass;
233 G4Material* stainlessSteel;
235 G4Material* waterPipe;
G4Material * GetCasingMaterial()
void PrintEMCParameters()
static ExtBesEmcConstruction * GetBesEmcConstruction()
void SetBSCRmin(G4double)
void SetBSCPosition0(G4double)
G4Material * GetCrystalMaterial()
void ConstructEndGeometry(G4LogicalVolume *)
const G4VPVParameterisation * GetCrystalParam()
void SetVerboseLevel(G4int val)
void SetStartIDTheta(G4int)
void SetBSCPosition1(G4double)
const G4VPhysicalVolume * GetEMC()
void SetCasingThickness(G4ThreeVector)
const G4VPhysicalVolume * GetBSCPhi()
G4int ComputeEndCopyNb(G4int)
void SetMagField(G4double)
const G4VPhysicalVolume * GetBSCTheta()
void SetBSCCrystalLength(G4double)
void SetBSCYFront0(G4double)
void SetCrystalMaterial(G4String)
void SetCasingMaterial(G4String)
void Construct(G4LogicalVolume *)
void SetBSCNbTheta(G4int)
void SetBSCYFront(G4double)
const G4VPhysicalVolume * GetBSCCrystal()
void ConstructSPFrame(G4LogicalVolume *, ExtBesEmcGeometry *)