ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CCalG4Hall.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CCalG4Hall.cc
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 //
27 // File: CCalG4Hall.cc
28 // Description: CCalG4Hall Geometry factory class to construct G4 geometry
29 // of the experimental hall
31 #include "CCalG4Hall.hh"
32 
33 #include "CCalMaterialFactory.hh"
34 
35 #include "CCalG4Hcal.hh"
36 #include "CCalG4Ecal.hh"
37 
38 #include "CCalutils.hh"
39 
40 #include "G4SystemOfUnits.hh"
41 #include "G4LogicalVolume.hh"
42 #include "G4ThreeVector.hh"
43 #include "G4PVPlacement.hh"
44 #include "G4Box.hh"
45 
46 //#define debug
47 //#define pdebug
48 
50 // CCalG4Hall constructor & destructor...
52 
54  CCalHall(name),CCalG4Able(name) {}
55 
57 
59 // CCalG4Hall methods...
61 
63 
64  G4cout << "==>> Constructing CCalG4Hall..." << G4endl;
65 
67  //Pointers to the Rotation Matrices and to the Materials
69 
70  //Experimental Hall. The mother volume....
71 #ifdef debug
72  G4cout << tab << "Building experimental Hall geometry...." << G4endl;
73 #endif
74 
75  G4Box* solid = new G4Box(Name(), getDx_2Hall()*mm, getDy_2Hall()*mm,
76  getDy_2Hall()*mm);
77 #ifdef debug
78  G4cout << solid->GetName() << " made of " << getMaterial() << " of dimension "
79  << getDx_2Hall()*mm << " " << getDy_2Hall()*mm << " "
80  << getDy_2Hall()*mm << " (all in mm)" << G4endl;
81 #endif
82 
83  G4Material* matter = matfact->findMaterial(getMaterial());
84  G4LogicalVolume* glog = new G4LogicalVolume (solid, matter, Name(), 0, 0, 0);
86 
88  glog,mother,false,0);
89 #ifdef pdebug
90  G4String name("Null");
91  if (mother != 0) name = mother->GetName();
92  G4cout << glog->GetName() << " number 1 positioned in " << name
93  << " at (0,0,0) with no rotation" << G4endl;
94 #endif
95 
96  G4cout << "<<== End of CCalG4Hall construction ..." << G4endl;
97 
98  return volume;
99 }
100 
102  //Hadron Calorimeter
103  CCalG4Hcal* hcal = new CCalG4Hcal("HadronCalorimeter");
104  addDetector(hcal);
105  AddCCalG4Able(hcal);
106 
107  //Crystal matrix
108  CCalG4Ecal* ecal = new CCalG4Ecal("CrystalMatrixModule");
110  addDetector(ecal);
111  AddCCalG4Able(ecal);
112 }