CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
RapReweightUserHook Class Reference

#include <ReweightUserHooks.h>

Inheritance diagram for RapReweightUserHook:

Public Member Functions

virtual double biasSelectionBy (const Pythia8::SigmaProcess *sigmaProcessPtr, const Pythia8::PhaseSpace *phaseSpacePtr, bool inEvent)
 
virtual bool canBiasSelection ()
 
 RapReweightUserHook (const std::string &_yLabsigma_func, double _yLab_power, const std::string &_yCMsigma_func, double _yCM_power, double _pTHatMin, double _pTHatMax)
 
virtual ~RapReweightUserHook ()
 

Private Attributes

double pTHatMax
 
double pTHatMin
 
double yCM_power
 
TF1 yCMsigma
 
std::string yCMsigma_func
 
double yLab_power
 
TF1 yLabsigma
 
std::string yLabsigma_func
 

Detailed Description

Definition at line 58 of file ReweightUserHooks.h.

Constructor & Destructor Documentation

RapReweightUserHook::RapReweightUserHook ( const std::string &  _yLabsigma_func,
double  _yLab_power,
const std::string &  _yCMsigma_func,
double  _yCM_power,
double  _pTHatMin,
double  _pTHatMax 
)
inline

Definition at line 61 of file ReweightUserHooks.h.

63  :
64  yLabsigma_func(_yLabsigma_func), yCMsigma_func(_yCMsigma_func),
65  yLab_power(_yLab_power), yCM_power(_yCM_power),
66  pTHatMin(_pTHatMin), pTHatMax(_pTHatMax)
67  {
68  // empirical parametrizations defined in configuration file
69  yLabsigma = TF1("yLabsigma", yLabsigma_func.c_str(), pTHatMin, pTHatMax);
70  yCMsigma = TF1("yCMsigma", yLabsigma_func.c_str(), pTHatMin, pTHatMax);
71  }
std::string yLabsigma_func
virtual RapReweightUserHook::~RapReweightUserHook ( )
inlinevirtual

Definition at line 72 of file ReweightUserHooks.h.

72 {}

Member Function Documentation

virtual double RapReweightUserHook::biasSelectionBy ( const Pythia8::SigmaProcess *  sigmaProcessPtr,
const Pythia8::PhaseSpace *  phaseSpacePtr,
bool  inEvent 
)
inlinevirtual

Definition at line 76 of file ReweightUserHooks.h.

References JetChargeProducer_cfi::exp, cmsBatch::log, and funct::pow().

78  {
79  //the variable selBias of the base class should be used;
80  if ((sigmaProcessPtr->nFinal() == 2)) {
81  double x1 = phaseSpacePtr->x1();
82  double x2 = phaseSpacePtr->x2();
83  double yLab = 0.5*log(x1/x2);
84  double yCM = 0.5*log( phaseSpacePtr->tHat() / phaseSpacePtr->uHat() );
85  double pTHat = phaseSpacePtr->pTHat();
86  double sigmaLab = yLabsigma.Eval(pTHat);
87  double sigmaCM = yCMsigma.Eval(pTHat);
88  // empirical reweighting function
89  selBias = exp( pow(fabs(yLab),yLab_power)/(2*sigmaLab*sigmaLab) +
90  pow(fabs(yCM),yCM_power)/(2*sigmaCM*sigmaCM) );
91  return selBias;
92  }
93  selBias = 1.;
94  return selBias;
95  }
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
virtual bool RapReweightUserHook::canBiasSelection ( )
inlinevirtual

Definition at line 74 of file ReweightUserHooks.h.

74 { return true; }

Member Data Documentation

double RapReweightUserHook::pTHatMax
private

Definition at line 99 of file ReweightUserHooks.h.

double RapReweightUserHook::pTHatMin
private

Definition at line 99 of file ReweightUserHooks.h.

double RapReweightUserHook::yCM_power
private

Definition at line 99 of file ReweightUserHooks.h.

TF1 RapReweightUserHook::yCMsigma
private

Definition at line 100 of file ReweightUserHooks.h.

std::string RapReweightUserHook::yCMsigma_func
private

Definition at line 98 of file ReweightUserHooks.h.

double RapReweightUserHook::yLab_power
private

Definition at line 99 of file ReweightUserHooks.h.

TF1 RapReweightUserHook::yLabsigma
private

Definition at line 100 of file ReweightUserHooks.h.

std::string RapReweightUserHook::yLabsigma_func
private

Definition at line 98 of file ReweightUserHooks.h.