Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
d
e
f
l
m
o
p
s
t
u
v
Related Functions
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Package Documentation
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
SimG4CMS
Forward
src
MtdSD.cc
Go to the documentation of this file.
1
#include "
SimG4CMS/Forward/interface/MtdSD.h
"
2
3
#include "
FWCore/Framework/interface/ESHandle.h
"
4
#include "
FWCore/Framework/interface/EventSetup.h
"
5
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
6
7
#include "
Geometry/Records/interface/IdealGeometryRecord.h
"
8
9
#include "
Geometry/MTDCommonData/interface/BTLNumberingScheme.h
"
10
#include "
Geometry/MTDCommonData/interface/ETLNumberingScheme.h
"
11
#include "
DataFormats/ForwardDetId/interface/MTDDetId.h
"
12
13
#include "G4Track.hh"
14
#include "G4Step.hh"
15
#include "G4StepPoint.hh"
16
17
#include <iostream>
18
19
//#define EDM_ML_DEBUG
20
//-------------------------------------------------------------------
21
MtdSD::MtdSD
(
const
std::string
&
name
,
22
const
edm::EventSetup
& es,
23
const
SensitiveDetectorCatalog
& clg,
24
edm::ParameterSet
const
&
p
,
25
const
SimTrackManager
* manager)
26
:
TimingSD
(
name
, es, clg,
p
, manager),
numberingScheme
(nullptr) {
27
//Parameters
28
edm::ParameterSet
m_p =
p
.getParameter<
edm::ParameterSet
>(
"MtdSD"
);
29
int
verbn = m_p.
getUntrackedParameter
<
int
>(
"Verbosity"
);
30
31
SetVerboseLevel(verbn);
32
33
MTDNumberingScheme
*
scheme
=
nullptr
;
34
if
(
name
==
"FastTimerHitsBarrel"
) {
35
scheme
= dynamic_cast<MTDNumberingScheme*>(
new
BTLNumberingScheme
());
36
isBTL
=
true
;
37
}
else
if
(
name
==
"FastTimerHitsEndcap"
) {
38
scheme
= dynamic_cast<MTDNumberingScheme*>(
new
ETLNumberingScheme
());
39
isETL
=
true
;
40
}
else
{
41
scheme
=
nullptr
;
42
edm::LogWarning
(
"MtdSim"
) <<
"MtdSD: ReadoutName not supported"
;
43
}
44
if
(
scheme
)
45
setNumberingScheme
(
scheme
);
46
47
double
newTimeFactor = 1. / m_p.
getParameter
<
double
>(
"TimeSliceUnit"
);
48
edm::LogInfo
(
"MtdSim"
) <<
"New time factor = "
<< newTimeFactor;
49
setTimeFactor
(newTimeFactor);
50
51
edm::LogVerbatim
(
"MtdSim"
) <<
"MtdSD: Instantiation completed for "
<<
name
;
52
}
53
54
MtdSD::~MtdSD
() {}
55
56
uint32_t
MtdSD::setDetUnitId
(
const
G4Step* aStep) {
57
if
(
numberingScheme
==
nullptr
) {
58
return
MTDDetId
();
59
}
else
{
60
getBaseNumber
(aStep);
61
#ifdef EDM_ML_DEBUG
62
edm::LogInfo
(
"MtdSim"
) <<
"DetId = "
<<
numberingScheme
->
getUnitID
(
theBaseNumber
);
63
#endif
64
return
numberingScheme
->
getUnitID
(
theBaseNumber
);
65
}
66
}
67
68
void
MtdSD::setNumberingScheme
(
MTDNumberingScheme
*
scheme
) {
69
if
(
scheme
!=
nullptr
) {
70
edm::LogInfo
(
"MtdSim"
) <<
"MtdSD: updates numbering scheme for "
<< GetName();
71
if
(
numberingScheme
)
72
delete
numberingScheme
;
73
numberingScheme
=
scheme
;
74
}
75
}
76
77
void
MtdSD::getBaseNumber
(
const
G4Step* aStep) {
78
theBaseNumber
.
reset
();
79
const
G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
80
int
theSize = touch->GetHistoryDepth() + 1;
81
if
(
theBaseNumber
.
getCapacity
() < theSize)
82
theBaseNumber
.
setSize
(theSize);
83
//Get name and copy numbers
84
if
(theSize > 1) {
85
#ifdef EDM_ML_DEBUG
86
edm::LogInfo
(
"MtdSim"
) <<
"Building MTD basenumber:"
;
87
#endif
88
for
(
int
ii
= 0;
ii
< theSize;
ii
++) {
89
theBaseNumber
.
addLevel
(touch->GetVolume(
ii
)->GetName(), touch->GetReplicaNumber(
ii
));
90
#ifdef EDM_ML_DEBUG
91
edm::LogVerbatim
(
"MtdSim"
) <<
"MtdSD::getBaseNumber(): Adding level "
<<
ii
<<
": "
92
<< touch->GetVolume(
ii
)->GetName() <<
"["
<< touch->GetReplicaNumber(
ii
) <<
"]"
;
93
#endif
94
}
95
}
96
}
MTDNumberingScheme::getUnitID
virtual uint32_t getUnitID(const MTDBaseNumber &baseNumber) const =0
SimTrackManager
Definition:
SimTrackManager.h:35
MTDNumberingScheme
Definition:
MTDNumberingScheme.h:8
MessageLogger.h
ESHandle.h
TimingSD::setTimeFactor
void setTimeFactor(double)
Definition:
TimingSD.cc:86
MTDBaseNumber::getCapacity
int getCapacity()
Definition:
MTDBaseNumber.cc:45
AlCaHLTBitMon_ParallelJobs.p
p
Definition:
AlCaHLTBitMon_ParallelJobs.py:153
edm::LogInfo
Definition:
MessageLogger.h:254
MtdSD::setDetUnitId
uint32_t setDetUnitId(const G4Step *) override
Definition:
MtdSD.cc:56
TimingSD
Definition:
TimingSD.h:29
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
MtdSD::isBTL
bool isBTL
Definition:
MtdSD.h:35
SensitiveDetectorCatalog
Definition:
SensitiveDetectorCatalog.h:10
MTDBaseNumber::addLevel
void addLevel(const std::string &name, const int ©Number)
Definition:
MTDBaseNumber.cc:21
MtdSD::numberingScheme
MTDNumberingScheme * numberingScheme
Definition:
MtdSD.h:33
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
MtdSD.h
edm::LogWarning
Definition:
MessageLogger.h:141
MTDBaseNumber::setSize
void setSize(const int &size)
Definition:
MTDBaseNumber.cc:10
edm::ParameterSet
Definition:
ParameterSet.h:36
numberingScheme
static TrackerG4SimHitNumberingScheme & numberingScheme(const GeometricDet &det)
Definition:
TkAccumulatingSensitiveDetector.cc:39
MTDDetId.h
edm::LogVerbatim
Definition:
MessageLogger.h:297
IdealGeometryRecord.h
edm::EventSetup
Definition:
EventSetup.h:57
MtdSD::MtdSD
MtdSD(const std::string &, const edm::EventSetup &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition:
MtdSD.cc:21
BTLNumberingScheme.h
MtdSD::~MtdSD
~MtdSD() override
Definition:
MtdSD.cc:54
generator_cfi.scheme
scheme
Definition:
generator_cfi.py:22
ETLNumberingScheme.h
ETLNumberingScheme
Definition:
ETLNumberingScheme.h:6
MtdSD::theBaseNumber
MTDBaseNumber theBaseNumber
Definition:
MtdSD.h:34
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
MtdSD::setNumberingScheme
void setNumberingScheme(MTDNumberingScheme *)
Definition:
MtdSD.cc:68
MTDDetId
Detector identifier base class for the MIP Timing Layer.
Definition:
MTDDetId.h:21
MTDBaseNumber::reset
void reset()
Definition:
MTDBaseNumber.cc:47
Skims_PA_cff.name
name
Definition:
Skims_PA_cff.py:17
EventSetup.h
MtdSD::getBaseNumber
void getBaseNumber(const G4Step *)
Definition:
MtdSD.cc:77
MtdSD::isETL
bool isETL
Definition:
MtdSD.h:36
cuy.ii
ii
Definition:
cuy.py:590
BTLNumberingScheme
Definition:
BTLNumberingScheme.h:6
Generated for CMSSW Reference Manual by
1.8.16