LBNEStandardPerson.cc
Go to the documentation of this file.
1 //---------------------------------------------------------------------------//
2 // $Id: LBNEStandardPerson.cc,v 1.1.2.4 2013/09/05 12:32:50 lebrun Exp $
3 //---------------------------------------------------------------------------//
4 
5 #include <stdio.h>
6 #include <math.h>
7 
8 //Local and Geant4
9 //#include "LBNEDetectorConstruction.hh"
10 
11 #include "G4Material.hh"
12 #include "G4Box.hh"
13 #include "G4Tubs.hh"
14 #include "G4Sphere.hh"
15 #include "G4Trap.hh"
16 #include "G4Cons.hh"
17 #include "G4Torus.hh"
18 #include "G4LogicalVolume.hh"
19 #include "G4ThreeVector.hh"
20 #include "G4PVPlacement.hh"
21 #include "G4SubtractionSolid.hh"
22 #include "G4UnionSolid.hh"
23 #include "G4VisAttributes.hh"
24 #include "globals.hh"
25 #include "G4Transform3D.hh"
26 #include "G4RotationMatrix.hh"
27 #include "G4AssemblyVolume.hh"
28 #include "LBNEStandardPerson.hh"
29 
31 {
32  std::cout << " LBNEStandardPerson called...with detName " << detName << std::endl;
33 // fMessenger = new LBNEStandardPersonMessenger(this);
34 }
35 
37 {
38 // delete fMessenger;
39 }
40 
41 
43 {
44  // Hadron Absorber
45 
46  G4cout << "Constructing the Hadron Absorber" << G4endl;
47  G4ThreeVector absorberPosition = G4ThreeVector(0,0,0);
48 
49 
50 //---------------------------------------------------------------------------//
51 /*
52  So the absorber is a block. The outer block is concrete, the mid block is
53  steel, and there's aluminum and i guess air in there somewhere as well. For
54  construction, the outer volume will be air, and then nested shells for the
55  concrete, steel, and aluminum.
56 
57 */
58 //---------------------------------------------------------------------------//
59 //---------------------------------------------------------------------------//
60 // Dimensions
61 //---------------------------------------------------------------------------//
62 
63 //---------------------------------------------------------------------------//
64 // G4double eps = 1.0e-6*CLHEP::cm;
65 
66  fHeadRadius = 10*CLHEP::cm;
67  fHeight = 170*CLHEP::cm;
68  fLegLength = 80*CLHEP::cm;
69  fLegRadius = 15*CLHEP::cm;
71  fTorsoRadius = 18*CLHEP::cm;
72 
73  // Base Solids
74  G4Sphere* headSolid = new G4Sphere("headSolid", 0, fHeadRadius,
75  0, 360*CLHEP::deg,
76  0, 180*CLHEP::deg);
77 
78  G4Tubs* torsoSolid = new G4Tubs("torsoSolid", 0, fTorsoRadius,
79  fTorsoLength/2, 0, 360*CLHEP::deg);
80 
81  G4Tubs* legSolid = new G4Tubs("legSolid", 0, fLegRadius,
82  fLegLength/2, 0, 360*CLHEP::deg);
83 
84  G4UnionSolid *humanSolid = new G4UnionSolid("humanSolid", legSolid,
85  torsoSolid, 0,
86  G4ThreeVector(0,0,fLegLength));
87  humanSolid = new G4UnionSolid("humanSolid", humanSolid,
88  headSolid, 0,
89  G4ThreeVector(0,0,fHeadRadius +
90  0.5*fTorsoLength+fLegLength));
91 
92  G4LogicalVolume *humanLogical =
93  new G4LogicalVolume(humanSolid, G4Material::GetMaterial("Air"),
94  "HumanLogical", 0,0,0);
95 
96 
97  G4VisAttributes *Vis = new G4VisAttributes(G4Colour(0,0.3,0.3));
98  humanLogical->SetVisAttributes(Vis);
99 // fSubVolumeLogical = humanLogical;
100 }
101 /*
102 LBNEStandardPersonMessenger::LBNEStandardPersonMessenger(LBNESubVolume *subVolume)
103  :LBNESubVolumeMessenger(subVolume)
104 {
105  fStandardPerson = (LBNEStandardPerson*)subVolume;
106 }
107 
108 LBNEStandardPersonMessenger::~LBNEStandardPersonMessenger()
109 {
110 }
111 
112 void LBNEStandardPersonMessenger::SetNewValue(G4UIcommand* command, G4String val)
113 {
114 }
115 */
LBNEStandardPerson(G4String detName)
QTextStream & endl(QTextStream &s)