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 Attributes
HiEvtPlaneFlatten Class Reference

#include <HiEvtPlaneFlatten.h>

Public Member Functions

Double_t bounds (Double_t ang)
 
Double_t bounds2 (Double_t ang)
 
void Fill (double psi, double vtx, int centbin)
 
double GetCnt (int bin)
 
int GetCutIndx (int centbin, double vtx, int iord)
 
double GetFlatPsi (double psi, double vtx, double cent)
 
int GetHBins ()
 
double GetX (int bin)
 
double GetY (int bin)
 
 HiEvtPlaneFlatten ()
 
void Init (int order, int ncentbins, const int centbinCompression, std::string tag, int vord)
 
void SetXDB (int indx, double val)
 
void SetYDB (int indx, double val)
 
 ~HiEvtPlaneFlatten ()
 

Private Attributes

int centbinComp
 
double delvtx
 
double flatCnt [5000]
 
double flatX [5000]
 
double flatXDB [5000]
 
double flatY [5000]
 
double flatYDB [5000]
 
int hbins
 
int hcentbins
 
int hOrder
 
double minvtx
 
int nvtxbins
 
double pi
 
int vorder
 

Detailed Description

Definition at line 45 of file HiEvtPlaneFlatten.h.

Constructor & Destructor Documentation

HiEvtPlaneFlatten::HiEvtPlaneFlatten ( )
inlineexplicit

Definition at line 48 of file HiEvtPlaneFlatten.h.

References delvtx, hcentbins, hOrder, minvtx, nvtxbins, Pi, pi, and vorder.

49  {
50  pi = TMath::Pi();
51  hcentbins = 1;
52  hOrder = 20;
53  vorder = 2; //sets order of event plane
54  minvtx = -25;
55  delvtx = 5;
56  nvtxbins = 10;
57  }
const double Pi
HiEvtPlaneFlatten::~HiEvtPlaneFlatten ( )
inline

Definition at line 118 of file HiEvtPlaneFlatten.h.

118 {}

Member Function Documentation

Double_t HiEvtPlaneFlatten::bounds ( Double_t  ang)
inline

Definition at line 125 of file HiEvtPlaneFlatten.h.

References pi.

Referenced by GetFlatPsi().

125  {
126  if(ang<-pi) ang+=2.*pi;
127  if(ang>pi) ang-=2.*pi;
128  return ang;
129  }
Double_t HiEvtPlaneFlatten::bounds2 ( Double_t  ang)
inline

Definition at line 130 of file HiEvtPlaneFlatten.h.

References pi, and vorder.

Referenced by GetFlatPsi().

130  {
131  double range = pi/(double) vorder;
132  if(ang<-range) ang+=2*range;
133  if(ang>range) ang-=2*range;
134  return ang;
135  }
void HiEvtPlaneFlatten::Fill ( double  psi,
double  vtx,
int  centbin 
)
inline

Definition at line 90 of file HiEvtPlaneFlatten.h.

References funct::cos(), flatCnt, flatX, flatY, GetCutIndx(), hOrder, gen::k, funct::sin(), and vorder.

91  {
92  if(fabs(psi)>4 ) return;
93  for(int k = 0; k<hOrder; k++) {
94  double fsin = sin(vorder*(k+1)*psi);
95  double fcos = cos(vorder*(k+1)*psi);
96  int indx = GetCutIndx(centbin,vtx,k);
97  if(indx>=0) {
98  flatX[indx]+=fcos;
99  flatY[indx]+=fsin;
100  ++flatCnt[indx];
101  }
102  }
103  }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
int GetCutIndx(int centbin, double vtx, int iord)
std::map< std::string, int, std::less< std::string > > psi
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int k[5][pyjets_maxn]
double HiEvtPlaneFlatten::GetCnt ( int  bin)
inline

Definition at line 122 of file HiEvtPlaneFlatten.h.

References newFWLiteAna::bin, and flatCnt.

122 {return flatCnt[bin];}
int HiEvtPlaneFlatten::GetCutIndx ( int  centbin,
double  vtx,
int  iord 
)
inline

Definition at line 78 of file HiEvtPlaneFlatten.h.

References centbinComp, GOODCOLL_filter_cfg::cut, delvtx, hbins, hcentbins, hOrder, minvtx, and nvtxbins.

Referenced by Fill(), and GetFlatPsi().

79  {
80  int cut;
81  int icent = centbin/centbinComp;
82  if(icent < 0 || icent > hcentbins) return -1;
83  int ivtx = (vtx-minvtx)/delvtx;
84  if(ivtx < 0 || ivtx > nvtxbins) return -1;
85  cut = hOrder*nvtxbins*icent + hOrder*ivtx + iord;
86  if(cut<0 || cut>hbins) return -1;
87  return cut;
88  }
double HiEvtPlaneFlatten::GetFlatPsi ( double  psi,
double  vtx,
double  cent 
)
inline

Definition at line 105 of file HiEvtPlaneFlatten.h.

References bounds(), bounds2(), funct::cos(), flatXDB, flatYDB, GetCutIndx(), hOrder, gen::k, funct::sin(), and vorder.

106  {
107  double correction = 0;
108  for(int k = 0; k<hOrder; k++) {
109  int indx = GetCutIndx(cent,vtx,k);
110  correction+=(2./(double)((k+1)*vorder))*(flatXDB[indx]*sin(vorder*(k+1)*psi)-flatYDB[indx]*cos(vorder*(k+1)*psi));
111  }
112  psi+=correction;
113  psi=bounds(psi);
114  psi=bounds2(psi);
115  return psi;
116  }
Double_t bounds2(Double_t ang)
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
int GetCutIndx(int centbin, double vtx, int iord)
std::map< std::string, int, std::less< std::string > > psi
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int k[5][pyjets_maxn]
Double_t bounds(Double_t ang)
int HiEvtPlaneFlatten::GetHBins ( )
inline

Definition at line 119 of file HiEvtPlaneFlatten.h.

References hbins.

119 {return hbins;}
double HiEvtPlaneFlatten::GetX ( int  bin)
inline

Definition at line 120 of file HiEvtPlaneFlatten.h.

References newFWLiteAna::bin, and flatX.

120 {return flatX[bin];}
double HiEvtPlaneFlatten::GetY ( int  bin)
inline

Definition at line 121 of file HiEvtPlaneFlatten.h.

References newFWLiteAna::bin, and flatY.

121 {return flatY[bin];}
void HiEvtPlaneFlatten::Init ( int  order,
int  ncentbins,
const int  centbinCompression,
std::string  tag,
int  vord 
)
inline

Definition at line 58 of file HiEvtPlaneFlatten.h.

References centbinComp, gather_cfg::cout, flatCnt, flatX, flatY, hbins, hcentbins, hOrder, i, MAXCUT, nvtxbins, and vorder.

59  {
60  hOrder = order; //order of flattening
61  vorder = vord; //1(v1), 2(v2), 3(v3), 4(v4)
62  hcentbins = ncentbins;
63  centbinComp = centbinCompression;
64  if(hcentbins<=0) hcentbins = 1;
66  if(hbins>MAXCUT) {
67  std::cout<<"Too many cuts for flattening calculation. RESET to deaults"<<std::endl;
68  hcentbins = 1;
69  hOrder = 21;
70  }
71  for(int i = 0; i<hbins; i++) {
72  flatX[i]=0;
73  flatY[i]=0;
74  flatCnt[i]=0;
75  }
76  }
int i
Definition: DBlmapReader.cc:9
tuple cout
Definition: gather_cfg.py:121
#define MAXCUT
void HiEvtPlaneFlatten::SetXDB ( int  indx,
double  val 
)
inline

Definition at line 123 of file HiEvtPlaneFlatten.h.

References flatXDB.

123 {flatXDB[indx]=val;}
void HiEvtPlaneFlatten::SetYDB ( int  indx,
double  val 
)
inline

Definition at line 124 of file HiEvtPlaneFlatten.h.

References flatYDB.

124 {flatYDB[indx]=val;}

Member Data Documentation

int HiEvtPlaneFlatten::centbinComp
private

Definition at line 144 of file HiEvtPlaneFlatten.h.

Referenced by GetCutIndx(), and Init().

double HiEvtPlaneFlatten::delvtx
private

Definition at line 151 of file HiEvtPlaneFlatten.h.

Referenced by GetCutIndx(), and HiEvtPlaneFlatten().

double HiEvtPlaneFlatten::flatCnt[5000]
private

Definition at line 141 of file HiEvtPlaneFlatten.h.

Referenced by Fill(), GetCnt(), and Init().

double HiEvtPlaneFlatten::flatX[5000]
private

Definition at line 137 of file HiEvtPlaneFlatten.h.

Referenced by Fill(), GetX(), and Init().

double HiEvtPlaneFlatten::flatXDB[5000]
private

Definition at line 139 of file HiEvtPlaneFlatten.h.

Referenced by GetFlatPsi(), and SetXDB().

double HiEvtPlaneFlatten::flatY[5000]
private

Definition at line 138 of file HiEvtPlaneFlatten.h.

Referenced by Fill(), GetY(), and Init().

double HiEvtPlaneFlatten::flatYDB[5000]
private

Definition at line 140 of file HiEvtPlaneFlatten.h.

Referenced by GetFlatPsi(), and SetYDB().

int HiEvtPlaneFlatten::hbins
private

Definition at line 145 of file HiEvtPlaneFlatten.h.

Referenced by GetCutIndx(), GetHBins(), and Init().

int HiEvtPlaneFlatten::hcentbins
private

Definition at line 143 of file HiEvtPlaneFlatten.h.

Referenced by GetCutIndx(), HiEvtPlaneFlatten(), and Init().

int HiEvtPlaneFlatten::hOrder
private

Definition at line 142 of file HiEvtPlaneFlatten.h.

Referenced by Fill(), GetCutIndx(), GetFlatPsi(), HiEvtPlaneFlatten(), and Init().

double HiEvtPlaneFlatten::minvtx
private

Definition at line 150 of file HiEvtPlaneFlatten.h.

Referenced by GetCutIndx(), and HiEvtPlaneFlatten().

int HiEvtPlaneFlatten::nvtxbins
private

Definition at line 149 of file HiEvtPlaneFlatten.h.

Referenced by GetCutIndx(), HiEvtPlaneFlatten(), and Init().

double HiEvtPlaneFlatten::pi
private

Definition at line 147 of file HiEvtPlaneFlatten.h.

Referenced by bounds(), bounds2(), and HiEvtPlaneFlatten().

int HiEvtPlaneFlatten::vorder
private

Definition at line 146 of file HiEvtPlaneFlatten.h.

Referenced by bounds2(), Fill(), GetFlatPsi(), HiEvtPlaneFlatten(), and Init().