CMS 3D CMS Logo

Utilities.h
Go to the documentation of this file.
1 // Utilities.h
2 
3 #ifndef L1Trigger_L1TMuonEndCap_emtf_Utilities
4 #define L1Trigger_L1TMuonEndCap_emtf_Utilities
5 
6 #include <vector>
7 #include <string>
8 #include <sstream>
9 #include <algorithm>
10 #include <utility>
11 
12 namespace emtf {
13 
15 // ------------------Some Helpful Things----------------------------------
17 
18 // Array of counts for error calculation.
19 extern const double twoJets_scale[16];
20 extern const std::vector<double> twoJetsScale;
21 
22 // Array of GeV values for error calculation.
23 extern const double ptscale[31];
24 extern const std::vector<double> ptScale;
25 
26 template<class bidiiter>
27 bidiiter shuffle(bidiiter begin, bidiiter end, size_t num_random)
28 {
29 // We will end up with the same elements in the collection except that
30 // the first num_random elements will be randomized.
31 
32  size_t left = std::distance(begin, end);
33  while (num_random--) {
34  bidiiter r = begin;
35  std::advance(r, rand()%left);
36  std::swap(*begin, *r);
37  ++begin;
38  --left;
39  }
40  return begin;
41 }
42 
43 template <typename T>
45 {
46 // Convert a number to a string.
47  std::stringstream ss;
48  ss << num;
49  std::string s = ss.str();
50  return s;
51 };
52 
53 float processPrediction(float BDTPt, int Quality, float PrelimFit);
54 
55 void mergeNtuples(const char* ntuplename, const char* filestomerge, const char* outputfile);
56 
57 void sortNtupleByEvent(const char* ntuplename, const char* filenametosort, const char* outputfile);
58 
59 } // end of emtf namespace
60 
61 #endif
Definition: Event.h:15
void sortNtupleByEvent(const char *ntuplename, const char *filenametosort, const char *outputfile)
Definition: Utilities.cc:101
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
#define end
Definition: vmac.h:39
const double twoJets_scale[16]
Definition: Utilities.cc:38
void mergeNtuples(const char *ntuplename, const char *filestomerge, const char *outputfile)
Definition: Utilities.cc:90
const std::vector< double > twoJetsScale
Definition: Utilities.cc:42
const std::vector< double > ptScale
Definition: Utilities.cc:35
const double ptscale[31]
Definition: Utilities.cc:29
#define begin
Definition: vmac.h:32
Signal rand(Signal arg)
Definition: vlib.cc:442
float processPrediction(float BDTPt, int Quality, float PrelimFit)
Definition: Utilities.cc:50
bidiiter shuffle(bidiiter begin, bidiiter end, size_t num_random)
Definition: Utilities.h:27
std::string numToStr(T num)
Definition: Utilities.h:44
long double T