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 Member Functions | Private Attributes | Friends
hitfit::Vector_Resolution Class Reference

Calculate and represent resolution for a vector of $p$, pseudorapidity $\eta$, and azimuthal angle $\phi$. An instance of this class holds three Resolution objects, one each for $p$, $\eta$, and $\phi$. In addition, we have a flag to indicate if the momentum resolution is in $p_{T}$ or $p$. This flag is set by appending [/et] at the end of the string. More...

#include <Vector_Resolution.h>

Public Member Functions

const Resolutioneta_res () const
 Return a constant reference to the pseudorapidity resolution. More...
 
double eta_sigma (const Fourvec &v) const
 Calculate the pseudorapidity resolution of a four-momentum. More...
 
const Resolutionp_res () const
 Return a constant reference to the momentum resolution. More...
 
double p_sigma (const Fourvec &v) const
 Calculate the momentum resolution of a four-momentum. More...
 
const Resolutionphi_res () const
 Return a constant reference to the azimuthal angle resolution. More...
 
double phi_sigma (const Fourvec &v) const
 Calculate the azimuthal angle resolution of a four-momentum. More...
 
void smear (Fourvec &v, CLHEP::HepRandomEngine &engine, bool do_smear_dir=false) const
 Smear a four-momentum according to the resolutions. More...
 
bool use_et () const
 Return the use_et flag. More...
 
 Vector_Resolution ()
 Constructor, instantiate an instance of Vector_Resolution with infinite precision. More...
 
 Vector_Resolution (std::string s)
 Constructor, instantiate an instance of Vector_Resolution from a string using format as described in the class description. More...
 
 Vector_Resolution (const Resolution &p_res, const Resolution &eta_res, const Resolution &phi_res, bool use_et=false)
 Constructor, instantiate an instance of Vector_Resolution from three instances of Resolution objects. More...
 

Private Member Functions

void smear_dir (Fourvec &v, CLHEP::HepRandomEngine &engine) const
 Helper function to smear direction. More...
 

Private Attributes

Resolution _eta_res
 
Resolution _p_res
 
Resolution _phi_res
 
bool _use_et
 

Friends

std::ostream & operator<< (std::ostream &s, const Vector_Resolution &r)
 Output stream operator, print the content of this Vector_Resolution object to an output stream. More...
 

Detailed Description

Calculate and represent resolution for a vector of $p$, pseudorapidity $\eta$, and azimuthal angle $\phi$. An instance of this class holds three Resolution objects, one each for $p$, $\eta$, and $\phi$. In addition, we have a flag to indicate if the momentum resolution is in $p_{T}$ or $p$. This flag is set by appending [/et] at the end of the string.

This class is initialized from a string with format
<p-resolution>/<eta-resolution>/<phi-resolution>[/et]

where the resolution formats are given in the documentation for the Resolution class.

Addendum by Haryo Sumowidagdo: When using the inverse flag, only the inverse flag in p-resolution will be used by the fitter to set that flag which says the error in 'p' is really the error on '1/p'. The inverse flag for $\eta$ in eta-resolution and $\phi$ in phi-resolution are not used by the fitter. As usually the angular resolution is of the form

$ \sigma_{\eta,\phi} = \sqrt{\frac{C^{2}}{p^{2}} + \frac{R^{2}}{p} + N^2}$

where $ p $ can be the magnitude of the momentum ( $ p $) or or transverse momentum ( $ p_{T} $), one then can (and should!) use the inverse flag for $ \eta $ and $ \phi $ resolution.

Definition at line 93 of file Vector_Resolution.h.

Constructor & Destructor Documentation

hitfit::Vector_Resolution::Vector_Resolution ( )

Constructor, instantiate an instance of Vector_Resolution with infinite precision.

Definition at line 97 of file Vector_Resolution.cc.

hitfit::Vector_Resolution::Vector_Resolution ( std::string  s)

Constructor, instantiate an instance of Vector_Resolution from a string using format as described in the class description.

Parameters
sString enconding the resolution parameters.

Definition at line 111 of file Vector_Resolution.cc.

hitfit::Vector_Resolution::Vector_Resolution ( const Resolution p_res,
const Resolution eta_res,
const Resolution phi_res,
bool  use_et = false 
)

Constructor, instantiate an instance of Vector_Resolution from three instances of Resolution objects.

Parameters
p_resThe momentum resolution.
eta_resThe pseudorapidity resolution.
phi_resThe azimuthal angle resolution.
use_etIf TRUE then use $p_{T}$ instead of $p$ for momentum resolution.

Definition at line 127 of file Vector_Resolution.cc.

Member Function Documentation

const Resolution & hitfit::Vector_Resolution::eta_res ( ) const

Return a constant reference to the pseudorapidity resolution.

Definition at line 160 of file Vector_Resolution.cc.

double hitfit::Vector_Resolution::eta_sigma ( const Fourvec v) const

Calculate the pseudorapidity resolution of a four-momentum.

Parameters
vThe four-momentum.

Definition at line 254 of file Vector_Resolution.cc.

Referenced by hitfit::Lepjets_Event_Lep::eta_sigma().

const Resolution & hitfit::Vector_Resolution::p_res ( ) const

Return a constant reference to the momentum resolution.

Definition at line 148 of file Vector_Resolution.cc.

double hitfit::Vector_Resolution::p_sigma ( const Fourvec v) const

Calculate the momentum resolution of a four-momentum.

Parameters
vThe four-momentum.

Definition at line 231 of file Vector_Resolution.cc.

Referenced by hitfit::Lepjets_Event_Lep::p_sigma().

const Resolution & hitfit::Vector_Resolution::phi_res ( ) const

Return a constant reference to the azimuthal angle resolution.

Definition at line 172 of file Vector_Resolution.cc.

double hitfit::Vector_Resolution::phi_sigma ( const Fourvec v) const

Calculate the azimuthal angle resolution of a four-momentum.

Parameters
vThe four-momentum.

Definition at line 269 of file Vector_Resolution.cc.

Referenced by hitfit::Lepjets_Event_Lep::phi_sigma().

void hitfit::Vector_Resolution::smear ( Fourvec v,
CLHEP::HepRandomEngine &  engine,
bool  do_smear_dir = false 
) const

Smear a four-momentum according to the resolutions.

Parameters
vThe four-momentum to smear.
engineThe underlying random number generator.
do_smear_dirIf FALSE, only smear the energy. If TRUE, also smear the direction.

Definition at line 353 of file Vector_Resolution.cc.

Referenced by hitfit::Lepjets_Event_Lep::smear().

void hitfit::Vector_Resolution::smear_dir ( Fourvec v,
CLHEP::HepRandomEngine &  engine 
) const
private

Helper function to smear direction.

Parameters
vThe four-momentum to smear.
engineThe underlying random number generator.
bool hitfit::Vector_Resolution::use_et ( ) const

Return the use_et flag.

Definition at line 184 of file Vector_Resolution.cc.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  s,
const Vector_Resolution r 
)
friend

Output stream operator, print the content of this Vector_Resolution object to an output stream.

Parameters
sThe stream to which to write.
rThe instance of Vector_Resolution to be printed.

Definition at line 386 of file Vector_Resolution.cc.

Member Data Documentation

Resolution hitfit::Vector_Resolution::_eta_res
private

The pseudorapidity resolution.

Definition at line 208 of file Vector_Resolution.h.

Resolution hitfit::Vector_Resolution::_p_res
private

The momentum resolution.

Definition at line 203 of file Vector_Resolution.h.

Resolution hitfit::Vector_Resolution::_phi_res
private

The phi resolution.

Definition at line 213 of file Vector_Resolution.h.

bool hitfit::Vector_Resolution::_use_et
private

The momentum resolution.

Definition at line 218 of file Vector_Resolution.h.