CMS 3D CMS Logo

Public Member Functions | Private Attributes

HiEvtPlaneFlatten Class Reference

#include <HiEvtPlaneFlatten.h>

List of all members.

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 [MAXCUT]
double flatX [MAXCUT]
double flatXDB [MAXCUT]
double flatY [MAXCUT]
double flatYDB [MAXCUT]
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 ( ) [inline, explicit]

Definition at line 48 of file HiEvtPlaneFlatten.h.

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

  {
    pi = TMath::Pi();
    hcentbins = 1;
    hOrder = 20;
    vorder = 2;    //sets order of event plane
    minvtx = -25;
    delvtx = 5;
    nvtxbins = 10;
  }
HiEvtPlaneFlatten::~HiEvtPlaneFlatten ( ) [inline]

Definition at line 118 of file HiEvtPlaneFlatten.h.

{}

Member Function Documentation

Double_t HiEvtPlaneFlatten::bounds ( Double_t  ang) [inline]

Definition at line 125 of file HiEvtPlaneFlatten.h.

References pi.

Referenced by GetFlatPsi().

                                {
    if(ang<-pi) ang+=2.*pi;
    if(ang>pi)  ang-=2.*pi;
    return ang;
  }
Double_t HiEvtPlaneFlatten::bounds2 ( Double_t  ang) [inline]

Definition at line 130 of file HiEvtPlaneFlatten.h.

References pi, and vorder.

Referenced by GetFlatPsi().

                                 {
    double range = pi/(double) vorder;
    if(ang<-range) ang+=2*range;
    if(ang>range)  ang-=2*range;
    return ang;
  }
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.

  {
    if(fabs(psi)>4 ) return;
    for(int k = 0; k<hOrder; k++) {
      double fsin = sin(vorder*(k+1)*psi);
      double fcos = cos(vorder*(k+1)*psi);
      int indx = GetCutIndx(centbin,vtx,k);
      if(indx>=0) {
        flatX[indx]+=fcos;
        flatY[indx]+=fsin;
        ++flatCnt[indx];
      }
    }
  }
double HiEvtPlaneFlatten::GetCnt ( int  bin) [inline]

Definition at line 122 of file HiEvtPlaneFlatten.h.

References newFWLiteAna::bin, and flatCnt.

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

Definition at line 78 of file HiEvtPlaneFlatten.h.

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

Referenced by Fill(), and GetFlatPsi().

  {
    int cut;
    int icent = centbin/centbinComp;
    if(icent < 0 || icent > hcentbins) return -1;
    int ivtx = (vtx-minvtx)/delvtx;
    if(ivtx < 0 || ivtx > nvtxbins) return -1;
    cut = hOrder*nvtxbins*icent + hOrder*ivtx + iord;
    if(cut<0 || cut>hbins) return -1;
    return cut;
  }
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.

  {
    double correction = 0;
    for(int k = 0; k<hOrder; k++) {
      int indx = GetCutIndx(cent,vtx,k);
      correction+=(2./(double)((k+1)*vorder))*(flatXDB[indx]*sin(vorder*(k+1)*psi)-flatYDB[indx]*cos(vorder*(k+1)*psi));
    }
    psi+=correction;
    psi=bounds(psi);
    psi=bounds2(psi);
    return psi;
  }
int HiEvtPlaneFlatten::GetHBins ( ) [inline]

Definition at line 119 of file HiEvtPlaneFlatten.h.

References hbins.

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

Definition at line 120 of file HiEvtPlaneFlatten.h.

References newFWLiteAna::bin, and flatX.

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

Definition at line 121 of file HiEvtPlaneFlatten.h.

References newFWLiteAna::bin, and flatY.

{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.

  {
    hOrder = order;  //order of flattening
    vorder = vord;   //1(v1), 2(v2), 3(v3), 4(v4)       
    hcentbins = ncentbins;
    centbinComp = centbinCompression;
    if(hcentbins<=0) hcentbins = 1;
    hbins = hcentbins*nvtxbins*hOrder;
    if(hbins>MAXCUT) {
      std::cout<<"Too many cuts for flattening calculation.  RESET to deaults"<<std::endl;
      hcentbins = 1;
      hOrder = 21;
    }
    for(int i = 0; i<hbins; i++) {
      flatX[i]=0;
      flatY[i]=0;
      flatCnt[i]=0;
    } 
  }
void HiEvtPlaneFlatten::SetXDB ( int  indx,
double  val 
) [inline]

Definition at line 123 of file HiEvtPlaneFlatten.h.

References flatXDB.

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

Definition at line 124 of file HiEvtPlaneFlatten.h.

References flatYDB.

{flatYDB[indx]=val;}

Member Data Documentation

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[MAXCUT] [private]

Definition at line 141 of file HiEvtPlaneFlatten.h.

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

double HiEvtPlaneFlatten::flatX[MAXCUT] [private]

Definition at line 137 of file HiEvtPlaneFlatten.h.

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

double HiEvtPlaneFlatten::flatXDB[MAXCUT] [private]

Definition at line 139 of file HiEvtPlaneFlatten.h.

Referenced by GetFlatPsi(), and SetXDB().

double HiEvtPlaneFlatten::flatY[MAXCUT] [private]

Definition at line 138 of file HiEvtPlaneFlatten.h.

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

double HiEvtPlaneFlatten::flatYDB[MAXCUT] [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().

Definition at line 143 of file HiEvtPlaneFlatten.h.

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

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().

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().

Definition at line 146 of file HiEvtPlaneFlatten.h.

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