CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OMTFResult.cc
Go to the documentation of this file.
1 #include <iostream>
2 #include <ostream>
3 #include <cmath>
4 
7 
11 
12  clear();
13 
14 }
17 void OMTFResult::addResult(unsigned int iRefLayer,
18  unsigned int iLayer,
19  unsigned int val,
20  int iRefPhi,
21  int iRefEta){
22 
23  refPhi1D[iRefLayer] = iRefPhi;
24  refEta1D[iRefLayer] = iRefEta;
25  results[iLayer][iRefLayer] = val;
26 
27 }
31 
38 }
42 
43  for(unsigned int iLogicLayer=0;iLogicLayer<results.size();++iLogicLayer){
44  unsigned int connectedLayer = OMTFConfiguration::logicToLogic[iLogicLayer];
45  for(unsigned int iRefLayer=0;iRefLayer<results[iLogicLayer].size();++iRefLayer){
47  unsigned int val = results[connectedLayer][iRefLayer]>0 ? results[iLogicLayer][iRefLayer]: 0;
48  results1D[iRefLayer]+=val;
49  hitsBits[iRefLayer]+=(val>0)*std::pow(2,iLogicLayer);
51  if(!OMTFConfiguration::bendingLayers.count(iLogicLayer)) hits1D[iRefLayer]+=(val>0);
52  }
53  }
54 }
57 bool OMTFResult::empty() const{
58 
59  unsigned int nHits = 0;
60 
61  for(unsigned int iRefLayer=0;iRefLayer<OMTFConfiguration::nRefLayers;++iRefLayer){
62  nHits+=hits1D[iRefLayer];
63  }
64  return (nHits==0);
65 }
68 std::ostream & operator << (std::ostream &out, const OMTFResult & aResult){
69 
70  for(unsigned int iLogicLayer=0;iLogicLayer<aResult.results.size();++iLogicLayer){
71  out<<"Logic layer: "<<iLogicLayer<<" results: ";
72  for(unsigned int iRefLayer=0;iRefLayer<aResult.results[iLogicLayer].size();++iRefLayer){
73  out<<aResult.results[iLogicLayer][iRefLayer]<<"\t";
74  }
75  out<<std::endl;
76  }
77 
78  out<<" Sum over layers: ";
79  for(unsigned int iRefLayer=0;iRefLayer<aResult.results1D.size();++iRefLayer){
80  out<<aResult.results1D[iRefLayer]<<"\t";
81  }
82 
83  out<<std::endl;
84 
85  out<<" Number of hits: ";
86  for(unsigned int iRefLayer=0;iRefLayer<aResult.hits1D.size();++iRefLayer){
87  out<<aResult.hits1D[iRefLayer]<<"\t";
88  }
89 
90  return out;
91 }
static unsigned int nLayers
bool empty() const
Definition: OMTFResult.cc:57
vector2D results
Definition: OMTFResult.h:47
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
vector1D results1D
Sum of pdf weights for each reference layer.
Definition: OMTFResult.h:56
static std::map< int, int > logicToLogic
vector1D refPhi1D
Reference phi for each reference layer.
Definition: OMTFResult.h:50
static unsigned int nRefLayers
void finalise()
Definition: OMTFResult.cc:41
vector1D hits1D
Number of hits for each reference layer.
Definition: OMTFResult.h:59
static std::set< int > bendingLayers
void addResult(unsigned int iRefLayer, unsigned int iLayer, unsigned int val, int iRefPhi, int iRefEta)
Definition: OMTFResult.cc:17
vector1D refEta1D
Reference phi for each reference layer.
Definition: OMTFResult.h:53
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
void clear()
Definition: OMTFResult.cc:30
vector1D hitsBits
Words representing nimber of hit layers for each reference layer.
Definition: OMTFResult.h:62