FDsimG4CameraFoot.cc
Go to the documentation of this file.
1 #include "FDsimG4CameraFoot.hh"
2 //#include "FDsimG4Colours.hh"
3 
4 #include "G4UnitsTable.hh"
5 
6 #include "G4OpticalSurface.hh"
7 #include "G4LogicalBorderSurface.hh"
8 #include "G4LogicalSkinSurface.hh"
9 #include "G4Material.hh"
10 #include "G4MaterialTable.hh"
11 #include "G4Cons.hh"
12 #include "G4Box.hh"
13 #include "G4UnionSolid.hh"
14 
15 #include "G4LogicalVolume.hh"
16 #include "G4ThreeVector.hh"
17 #include "G4VisAttributes.hh"
18 
19 using namespace TelescopeSimulatorLX ;
20 
21 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
22 
24 
25  // Height = 2.290*m; original value
26 
27  Height = 1.70*m;
28 
29  FootSide = 0.1*m;
30  FootThick = 0.045*m;
31 
32  TopSide = 0.672*m;
33  TopTilt =-17.8*deg;
34 
35 
36  CameraFootMaterial = G4Material::GetMaterial("Aluminum");
38  // CheckParameters() ;
39 
40 }
41 
42 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
45 
46 
47 // void FDsimG4CameraSupport::CheckParameters(){
48 
49 // if (pitchAtZ2 < pixelSizeAtZ2 && NumOfPixels > 1)
50 // {
51 // DumpInfo() ;
52 // G4Exception("Error in FDsimG4Mercedes parameters: pitch at Z2 is smaller than pixel size !!!");
53 // }
54 
55 
56 // if (!MercedesMaterial)
57 // {
58 // G4Exception("Error in FDsimG4Mercedes constructor: G4Material of Mercedes not specified !!!");
59 // }
60 
61 // }
62 
63 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
64 
66 
67  G4cerr << " ================================================================ " << G4endl ;
68  G4cerr << " = CameraSupport parameters " << G4endl ;
69  G4cerr << " = " << G4endl ;
70  G4cerr << " = Material : " << CameraFootMaterial->GetName() << G4endl ;
71  G4cerr << " = " << G4endl ;
72  G4cerr << " ================================================================ " << G4endl ;
73 
74 }
75 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
77 
78  // Build Foot
79  //--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__
80 
81  // | y
82  // |
83  // |_____ x
84  // /
85  // /z
86 
87 
88  G4Box * CameraTopFoot =
89  new G4Box("Top",FootSide/2.,TopSide/2.,FootThick/2.);
90 
91  G4Box * CameraVerticalFoot =
92  new G4Box("Foot",FootSide/2.,Height/2.,FootThick/2.) ;
93 
94 
95  G4RotationMatrix * CameraFootRot = new G4RotationMatrix(G4ThreeVector(0.,0.,1.),TopTilt);
96 
97  G4ThreeVector CameraFootTrans
98  =G4ThreeVector(sin(-TopTilt)*Height/2.,(-TopSide-cos(TopTilt)*Height)/2.,0.);
99 
100 
101  G4UnionSolid * CameraFoot=
102  new G4UnionSolid("CameraFoot",CameraTopFoot,CameraVerticalFoot,CameraFootRot,CameraFootTrans) ;
103 
104 
105 
106  //--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__--__
107 
108 
109  CameraFoot_log = new G4LogicalVolume(CameraFoot,(G4Material *)CameraFootMaterial,"CameraFoot",0,0,0);
110 
111  CameraFoot_log->SetVisAttributes(new G4VisAttributes(gray)) ;
112 
113  // define camera - air optical surface
114 
115  G4OpticalSurface * OpticalAirCameraFoot= new G4OpticalSurface("CameraFootSurface");
116  OpticalAirCameraFoot->SetModel(unified);
117  OpticalAirCameraFoot->SetType(dielectric_metal);
118 
119  G4MaterialPropertiesTable *CameraFootMPT = new G4MaterialPropertiesTable();
120  CameraFootMPT->AddProperty("REFLECTIVITY", new G4MaterialPropertyVector()) ;
121  CameraFootMPT->AddEntry("REFLECTIVITY", 0.0*eV,0.);
122  CameraFootMPT->AddEntry("REFLECTIVITY",10.0*eV,0.);
123  OpticalAirCameraFoot->SetMaterialPropertiesTable(CameraFootMPT) ;
124 
125  new G4LogicalSkinSurface("CameraFootSurface",CameraFoot_log,OpticalAirCameraFoot);
126 }
127 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
const double eV
Definition: GalacticUnits.h:35
static const G4Colour gray(0.5, 0.5, 0.5)
constexpr double deg
Definition: AugerUnits.h:140
constexpr double m
Definition: AugerUnits.h:121

, generated on Tue Sep 26 2023.