CMS 3D CMS Logo

CTPPSPixelDAQMappingESSourceXML.cc
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  *
4  * Authors:
5  * F.Ferro ferro@ge.infn.it
6  * H. Malbouisson malbouis@cern.ch
7  *
8  ****************************************************************************/
9 
21 
23 
30 
31 #include <xercesc/parsers/XercesDOMParser.hpp>
32 #include <xercesc/dom/DOM.hpp>
33 #include <xercesc/sax/HandlerBase.hpp>
34 #include <xercesc/util/XMLString.hpp>
35 #include <xercesc/util/PlatformUtils.hpp>
36 
37 #include <memory>
38 #include <sstream>
39 
40 //#define DEBUG 1
41 
42 //----------------------------------------------------------------------------------------------------
43 
44 using namespace std;
45 
50 public:
52  static const std::string tagRPixPlane;
53  static const std::string tagROC;
54  static const std::string tagPixel;
56  static const std::string tagArm;
57 
59  static const std::string tagRPStation;
60  static const std::string tagRPPot;
61 
64 
65  std::unique_ptr<CTPPSPixelAnalysisMask> produceCTPPSPixelAnalysisMask(const CTPPSPixelAnalysisMaskRcd &);
66  std::unique_ptr<CTPPSPixelDAQMapping> produceCTPPSPixelDAQMapping(const CTPPSPixelDAQMappingRcd &);
67 
68 private:
69  unsigned int verbosity;
70 
72  string subSystemName;
73 
75  std::vector<std::string> mappingFileNames;
76 
77  struct ConfigBlock {
80 
82  std::vector<std::string> mappingFileNames;
83 
85  std::vector<std::string> maskFileNames;
86  };
87 
88  vector<ConfigBlock> configuration;
89 
91  unsigned int currentBlock;
92 
95 
97  enum NodeType { nUnknown, nSkip, nTop, nArm, nRPStation, nRPPot, nRPixPlane, nROC, nPixel };
98 
100  enum ParseType { pMapping, pMask };
101 
103  void ParseXML(ParseType,
104  const string &file,
105  const std::unique_ptr<CTPPSPixelDAQMapping> &,
106  const std::unique_ptr<CTPPSPixelAnalysisMask> &);
107 
109  void ParseTreePixel(ParseType,
110  xercesc::DOMNode *,
111  NodeType,
112  unsigned int parentID,
113  const std::unique_ptr<CTPPSPixelDAQMapping> &,
114  const std::unique_ptr<CTPPSPixelAnalysisMask> &);
115 
116 private:
118  string CompleteFileName(const string &fn);
119 
121  bool Test(xercesc::DOMNode *node, const std::string &name) {
122  return !(name.compare(cms::xerces::toString(node->getNodeName())));
123  }
124 
126  NodeType GetNodeType(xercesc::DOMNode *);
127 
129  string GetNodeContent(xercesc::DOMNode *parent) { return cms::xerces::toString(parent->getTextContent()); }
130 
132  string GetNodeValue(xercesc::DOMNode *node) { return cms::xerces::toString(node->getNodeValue()); }
133 
135  CTPPSPixelFramePosition ChipFramePosition(xercesc::DOMNode *chipnode);
136 
137  void GetPixels(xercesc::DOMNode *n, std::set<std::pair<unsigned char, unsigned char>> &pixels);
138 
140  return ((type == nArm) || (type == nRPStation) || (type == nRPPot) || (type == nRPixPlane) || (type == nROC));
141  }
142 
143 protected:
145  void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &,
146  const edm::IOVSyncValue &,
147  edm::ValidityInterval &) override;
148 };
149 
150 //----------------------------------------------------------------------------------------------------
151 
152 using namespace std;
153 using namespace edm;
154 using namespace xercesc;
155 
156 const string CTPPSPixelDAQMappingESSourceXML::tagROC = "roc";
157 const string CTPPSPixelDAQMappingESSourceXML::tagPixel = "pixel";
158 const string CTPPSPixelDAQMappingESSourceXML::tagAnalysisMask = "analysisMask";
159 
160 // common XML position tags
161 const string CTPPSPixelDAQMappingESSourceXML::tagArm = "arm";
162 
163 // specific RP XML tags
164 const string CTPPSPixelDAQMappingESSourceXML::tagRPStation = "station";
165 const string CTPPSPixelDAQMappingESSourceXML::tagRPPot = "rp_detector_set";
166 const string CTPPSPixelDAQMappingESSourceXML::tagRPixPlane = "rpix_plane";
167 
168 static const unsigned int offsetROCinDetId = 13;
169 //static const unsigned int maskROCinDetId = 0x3;
170 
172  : verbosity(conf.getUntrackedParameter<unsigned int>("verbosity", 0)),
173  subSystemName(conf.getUntrackedParameter<string>("subSystem")),
174  currentBlock(0),
175  currentBlockValid(false) {
176  for (const auto &it : conf.getParameter<vector<ParameterSet>>("configuration")) {
177  ConfigBlock b;
178  b.validityRange = it.getParameter<EventRange>("validityRange");
179  b.mappingFileNames = it.getParameter<vector<string>>("mappingFileNames");
180  b.maskFileNames = it.getParameter<vector<string>>("maskFileNames");
181  configuration.push_back(b);
182  }
183 
185  findingRecord<CTPPSPixelAnalysisMaskRcd>();
186 
188  findingRecord<CTPPSPixelDAQMappingRcd>();
189 
190  LogVerbatim("CTPPSPixelDAQMappingESSourceXML") << " Inside CTPPSPixelDAQMappingESSourceXML";
191 }
192 
194  const edm::IOVSyncValue &iosv,
195  edm::ValidityInterval &oValidity) {
196  LogVerbatim("CTPPSPixelDAQMappingESSourceXML")
197  << ">> CTPPSPixelDAQMappingESSourceXML::setIntervalFor(" << key.name() << ")";
198 
199  LogVerbatim("CTPPSPixelDAQMappingESSourceXML")
200  << " run=" << iosv.eventID().run() << ", event=" << iosv.eventID().event();
201 
202  currentBlockValid = false;
203  for (unsigned int idx = 0; idx < configuration.size(); ++idx) {
204  const auto &bl = configuration[idx];
205 
206  EventID startEventID = bl.validityRange.startEventID();
207  if (startEventID == EventID(1, 0, 1))
208  startEventID = EventID(1, 0, 0);
209 
210  if (startEventID <= iosv.eventID() && iosv.eventID() <= bl.validityRange.endEventID()) {
211  currentBlockValid = true;
212  currentBlock = idx;
213 
214  const IOVSyncValue begin(startEventID);
215  const IOVSyncValue end(bl.validityRange.endEventID());
216  oValidity = ValidityInterval(begin, end);
217 
218  LogVerbatim("CTPPSPixelDAQMappingESSourceXML") << " block found: index=" << currentBlock << ", interval=("
219  << startEventID << " - " << bl.validityRange.endEventID() << ")";
220 
221  return;
222  }
223  }
224 
225  if (!currentBlockValid) {
226  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML::setIntervalFor")
227  << "No configuration for event " << iosv.eventID();
228  }
229 }
230 
232 
234  FileInPath fip(fn);
235  return fip.fullPath();
236 }
237 
239  const CTPPSPixelDAQMappingRcd &) {
241 
242  auto mapping = std::make_unique<CTPPSPixelDAQMapping>();
243  auto mask = std::make_unique<CTPPSPixelAnalysisMask>();
244 
245  // initialize Xerces
246 
248 
249  // load mapping files
250  for (const auto &fn : configuration[currentBlock].mappingFileNames)
252 
253  // load mask files
254  for (const auto &fn : configuration[currentBlock].maskFileNames)
256 
257  // release Xerces
259 
260  // commit the product
261  return mapping;
262 }
263 
265  const CTPPSPixelAnalysisMaskRcd &) {
267 
268  auto mapping = std::make_unique<CTPPSPixelDAQMapping>();
269  auto mask = std::make_unique<CTPPSPixelAnalysisMask>();
270 
271  // initialize Xerces
272 
274 
275  // load mapping files
276  for (const auto &fn : configuration[currentBlock].mappingFileNames)
278 
279  // load mask files
280  for (const auto &fn : configuration[currentBlock].maskFileNames)
282 
283  // release Xerces
285 
286  // commit the products
287  //return edm::es::products(mapping, mask);
288  return mask;
289 }
290 
291 //----------------------------------------------------------------------------------------------------
292 
294  const string &file,
295  const std::unique_ptr<CTPPSPixelDAQMapping> &mapping,
296  const std::unique_ptr<CTPPSPixelAnalysisMask> &mask) {
297  unique_ptr<XercesDOMParser> parser(new XercesDOMParser());
298  parser->parse(file.c_str());
299 
300  DOMDocument *domDoc = parser->getDocument();
301 
302  if (!domDoc)
303  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML::ParseXML")
304  << "Cannot parse file `" << file << "' (domDoc = NULL)." << endl;
305 
306  DOMElement *elementRoot = domDoc->getDocumentElement();
307 
308  if (!elementRoot)
309  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML::ParseXML") << "File `" << file << "' is empty." << endl;
310 
311  ParseTreePixel(pType, elementRoot, nTop, 0, mapping, mask);
312 }
313 
314 //-----------------------------------------------------------------------------------------------------------
315 
317  xercesc::DOMNode *parent,
318  NodeType parentType,
319  unsigned int parentID,
320  const std::unique_ptr<CTPPSPixelDAQMapping> &mapping,
321  const std::unique_ptr<CTPPSPixelAnalysisMask> &mask) {
322 #ifdef DEBUG
323  printf(">> CTPPSPixelDAQMappingESSourceXML::ParseTreeRP(%s, %u, %u)\n",
324  cms::xerces::toString(parent->getNodeName()),
325  parentType,
326  parentID);
327 #endif
328 
329  DOMNodeList *children = parent->getChildNodes();
330 
331  for (unsigned int i = 0; i < children->getLength(); i++) {
332  DOMNode *n = children->item(i);
333  if (n->getNodeType() != DOMNode::ELEMENT_NODE)
334  continue;
335 
337 
338 #ifdef DEBUG
339  printf("\tname = %s, type = %u\n", cms::xerces::toString(n->getNodeName()), type);
340 #endif
341 
342  // structure control
343  if (!PixelNode(type))
344  continue;
345 
346  NodeType expectedParentType;
347  switch (type) {
348  case nArm:
349  expectedParentType = nTop;
350  break;
351  case nRPStation:
352  expectedParentType = nArm;
353  break;
354  case nRPPot:
355  expectedParentType = nRPStation;
356  break;
357  case nRPixPlane:
358  expectedParentType = nRPPot;
359  break;
360  case nROC:
361  expectedParentType = nRPixPlane;
362  break;
363  case nPixel:
364  expectedParentType = nROC;
365  break;
366  default:
367  expectedParentType = nUnknown;
368  break;
369  }
370 
371  if (expectedParentType != parentType) {
372  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML")
373  << "Node " << cms::xerces::toString(n->getNodeName()) << " not allowed within "
374  << cms::xerces::toString(parent->getNodeName()) << " block.\n";
375  }
376 
377  // parse tag attributes
378  unsigned int id = 0;
379  bool id_set = false;
380  bool fullMask = false;
381  DOMNamedNodeMap *attr = n->getAttributes();
382 
383  for (unsigned int j = 0; j < attr->getLength(); j++) {
384  DOMNode *a = attr->item(j);
385 
386  if (!strcmp(cms::xerces::toString(a->getNodeName()).c_str(), "id")) {
387  sscanf(cms::xerces::toString(a->getNodeValue()).c_str(), "%u", &id);
388  id_set = true;
389  }
390 
391  if (!strcmp(cms::xerces::toString(a->getNodeName()).c_str(), "full_mask"))
392  fullMask = (strcmp(cms::xerces::toString(a->getNodeValue()).c_str(), "no") != 0);
393  }
394 
395  // content control
396  if (!id_set)
397  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML::ParseTreePixel")
398  << "id not given for element `" << cms::xerces::toString(n->getNodeName()) << "'" << endl;
399 
400  if (type == nRPixPlane && id > 5)
401  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML::ParseTreePixel")
402  << "Plane IDs range from 0 to 5. id = " << id << " is invalid." << endl;
403 
404 #ifdef DEBUG
405  printf("\tID found: %u\n", id);
406 #endif
407 
408  // store mapping data
409  if (pType == pMapping && type == nROC) {
410  const CTPPSPixelFramePosition &framepos = ChipFramePosition(n);
411  CTPPSPixelROCInfo rocInfo;
412  rocInfo.roc = id;
413 
414  const unsigned int armIdx = (parentID / 1000) % 10;
415  const unsigned int stIdx = (parentID / 100) % 10;
416  const unsigned int rpIdx = (parentID / 10) % 10;
417  const unsigned int plIdx = parentID % 10;
418 
419  rocInfo.iD = CTPPSPixelDetId(armIdx, stIdx, rpIdx, plIdx);
420 
421  mapping->insert(framepos, rocInfo);
422 
423  continue;
424  }
425 
426  // store mask data
427  if (pType == pMask && type == nROC) {
428  const unsigned int armIdx = (parentID / 1000) % 10;
429  const unsigned int stIdx = (parentID / 100) % 10;
430  const unsigned int rpIdx = (parentID / 10) % 10;
431  const unsigned int plIdx = parentID % 10;
432 
433  uint32_t symbId = (id << offsetROCinDetId);
434 
435  symbId |= CTPPSPixelDetId(armIdx, stIdx, rpIdx, plIdx);
436 
438  am.fullMask = fullMask;
439  GetPixels(n, am.maskedPixels);
440 
441  mask->insert(symbId, am);
442 
443  continue;
444  }
445 
446  // recursion (deeper in the tree)
447  ParseTreePixel(pType, n, type, parentID * 10 + id, mapping, mask);
448  }
449 }
450 
451 //----------------------------------------------------------------------------------------------------
452 
455  unsigned char attributeFlag = 0;
456 
457  DOMNamedNodeMap *attr = chipnode->getAttributes();
458  for (unsigned int j = 0; j < attr->getLength(); j++) {
459  DOMNode *a = attr->item(j);
460 
461  if (fp.setXMLAttribute(
462  cms::xerces::toString(a->getNodeName()), cms::xerces::toString(a->getNodeValue()), attributeFlag) > 1) {
463  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML")
464  << "Unrecognized tag `" << cms::xerces::toString(a->getNodeName()) << "' or incompatible value `"
465  << cms::xerces::toString(a->getNodeValue()) << "'." << endl;
466  }
467  }
468 
469  if (!fp.checkXMLAttributeFlag(attributeFlag)) {
470  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML")
471  << "Wrong/incomplete DAQ channel specification (attributeFlag = " << attributeFlag << ")." << endl;
472  }
473 
474  return fp;
475 }
476 
477 //----------------------------------------------------------------------------------------------------
478 
480  // common node types
481  if (Test(n, tagArm))
482  return nArm;
483  if (Test(n, tagROC))
484  return nROC;
485 
486  // RP node types
487  if (Test(n, tagRPStation))
488  return nRPStation;
489  if (Test(n, tagRPPot))
490  return nRPPot;
491  if (Test(n, tagRPixPlane))
492  return nRPixPlane;
493 
494  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML::GetNodeType")
495  << "Unknown tag `" << cms::xerces::toString(n->getNodeName()) << "'.\n";
496 }
497 
498 //----------------------------------------------------------------------------------------------------
499 
501  set<std::pair<unsigned char, unsigned char>> &pixels) {
502  DOMNodeList *children = n->getChildNodes();
503  for (unsigned int i = 0; i < children->getLength(); i++) {
504  DOMNode *n = children->item(i);
505  if (n->getNodeType() != DOMNode::ELEMENT_NODE || !Test(n, "pixel"))
506  continue;
507 
508  DOMNamedNodeMap *attr = n->getAttributes();
509  bool pixelSet = false;
510  bool rowSet = false;
511  bool colSet = false;
512  std::pair<unsigned int, unsigned int> currentPixel;
513  for (unsigned int j = 0; j < attr->getLength(); j++) {
514  DOMNode *a = attr->item(j);
515 
516  if (!strcmp(cms::xerces::toString(a->getNodeName()).c_str(), "row")) {
517  unsigned int row = 0;
518  sscanf(cms::xerces::toString(a->getNodeValue()).c_str(), "%u", &row);
519  currentPixel.first = row;
520  rowSet = true;
521  }
522  if (!strcmp(cms::xerces::toString(a->getNodeName()).c_str(), "col")) {
523  unsigned int col = 0;
524  sscanf(cms::xerces::toString(a->getNodeValue()).c_str(), "%u", &col);
525  currentPixel.second = col;
526  colSet = true;
527  }
528 
529  pixelSet = rowSet & colSet;
530  if (pixelSet) {
531  pixels.insert(currentPixel);
532  break;
533  }
534  }
535 
536  if (!pixelSet) {
537  throw cms::Exception("CTPPSPixelDAQMappingESSourceXML::GetChannels")
538  << "Channel tags must have a row or col attribute.";
539  }
540  }
541 }
542 
543 //----------------------------------------------------------------------------------------------------
544 
CTPPSPixelDAQMappingESSourceXML::tagRPStation
static const std::string tagRPStation
RP XML tags.
Definition: CTPPSPixelDAQMappingESSourceXML.cc:59
HIPAlignmentAlgorithm_cfi.verbosity
verbosity
Definition: HIPAlignmentAlgorithm_cfi.py:7
XercesStrUtils.h
CTPPSPixelDAQMappingESSourceXML::nPixel
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
CTPPSPixelAnalysisMaskRcd.h
mps_fire.i
i
Definition: mps_fire.py:428
CTPPSPixelDAQMappingESSourceXML::GetPixels
void GetPixels(xercesc::DOMNode *n, std::set< std::pair< unsigned char, unsigned char >> &pixels)
Definition: CTPPSPixelDAQMappingESSourceXML.cc:500
CTPPSPixelDAQMappingESSourceXML::configuration
vector< ConfigBlock > configuration
Definition: CTPPSPixelDAQMappingESSourceXML.cc:88
CTPPSPixelDAQMappingESSourceXML::mappingFileNames
std::vector< std::string > mappingFileNames
the mapping files
Definition: CTPPSPixelDAQMappingESSourceXML.cc:75
MessageLogger.h
funct::false
false
Definition: Factorize.h:29
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
CTPPSPixelDAQMappingRcd.h
CTPPSPixelDAQMappingESSourceXML::nRPixPlane
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
CTPPSPixelDAQMappingESSourceXML::NodeType
NodeType
enumeration of XML node types
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
ESHandle.h
CTPPSPixelDAQMappingESSourceXML::GetNodeType
NodeType GetNodeType(xercesc::DOMNode *)
determines node type
Definition: CTPPSPixelDAQMappingESSourceXML.cc:479
edm
HLT enums.
Definition: AlignableModifier.h:19
class-composition.children
children
Definition: class-composition.py:88
CTPPSPixelDAQMappingESSourceXML::GetNodeContent
string GetNodeContent(xercesc::DOMNode *parent)
returns the content of the node
Definition: CTPPSPixelDAQMappingESSourceXML.cc:129
cuy.col
col
Definition: cuy.py:1010
CTPPSPixelDetId.h
edm::ESProducer::setWhatProduced
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163
edm::ValidityInterval
Definition: ValidityInterval.h:28
CTPPSPixelFramePosition.h
ESProducer.h
CTPPSPixelFramePosition
Definition: CTPPSPixelFramePosition.h:27
cms::cuda::assert
assert(be >=bs)
CTPPSPixelDAQMappingESSourceXML::pMask
Definition: CTPPSPixelDAQMappingESSourceXML.cc:100
CTPPSPixelROCInfo::iD
uint32_t iD
the symbolic id
Definition: CTPPSPixelDAQMapping.h:31
CTPPSPixelDAQMappingESSourceXML::GetNodeValue
string GetNodeValue(xercesc::DOMNode *node)
returns the value of the node
Definition: CTPPSPixelDAQMappingESSourceXML.cc:132
writedatasetfile.parser
parser
Definition: writedatasetfile.py:7
personalPlayback.fp
fp
Definition: personalPlayback.py:523
CTPPSPixelDAQMappingESSourceXML::nTop
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
CTPPSPixelDAQMappingESSourceXML::pMapping
Definition: CTPPSPixelDAQMappingESSourceXML.cc:100
edm::EventSetupRecordIntervalFinder
Definition: EventSetupRecordIntervalFinder.h:33
CTPPSPixelDAQMappingESSourceXML::ParseXML
void ParseXML(ParseType, const string &file, const std::unique_ptr< CTPPSPixelDAQMapping > &, const std::unique_ptr< CTPPSPixelAnalysisMask > &)
parses XML file
Definition: CTPPSPixelDAQMappingESSourceXML.cc:293
CTPPSPixelDAQMappingESSourceXML::nRPStation
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
edm::eventsetup::EventSetupRecordKey
Definition: EventSetupRecordKey.h:30
CTPPSPixelDAQMappingESSourceXML::Test
bool Test(xercesc::DOMNode *node, const std::string &name)
returns true iff the node is of the given name
Definition: CTPPSPixelDAQMappingESSourceXML.cc:121
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
edm::FileInPath
Definition: FileInPath.h:64
MakerMacros.h
cms::xerces::toString
std::string toString(XMLCh const *toTranscode)
Definition: XercesStrUtils.h:34
mps_fire.end
end
Definition: mps_fire.py:242
ctppsRawToDigi_cff.maskFileNames
maskFileNames
Definition: ctppsRawToDigi_cff.py:16
CTPPSPixelDAQMappingESSourceXML::currentBlock
unsigned int currentBlock
index of the current block in 'configuration' array
Definition: CTPPSPixelDAQMappingESSourceXML.cc:91
CTPPSPixelROCInfo::roc
unsigned int roc
Definition: CTPPSPixelDAQMapping.h:33
edm::es::Label
Definition: es_Label.h:56
CTPPSPixelDAQMappingRcd
Definition: CTPPSPixelDAQMappingRcd.h:23
CTPPSPixelDAQMappingESSourceXML::nUnknown
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
b
double b
Definition: hdecay.h:118
edm::IOVSyncValue
Definition: IOVSyncValue.h:31
edm::EventID::run
RunNumber_t run() const
Definition: EventID.h:38
DEFINE_FWK_EVENTSETUP_SOURCE
#define DEFINE_FWK_EVENTSETUP_SOURCE(type)
Definition: SourceFactory.h:91
EventSetupRecordIntervalFinder.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CTPPSPixelAnalysisMaskRcd
Definition: CTPPSPixelAnalysisMaskRcd.h:23
ESProducts.h
CTPPSPixelAnalysisMask.h
CTPPSPixelDAQMappingESSourceXML::ConfigBlock::mappingFileNames
std::vector< std::string > mappingFileNames
the mapping files
Definition: CTPPSPixelDAQMappingESSourceXML.cc:82
SourceFactory.h
edm::IOVSyncValue::eventID
const EventID & eventID() const
Definition: IOVSyncValue.h:40
edm::ParameterSet
Definition: ParameterSet.h:47
CTPPSPixelDAQMappingESSourceXML::nArm
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
CTPPSPixelDAQMappingESSourceXML::CTPPSPixelDAQMappingESSourceXML
CTPPSPixelDAQMappingESSourceXML(const edm::ParameterSet &)
Definition: CTPPSPixelDAQMappingESSourceXML.cc:171
a
double a
Definition: hdecay.h:119
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
CTPPSPixelDAQMappingESSourceXML::produceCTPPSPixelDAQMapping
std::unique_ptr< CTPPSPixelDAQMapping > produceCTPPSPixelDAQMapping(const CTPPSPixelDAQMappingRcd &)
Definition: CTPPSPixelDAQMappingESSourceXML.cc:238
CTPPSPixelDAQMappingESSourceXML::subSystemName
string subSystemName
label of the CTPPS sub-system
Definition: CTPPSPixelDAQMappingESSourceXML.cc:72
CTPPSPixelROCAnalysisMask::fullMask
bool fullMask
whether all channels of the ROC shall be masked
Definition: CTPPSPixelAnalysisMask.h:26
CTPPSPixelDAQMappingESSourceXML::ConfigBlock::validityRange
edm::EventRange validityRange
validity interval
Definition: CTPPSPixelDAQMappingESSourceXML.cc:79
edm::EventID::event
EventNumber_t event() const
Definition: EventID.h:40
createfilelist.int
int
Definition: createfilelist.py:10
FrontierConditions_GlobalTag_cff.file
file
Definition: FrontierConditions_GlobalTag_cff.py:13
Xerces.h
CTPPSPixelDAQMappingESSourceXML::PixelNode
bool PixelNode(NodeType type)
Definition: CTPPSPixelDAQMappingESSourceXML.cc:139
cms::concurrency::xercesTerminate
void xercesTerminate()
Definition: Xerces.cc:23
CTPPSPixelDAQMappingESSourceXML::nRPPot
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
CTPPSPixelDetId
Definition: CTPPSPixelDetId.h:16
hlx_dqm_sourceclient_cfi.subSystemName
subSystemName
Definition: hlx_dqm_sourceclient_cfi.py:15
CTPPSPixelDAQMappingESSourceXML::tagAnalysisMask
static const std::string tagAnalysisMask
Definition: CTPPSPixelDAQMappingESSourceXML.cc:51
ModuleFactory.h
cond::ValidityInterval
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:17
std
Definition: JetResolutionObject.h:76
CTPPSPixelDAQMappingESSourceXML::tagRPPot
static const std::string tagRPPot
Definition: CTPPSPixelDAQMappingESSourceXML.cc:60
CTPPSPixelDAQMapping.h
CTPPSPixelDAQMappingESSourceXML::ParseTreePixel
void ParseTreePixel(ParseType, xercesc::DOMNode *, NodeType, unsigned int parentID, const std::unique_ptr< CTPPSPixelDAQMapping > &, const std::unique_ptr< CTPPSPixelAnalysisMask > &)
recursive method to extract Pixel-related information from the DOM tree
Definition: CTPPSPixelDAQMappingESSourceXML.cc:316
CTPPSPixelDAQMappingESSourceXML::ConfigBlock::maskFileNames
std::vector< std::string > maskFileNames
the mask files
Definition: CTPPSPixelDAQMappingESSourceXML.cc:85
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
CTPPSPixelDAQMappingESSourceXML::~CTPPSPixelDAQMappingESSourceXML
~CTPPSPixelDAQMappingESSourceXML() override
Definition: CTPPSPixelDAQMappingESSourceXML.cc:231
Exception
Definition: hltDiff.cc:245
CTPPSPixelDAQMappingESSourceXML::tagPixel
static const std::string tagPixel
Definition: CTPPSPixelDAQMappingESSourceXML.cc:54
CTPPSPixelDAQMappingESSourceXML::tagArm
static const std::string tagArm
Common position tags.
Definition: CTPPSPixelDAQMappingESSourceXML.cc:56
CTPPSPixelDAQMappingESSourceXML
Loads CTPPSPixelDAQMapping and CTPPSPixelAnalysisMask from two XML files.
Definition: CTPPSPixelDAQMappingESSourceXML.cc:49
CTPPSPixelDAQMappingESSourceXML::tagROC
static const std::string tagROC
Definition: CTPPSPixelDAQMappingESSourceXML.cc:53
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
offsetROCinDetId
static const unsigned int offsetROCinDetId
Definition: CTPPSPixelDAQMappingESSourceXML.cc:168
personalPlayback.fn
fn
Definition: personalPlayback.py:515
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
CTPPSPixelDAQMappingESSourceXML::currentBlockValid
bool currentBlockValid
flag whether the 'currentBlock' index is valid
Definition: CTPPSPixelDAQMappingESSourceXML.cc:94
CTPPSPixelDAQMappingESSourceXML::produceCTPPSPixelAnalysisMask
std::unique_ptr< CTPPSPixelAnalysisMask > produceCTPPSPixelAnalysisMask(const CTPPSPixelAnalysisMaskRcd &)
Definition: CTPPSPixelDAQMappingESSourceXML.cc:264
CTPPSPixelROCAnalysisMask
Contains data on masked channels of a ROC.
Definition: CTPPSPixelAnalysisMask.h:18
edm::ESProducer
Definition: ESProducer.h:104
CTPPSPixelDAQMappingESSourceXML::ParseType
ParseType
whether to parse a mapping of a mask XML
Definition: CTPPSPixelDAQMappingESSourceXML.cc:100
CTPPSPixelDAQMappingESSourceXML::setIntervalFor
void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &) override
sets infinite validity of this data
Definition: CTPPSPixelDAQMappingESSourceXML.cc:193
CTPPSPixelROCAnalysisMask::maskedPixels
std::set< std::pair< unsigned char, unsigned char > > maskedPixels
list of channels to be masked
Definition: CTPPSPixelAnalysisMask.h:29
ParameterSet.h
CTPPSPixelDAQMappingESSourceXML::ConfigBlock
Definition: CTPPSPixelDAQMappingESSourceXML.cc:77
CTPPSPixelDAQMappingESSourceXML::tagRPixPlane
static const std::string tagRPixPlane
Definition: CTPPSPixelDAQMappingESSourceXML.cc:52
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::EventID
Definition: EventID.h:31
CTPPSPixelDAQMappingESSourceXML::verbosity
unsigned int verbosity
Definition: CTPPSPixelDAQMappingESSourceXML.cc:69
CTPPSPixelDAQMappingESSourceXML::nROC
Definition: CTPPSPixelDAQMappingESSourceXML.cc:97
edm::EventRange
Definition: EventRange.h:31
crabWrapper.key
key
Definition: crabWrapper.py:19
cms::concurrency::xercesInitialize
void xercesInitialize()
Definition: Xerces.cc:18
taus_updatedMVAIds_cff.mapping
mapping
Definition: taus_updatedMVAIds_cff.py:29
CTPPSPixelROCInfo
Contains mappind data related to a ROC.
Definition: CTPPSPixelDAQMapping.h:23
class-composition.parent
parent
Definition: class-composition.py:88
CTPPSPixelDAQMappingESSourceXML::CompleteFileName
string CompleteFileName(const string &fn)
adds the path prefix, if needed
Definition: CTPPSPixelDAQMappingESSourceXML.cc:233
CTPPSPixelDAQMappingESSourceXML::ChipFramePosition
CTPPSPixelFramePosition ChipFramePosition(xercesc::DOMNode *chipnode)
extracts VFAT's DAQ channel from XML attributes
Definition: CTPPSPixelDAQMappingESSourceXML.cc:453
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:161