CMS 3D CMS Logo

CSCDQM_Utility.h
Go to the documentation of this file.
1 /*
2  * =====================================================================================
3  *
4  * Filename: CSCDQM_Utility.h
5  *
6  * Description: CSC Utilities class
7  *
8  * Version: 1.0
9  * Created: 10/30/2008 04:40:38 PM
10  * Revision: none
11  * Compiler: gcc
12  *
13  * Author: Valdas Rapsevicius (VR), valdas.rapsevicius@cern.ch
14  * Company: CERN, CH
15  *
16  * =====================================================================================
17  */
18 
19 #ifndef CSCDQM_Utility_H
20 #define CSCDQM_Utility_H
21 
22 #include <string>
23 #include <map>
24 #include <set>
25 #include <vector>
26 #include <sstream>
27 #include <cstdint>
28 #include <cmath>
29 
30 #include <TString.h>
31 #include <TPRegexp.h>
32 
34 
35 namespace cscdqm {
36 
42  template <class T>
43  const std::string toString(T& t) {
44  std::ostringstream st;
45  st << t;
46  std::string result = st.str();
47  return result;
48  }
49 
57  template <class T>
58  bool stringToNumber(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&)) {
59  std::istringstream iss(s);
60  return !(iss >> f >> t).fail();
61  }
62 
67  class Utility {
68  public:
69  static bool regexMatch(const std::string& expression, const std::string& message);
70  static bool regexMatch(const TPRegexp& re_expression, const std::string& message);
71  static void regexReplace(const std::string& expression, std::string& message, const std::string replace = "");
72  static void regexReplace(const TPRegexp& re_expression, std::string& message, const std::string replace = "");
73  static std::string regexReplaceStr(const std::string& expression,
74  const std::string& message,
75  const std::string replace = "");
76  static std::string regexReplaceStr(const TPRegexp& re_expression,
77  const std::string& message,
78  const std::string replace = "");
79 
80  static int getCSCTypeBin(const std::string& cstr);
81  static std::string getCSCTypeLabel(int endcap, int station, int ring);
82  static int tokenize(const std::string& str, std::vector<std::string>& tokens, const std::string& delimiters = " ");
83  static void splitString(const std::string& str, const std::string& delim, std::vector<std::string>& results);
84  static void trimString(std::string& str);
85  static uint32_t fastHash(const char* data, int len);
86  static uint32_t fastHash(const char* data) { return fastHash(data, strlen(data)); }
87 
88  static short checkOccupancy(const unsigned int N,
89  const unsigned int n,
90  const double low_threshold,
91  const double high_threshold,
92  const double low_sigfail,
93  const double high_sigfail);
94  static bool checkError(const unsigned int N, const unsigned int n, const double threshold, const double sigfail);
95  static double SignificanceLevelLow(const unsigned int N, const unsigned int n, const double eps);
96  static double SignificanceLevelHigh(const unsigned int N, const unsigned int n);
97 
98  static int getRUIfromDDUId(unsigned ddu_id);
99  };
100 } // namespace cscdqm
101 
102 #endif
static void splitString(const std::string &str, const std::string &delim, std::vector< std::string > &results)
Split string according to delimiter.
static double SignificanceLevelHigh(const unsigned int N, const unsigned int n)
Calculate error significance alpha for the given number of events based on reference number of errors...
static std::string regexReplaceStr(const std::string &expression, const std::string &message, const std::string replace="")
Replace string part that matches RegExp expression with some string.
static int getRUIfromDDUId(unsigned ddu_id)
Get RUI Number from DDU source ID for post LS1 configuration.
static double SignificanceLevelLow(const unsigned int N, const unsigned int n, const double eps)
Calculate error significance alpha for the given number of errors based on reference number of errors...
def replace(string, replacements)
static bool regexMatch(const std::string &expression, const std::string &message)
Match RegExp expression string against string message and return result.
General and CSCDQM Framework related utility routines.
static bool checkError(const unsigned int N, const unsigned int n, const double threshold, const double sigfail)
Check the hypothesis that error events (n) value above threshold comparing with the expected 0 and st...
static uint32_t fastHash(const char *data, int len)
Calculate super fast hash (from http://www.azillionmonkeys.com/qed/hash.html)
static void trimString(std::string &str)
Trim string.
const std::string toString(T &t)
Converting from whatever to string (failsafe!)
static std::string getCSCTypeLabel(int endcap, int station, int ring)
Get CSC label from CSC parameters.
double f[11][100]
static uint32_t fastHash(const char *data)
static int getCSCTypeBin(const std::string &cstr)
Get CSC y-axis position from chamber string.
#define N
Definition: blowfish.cc:9
static short checkOccupancy(const unsigned int N, const unsigned int n, const double low_threshold, const double high_threshold, const double low_sigfail, const double high_sigfail)
Check the hypothesis that observed events (n) value is too low or too high comparing with the expecte...
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
static void regexReplace(const std::string &expression, std::string &message, const std::string replace="")
Replace string part that matches RegExp expression with some string.
#define str(s)
long double T
static int tokenize(const std::string &str, std::vector< std::string > &tokens, const std::string &delimiters=" ")
Break string into tokens.
bool stringToNumber(T &t, const std::string &s, std::ios_base &(*f)(std::ios_base &))
Converting from string to whatever number (failsafe!)