BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
BDSLaserwireBuilder.cc
1/*
2Beam Delivery Simulation (BDSIM) Copyright (C) Royal Holloway,
3University of London 2001 - 2024.
4
5This file is part of BDSIM.
6
7BDSIM is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published
9by the Free Software Foundation version 3 of the License.
10
11BDSIM is distributed in the hope that it will be useful, but
12WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#include "BDSLaserwireBuilder.hh"
21
22BDSLaserwireBuilder::BDSLaserwireBuilder(G4String nameIn,
23 G4double lengthIn,
24 G4double horizontalWidthIn,
25 G4double laserOffsetThetaIn,
26 G4double laserOffsetPhiIn,
27 G4ThreeVector laserOffsetIn,
28 BDSLaser* laserIn):
29 BDSAcceleratorComponent(nameIn, lengthIn, 0, "laserwire"),
30 horizontalWidth(horizontalWidthIn),
31 laserOffsetTheta(laserOffsetThetaIn),
32 laserOffsetPhi(laserOffsetPhiIn),
33 laserOffset(laserOffsetIn),
34 laser(laserIn)
35{;}
36
37BDSLaserwireBuilder::~BDSLaserwireBuilder()
38{;}
39
41{
42 // need a bunch of if and errors
43 containerSolid = new G4Tubs(name+"_container_solid",
44 0,
45 horizontalWidth,
46 1.0,
47 0,
48 2.0*CLHEP::pi);
49
50 containerLogicalVolume = new G4LogicalVolume(containerSolid,
52 name+"_container_lv");
53}
54
56{
58
59 /*G4Tubs* laserwire = new G4Tubs(name+"_laserwire_solid",
60 0,
61 laser->GetRadius(),
62 laser->GetLaserFocus(),
63 0,
64 2.0*CLHEP::pi);
65 */
66}
Abstract class that represents a component of an accelerator.
const G4String name
Const protected member variable that may not be changed by derived classes.
static G4Material * emptyMaterial
Useful variable often used in construction.
Class to provide laser intensity at any point.
Definition BDSLaser.hh:36
virtual void BuildContainerLogicalVolume()