CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GlobalCoordsObtainer.h
Go to the documentation of this file.
1 #ifndef L1Trigger_DTTriggerPhase2_GlobalCoordsObtainer_h
2 #define L1Trigger_DTTriggerPhase2_GlobalCoordsObtainer_h
3 
14 
16 
18 
19 #include <cmath>
20 #include <fstream>
21 #include <iostream>
22 
23 // ===============================================================================
24 // Previous definitions and declarations
25 // ===============================================================================
26 
27 struct lut_value {
28  long int a;
29  long int b;
30 };
31 
32 struct lut_group {
33  std::map<int, lut_value> phic;
34  std::map<int, lut_value> phi1;
35  std::map<int, lut_value> phi3;
36  std::map<int, lut_value> phib;
37 };
38 
40  double perp;
41  double x_phi0;
42 };
43 
45  uint32_t chid;
48 };
49 
50 // ===============================================================================
51 // Class declarations
52 // ===============================================================================
53 
55 public:
58 
59  void generate_luts();
60  std::vector<double> get_global_coordinates(uint32_t, int, int, int);
61 
62 private:
63  std::map<int, lut_value> calc_atan_lut(int, int, double, double, double, int, int, int, int, int);
64  // utilities to go to and from 2 complement
65  int to_two_comp(int val, int size) {
66  if (val >= 0)
67  return val;
68  return std::pow(2, size) + val;
69  }
70 
71  int from_two_comp(int val, int size) { return val - ((2 * val) & (1 << size)); }
72 
73  // attributes
76  std::vector<global_constant> global_constants;
77  std::map<uint32_t, lut_group> luts;
78 };
79 
80 #endif
edm::FileInPath global_coords_filename_
std::map< int, lut_value > phi1
std::map< int, lut_value > phic
global_constant_per_sl sl1
std::map< int, lut_value > phi3
int to_two_comp(int val, int size)
std::vector< global_constant > global_constants
std::vector< double > get_global_coordinates(uint32_t, int, int, int)
std::map< int, lut_value > phib
std::map< uint32_t, lut_group > luts
GlobalCoordsObtainer(const edm::ParameterSet &pset)
global_constant_per_sl sl3
int from_two_comp(int val, int size)
std::map< int, lut_value > calc_atan_lut(int, int, double, double, double, int, int, int, int, int)
tuple size
Write out results.
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29