CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes | Static Private Attributes
MiscalibReaderFromXML Class Referenceabstract

#include <MiscalibReaderFromXML.h>

Inheritance diagram for MiscalibReaderFromXML:
MiscalibReaderFromXMLEcalBarrel MiscalibReaderFromXMLEcalEndcap MiscalibReaderFromXMLHcal

Public Member Functions

double getFloatAttribute (XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attribute, const std::string &attribute_name)
 
int getIntAttribute (XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attribute, const std::string &attribute_name)
 
double getScalingFactor (XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attribute)
 
 MiscalibReaderFromXML (CaloMiscalibMap &)
 
virtual DetId parseCellEntry (XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attribute)=0
 
bool parseXMLMiscalibFile (std::string configFile)
 
virtual ~MiscalibReaderFromXML ()
 

Private Attributes

CaloMiscalibMapcaloMap_
 

Static Private Attributes

static int s_numberOfInstances = 0
 

Detailed Description

Definition at line 26 of file MiscalibReaderFromXML.h.

Constructor & Destructor Documentation

◆ MiscalibReaderFromXML()

MiscalibReaderFromXML::MiscalibReaderFromXML ( CaloMiscalibMap caloMap)

Definition at line 24 of file MiscalibReaderXML.cc.

24  : caloMap_(caloMap) {
25  try {
26  //std::cout << "Xerces-c initialization Number "
27  //<< s_numberOfInstances<<std::endl;
28  if (s_numberOfInstances == 0)
30  } catch (const XMLException& e) {
31  std::cout << "Xerces-c error in initialization \n"
32  << "Exception message is: \n"
33  << _toString(e.getMessage()) << std::endl;
34  // throw an exception here
35  }
36 
38 }

References _toString(), gather_cfg::cout, MillePedeFileConverter_cfg::e, s_numberOfInstances, and cms::concurrency::xercesInitialize().

◆ ~MiscalibReaderFromXML()

virtual MiscalibReaderFromXML::~MiscalibReaderFromXML ( )
inlinevirtual

Definition at line 29 of file MiscalibReaderFromXML.h.

29 {}

Member Function Documentation

◆ getFloatAttribute()

double MiscalibReaderFromXML::getFloatAttribute ( XERCES_CPP_NAMESPACE::DOMNamedNodeMap *  attribute,
const std::string &  attribute_name 
)

Definition at line 58 of file MiscalibReaderXML.cc.

58  {
59  bool well_formed_string;
60  double retval = MiscalibReaderFromXMLDomUtils::getFloatAttribute(attribute, attribute_name, well_formed_string);
61  if (!well_formed_string)
62  std::cout << "MiscalibReaderFromXML::getFloatAttribute PROBLEMS ...!!!" << std::endl;
63 
64  return retval;
65 }

References gather_cfg::cout, and MiscalibReaderFromXMLDomUtils::getFloatAttribute().

Referenced by getScalingFactor().

◆ getIntAttribute()

int MiscalibReaderFromXML::getIntAttribute ( XERCES_CPP_NAMESPACE::DOMNamedNodeMap *  attribute,
const std::string &  attribute_name 
)

Definition at line 41 of file MiscalibReaderXML.cc.

41  {
42  bool well_formed_string;
43  int retval = MiscalibReaderFromXMLDomUtils::getIntAttribute(attribute, attribute_name, well_formed_string);
44  if (!well_formed_string)
45  std::cout << "MiscalibReaderFromXML::getIntAttribute PROBLEMS ...!!!" << std::endl;
46 
47  return retval;
48 }

References gather_cfg::cout, and MiscalibReaderFromXMLDomUtils::getIntAttribute().

Referenced by MiscalibReaderFromXMLEcalBarrel::parseCellEntry(), MiscalibReaderFromXMLHcal::parseCellEntry(), and MiscalibReaderFromXMLEcalEndcap::parseCellEntry().

◆ getScalingFactor()

double MiscalibReaderFromXML::getScalingFactor ( XERCES_CPP_NAMESPACE::DOMNamedNodeMap *  attribute)

Definition at line 52 of file MiscalibReaderXML.cc.

52  {
53  return MiscalibReaderFromXML::getFloatAttribute(attribute, "scale_factor");
54 }

References getFloatAttribute().

Referenced by parseXMLMiscalibFile().

◆ parseCellEntry()

virtual DetId MiscalibReaderFromXML::parseCellEntry ( XERCES_CPP_NAMESPACE::DOMNamedNodeMap *  attribute)
pure virtual

◆ parseXMLMiscalibFile()

bool MiscalibReaderFromXML::parseXMLMiscalibFile ( std::string  configFile)

Get ME name

Definition at line 69 of file MiscalibReaderXML.cc.

69  {
70  XercesDOMParser* parser = new XercesDOMParser;
71  parser->setValidationScheme(XercesDOMParser::Val_Auto);
72  parser->setDoNamespaces(false);
73  parser->parse(configFile.c_str());
74  DOMDocument* doc = parser->getDocument();
75  assert(doc);
76 
77  unsigned int linkTagsNum = doc->getElementsByTagName(_toDOMS("Cell"))->getLength();
78  // The following should be on LogInfo
79  //std::cout << "Read number of Cells = " << linkTagsNum << std::endl;
80 
81  if (linkTagsNum == 0)
82  std::cout << "Number of Cells in file is 0 - probably bad file format" << std::endl;
83 
84  int count = 0;
85  for (unsigned int i = 0; i < linkTagsNum; i++) {
86  DOMNode* linkNode = doc->getElementsByTagName(_toDOMS("Cell"))->item(i);
88  if (!linkNode) {
89  std::cout << "Node LINK does not exist, i=" << i << std::endl;
90  return true;
91  }
92  DOMElement* linkElement = static_cast<DOMElement*>(linkNode);
93  if (!linkElement) {
94  std::cout << "Element LINK does not exist, i=" << i << std::endl;
95  return true;
96  }
97 
98  DOMNamedNodeMap* attributes = linkNode->getAttributes();
99  double scalingfactor = getScalingFactor(attributes);
100 
101  DetId cell = parseCellEntry(attributes);
102 
103  if (cell != DetId(0)) {
104  count++;
105  caloMap_.addCell(cell, scalingfactor);
106  } else {
107  // std::cout << "Null received" << std::endl;
108  }
109  }
110 
111  // The following should be on LogInfo
112  // std::cout << "Number of good Cells = " << count << std::endl;
113  return false;
114 }

References _toDOMS(), CaloMiscalibMap::addCell(), cms::cuda::assert(), caloMap_, KineDebug3::count(), gather_cfg::cout, common_cff::doc, getScalingFactor(), mps_fire::i, parseCellEntry(), and writedatasetfile::parser.

Referenced by HcalRecHitRecalib::beginRun(), InvRingCalib::duringLoop(), ZeeCalibration::duringLoop(), CaloMiscalibTools::produce(), and CaloMiscalibToolsMC::produce().

Member Data Documentation

◆ caloMap_

CaloMiscalibMap& MiscalibReaderFromXML::caloMap_
private

Definition at line 40 of file MiscalibReaderFromXML.h.

Referenced by parseXMLMiscalibFile().

◆ s_numberOfInstances

int MiscalibReaderFromXML::s_numberOfInstances = 0
staticprivate

Definition at line 39 of file MiscalibReaderFromXML.h.

Referenced by MiscalibReaderFromXML().

common_cff.doc
doc
Definition: common_cff.py:54
mps_fire.i
i
Definition: mps_fire.py:355
gather_cfg.cout
cout
Definition: gather_cfg.py:144
cms::cuda::assert
assert(be >=bs)
MiscalibReaderFromXMLDomUtils::getFloatAttribute
static double getFloatAttribute(XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attributes, std::string attr_name, bool &well_formed_string)
writedatasetfile.parser
parser
Definition: writedatasetfile.py:7
MiscalibReaderFromXML::getFloatAttribute
double getFloatAttribute(XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attribute, const std::string &attribute_name)
Definition: MiscalibReaderXML.cc:58
_toDOMS
XMLCh * _toDOMS(std::string temp)
Definition: MiscalibReaderXML.cc:19
MiscalibReaderFromXMLDomUtils::getIntAttribute
static int getIntAttribute(XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attributes, std::string attr_name, bool &well_formed_string)
DetId
Definition: DetId.h:17
MiscalibReaderFromXML::getScalingFactor
double getScalingFactor(XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attribute)
Definition: MiscalibReaderXML.cc:52
KineDebug3::count
void count()
Definition: KinematicConstrainedVertexUpdatorT.h:21
_toString
std::string _toString(const XMLCh *toTranscode)
Definition: MiscalibReaderXML.cc:14
MiscalibReaderFromXML::caloMap_
CaloMiscalibMap & caloMap_
Definition: MiscalibReaderFromXML.h:40
MiscalibReaderFromXML::parseCellEntry
virtual DetId parseCellEntry(XERCES_CPP_NAMESPACE::DOMNamedNodeMap *attribute)=0
MiscalibReaderFromXML::s_numberOfInstances
static int s_numberOfInstances
Definition: MiscalibReaderFromXML.h:39
CaloMiscalibMap::addCell
virtual void addCell(const DetId &cell, float scaling_factor)=0
cms::concurrency::xercesInitialize
void xercesInitialize()
Definition: Xerces.cc:18
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37