70 "UltraFresnelLens constructor: GrooveWidth<=0");
101 =
new G4LogicalVolume(LensMotherCylinder,LensMotherMaterial,
"LensMotherLV",0,0,0);
109 =
new G4Cons(
"Groove",40.0*
mm,50.0*
mm,40.0*
mm,40.001*
mm,1.0*
mm,StartPhi,DeltaPhi);
133 0.0/(
mm2*mm3*mm3*mm3),
134 0.0/(
mm*mm3*mm3*mm3*
mm3),
135 0.0/(
mm*3*mm3*mm3*mm3*mm3)
140 for(
G4int k=1;k<9;k++){
141 TotAspher += Aspher[k-1]*std::pow(radius,2*k) ;
144 G4double ArgSqrt = 1.0-(1.0+Conic)*std::pow(Curvature,2)*std::pow(radius,2) ;
147 G4Exception(
"UltraFresnelLens::GetSagita()",
"AirSh002",
149 "UltraFresnelLensParameterisation::Sagita: Square Root of <0 !");
151 G4double Sagita_value = Curvature*std::pow(radius,2)/(1.0+std::sqrt(ArgSqrt)) + TotAspher;
153 return Sagita_value ;
void BuildLens(G4VPhysicalVolume *)
static constexpr double mm3
G4LogicalVolume * GetLogicalVolume() const
G4Material * LensMaterial
static constexpr double mm
G4ThreeVector LensPosition
G4Material * GetMaterial() const
static const G4VisAttributes & GetInvisible()
UltraFresnelLens(G4double Diameter, G4int nGrooves, G4Material *Material, G4VPhysicalVolume *MotherPV, G4ThreeVector Pos)
G4VPhysicalVolume * LensPhysicalVolume
static constexpr double mm2
static constexpr double twopi
G4double GetSagita(G4double)
void SetVisAttributes(const G4VisAttributes *pVA)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)