CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
UEParameters.cc
Go to the documentation of this file.
1 
3 
4 UEParameters::UEParameters(const std::vector<float> *v, int nn, int neta) : v_(v), nn_(nn), neta_(neta){
5  parameters_ = new boost::const_multi_array_ref<float, 4>(&(*v)[0], boost::extents[neta][nreduced_particle_flow_id][nn][2]);
6 }
7 
8 void UEParameters::get_fourier(double &re, double &im, size_t n, size_t eta, int type) const {
9  re = 0;
10  im = 0;
11 
12  if(type < 0){
13  for (size_t i = 0; i < nreduced_particle_flow_id; i++) {
14  re += (*parameters_)[eta][i][n][0];
15  im += (*parameters_)[eta][i][n][1];
16  }
17  }else{
18  re = (*parameters_)[eta][type][n][0];
19  im = (*parameters_)[eta][type][n][1];
20  }
21 
22 }
23 
24 double UEParameters::get_sum_pt(int eta, int type) const {
25  double re;
26  double im;
27 
28  get_fourier(re, im, 0, eta, type);
29 
30  // There is no imaginary part
31  return re;
32 }
33 
34 double UEParameters::get_vn(int n, int eta, int type) const {
35  if (n < 0) {
36  return NAN;
37  }
38  else if (n == 0) {
39  return 1;
40  }
41 
42  double re;
43  double im;
44 
45  get_fourier(re, im, n, eta, type);
46 
47  return sqrt(re * re + im * im) / get_sum_pt(eta, type);
48 }
49 
50 double UEParameters::get_psin(int n, int eta, int type) const {
51  if (n <= 0) {
52  return 0;
53  }
54 
55  double re;
56  double im;
57 
58  get_fourier(re, im, n, eta, type);
59 
60  return atan2(im, re) / n;
61 }
62 
type
Definition: HCALResponse.h:22
int i
Definition: DBlmapReader.cc:9
UEParameters(const std::vector< float > *v, int nn, int neta)
Definition: UEParameters.cc:4
T eta() const
double get_psin(int n, int eta, int type=-1) const
Definition: UEParameters.cc:50
T sqrt(T t)
Definition: SSEVec.h:46
void get_fourier(double &re, double &im, size_t n, size_t eta, int type=-1) const
Definition: UEParameters.cc:8
double get_sum_pt(int eta, int type=-1) const
Definition: UEParameters.cc:24
static const size_t nreduced_particle_flow_id
Definition: UEParameters.h:9
mathSSE::Vec4< T > v
double get_vn(int n, int eta, int type=-1) const
Definition: UEParameters.cc:34
boost::const_multi_array_ref< float, 4 > * parameters_
Definition: UEParameters.h:13