CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiStripLorentzAngle.cc
Go to the documentation of this file.
4 
5 bool SiStripLorentzAngle::putLorentzAngle(const uint32_t& detid, float& value){
6  std::map<unsigned int,float>::const_iterator id=m_LA.find(detid);
7  if(id!=m_LA.end()){
8  edm::LogError("SiStripLorentzAngle") << "SiStripLorentzAngle for DetID " << detid << " is already stored. Skippig this put" << std::endl;
9  return false;
10  }
11  else m_LA[detid]=value;
12  return true;
13 }
14 const float& SiStripLorentzAngle::getLorentzAngle(const uint32_t& detid) const {
15  std::map<unsigned int,float>::const_iterator id=m_LA.find(detid);
16  if(id!=m_LA.end()) return id->second;
17  else {
18  edm::LogError("SiStripLorentzAngle") << "SiStripLorentzAngle for DetID " << detid << " is not stored" << std::endl;
19  }
20  static float temp = 0.; // added by R.B.
21  return temp;
22 }
23 
24 void SiStripLorentzAngle::printDebug(std::stringstream& ss) const
25 {
26  std::map<unsigned int,float> detid_la = getLorentzAngles();
27  std::map<unsigned int,float>::const_iterator it;
28  size_t count=0;
29  ss << "SiStripLorentzAngleReader:" << std::endl;
30  ss << "detid \t Lorentz angle" << std::endl;
31  for( it=detid_la.begin(); it!=detid_la.end(); ++it ) {
32  ss << it->first << "\t" << it->second << std::endl;
33  ++count;
34  }
35 }
36 
37 void SiStripLorentzAngle::printSummary(std::stringstream& ss) const
38 {
39  std::map<unsigned int,float> detid_la = getLorentzAngles();
40  std::map<unsigned int,float>::const_iterator it;
41 
43 
44  for( it=detid_la.begin(); it!=detid_la.end(); ++it ) {
45  DetId detid(it->first);
46  float value = it->second;
47  summary.add(detid, value);
48  }
49  ss << "Summary of lorentz angles:" << std::endl;
50  summary.print(ss);
51 
52 }
std::map< unsigned int, float > m_LA
const float & getLorentzAngle(const uint32_t &) const
bool putLorentzAngle(const uint32_t &, float &)
const std::map< unsigned int, float > & getLorentzAngles() const
void print(std::stringstream &ss, const bool mean=true) const
Definition: DetId.h:20
void add(const DetId &detid, const float &value)
Used to compute the mean value of the value variable divided by subdetector, layer and mono/stereo...
void printDebug(std::stringstream &ss) const
Prints LorentzAngles for all detIds.
void printSummary(std::stringstream &ss) const
Prints the mean value of the LorentzAngle divided by subdetector, layer and mono/stereo.