source: trunk/source/geometry/benchmarks/BuildCalorimeter.hh @ 1316

Last change on this file since 1316 was 1316, checked in by garnier, 14 years ago

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

File size: 3.7 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//
27// $Id: BuildCalorimeter.hh,v 1.6 2006/06/29 18:15:26 gunter Exp $
28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
29//
30#ifndef BUILDCALORIMETER_HH
31#define BUILDCALORIMETER_HH
32
33#include "G4PVPlacement.hh"
34#include "G4LogicalVolume.hh"
35#include "G4Box.hh"
36#include "G4Tubs.hh"
37
38G4VPhysicalVolume* BuildCalorimeter()
39{
40    G4double offset=22.5,xTlate,yTlate;
41    G4int i,j,copyNo;
42
43    G4Box *myWorldBox= new G4Box ("WBox",10000.*mm,10000.*mm,10000.*mm);
44    G4Box *myCalBox = new G4Box ("CBox",1500.*mm,1500.*mm,1000.*mm);
45    G4Tubs *myTargetTube = new G4Tubs ("TTube",0.,22.5*mm,1000.*mm,0.,360.*deg);
46
47    G4LogicalVolume *myWorldLog=new G4LogicalVolume(myWorldBox,0,
48                                                   "WLog",0,0,0);
49    G4LogicalVolume *myCalLog=new G4LogicalVolume(myCalBox,0,
50                                                  "CLog",0,0,0);
51    G4LogicalVolume *myTargetLog=new G4LogicalVolume(myTargetTube,0,
52                                                     "TLog",0,0,0);
53
54    G4PVPlacement *myWorldPhys=new G4PVPlacement(0,G4ThreeVector(),
55                                                 "WPhys",
56                                                 myWorldLog,
57                                                 0,false,0);
58    G4PVPlacement *myCalPhys=new G4PVPlacement(0,G4ThreeVector(),
59                                               "CalPhys",
60                                               myCalLog,
61                                               myWorldPhys,false,0);
62
63    G4String tName1("TPhys1");  // Allow all target physicals to share
64                                // same name (delayed copy)
65    copyNo=0;
66    for (j=1;j<=25;j++)
67      {
68        yTlate=-1000.0-40.0+j*80.0;
69       
70        for (i=1;i<=50;i++)
71          {
72            copyNo++;
73            xTlate=-1000.0-20.0+i*45.0-offset;
74            // G4PVPlacement *myTargetPhys=
75            new G4PVPlacement(0,G4ThreeVector(xTlate*mm,yTlate*mm,0),
76                                              tName1,
77                                              myTargetLog,
78                                              myCalPhys,
79                                              false,
80                                              copyNo);
81          }
82      }
83   
84    G4String tName2("TPhys2");  // Allow all target physicals to share
85    // same name (delayed copy)
86    copyNo=0;
87    for (j=1;j<=26;j++)
88      {
89        yTlate=-1000.0-80.0+j*80.0;
90        for (i=1;i<=50;i++)
91          {
92            copyNo++;
93            xTlate=-1000.0-20.0+i*45.0;
94            // G4PVPlacement *myTargetPhys=
95            new G4PVPlacement(0,G4ThreeVector(xTlate*mm,yTlate*mm,0),
96                                              tName2,
97                                              myTargetLog,
98                                              myCalPhys,
99                                              false,
100                                              copyNo);
101          }
102      }
103
104    return myWorldPhys;
105}
106#endif
107
Note: See TracBrowser for help on using the repository browser.