CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
HiggsValidation::MonitoredDecays Class Reference

Public Member Functions

std::string channel (size_t i)
 
int convert (std::string s)
 
std::string convert (int pid)
 
std::string ConvertIndex (int index)
 
int isDecayParticle (int pid)
 
 MonitoredDecays (const edm::ParameterSet &iConfig)
 
unsigned int NDecayParticles ()
 
size_t position (int pid1, int pid2)
 
size_t size ()
 
size_t stable ()
 
size_t undetermined ()
 
 ~MonitoredDecays ()
 

Private Member Functions

void fill (std::string s)
 
void fillMap ()
 

Private Attributes

std::vector< std::pair< int,
int > > 
channels
 
std::map< std::string, int > namePidMap
 
unsigned int nparticles_
 

Detailed Description

Definition at line 51 of file HiggsValidation.h.

Constructor & Destructor Documentation

HiggsValidation::MonitoredDecays::MonitoredDecays ( const edm::ParameterSet iConfig)
inline

Definition at line 54 of file HiggsValidation.h.

References fill(), fillMap(), edm::ParameterSet::getParameter(), i, and LaserDQM_cfg::input.

54  {
55  fillMap();
56  std::vector<std::string> input = iConfig.getParameter<std::vector<std::string> >("monitorDecays");
57  for(std::vector<std::string>::const_iterator i = input.begin(); i!= input.end(); ++i){
58  fill(*i);
59  }
60  }
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
HiggsValidation::MonitoredDecays::~MonitoredDecays ( )
inline

Definition at line 62 of file HiggsValidation.h.

62 {};

Member Function Documentation

std::string HiggsValidation::MonitoredDecays::channel ( size_t  i)
inline

Definition at line 77 of file HiggsValidation.h.

References channels, convert(), first, and edm::second().

Referenced by HiggsValidation::beginJob().

77  {
78  if(i == 0) return "?";
79  if(i == channels.size()+1) return "Stable";
80  return convert(channels[i-1].first)+convert(channels[i-1].second);
81  }
int i
Definition: DBlmapReader.cc:9
U second(std::pair< T, U > const &p)
std::vector< std::pair< int, int > > channels
bool first
Definition: L1TdeRCT.cc:94
int HiggsValidation::MonitoredDecays::convert ( std::string  s)
inline

Definition at line 83 of file HiggsValidation.h.

References namePidMap, and alignCSCRings::s.

Referenced by channel(), and fill().

83  {
84  if( namePidMap.count(s)){
85  return namePidMap[s];
86  }
87  return 0;
88  }
std::map< std::string, int > namePidMap
std::string HiggsValidation::MonitoredDecays::convert ( int  pid)
inline

Definition at line 90 of file HiggsValidation.h.

References abs, i, and namePidMap.

90  {
91  pid = abs(pid);
92  if(pid == 14 || pid == 16) pid = 12;
93  for(std::map<std::string,int>::const_iterator i = namePidMap.begin(); i!= namePidMap.end(); ++i) {
94  if(i->second == pid) return i->first;
95  }
96  return "not found";
97  }
int i
Definition: DBlmapReader.cc:9
#define abs(x)
Definition: mlp_lapack.h:159
std::map< std::string, int > namePidMap
std::string HiggsValidation::MonitoredDecays::ConvertIndex ( int  index)
inline

Definition at line 110 of file HiggsValidation.h.

References i, and namePidMap.

Referenced by HiggsValidation::beginJob().

110  {
111  int idx=0;
112  for(std::map<std::string,int>::const_iterator i = namePidMap.begin(); i!= namePidMap.end(); ++i) {
113  if(idx==index) return i->first;
114  idx++;
115  }
116  return "unknown";
117  }
int i
Definition: DBlmapReader.cc:9
std::map< std::string, int > namePidMap
void HiggsValidation::MonitoredDecays::fill ( std::string  s)
inlineprivate

Definition at line 120 of file HiggsValidation.h.

References channels, convert(), and pos.

Referenced by MonitoredDecays().

120  {
121  size_t pos = s.find("+");
122  std::string particle1 = s.substr(0,pos);
123  std::string particle2 = s.substr(pos+1,s.length()-pos);
124  std::pair<int,int> decay;
125  decay.first = convert(particle1);
126  decay.second = convert(particle2);
127  channels.push_back(decay);
128  }
std::vector< std::pair< int, int > > channels
void HiggsValidation::MonitoredDecays::fillMap ( )
inlineprivate

Definition at line 130 of file HiggsValidation.h.

References i, namePidMap, and nparticles_.

Referenced by MonitoredDecays().

130  {
131  namePidMap["d"] = 1;
132  namePidMap["u"] = 2;
133  namePidMap["s"] = 3;
134  namePidMap["c"] = 4;
135  namePidMap["b"] = 5;
136  namePidMap["t"] = 6;
137  namePidMap["e"] = 11;
138  namePidMap["nu"] = 12;
139  namePidMap["mu"] = 13;
140  namePidMap["tau"] = 15;
141  namePidMap["gamma"] = 22;
142  namePidMap["Z"] = 23;
143  namePidMap["W"] = 24;
144  nparticles_=0;
145  for(std::map<std::string,int>::const_iterator i = namePidMap.begin(); i!= namePidMap.end(); ++i){
146  nparticles_++;
147  }
148  }
int i
Definition: DBlmapReader.cc:9
std::map< std::string, int > namePidMap
int HiggsValidation::MonitoredDecays::isDecayParticle ( int  pid)
inline

Definition at line 101 of file HiggsValidation.h.

References i, and namePidMap.

Referenced by HiggsValidation::analyze().

101  {
102  int idx=0;
103  for(std::map<std::string,int>::const_iterator i = namePidMap.begin(); i!= namePidMap.end(); ++i) {
104  if(i->second == pid) return idx;
105  idx++;
106  }
107  return -1;
108  }
int i
Definition: DBlmapReader.cc:9
std::map< std::string, int > namePidMap
unsigned int HiggsValidation::MonitoredDecays::NDecayParticles ( )
inline

Definition at line 99 of file HiggsValidation.h.

References nparticles_.

Referenced by HiggsValidation::beginJob().

99 {return nparticles_;}
size_t HiggsValidation::MonitoredDecays::position ( int  pid1,
int  pid2 
)
inline

Definition at line 64 of file HiggsValidation.h.

References abs, channels, first, i, edm::second(), and undetermined().

Referenced by HiggsValidation::findHiggsDecayChannel().

64  {
65  if(abs(pid1) == 14 || abs(pid1) == 16) pid1 = 12;
66  if(abs(pid2) == 14 || abs(pid2) == 16) pid2 = 12;
67  for(size_t i = 0; i < channels.size(); ++i){
68  if((channels[i].first == abs(pid1) && channels[i].second == abs(pid2)) ||
69  (channels[i].first == abs(pid2) && channels[i].second == abs(pid1))) return i+1;
70  }
71  return undetermined();//channels.size()+1;
72  }
int i
Definition: DBlmapReader.cc:9
#define abs(x)
Definition: mlp_lapack.h:159
U second(std::pair< T, U > const &p)
std::vector< std::pair< int, int > > channels
bool first
Definition: L1TdeRCT.cc:94
size_t HiggsValidation::MonitoredDecays::size ( void  )
inline

Definition at line 74 of file HiggsValidation.h.

References channels.

Referenced by HiggsValidation::beginJob(), and stable().

74 {return channels.size() + 2;}
std::vector< std::pair< int, int > > channels
size_t HiggsValidation::MonitoredDecays::stable ( )
inline

Definition at line 76 of file HiggsValidation.h.

References size().

Referenced by HiggsValidation::findHiggsDecayChannel().

76 {return size();}
size_t HiggsValidation::MonitoredDecays::undetermined ( )
inline

Definition at line 75 of file HiggsValidation.h.

Referenced by HiggsValidation::findHiggsDecayChannel(), and position().

75 {return 0;}

Member Data Documentation

std::vector<std::pair<int,int> > HiggsValidation::MonitoredDecays::channels
private

Definition at line 152 of file HiggsValidation.h.

Referenced by channel(), fill(), position(), and size().

std::map<std::string,int> HiggsValidation::MonitoredDecays::namePidMap
private

Definition at line 150 of file HiggsValidation.h.

Referenced by convert(), ConvertIndex(), fillMap(), and isDecayParticle().

unsigned int HiggsValidation::MonitoredDecays::nparticles_
private

Definition at line 153 of file HiggsValidation.h.

Referenced by fillMap(), and NDecayParticles().