101 std::ostringstream oss;
104 const unsigned int rpDecId =
id.arm()*100 +
id.station()*10 +
id.rp();
108 oss <<
" (strip RP " << rpDecId;
110 oss <<
", plane " << fid.
plane();
116 oss <<
" (pixel RP " << rpDecId;
118 oss <<
", plane " << fid.
plane();
124 oss <<
" (diamd RP " << rpDecId;
126 oss <<
", plane " << fid.
plane() <<
", channel " << fid.
channel();
137 time_t unixTime =
event.time().unixTime();
139 strftime( timeStr, 50,
"%F %T", localtime( &unixTime ) );
143 <<
event.id().run() <<
", event=" <<
event.id().event() <<
", UNIX timestamp=" << unixTime
144 <<
" (" << timeStr <<
")";
148 std::ostringstream oss;
150 <<
" ce: RP center in global coordinates, in mm\n";
151 for (
auto it = geometry.
beginRP(); it != geometry.
endRP(); ++it ) {
155 oss <<
std::fixed << std::setprecision( 3 ) <<
" | ce=(" << t.x() <<
", " << t.y() <<
", " << t.z() <<
")";
164 <<
" ce: sensor center in global coordinates, in mm\n" 165 <<
" a1: local axis (1, 0, 0) in global coordinates\n" 166 <<
" a2: local axis (0, 1, 0) in global coordinates\n" 167 <<
" a3: local axis (0, 0, 1) in global coordinates";
172 const CLHEP::Hep3Vector gl_o = geometry.
localToGlobal( detId, CLHEP::Hep3Vector( 0, 0, 0 ) );
173 const CLHEP::Hep3Vector gl_a1 = geometry.
localToGlobal( detId, CLHEP::Hep3Vector( 1, 0, 0 ) ) - gl_o;
174 const CLHEP::Hep3Vector gl_a2 = geometry.
localToGlobal( detId, CLHEP::Hep3Vector( 0, 1, 0 ) ) - gl_o;
175 const CLHEP::Hep3Vector gl_a3 = geometry.
localToGlobal( detId, CLHEP::Hep3Vector( 0, 0, 1 ) ) - gl_o;
180 <<
" | ce=(" << gl_o.x() <<
", " << gl_o.y() <<
", " << gl_o.z() <<
")" 181 <<
" | a1=(" << gl_a1.x() <<
", " << gl_a1.y() <<
", " << gl_a1.z() <<
")" 182 <<
" | a2=(" << gl_a2.x() <<
", " << gl_a2.y() <<
", " << gl_a2.z() <<
")" 183 <<
" | a3=(" << gl_a3.x() <<
", " << gl_a3.y() <<
", " << gl_a3.z() <<
")";
Detector ID class for TOTEM Si strip detectors.
std::string geometryType_
Class to print out information on current geometry.
edm::ESWatcher< VeryForwardRealGeometryRecord > watcherRealGeometry_
#define DEFINE_FWK_MODULE(type)
static void PrintDetId(const CTPPSDetId &id, bool printDetails=true)
mapType::const_iterator beginSensor() const
begin iterator over sensors
Event setup record containing the real (actual) geometry information.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
void analyze(const edm::Event &, const edm::EventSetup &) override
void PrintGeometry(const CTPPSGeometry &, const edm::Event &)
edm::ESWatcher< VeryForwardMisalignedGeometryRecord > watcherMisalignedGeometry_
RPDeviceMapType::const_iterator beginRP() const
begin iterator over RPs
CTPPSGeometryInfo(const edm::ParameterSet &)
CLHEP::Hep3Vector localToGlobal(const DetGeomDesc *, const CLHEP::Hep3Vector &) const
The manager class for TOTEM RP geometry.
mapType::const_iterator endSensor() const
end iterator over sensors
RPDeviceMapType::const_iterator endRP() const
end iterator over RPs
bool check(const edm::EventSetup &iSetup)
Base class for CTPPS detector IDs.
ESHandle< TrackerGeometry > geometry
Event setup record containing the misaligned geometry information. It is used for alignment studies o...
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
edm::ESWatcher< IdealGeometryRecord > watcherIdealGeometry_