60 : geometryType_(iConfig.getUntrackedParameter<
std::
string>(
"geometryType",
"real")),
61 printRPInfo_(iConfig.getUntrackedParameter<
bool>(
"printRPInfo",
true)),
62 printSensorInfo_(iConfig.getUntrackedParameter<
bool>(
"printSensorInfo",
true)),
100 std::ostringstream oss;
103 const unsigned int rpDecId =
id.arm() * 100 +
id.station() * 10 +
id.rp();
107 oss <<
" (strip RP " << std::setw(3) << rpDecId;
109 oss <<
", plane " << fid.
plane();
115 oss <<
" (pixel RP " << std::setw(3) << rpDecId;
117 oss <<
", plane " << fid.
plane();
123 oss <<
" (diamd RP " << std::setw(3) << rpDecId;
125 oss <<
", plane " << fid.
plane() <<
", channel " << std::setw(2) << fid.
channel();
131 oss <<
" (totim RP " << std::setw(3) << rpDecId;
133 oss <<
", plane " << fid.
plane() <<
", channel " << std::setw(2) << fid.
channel();
143 time_t unixTime =
event.time().unixTime();
145 strftime(timeStr, 50,
"%F %T", localtime(&unixTime));
147 std::ostringstream oss;
152 <<
" ce: RP center in global coordinates, in mm\n";
158 <<
" | ce=(" <<
t.x() <<
", " <<
t.y() <<
", " <<
t.z() <<
")\n";
166 oss <<
"* sensors:\n" 167 <<
" ce: sensor center in global coordinates, in mm\n" 168 <<
" a1: local axis (1, 0, 0) in global coordinates\n" 169 <<
" a2: local axis (0, 1, 0) in global coordinates\n" 170 <<
" a3: local axis (0, 0, 1) in global coordinates\n";
180 oss <<
formatDetId(detId) <<
std::fixed << std::setprecision(3) << std::showpos <<
" | ce=(" << gl_o.x() <<
", " 181 << gl_o.y() <<
", " << gl_o.z() <<
")" 182 <<
" | a1=(" << gl_a1.x() <<
", " << gl_a1.y() <<
", " << gl_a1.z() <<
")" 183 <<
" | a2=(" << gl_a2.x() <<
", " << gl_a2.y() <<
", " << gl_a2.z() <<
")" 184 <<
" | a3=(" << gl_a3.x() <<
", " << gl_a3.y() <<
", " << gl_a3.z() <<
")\n";
189 <<
", event=" <<
event.id().event() <<
", UNIX timestamp=" << unixTime <<
" ("
Detector ID class for TOTEM Si strip detectors.
Log< level::Info, true > LogVerbatim
Class to print out information on current geometry.
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
const edm::ESGetToken< CTPPSGeometry, IdealGeometryRecord > tokIdeal_
edm::ESWatcher< VeryForwardRealGeometryRecord > watcherRealGeometry_
Event setup record containing the real (actual) geometry information.
DetGeomDesc::Translation Vector
const edm::ESGetToken< CTPPSGeometry, VeryForwardRealGeometryRecord > tokReal_
void analyze(const edm::Event &, const edm::EventSetup &) override
edm::ESWatcher< VeryForwardMisalignedGeometryRecord > watcherMisalignedGeometry_
CTPPSGeometryInfo(const edm::ParameterSet &)
static std::string formatDetId(const CTPPSDetId &id, bool printDetails=true)
#define DEFINE_FWK_MODULE(type)
The manager class for TOTEM RP geometry.
Log< level::Info, false > LogInfo
const edm::ESGetToken< CTPPSGeometry, VeryForwardMisalignedGeometryRecord > tokMis_
const std::string geometryType_
bool check(const edm::EventSetup &iSetup)
Base class for CTPPS detector IDs.
Event setup record containing the misaligned geometry information. It is used for alignment studies o...
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > Translation
void printGeometry(const CTPPSGeometry &, const edm::Event &)
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
edm::ESWatcher< IdealGeometryRecord > watcherIdealGeometry_
const bool printSensorInfo_
Detector ID class for CTPPS Totem Timing detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bits ...