CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Static Protected Member Functions
CTPPSRPAlignmentCorrectionsMethods Class Reference

#include <CTPPSRPAlignmentCorrectionsMethods.h>

Public Member Functions

 CTPPSRPAlignmentCorrectionsMethods ()
 

Static Public Member Functions

static std::string iovValueToString (const edm::IOVSyncValue &)
 
static CTPPSRPAlignmentCorrectionsDataSequence loadFromXML (const std::string &fileName)
 loads sequence of alignment corrections from XML file More...
 
static edm::IOVSyncValue stringToIOVValue (const std::string &)
 
static void writeToXML (const CTPPSRPAlignmentCorrectionsData &ad, const std::string &fileName, bool precise=false, bool wrErrors=true, bool wrSh_xy=true, bool wrSh_z=false, bool wrRot_xy=false, bool wrRot_z=true)
 writes alignment corrections into a single XML file, assigning infinite interval of validity More...
 
static void writeToXML (const CTPPSRPAlignmentCorrectionsDataSequence &seq, const std::string &fileName, bool precise=false, bool wrErrors=true, bool wrSh_xy=true, bool wrSh_z=false, bool wrRot_xy=false, bool wrRot_z=true)
 writes sequence of alignment corrections into a single XML file More...
 

Static Protected Member Functions

static CTPPSRPAlignmentCorrectionsData getCorrectionsData (xercesc::DOMNode *)
 load corrections data corresponding to one IOV More...
 
static void writeXML (const CTPPSRPAlignmentCorrectionData &data, FILE *f, bool precise, bool wrErrors, bool wrSh_xy, bool wrSh_z, bool wrRot_xy, bool wrRot_z)
 writes data of a correction in XML format More...
 
static void writeXMLBlock (const CTPPSRPAlignmentCorrectionsData &, FILE *, bool precise=false, bool wrErrors=true, bool wrSh_xy=true, bool wrSh_z=false, bool wrRot_xy=false, bool wrRot_z=true)
 writes a block of corrections into a file More...
 

Detailed Description

Definition at line 21 of file CTPPSRPAlignmentCorrectionsMethods.h.

Constructor & Destructor Documentation

◆ CTPPSRPAlignmentCorrectionsMethods()

CTPPSRPAlignmentCorrectionsMethods::CTPPSRPAlignmentCorrectionsMethods ( )
inline

Definition at line 30 of file CTPPSRPAlignmentCorrectionsMethods.h.

Member Function Documentation

◆ getCorrectionsData()

CTPPSRPAlignmentCorrectionsData CTPPSRPAlignmentCorrectionsMethods::getCorrectionsData ( xercesc::DOMNode *  )
staticprotected

load corrections data corresponding to one IOV

Definition at line 204 of file CTPPSRPAlignmentCorrectionsMethods.cc.

205  {
207 
208  DOMNodeList* children = root->getChildNodes();
209  for (unsigned int i = 0; i < children->getLength(); i++) {
210  DOMNode* node = children->item(i);
211  if (node->getNodeType() != DOMNode::ELEMENT_NODE)
212  continue;
213 
214  const std::string node_name = cms::xerces::toString(node->getNodeName());
215 
216  // check node type
217  unsigned char nodeType = 0;
218  if (node_name == "det")
219  nodeType = 1;
220  else if (node_name == "rp")
221  nodeType = 2;
222 
223  if (nodeType == 0)
224  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods")
225  << "Unknown node `" << cms::xerces::toString(node->getNodeName()) << "'.";
226 
227  // check children
228  if (node->getChildNodes()->getLength() > 0) {
229  edm::LogProblem("CTPPSRPAlignmentCorrectionsMethods")
230  << "LoadXMLFile > Warning: tag `" << cms::xerces::toString(node->getNodeName()) << "' has "
231  << node->getChildNodes()->getLength() << " children nodes - they will be all ignored.";
232  }
233 
234  // default values
235  double sh_x = 0., sh_y = 0., sh_z = 0., rot_x = 0., rot_y = 0., rot_z = 0.;
236  double sh_x_e = 0., sh_y_e = 0., sh_z_e = 0., rot_x_e = 0., rot_y_e = 0., rot_z_e = 0.;
237  unsigned int id = 0;
238  bool idSet = false;
239 
240  // get attributes
241  DOMNamedNodeMap* attr = node->getAttributes();
242  for (unsigned int j = 0; j < attr->getLength(); j++) {
243  DOMNode* a = attr->item(j);
244  const std::string node_name = cms::xerces::toString(a->getNodeName());
245 
246  if (node_name == "id") {
247  id = cms::xerces::toUInt(a->getNodeValue());
248  idSet = true;
249  } else if (node_name == "sh_x")
250  sh_x = cms::xerces::toDouble(a->getNodeValue());
251  else if (node_name == "sh_x_e")
252  sh_x_e = cms::xerces::toDouble(a->getNodeValue());
253  else if (node_name == "sh_y")
254  sh_y = cms::xerces::toDouble(a->getNodeValue());
255  else if (node_name == "sh_y_e")
256  sh_y_e = cms::xerces::toDouble(a->getNodeValue());
257  else if (node_name == "sh_z")
258  sh_z = cms::xerces::toDouble(a->getNodeValue());
259  else if (node_name == "sh_z_e")
260  sh_z_e = cms::xerces::toDouble(a->getNodeValue());
261  else if (node_name == "rot_x")
262  rot_x = cms::xerces::toDouble(a->getNodeValue());
263  else if (node_name == "rot_x_e")
264  rot_x_e = cms::xerces::toDouble(a->getNodeValue());
265  else if (node_name == "rot_y")
266  rot_y = cms::xerces::toDouble(a->getNodeValue());
267  else if (node_name == "rot_y_e")
268  rot_y_e = cms::xerces::toDouble(a->getNodeValue());
269  else if (node_name == "rot_z")
270  rot_z = cms::xerces::toDouble(a->getNodeValue());
271  else if (node_name == "rot_z_e")
272  rot_z_e = cms::xerces::toDouble(a->getNodeValue());
273  else
274  edm::LogProblem("CTPPSRPAlignmentCorrectionsMethods")
275  << ">> CTPPSRPAlignmentCorrectionsMethods::getCorrectionsData > Warning: unknown attribute `"
276  << cms::xerces::toString(a->getNodeName()) << "'.";
277  }
278 
279  // id must be set
280  if (!idSet)
281  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods")
282  << "Id not set for tag `" << cms::xerces::toString(node->getNodeName()) << "'.";
283 
284  // build alignment
285  const CTPPSRPAlignmentCorrectionData align_corr(sh_x * 1e-3,
286  sh_x_e * 1e-3,
287  sh_y * 1e-3,
288  sh_y_e * 1e-3,
289  sh_z * 1e-3,
290  sh_z_e * 1e-3,
291  rot_x * 1e-3,
292  rot_x_e * 1e-3,
293  rot_y * 1e-3,
294  rot_y_e * 1e-3,
295  rot_z * 1e-3,
296  rot_z_e * 1e-3);
297 
298  // add the alignment to the right list
299  if (nodeType == 1)
300  result.addSensorCorrection(id, align_corr, true);
301  if (nodeType == 2)
302  result.addRPCorrection(id, align_corr, true);
303  }
304 
305  return result;

References a, class-composition::children, MillePedeFileConverter_cfg::e, Exception, mps_fire::i, dqmiolumiharvest::j, mps_fire::result, AlCaHLTBitMon_QueryRunRegistry::string, cms::xerces::toDouble(), cms::xerces::toString(), and cms::xerces::toUInt().

Referenced by loadFromXML().

◆ iovValueToString()

std::string CTPPSRPAlignmentCorrectionsMethods::iovValueToString ( const edm::IOVSyncValue val)
static

Definition at line 90 of file CTPPSRPAlignmentCorrectionsMethods.cc.

91  {
93  return "-inf";
94 
96  return "+inf";
97 
98  char buf[50];
99  sprintf(buf, "%u:%u", val.eventID().run(), val.eventID().luminosityBlock());
100  return buf;

References edm::IOVSyncValue::beginOfTime(), visDQMUpload::buf, edm::IOVSyncValue::endOfTime(), and heppy_batch::val.

Referenced by CTPPSRPAlignmentCorrectionsDataESSourceXMLCommon::Merge(), CTPPSRPAlignmentCorrectionsDataESSourceXML::setIntervalFor(), and writeToXML().

◆ loadFromXML()

CTPPSRPAlignmentCorrectionsDataSequence CTPPSRPAlignmentCorrectionsMethods::loadFromXML ( const std::string &  fileName)
static

loads sequence of alignment corrections from XML file

Definition at line 104 of file CTPPSRPAlignmentCorrectionsMethods.cc.

105  {
106  // prepare output
108 
109  // load DOM tree
110  try {
111  XMLPlatformUtils::Initialize();
112  } catch (const XMLException& toCatch) {
113  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods")
114  << "An XMLException caught with message: " << cms::xerces::toString(toCatch.getMessage()) << ".";
115  }
116 
117  auto parser = std::make_unique<XercesDOMParser>();
118  parser->setValidationScheme(XercesDOMParser::Val_Always);
119  parser->setDoNamespaces(true);
120  parser->parse(fileName.c_str());
121 
122  if (!parser)
123  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods")
124  << "Cannot parse file `" << fileName << "' (parser = NULL).";
125 
126  DOMDocument* xmlDoc = parser->getDocument();
127 
128  if (!xmlDoc)
129  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods")
130  << "Cannot parse file `" << fileName << "' (xmlDoc = NULL).";
131 
132  DOMElement* elementRoot = xmlDoc->getDocumentElement();
133  if (!elementRoot)
134  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods") << "File `" << fileName << "' is empty.";
135 
136  // extract useful information form the DOM tree
137  DOMNodeList* children = elementRoot->getChildNodes();
138  for (unsigned int i = 0; i < children->getLength(); i++) {
139  DOMNode* node = children->item(i);
140  if (node->getNodeType() != DOMNode::ELEMENT_NODE)
141  continue;
142 
143  const std::string node_name = cms::xerces::toString(node->getNodeName());
144 
145  // check node type
146  unsigned char nodeType = 0;
147  if (node_name == "iov")
148  nodeType = 1;
149  else if (node_name == "det")
150  nodeType = 2;
151  else if (node_name == "rp")
152  nodeType = 3;
153 
154  if (nodeType == 0)
155  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods") << "Unknown node `" << node_name << "'.";
156 
157  // for backward compatibility: support files with no iov block
158  if (nodeType == 2 || nodeType == 3) {
160  output.insert(iov, getCorrectionsData(elementRoot));
161  break;
162  }
163 
164  // get attributes
166  bool first_set = false, last_set = false;
167  DOMNamedNodeMap* attrs = node->getAttributes();
168  for (unsigned int j = 0; j < attrs->getLength(); j++) {
169  const DOMNode* attr = attrs->item(j);
170  const std::string attr_name = cms::xerces::toString(attr->getNodeName());
171 
172  if (attr_name == "first") {
173  first_set = true;
174  first = stringToIOVValue(cms::xerces::toString(attr->getNodeValue()));
175  } else if (attr_name == "last") {
176  last_set = true;
177  last = stringToIOVValue(cms::xerces::toString(attr->getNodeValue()));
178  } else
179  edm::LogProblem("CTPPSRPAlignmentCorrectionsMethods")
180  << ">> CTPPSRPAlignmentCorrectionsDataSequence::loadFromXML > Warning: unknown attribute `" << attr_name
181  << "'.";
182  }
183 
184  // interval of validity must be set
185  if (!first_set || !last_set)
186  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods")
187  << "iov tag must have `first' and `last' attributes set.";
188 
189  // process data
191 
192  // save result
193  output.insert(edm::ValidityInterval(first, last), corrections);
194  }
195 
196  // clean up
197  parser.reset();
198  XMLPlatformUtils::Terminate();
199 
200  return output;

References edm::IOVSyncValue::beginOfTime(), class-composition::children, edm::IOVSyncValue::endOfTime(), Exception, MillePedeFileConverter_cfg::fileName, first, getCorrectionsData(), mps_fire::i, dqmiolumiharvest::j, dqmdumpme::last, convertSQLitetoXML_cfg::output, writedatasetfile::parser, AlCaHLTBitMon_QueryRunRegistry::string, stringToIOVValue(), and cms::xerces::toString().

Referenced by PPSModifySingularModes::beginRun(), and CTPPSRPAlignmentCorrectionsDataESSourceXMLCommon::PrepareSequence().

◆ stringToIOVValue()

edm::IOVSyncValue CTPPSRPAlignmentCorrectionsMethods::stringToIOVValue ( const std::string &  str)
static

STRUCTURE OF CTPPS ALINGMENT XML FILE The file has the following structure <xml> <iov first="run:ls" last="run:ls"> <tag> <tag> ... </iov> <iov first="run:ls" last="run:ls"> ... </iov></xml> The time intervals are specified by the ‘first’ and ‘last’ run-lumisection pairs. If the <iov> tag is not present, an infinite validty is assumed for all the tags. The tag can be either "det" - the alignment correction is applied to one detector or "rp" - the alignment correction id applied to one RP Each tag must have an "id" attribute set. In addition the following attributes are recognized: sh_x - shift in x sh_x_e - the uncertainty of sh_x determination sh_y - shift in y sh_y_e - the uncertainty of sh_y determination sh_z - shift in z sh_z_e - the uncertainty of sh_z determination rot_x - rotation around x rot_x_e - the uncertainty of rot_x determination rot_y - rotation around y rot_y_e - the uncertainty of rot_y determination rot_z - rotation around z rot_z_e - the uncertainty of rot_z determination UNITS: shifts are in um, rotations are in mrad.

Definition at line 74 of file CTPPSRPAlignmentCorrectionsMethods.cc.

75  {
76  if (str == "-inf")
78 
79  if (str == "+inf")
81 
82  size_t sep_pos = str.find(':');
83  const std::string& runStr = str.substr(0, sep_pos);
84  const std::string& lsStr = str.substr(sep_pos + 1);
85 
86  return edm::IOVSyncValue(edm::EventID(atoi(runStr.c_str()), atoi(lsStr.c_str()), 1));

References edm::IOVSyncValue::beginOfTime(), edm::IOVSyncValue::endOfTime(), str, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by loadFromXML().

◆ writeToXML() [1/2]

static void CTPPSRPAlignmentCorrectionsMethods::writeToXML ( const CTPPSRPAlignmentCorrectionsData ad,
const std::string &  fileName,
bool  precise = false,
bool  wrErrors = true,
bool  wrSh_xy = true,
bool  wrSh_z = false,
bool  wrRot_xy = false,
bool  wrRot_z = true 
)
inlinestatic

writes alignment corrections into a single XML file, assigning infinite interval of validity

Definition at line 46 of file CTPPSRPAlignmentCorrectionsMethods.h.

47  {
50  s.insert(iov, ad);
51  writeToXML(s, fileName, precise, wrErrors, wrSh_xy, wrSh_z, wrRot_xy, wrRot_z);
52  }
53 
55 
57 
58 protected:

References edm::IOVSyncValue::beginOfTime(), edm::IOVSyncValue::endOfTime(), MillePedeFileConverter_cfg::fileName, hltPixelTracks_cff::precise, alignCSCRings::s, and writeToXML().

◆ writeToXML() [2/2]

void CTPPSRPAlignmentCorrectionsMethods::writeToXML ( const CTPPSRPAlignmentCorrectionsDataSequence seq,
const std::string &  fileName,
bool  precise = false,
bool  wrErrors = true,
bool  wrSh_xy = true,
bool  wrSh_z = false,
bool  wrRot_xy = false,
bool  wrRot_z = true 
)
static

writes sequence of alignment corrections into a single XML file

Definition at line 310 of file CTPPSRPAlignmentCorrectionsMethods.cc.

318  {
319  FILE* rf = fopen(fileName.c_str(), "w");
320  if (!rf)
321  throw cms::Exception("CTPPSRPAlignmentCorrectionsMethods")
322  << "Cannot open file `" << fileName << "' to save alignments.";
323 
324  fprintf(rf, "<!-- Shifts in um, rotations in mrad. -->\n");
325  fprintf(rf, "<xml DocumentType=\"AlignmentDescription\">\n");
326 
327  // write all IOVs
328  for (const auto& p : data) {
329  fprintf(rf,
330  "\t<iov first=\"%s\" last=\"%s\">\n",
331  iovValueToString(p.first.first()).c_str(),
332  iovValueToString(p.first.last()).c_str());
333 
334  writeXMLBlock(p.second, rf, precise, wrErrors, wrSh_xy, wrSh_z, wrRot_xy, wrRot_z);
335 
336  fprintf(rf, "\t</iov>\n");
337  }
338 
339  fprintf(rf, "</xml>\n");
340  fclose(rf);

References data, Exception, MillePedeFileConverter_cfg::fileName, iovValueToString(), AlCaHLTBitMon_ParallelJobs::p, hltPixelTracks_cff::precise, hcal_runs::rf, and writeXMLBlock().

Referenced by PPSModifySingularModes::beginRun(), StraightTrackAlignment::finish(), and writeToXML().

◆ writeXML()

void CTPPSRPAlignmentCorrectionsMethods::writeXML ( const CTPPSRPAlignmentCorrectionData data,
FILE *  f,
bool  precise,
bool  wrErrors,
bool  wrSh_xy,
bool  wrSh_z,
bool  wrRot_xy,
bool  wrRot_z 
)
staticprotected

writes data of a correction in XML format

Definition at line 428 of file CTPPSRPAlignmentCorrectionsMethods.cc.

436  {
437  if (wrSh_xy) {
438  WRITE(data.getShX(), "sh_x", 2, 0.1);
439  WRITE(data.getShY(), "sh_y", 2, 0.1);
440  if (wrErrors) {
441  WRITE(data.getShXUnc(), "sh_x_e", 2, 0.1);
442  WRITE(data.getShYUnc(), "sh_y_e", 2, 0.1);
443  }
444  }
445 
446  if (wrSh_z) {
447  WRITE(data.getShZ(), "sh_z", 2, 0.1);
448  if (wrErrors) {
449  WRITE(data.getShZUnc(), "sh_z_e", 2, 0.1);
450  }
451  }
452 
453  if (wrRot_xy) {
454  WRITE(data.getRotX(), "rot_x", 3, 0.01);
455  WRITE(data.getRotY(), "rot_y", 3, 0.01);
456  if (wrErrors) {
457  WRITE(data.getRotXUnc(), "rot_x_e", 3, 0.01);
458  WRITE(data.getRotYUnc(), "rot_y_e", 3, 0.01);
459  }
460  }
461 
462  if (wrRot_z) {
463  WRITE(data.getRotZ(), "rot_z", 3, 0.01);
464  if (wrErrors) {
465  WRITE(data.getRotZUnc(), "rot_z_e", 3, 0.01);
466  }
467  }

References data, and WRITE.

Referenced by writeXMLBlock().

◆ writeXMLBlock()

void CTPPSRPAlignmentCorrectionsMethods::writeXMLBlock ( const CTPPSRPAlignmentCorrectionsData data,
FILE *  rf,
bool  precise = false,
bool  wrErrors = true,
bool  wrSh_xy = true,
bool  wrSh_z = false,
bool  wrRot_xy = false,
bool  wrRot_z = true 
)
staticprotected

writes a block of corrections into a file

Definition at line 342 of file CTPPSRPAlignmentCorrectionsMethods.cc.

350  {
351  bool firstRP = true;
352  unsigned int prevRP = 0;
353  std::set<unsigned int> writtenRPs;
354 
355  const auto& sensors = data.getSensorMap();
356  const auto& rps = data.getRPMap();
357 
358  for (auto it = sensors.begin(); it != sensors.end(); ++it) {
359  CTPPSDetId sensorId(it->first);
360  unsigned int rpId = sensorId.rpId();
361  unsigned int decRPId = sensorId.arm() * 100 + sensorId.station() * 10 + sensorId.rp();
362 
363  // start a RP block
364  if (firstRP || prevRP != rpId) {
365  if (!firstRP)
366  fprintf(rf, "\n");
367  firstRP = false;
368 
369  fprintf(rf, "\t<!-- RP %3u -->\n", decRPId);
370 
371  auto rit = rps.find(rpId);
372  if (rit != rps.end()) {
373  fprintf(rf, "\t<rp id=\"%u\" ", rit->first);
374  writeXML(rit->second, rf, precise, wrErrors, wrSh_xy, wrSh_z, wrRot_xy, wrRot_z);
375  fprintf(rf, "/>\n");
376  writtenRPs.insert(rpId);
377  }
378  }
379  prevRP = rpId;
380 
381  // write plane id
382  unsigned int planeIdx = 1000;
383  if (sensorId.subdetId() == CTPPSDetId::sdTrackingStrip)
384  planeIdx = TotemRPDetId(it->first).plane();
385  if (sensorId.subdetId() == CTPPSDetId::sdTrackingPixel)
386  planeIdx = CTPPSPixelDetId(it->first).plane();
387  if (sensorId.subdetId() == CTPPSDetId::sdTimingDiamond)
388  planeIdx = CTPPSDiamondDetId(it->first).plane();
389  fprintf(rf, "\t<!-- plane %u --> ", planeIdx);
390 
391  // write the correction
392  fprintf(rf, "<det id=\"%u\"", it->first);
393  writeXML(it->second, rf, precise, wrErrors, wrSh_xy, wrSh_z, wrRot_xy, wrRot_z);
394  fprintf(rf, "/>\n");
395  }
396 
397  // write remaining RPs
398  for (auto it = rps.begin(); it != rps.end(); ++it) {
399  std::set<unsigned int>::iterator wit = writtenRPs.find(it->first);
400  if (wit == writtenRPs.end()) {
401  CTPPSDetId rpId(it->first);
402  unsigned int decRPId = rpId.arm() * 100 + rpId.station() * 10 + rpId.rp();
403 
404  if (!firstRP)
405  fprintf(rf, "\n");
406  firstRP = false;
407 
408  fprintf(rf, "\t<!-- RP %3u -->\n", decRPId);
409 
410  fprintf(rf, "\t<rp id=\"%u\" ", it->first);
411  writeXML(it->second, rf, precise, wrErrors, wrSh_xy, wrSh_z, wrRot_xy, wrRot_z);
412  fprintf(rf, "/>\n");
413  }
414  }

References CTPPSDetId::arm(), data, protons_cff::decRPId, CTPPSPixelDetId::plane(), CTPPSDiamondDetId::plane(), TotemRPDetId::plane(), hltPixelTracks_cff::precise, hcal_runs::rf, CTPPSDetId::rp(), profile_2016_postTS2_cff::rpId, CTPPSDetId::rpId(), CTPPSDetId::sdTimingDiamond, CTPPSDetId::sdTrackingPixel, CTPPSDetId::sdTrackingStrip, CTPPSDetId::station(), DetId::subdetId(), and writeXML().

Referenced by writeToXML().

CTPPSRPAlignmentCorrectionsMethods::iovValueToString
static std::string iovValueToString(const edm::IOVSyncValue &)
Definition: CTPPSRPAlignmentCorrectionsMethods.cc:90
mps_fire.i
i
Definition: mps_fire.py:428
hltPixelTracks_cff.precise
precise
Definition: hltPixelTracks_cff.py:32
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
class-composition.children
children
Definition: class-composition.py:88
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
edm::ValidityInterval
Definition: ValidityInterval.h:28
writedatasetfile.parser
parser
Definition: writedatasetfile.py:7
TotemRPDetId::plane
uint32_t plane() const
Definition: TotemRPDetId.h:51
MillePedeFileConverter_cfg.fileName
fileName
Definition: MillePedeFileConverter_cfg.py:32
CTPPSDetId::sdTrackingStrip
Definition: CTPPSDetId.h:44
alignCSCRings.s
s
Definition: alignCSCRings.py:92
dqmdumpme.last
last
Definition: dqmdumpme.py:56
cms::xerces::toString
std::string toString(XMLCh const *toTranscode)
Definition: XercesStrUtils.h:34
CTPPSDiamondDetId::plane
uint32_t plane() const
Definition: CTPPSDiamondDetId.h:46
cms::xerces::toDouble
double toDouble(XMLCh const *toTranscode)
Definition: XercesStrUtils.h:50
edm::LogProblem
Log< level::Error, true > LogProblem
Definition: MessageLogger.h:131
CTPPSRPAlignmentCorrectionsMethods::writeXMLBlock
static void writeXMLBlock(const CTPPSRPAlignmentCorrectionsData &, FILE *, bool precise=false, bool wrErrors=true, bool wrSh_xy=true, bool wrSh_z=false, bool wrRot_xy=false, bool wrRot_z=true)
writes a block of corrections into a file
Definition: CTPPSRPAlignmentCorrectionsMethods.cc:342
str
#define str(s)
Definition: TestProcessor.cc:52
CTPPSDetId::sdTimingDiamond
Definition: CTPPSDetId.h:44
CTPPSRPAlignmentCorrectionsMethods::writeToXML
static void writeToXML(const CTPPSRPAlignmentCorrectionsDataSequence &seq, const std::string &fileName, bool precise=false, bool wrErrors=true, bool wrSh_xy=true, bool wrSh_z=false, bool wrRot_xy=false, bool wrRot_z=true)
writes sequence of alignment corrections into a single XML file
Definition: CTPPSRPAlignmentCorrectionsMethods.cc:310
CTPPSDetId::sdTrackingPixel
Definition: CTPPSDetId.h:44
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:112
edm::IOVSyncValue
Definition: IOVSyncValue.h:31
CTPPSRPAlignmentCorrectionsMethods::getCorrectionsData
static CTPPSRPAlignmentCorrectionsData getCorrectionsData(xercesc::DOMNode *)
load corrections data corresponding to one IOV
Definition: CTPPSRPAlignmentCorrectionsMethods.cc:204
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
WRITE
#define WRITE(q, tag, dig, lim)
Definition: CTPPSRPAlignmentCorrectionsMethods.cc:418
CTPPSDiamondDetId
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
Definition: CTPPSDiamondDetId.h:24
CTPPSRPAlignmentCorrectionsMethods::stringToIOVValue
static edm::IOVSyncValue stringToIOVValue(const std::string &)
Definition: CTPPSRPAlignmentCorrectionsMethods.cc:74
a
double a
Definition: hdecay.h:119
edm::IOVSyncValue::endOfTime
static const IOVSyncValue & endOfTime()
Definition: IOVSyncValue.cc:82
CTPPSRPAlignmentCorrectionsMethods::writeXML
static void writeXML(const CTPPSRPAlignmentCorrectionData &data, FILE *f, bool precise, bool wrErrors, bool wrSh_xy, bool wrSh_z, bool wrRot_xy, bool wrRot_z)
writes data of a correction in XML format
Definition: CTPPSRPAlignmentCorrectionsMethods.cc:428
CTPPSDetId
Base class for CTPPS detector IDs.
Definition: CTPPSDetId.h:31
root
Definition: RooFitFunction.h:10
cms::xerces::toUInt
unsigned int toUInt(XMLCh const *toTranscode)
Definition: XercesStrUtils.h:36
CTPPSPixelDetId::plane
uint32_t plane() const
Definition: CTPPSPixelDetId.h:37
CTPPSPixelDetId
Definition: CTPPSPixelDetId.h:16
hcal_runs.rf
rf
Definition: hcal_runs.py:75
visDQMUpload.buf
buf
Definition: visDQMUpload.py:154
profile_2016_postTS2_cff.rpId
rpId
Definition: profile_2016_postTS2_cff.py:21
heppy_batch.val
val
Definition: heppy_batch.py:351
Exception
Definition: hltDiff.cc:245
protons_cff.decRPId
decRPId
Definition: protons_cff.py:60
CTPPSRPAlignmentCorrectionsData
Container for CTPPS RP alignment corrections. The corrections are stored on two levels - RP and senso...
Definition: CTPPSRPAlignmentCorrectionsData.h:24
edm::IOVSyncValue::beginOfTime
static const IOVSyncValue & beginOfTime()
Definition: IOVSyncValue.cc:88
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
mps_fire.result
result
Definition: mps_fire.py:311
CTPPSRPAlignmentCorrectionData
Alignment correction for an element of the CT-PPS detector. Within the geometry description,...
Definition: CTPPSRPAlignmentCorrectionData.h:58
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::EventID
Definition: EventID.h:31
TotemRPDetId
Detector ID class for TOTEM Si strip detectors.
Definition: TotemRPDetId.h:29
CTPPSRPAlignmentCorrectionsDataSequence
Time sequence of alignment corrections. I/O methods have been factored out to: CondFormats/PPSObjects...
Definition: CTPPSRPAlignmentCorrectionsDataSequence.h:22
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37