FDsimG4CorrectorRingKG.cc
Go to the documentation of this file.
2 #include "FDsimG4LensSD.hh"
3 #include "FDsimG4Colours.hh"
4 
5 
6 #include "G4SDManager.hh"
7 #include "G4Polycone.hh"
8 
9 #include "G4Material.hh"
10 #include "G4LogicalVolume.hh"
11 #include "G4PVPlacement.hh"
12 #include "G4ThreeVector.hh"
13 #include "G4VisAttributes.hh"
14 
15 using namespace TelescopeSimulatorLX ;
16 
17 FDsimG4CorrectorRingKG::FDsimG4CorrectorRingKG(G4double rmin, G4double rmax, G4double startPhi, G4double deltaPhi, G4double thick, G4Material* mat, G4int Npoints) : FDsimG4VCorrectorRing(rmin,rmax,startPhi,deltaPhi,thick,mat,Npoints){
18 
19  Init() ;
20 
21 }
22 
23 FDsimG4CorrectorRingKG::FDsimG4CorrectorRingKG(G4double startPhi, G4double deltaPhi, G4double thick, G4Material* mat, G4int Npoints) :
24  FDsimG4VCorrectorRing(1700.0*mm/2.0,2200.0*mm/2.,startPhi,deltaPhi,thick,mat,Npoints){
25 
26  Init() ;
27 
28 }
29 FDsimG4CorrectorRingKG::FDsimG4CorrectorRingKG(G4double thick, G4Material* mat, G4int Npoints) :
30  FDsimG4VCorrectorRing(1700.0*mm/2.0,2200.0*mm/2.,0.,2.0*pi,thick,mat,Npoints){
31 
32  Init() ;
33 
34 }
35 
37 
38 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
39 
41 
44 
45  fLogicalVol->SetVisAttributes(new G4VisAttributes(cyan)) ;
46 
47  G4cerr << " ================================================================ " << G4endl ;
48  G4cerr << " = Using KG Lens Profile " << G4endl ;
49 
50  DumpInfo() ;
51 
52 }
53 
54 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
55 
57 {
58 
59  G4double f = 3.4*m - 1.743*m;
60  G4double Rd = .85*m;
61  G4double A = 3./2. * Rd*Rd;
62  G4double n = 1.5;
63 
64  G4double denominator = 32.*(n-1.)*f*f*f;
65  fa1 = 1./denominator; // r^4
66  fa2 = A/denominator; // r^2
67 
68  fz0 = 10.*mm;
69 
70 }
71 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
72 
73 G4double FDsimG4CorrectorRingKG::GetRadius(G4double z){
74 
75  G4double Radius_value=sqrt(2*(sqrt(4*fa1*(z-fz0)+fa2*fa2)+fa2))/(2*sqrt(fa1));
76 
77  return Radius_value ;
78 
79 }
80 
81 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
82 
83 G4double FDsimG4CorrectorRingKG::GetSagita(G4double radius){
84 
85  G4double Sagita_value = fz0 + fa1 * pow(radius,4) - fa2 * pow(radius,2) ;
86 
87 
88  return Sagita_value ;
89 
90 }
91 
92 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
constexpr double mm
Definition: AugerUnits.h:113
FDsimG4CorrectorRingKG(G4double rmin, G4double rmax, G4double minPhi, G4double deltaPhi, G4double Thickness, G4Material *Material, G4int Npoints)
double pow(const double x, const unsigned int i)
static const G4Colour cyan(0.0, 1.0, 1.0)
constexpr double m
Definition: AugerUnits.h:121

, generated on Tue Sep 26 2023.