source: trunk/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc @ 1002

Last change on this file since 1002 was 807, checked in by garnier, 16 years ago

update

File size: 5.1 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26// $Id: TiaraIronShieldB.cc,v 1.4 2006/06/29 15:45:09 gunter Exp $
27// GEANT4 tag $Name:  $
28//
29
30#include "TiaraIronShieldB.hh"
31#include "TiaraDimensions.hh"
32#include "TiaraMaterials.hh"
33#include "G4Box.hh"
34#include "G4LogicalVolume.hh"
35#include "G4ThreeVector.hh"
36#include "G4VisAttributes.hh"
37#include "G4Colour.hh"
38#include "G4Tubs.hh"
39#include "G4PVPlacement.hh"
40
41/*
42TiaraIronShieldB::
43TiaraIronShieldB(TiaraMaterials &mfac,
44                 const TiaraDimensions &tiaraDimensions){
45  G4double halfHight((tiaraDimensions.distTargetExperiment -
46                      tiaraDimensions.distTargetEndA) / 2);
47  G4double radialHalf(0.5 * (tiaraDimensions.widthExperiment/2 -
48                             tiaraDimensions.pipeRadius));
49  G4double lateralHalf(0.5 * (tiaraDimensions.pipeRadius +
50                              tiaraDimensions.widthExperiment/2));
51  G4double radialShift(tiaraDimensions.pipeRadius + radialHalf);
52  G4double lateralShift(tiaraDimensions.widthExperiment/2 - lateralHalf);
53
54  G4Box *ironBbox = new G4Box("ironBbox",
55                              lateralHalf,
56                              radialHalf,
57                              halfHight);
58 
59  G4LogicalVolume *logIronBbox =
60    new G4LogicalVolume(ironBbox,
61                        mfac.GetMaterial("iron"),
62                        "IronBbox");
63 
64  G4VisAttributes* pIronAVis = new
65    G4VisAttributes(G4Colour(0.1, 0.1, 1.0));
66  //  pIronAVis->SetForceSolid(true);
67  logIronBbox->SetVisAttributes(pIronAVis);
68 
69  TiaraPart tiaraPart;
70  tiaraPart.rot = 0;
71  tiaraPart.logVol = logIronBbox;
72  tiaraPart.pos.setZ(tiaraDimensions.targetPosZ +
73                     tiaraDimensions.distTargetEndA + halfHight);
74
75  // upper shield
76  tiaraPart.pos.setX(lateralShift);
77  tiaraPart.pos.setY(radialShift);
78  fTiaraParts.push_back(tiaraPart);
79
80  // lower shield
81  tiaraPart.pos.setX(-1*lateralShift);
82  tiaraPart.pos.setY(-1*radialShift);
83  fTiaraParts.push_back(tiaraPart);
84
85  // right shield
86  tiaraPart.rot = new G4RotationMatrix();
87  tiaraPart.rot->set(G4ThreeVector(0, 0, 1), 90 * deg); 
88  tiaraPart.pos.setX(-1* radialShift);
89  tiaraPart.pos.setY(lateralShift);
90  fTiaraParts.push_back(tiaraPart);
91
92  // left shield
93  //  tiaraPart.rot->set(G4ThreeVector(0, 0, 1), -90); 
94  tiaraPart.pos.setX(radialShift);
95  tiaraPart.pos.setY(-1*lateralShift);
96  fTiaraParts.push_back(tiaraPart);
97 
98
99}
100*/
101
102TiaraIronShieldB::
103TiaraIronShieldB(TiaraMaterials &mfac,
104                 const TiaraDimensions &tiaraDimensions){
105  G4double halfHight((tiaraDimensions.distTargetExperiment - 
106                      tiaraDimensions.distTargetEndA) / 2);
107  G4double halfWidth(tiaraDimensions.widthExperiment/2); 
108
109  G4Box *ironBbox = new G4Box("ironBbox",
110                              halfWidth,
111                              halfWidth,
112                              halfHight);
113 
114  G4LogicalVolume *logIronBbox = 
115    new G4LogicalVolume(ironBbox, 
116                        mfac.GetMaterial("iron"),
117                        "IronBbox");
118 
119  G4VisAttributes* pIronAVis = new 
120    G4VisAttributes(G4Colour(0.1, 0.1, 1.0));
121  //  pIronAVis->SetForceSolid(true);
122  logIronBbox->SetVisAttributes(pIronAVis);
123
124  G4Tubs *tub = new G4Tubs("holeIronB",
125                           0,
126                           tiaraDimensions.pipeRadius,
127                           halfHight,
128                           0,
129                           360 * deg);
130 
131  G4LogicalVolume *logHole = new G4LogicalVolume(tub, 
132                                                 mfac.GetMaterial("air"),
133                                                 "logHoleIronB");
134 
135  new G4PVPlacement(0, 
136                    G4ThreeVector(0, 0, 0),
137                    logHole,
138                    "holeIronB", 
139                    logIronBbox, 
140                    false, 
141                    0);
142 
143  TiaraPart tiaraPart;
144  tiaraPart.rot = 0;
145  tiaraPart.logVol = logIronBbox;
146  tiaraPart.pos.setZ(tiaraDimensions.targetPosZ +
147                     tiaraDimensions.distTargetEndA + halfHight);
148  tiaraPart.pos.setX(0);
149  tiaraPart.pos.setY(0);
150  fTiaraParts.push_back(tiaraPart);
151
152}
153
154TiaraIronShieldB::~TiaraIronShieldB(){
155}
156
157TiaraParts TiaraIronShieldB::GetParts(){
158  return fTiaraParts;
159}
Note: See TracBrowser for help on using the repository browser.