source: trunk/examples/advanced/composite_calorimeter/src/CCalEcal.cc@ 1332

Last change on this file since 1332 was 807, checked in by garnier, 17 years ago

update

File size: 4.2 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// File: CCalEcal.cc
28// Description: CCalEcal Geometry factory class for crystal matrix
29///////////////////////////////////////////////////////////////////////////////
30#include "CCalEcal.hh"
31
32#include <fstream>
33#include "CCalutils.hh"
34
35//#define debug
36
37CCalEcal::~CCalEcal() {}
38
39int CCalEcal::readFile() {
40 ///////////////////////////////////////////////////////////////
41 //Let's open the file
42 G4cout << " ==> Opening file " << File() << " to read elements..."
43 << G4endl;
44
45 std::ifstream is;
46 bool ok = openGeomFile(is, pathName, File());
47 if (!ok)
48 return 0;
49
50 // Find *DO CrystalMatrix
51 findDO(is, G4String("CrystalMatrix"));
52
53 //Let's read overall box dimensions and positions
54 readName(is,genMat);
55 is >> widBox >> lengBox >> xpos >> ypos >> zpos >> thetaX >> phiX
56 >> thetaY >> phiY >> thetaZ >> phiZ >> jump;
57#ifdef debug
58 G4cout << tab << "General material: " << genMat << "\tBox dimensions "
59 << widBox << ", " << lengBox << G4endl;
60 G4cout << tab << "Positioned at (" << xpos << ", " << ypos << ", " << zpos
61 << ") with rotation (" << thetaX << ", " << phiX << ", " << thetaY
62 << ", " << phiY << ", " << thetaZ << ", " << phiZ << ")" << G4endl;
63#endif
64
65 //Then the layer positions
66 int i=0;
67 readName(is,layMat);
68 is >> layNum >> layRadius >> layAngle >> lengFront;
69 for (i=0; i<5; i++)
70 is >> layPar[i];
71#ifdef debug
72 G4cout << tab << "Layer material: " << layMat << " Number " << layNum
73 << " Radius " << layRadius << " Angle " << layAngle/deg
74 << " front dist " << lengFront << " Parameters ";
75 for (i=0; i<5; i++)
76 G4cout << layPar[i] << " ";
77 G4cout << G4endl;
78#endif
79
80 //Then the crystal positions
81 readName(is,crystMat);
82 is >> crystNum >> crystLength >> crystTol;
83 for (i=0; i<5; i++)
84 is >> crystPar[i];
85#ifdef debug
86 G4cout << tab << "Crystal material: " << crystMat << " Number " << crystNum
87 << " Length " << crystLength << " Tolerance " << crystTol
88 << " Parameters ";
89 for (i=0; i<5; i++)
90 G4cout << crystPar[i] << " ";
91 G4cout << G4endl;
92#endif
93
94 //Then the support material
95 readName(is,suppMat);
96 is >> dxSupp >> dySupp >> dzSupp >> distSupp >> jump;
97#ifdef debug
98 G4cout << tab << "Support material: " << suppMat << " Dimensions " << dxSupp
99 << ", " << dySupp << ", " << dzSupp << " Distance " << distSupp << G4endl;
100#endif
101
102 ///////////////////////////////////////////////////////////////
103 // Close the file
104 G4cout << " ==> Closing file " << File() << G4endl;
105 is.close();
106
107 return 1;
108
109}
110
111void CCalEcal::constructDaughters() {}
Note: See TracBrowser for help on using the repository browser.