44 void Fill(
double x,
double y,
double z,
bool uDir,
double dx,
double dy)
88 geometryType(ps.getUntrackedParameter<
string>(
"geometryType",
"real")),
89 printRPInfo(ps.getUntrackedParameter<bool>(
"printRPInfo",
true)),
90 printSensorInfo(ps.getUntrackedParameter<bool>(
"printSensorInfo",
true)),
91 printMeanSensorInfo(ps.getUntrackedParameter<bool>(
"printMeanSensorInfo",
true))
166 time_t unixTime =
event.time().unixTime();
168 strftime(timeStr, 50,
"%F %T", localtime(&unixTime));
169 printf(
">> GeometryInfoModule::PrintGeometry\n\tnew %s geometry found in run=%u, event=%llu, UNIX timestamp=%lu (%s)\n",
170 geometryType.c_str(),
event.id().run(),
event.id().event(), unixTime, timeStr);
175 printf(
"\n* RPs:\n");
176 printf(
" ID | x (mm) | y (mm) | z (m) |\n");
177 for (TotemRPGeometry::RPDeviceMapType::const_iterator it = geometry.
beginRP(); it != geometry.
endRP(); ++it)
180 printf(
" %3i | %+11.3f | %+11.3f | %+9.4f |\n", it->first, t.x(), t.y(), t.z() * 1E-3);
187 printf(
"\n* silicon sensors:\n");
188 printf(
"DetId | detector center | readout direction |\n");
189 printf(
" | x (mm) | y (mm) | z (m) | dx | dy |\n");
190 for (TotemRPGeometry::mapType::const_iterator it = geometry.
beginDet(); it != geometry.
endDet(); ++it)
194 double x = it->second->translation().x();
195 double y = it->second->translation().y();
196 double z = it->second->translation().z() * 1E-3;
198 double dx = 0., dy = 0.;
201 printf(
"%4i | %8.3f | %8.3f | %9.4f | %8.3f | %8.3f |\n",
id.detectorDecId(), x, y, z, dx, dy);
208 printf(
"\n* average over silicon sensors of 1 RP:\n");
210 map<unsigned int, MeanRPData>
data;
212 for (TotemRPGeometry::mapType::const_iterator it = geometry.
beginDet(); it != geometry.
endDet(); ++it)
215 unsigned int rpId = decId / 10;
218 double x = it->second->translation().x();
219 double y = it->second->translation().y();
220 double z = it->second->translation().z() * 1E-3;
222 double dx = 0., dy = 0.;
225 data[rpId].Fill(x, y, z, uDirection, dx, dy);
228 printf(
"RPId | center | U direction | V direction |\n");
229 printf(
" | x (mm) | y (mm) | z (m) | dx | dy | dx | dy |\n");
231 for (map<unsigned int, MeanRPData>::iterator it = data.begin(); it != data.end(); ++it)
235 double mx = (d.
N > 0) ? d.
Sx / d.
N : 0.;
236 double my = (d.
N > 0) ? d.
Sy / d.
N : 0.;
237 double mz = (d.
N > 0) ? d.
Sz / d.
N : 0.;
246 printf(
" %3i | %8.3f | %8.3f | %9.4f | %8.3f | %8.3f | %8.3f | %8.3f |\n", it->first, mx, my, mz, mdx_u, mdy_u, mdx_v, mdy_v);
edm::ESWatcher< IdealGeometryRecord > watcherIdealGeometry
#define DEFINE_FWK_MODULE(type)
RPDeviceMapType::const_iterator endRP() const
end iterator over RPs
static unsigned int rawToDecId(unsigned int raw)
fast conversion Raw to Decimal ID
bool isStripsCoordinateUDirection() const
void GetReadoutDirection(unsigned int id, double &dx, double &dy) const
Event setup record containing the real (actual) geometry information.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
mapType::const_iterator endDet() const
end iterator over (silicon) detectors
RPDeviceMapType::const_iterator beginRP() const
begin iterator over RPs
edm::ESWatcher< VeryForwardMeasuredGeometryRecord > watcherMeasuredGeometry
Event setup record containing the Measured (measured) geometry information.
GeometryInfoModule(const edm::ParameterSet &)
Class to print out information on current geometry.
edm::ESWatcher< VeryForwardRealGeometryRecord > watcherRealGeometry
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
void Fill(double x, double y, double z, bool uDir, double dx, double dy)
The manager class for TOTEM RP geometry.
bool check(const edm::EventSetup &iSetup)
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
ESHandle< TrackerGeometry > geometry
void PrintGeometry(const TotemRPGeometry &, const edm::Event &)
Event setup record containing the misaligned geometry information. It is used for alignment studies o...
mapType::const_iterator beginDet() const
begin iterator over (silicon) detectors
virtual void analyze(const edm::Event &, const edm::EventSetup &)
edm::ESWatcher< VeryForwardMisalignedGeometryRecord > watcherMisalignedGeometry