Geant4
10.03.p03
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CCalSensAssign.cc
Go to the documentation of this file.
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: CCalSensAssign.cc
28
// Description: CCalSenAssign creates and assigns the sensitive detetctors
30
#include "
CCalSensAssign.hh
"
31
#include "
CCalStackingAction.hh
"
32
#include "
CCalSensitiveDetectors.hh
"
33
#include "
CCaloSD.hh
"
34
35
#include "
G4RunManager.hh
"
36
#include "
G4SDManager.hh
"
37
38
//#define debug
39
40
CCalSensAssign
* CCalSensAssign::theInstance = 0;
41
42
43
CCalSensAssign
*
CCalSensAssign::getInstance
() {
44
if
(!theInstance) theInstance =
new
CCalSensAssign
;
45
return
theInstance;
46
}
47
48
49
CCalSensAssign::CCalSensAssign() {}
50
51
52
bool
CCalSensAssign::assign
() {
53
bool
result
=
false
;
54
55
CCalSensitiveDetectors
* sensDets =
CCalSensitiveDetectors::getInstance
();
56
for
(std::map<G4String,G4VSensitiveDetector*>::const_iterator sens_it = sens_.begin();
57
sens_it!=sens_.end(); ++sens_it) {
58
G4String
name
= sens_it->
first
;
59
G4VSensitiveDetector
* sens = sens_it->second;
60
if
(sensDets->
setSensitive
(name, sens)) {
61
G4SDManager::GetSDMpointer
()->
AddNewDetector
(sens);
62
#ifdef debug
63
G4cout
<<
"Add "
<< sens->
GetName
()
64
<<
" to the list of Sensitive detetctors"
<<
G4endl
;
65
#endif
66
}
67
}
68
69
return
result
;
70
}
71
72
bool
CCalSensAssign::stackingAction
() {
73
74
bool
result
=
false
;
75
//Create the stacking manager required by Calorimeter
76
if
(
G4RunManager::GetRunManager
()->GetUserStackingAction() == 0) {
77
G4cout
<<
"***CCalSensAssign creating a CCalStackingAction ***"
<<
G4endl
;
78
G4RunManager::GetRunManager
()->
SetUserAction
(
new
CCalStackingAction
);
79
result =
true
;
80
}
else
{
81
G4cout
<<
"***CCalSens: a StackingAction already exists. "
82
<<
"Maybe not the one CCaloSD needs?"
<<
G4endl
;
83
}
84
return
result
;
85
}
86
87
88
bool
CCalSensAssign::addCaloSD
(
G4String
name
,
89
CCalVOrganization
* numberingScheme) {
90
sens_[
name
] =
new
CCaloSD
(name, numberingScheme);
91
return
true
;
92
93
}
result
G4double G4ParticleHPJENDLHEData::G4double result
Definition:
G4ParticleHPJENDLHEData.cc:257
name
const XML_Char * name
Definition:
expat.h:151
CCalSensAssign::stackingAction
bool stackingAction()
Definition:
CCalSensAssign.cc:72
G4RunManager.hh
G4String::first
G4int first(char) const
CCalSensAssign::addCaloSD
bool addCaloSD(G4String name, CCalVOrganization *numberingScheme)
Definition:
CCalSensAssign.cc:88
G4VSensitiveDetector
Definition:
G4VSensitiveDetector.hh:50
CCalSensitiveDetectors
Definition:
CCalSensitiveDetectors.hh:41
CCalSensitiveDetectors::getInstance
static CCalSensitiveDetectors * getInstance()
Definition:
CCalSensitiveDetectors.cc:38
CCalSensitiveDetectors.hh
CCalStackingAction
Definition:
CCalStackingAction.hh:40
CCaloSD.hh
CCalSensAssign::getInstance
static CCalSensAssign * getInstance()
Definition:
CCalSensAssign.cc:43
G4VSensitiveDetector::GetName
G4String GetName() const
Definition:
G4VSensitiveDetector.hh:146
G4cout
G4GLOB_DLL std::ostream G4cout
G4SDManager.hh
CCalSensAssign
Definition:
CCalSensAssign.hh:40
CCalVOrganization
Definition:
CCalVOrganization.hh:36
CCalStackingAction.hh
CCalSensAssign::assign
bool assign()
Definition:
CCalSensAssign.cc:52
CCaloSD
Definition:
CCaloSD.hh:59
G4SDManager::AddNewDetector
void AddNewDetector(G4VSensitiveDetector *aSD)
Definition:
G4SDManager.cc:71
G4RunManager::GetRunManager
static G4RunManager * GetRunManager()
Definition:
G4RunManager.cc:79
CCalSensAssign.hh
G4SDManager::GetSDMpointer
static G4SDManager * GetSDMpointer()
Definition:
G4SDManager.cc:40
G4endl
#define G4endl
Definition:
G4ios.hh:61
CCalSensitiveDetectors::setSensitive
bool setSensitive(const G4String &string, G4VSensitiveDetector *sens)
Definition:
CCalSensitiveDetectors.cc:72
G4RunManager::SetUserAction
virtual void SetUserAction(G4UserRunAction *userAction)
Definition:
G4RunManager.cc:875
G4String
Definition:
G4String.hh:45
source
geant4.10.03.p03
examples
advanced
composite_calorimeter
src
CCalSensAssign.cc
Generated on Tue Nov 28 2017 21:43:44 for Geant4 by
1.8.5