Geometry
TrackerCommonData
plugins
dd4hep
DDTrackerZPosAlgo.cc
Go to the documentation of this file.
1
#include "DD4hep/DetFactoryHelper.h"
2
#include "
DetectorDescription/DDCMS/interface/DDPlugins.h
"
3
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
4
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
5
6
using namespace
std
;
7
using namespace
dd4hep
;
8
using namespace
cms
;
9
10
static
long
algorithm
(
Detector
&
/* description */
,
cms::DDParsingContext
& ctxt, xml_h
e
,
SensitiveDetector
&
/* sens */
) {
11
cms::DDNamespace
ns(ctxt,
e
,
true
);
12
DDAlgoArguments
args
(ctxt,
e
);
13
int
startCopyNo =
args
.find(
"StartCopyNo"
) ?
args
.value<
int
>(
"StartCopyNo"
) : 1;
14
int
incrCopyNo =
args
.find(
"IncrCopyNo"
) ?
args
.value<
int
>(
"IncrCopyNo"
) : 1;
15
Volume
mother = ns.
volume
(
args
.parentName());
16
Volume
child
= ns.
volume
(
args
.value<
string
>(
"ChildName"
));
17
vector<double> zvec =
args
.value<vector<double> >(
"ZPositions"
);
// Z positions
18
vector<string> rotMat =
args
.value<vector<string> >(
"Rotations"
);
// Names of rotation matrices
19
20
LogDebug
(
"TrackerGeom"
) <<
"debug: Parent "
<< mother.name() <<
"\tChild "
<<
child
.name() <<
" NameSpace "
21
<< ns.
name
() <<
"\tCopyNo (Start/Increment) "
<< startCopyNo <<
", "
<< incrCopyNo
22
<<
"\tNumber "
<< zvec.size();
23
for
(
int
i
= 0;
i
< (
int
)(zvec.size());
i
++)
24
LogDebug
(
"TrackerGeom"
) <<
"\t["
<<
i
<<
"]\tZ = "
<< zvec[
i
] <<
", Rot.Matrix = "
<< rotMat[
i
];
25
26
for
(
int
i
= 0,
copy
= startCopyNo;
i
< (
int
)(zvec.size());
i
++,
copy
+= incrCopyNo) {
27
Position
tran(0, 0, zvec[
i
]);
28
Rotation3D
rot
;
29
/* PlacedVolume pv = */
rotMat[
i
] !=
"NULL"
30
? mother.placeVolume(
child
,
copy
, Transform3D(ns.
rotation
(rotMat[
i
]), tran))
31
: mother.placeVolume(
child
,
copy
, tran);
32
LogDebug
(
"TrackerGeom"
) <<
"test: "
<<
child
.name() <<
" number "
<<
copy
<<
" positioned in "
<< mother.name()
33
<<
" at "
<< tran <<
" with "
<<
rot
;
34
}
35
return
1;
36
}
37
38
// first argument is the type from the xml file
39
DECLARE_DDCMS_DETELEMENT
(DDCMS_track_DDTrackerZPosAlgo,
algorithm
)
writedatasetfile.args
args
Definition:
writedatasetfile.py:18
mps_fire.i
i
Definition:
mps_fire.py:355
MessageLogger.h
DECLARE_DDCMS_DETELEMENT
#define DECLARE_DDCMS_DETELEMENT(name, func)
Definition:
DDPlugins.h:30
filterCSVwithJSON.copy
copy
Definition:
filterCSVwithJSON.py:36
cms::DDParsingContext
Definition:
DDParsingContext.h:14
cms::DDNamespace
Definition:
DDNamespace.h:16
SensitiveDetector
Definition:
SensitiveDetector.h:25
algorithm
static long algorithm(Detector &, cms::DDParsingContext &ctxt, xml_h e, SensitiveDetector &)
Definition:
DDTrackerZPosAlgo.cc:10
PixelTestBeamValidation_cfi.Position
Position
Definition:
PixelTestBeamValidation_cfi.py:62
cms::DDNamespace::rotation
const dd4hep::Rotation3D & rotation(const std::string &name) const
Definition:
DDNamespace.cc:130
cms::Volume
dd4hep::Volume Volume
Definition:
DDFilteredView.h:45
LogDebug
#define LogDebug(id)
Definition:
MessageLogger.h:670
DDPlugins.h
createfilelist.int
int
Definition:
createfilelist.py:10
cms::DDAlgoArguments
Definition:
DDAlgoArguments.h:28
align::Detector
Definition:
StructureType.h:86
std
Definition:
JetResolutionObject.h:76
dd4hep
Definition:
DDPlugins.h:8
makeMuonMisalignmentScenario.rot
rot
Definition:
makeMuonMisalignmentScenario.py:322
child
Definition:
simpleInheritance.h:11
cms::DDNamespace::name
std::string_view name() const
Definition:
DDNamespace.h:68
cms::DDNamespace::volume
dd4hep::Volume volume(const std::string &name, bool exc=true) const
Definition:
DDNamespace.cc:190
cms
Namespace of DDCMS conversion namespace.
Definition:
ProducerAnalyzer.cc:21
MillePedeFileConverter_cfg.e
e
Definition:
MillePedeFileConverter_cfg.py:37
Generated for CMSSW Reference Manual by
1.8.16