ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CCalDetector.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file CCalDetector.hh
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: CCalDetector.hh
28
// Description: CCalDetector will provide the basic functionallity of a
29
// detector factory. It has a construct method that describes
30
// the construction sequence of the detector. It has a Name,
31
// a file associated with it, and a collection of other
32
// CCalDetectors that are supposed to be inside this one.
34
#ifndef CCalDetector_h
35
#define CCalDetector_h 1
36
37
#include <iostream>
38
#include <vector>
39
#include "
globals.hh
"
40
41
//Forward declartion for the CCalDetectorTable typedef
42
class
CCalDetector
;
43
44
//A table to hold a list of pointers to CMS Detectors
45
typedef
std::vector<CCalDetector*>
CCalDetectorTable
;
46
48
//At last the class
49
class
CCalDetector
{
50
51
friend
std::ostream&
operator<<
(std::ostream&,
const
CCalDetector
&);
52
53
public
:
55
//Constructor with a name and a filename.
56
CCalDetector
(
const
G4String
&
name
);
58
//Destructor
59
virtual
~CCalDetector
();
60
61
63
// Construction related methods
64
65
//This starts the detector construction
66
void
constructHierarchy
() {
construct
();}
67
void
construct
();
68
69
71
//A method that allows to add a new detector inside this one.
72
void
addDetector
(
CCalDetector
*);
73
74
76
//Other get methods
77
G4String
Name
()
const
{
return
detectorName
;}
78
G4String
baseFileName
()
const
{
return
fileName
;}
79
G4String
File
()
const
{
return
fileName
+
".geom"
;}
80
CCalDetector
*
getDaughter
(
G4int
i)
const
{
return
theDetectorsInside
[i];}
81
G4int
getNDaughters
()
const
{
return
theDetectorsInside
.size();}
82
83
85
//Local operators
86
//Equality only checks name !!!
87
G4bool
operator==
(
const
CCalDetector
&
left
)
const
{
88
return
(
detectorName
==left.
detectorName
);
89
}
90
G4bool
operator!=
(
const
CCalDetector
&
left
)
const
{
91
return
(
detectorName
!=left.
detectorName
);
92
}
93
94
95
protected
:
96
98
//Pure Virtual methods
99
100
//Should read a file and store the information inside the concrete
101
//CCalDetector
102
virtual
G4int
readFile
() = 0;
103
//Construct the daughters by calling the apropiate constructors
104
virtual
void
constructDaughters
() = 0;
105
107
//Building related methods
108
109
//Builds the detector from a file
110
G4int
buildFromFile
();
111
112
protected
:
114
//Data Members
115
116
G4String
detectorName
;
//Detector name
117
G4String
fileName
;
//File name from it will be read
118
G4String
pathName
;
//Path in which to look for files
119
120
CCalDetectorTable
theDetectorsInside
;
//A collection of CCalDetectors inside
121
122
G4int
constructFlag
;
//True if this detector is to be built
123
};
124
125
#endif
126
127
128
geant4
tree
geant4-10.6-release
examples
advanced
composite_calorimeter
include
CCalDetector.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:56
using
1.8.2 with
ECCE GitHub integration