CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes
reco::ForwardProton Class Reference

#include <ForwardProton.h>

Public Types

enum  { dimension = 5 }
 parameter dimension More...
 
typedef math::ErrorF< dimension >::type CovarianceMatrix
 dimension-parameter covariance matrix More...
 
enum  Index {
  Index::xi, Index::th_x, Index::vtx_x, Index::th_y,
  Index::vtx_y, Index::num_indices = dimension
}
 indices to the covariance matrix More...
 
enum  LHCSector { LHCSector::invalid = -1, LHCSector::sector45, LHCSector::sector56 }
 LHC sector. More...
 
typedef math::XYZPointF Point
 point in the space More...
 
enum  ReconstructionMethod { ReconstructionMethod::invalid = -1, ReconstructionMethod::singleRP, ReconstructionMethod::multiRP }
 type of reconstruction applied for this track More...
 
typedef math::XYZVectorF Vector
 spatial vector More...
 

Public Member Functions

float chi2 () const
 chi-squared of the fit More...
 
const CTPPSLocalTrackLiteRefVectorcontributingLocalTracks () const
 list of RP tracks that contributed to this global track More...
 
double error (Index i) const
 return the uncertainty on a given component More...
 
 ForwardProton ()
 default constructor More...
 
 ForwardProton (double chi2, double ndof, const Point &vtx, const Vector &momentum, float xi, const CovarianceMatrix &cov, ReconstructionMethod method, const CTPPSLocalTrackLiteRefVector &local_tracks, bool valid, const float time=0., const float time_err=0.)
 constructor from refit parameters, fitted vertex and momentum, and longitudinal fractional momentum loss More...
 
LHCSector lhcSector () const
 
ReconstructionMethod method () const
 reconstruction method for this track More...
 
const Vectormomentum () const
 fitted track direction More...
 
unsigned int ndof () const
 number of degrees of freedom for the track fit More...
 
float normalizedChi2 () const
 chi-squared divided by ndof (or chi-squared * 1e6 if ndof is zero) More...
 
float p () const
 scalar norm of fitted track momentum More...
 
float pt () const
 scalar fitted track transverse momentum More...
 
float px () const
 fitted track momentum horizontal component More...
 
float py () const
 fitted track momentum vertical component More...
 
float pz () const
 fitted track momentum longitudinal component More...
 
void setContributingLocalTracks (const CTPPSLocalTrackLiteRefVector &v)
 store the list of RP tracks that contributed to this global track More...
 
void setMethod (const ReconstructionMethod &method)
 set the reconstruction method for this track More...
 
void setTime (float time)
 
void setTimeError (float time_err)
 
void setValidFit (bool valid=true)
 set the flag for the fit validity More...
 
float t () const
 four-momentum transfer squared, in GeV^2 More...
 
float thetaX () const
 vertical scattering angle, in rad More...
 
float thetaXError () const
 uncertainty on fitted momentum horizontal angle opening More...
 
float thetaY () const
 horizontal scattering angle, in rad More...
 
float thetaYError () const
 uncertainty on fitted momentum vertical angle opening More...
 
float time () const
 time of proton arrival at forward stations More...
 
float timeError () const
 uncertainty on time of proton arrival at forward stations More...
 
bool validFit () const
 flag for the fit validity More...
 
const Pointvertex () const
 fitted vertex position More...
 
float vx () const
 fitted vertex horizontal position More...
 
float vxError () const
 uncertainty on fitted vertex horizontal position More...
 
float vy () const
 fitted vertex vertical position More...
 
float vyError () const
 uncertainty on fitted vertex vertical position More...
 
float vz () const
 vertex longitudinal position (conventionally set to 0) More...
 
float xi () const
 longitudinal fractional momentum loss More...
 
float xiError () const
 uncertainty on longitudinal fractional momentum loss More...
 

Static Public Member Functions

static float calculateT (double beam_mom, double proton_mom, double theta)
 compute the squared four-momentum transfer from incident and scattered momenta, and angular information More...
 
static float mass ()
 proton mass in GeV More...
 

Private Attributes

float chi2_
 chi-squared More...
 
CTPPSLocalTrackLiteRefVector contributing_local_tracks_
 collection of references to tracks contributing to this object definition More...
 
CovarianceMatrix covariance_
 5x5 covariance matrix More...
 
ReconstructionMethod method_
 type of reconstruction applied More...
 
Vector momentum_
 reconstructed momentum vector More...
 
unsigned int ndof_
 number of degrees of freedom More...
 
float time_
 reconstructed time at forward detectors More...
 
float time_err_
 uncertainty on reconstructed time at forward detectors More...
 
bool valid_fit_
 fit validity flag More...
 
Point vertex_
 reconstructed vertex position at z/s = 0 More...
 
float xi_
 fractional momentum loss (positive for diffractive protons) More...
 

Static Private Attributes

static float mass_ = 0.938272046
 proton mass, GeV More...
 
static float massSquared_ = 0.88035443
 proton mass squared, GeV^2 More...
 

Detailed Description

Definition at line 20 of file ForwardProton.h.

Member Typedef Documentation

dimension-parameter covariance matrix

Definition at line 28 of file ForwardProton.h.

point in the space

Definition at line 32 of file ForwardProton.h.

spatial vector

Definition at line 30 of file ForwardProton.h.

Member Enumeration Documentation

anonymous enum

parameter dimension

Enumerator
dimension 

Definition at line 24 of file ForwardProton.h.

indices to the covariance matrix

Enumerator
xi 
th_x 
vtx_x 
th_y 
vtx_y 
num_indices 

Definition at line 26 of file ForwardProton.h.

26 { xi, th_x, vtx_x, th_y, vtx_y, num_indices = dimension };
float xi() const
longitudinal fractional momentum loss
Definition: ForwardProton.h:76

LHC sector.

Enumerator
invalid 
sector45 
sector56 

Definition at line 133 of file ForwardProton.h.

133 { invalid = -1, sector45, sector56 };

type of reconstruction applied for this track

Enumerator
invalid 
singleRP 
multiRP 

Definition at line 34 of file ForwardProton.h.

Constructor & Destructor Documentation

ForwardProton::ForwardProton ( )

default constructor

Definition at line 13 of file ForwardProton.cc.

13  :
14  time_( 0. ), time_err_( 0. ), xi_( 0. ), chi2_( 0. ), ndof_( 0 ),
16 {}
float chi2_
chi-squared
float time_err_
uncertainty on reconstructed time at forward detectors
float xi_
fractional momentum loss (positive for diffractive protons)
unsigned int ndof_
number of degrees of freedom
float time_
reconstructed time at forward detectors
ReconstructionMethod method_
type of reconstruction applied
bool valid_fit_
fit validity flag
ForwardProton::ForwardProton ( double  chi2,
double  ndof,
const Point vtx,
const Vector momentum,
float  xi,
const CovarianceMatrix cov,
ReconstructionMethod  method,
const CTPPSLocalTrackLiteRefVector local_tracks,
bool  valid,
const float  time = 0.,
const float  time_err = 0. 
)

constructor from refit parameters, fitted vertex and momentum, and longitudinal fractional momentum loss

Definition at line 18 of file ForwardProton.cc.

21  :
22  vertex_( vtx ), momentum_( momentum ),
23  time_( time ), time_err_( time_err ), xi_( xi ),
24  covariance_( cov ), chi2_( chi2 ), ndof_( ndof ),
25  valid_fit_( valid ), method_( method ), contributing_local_tracks_( local_tracks )
26 {}
float chi2_
chi-squared
float time_err_
uncertainty on reconstructed time at forward detectors
CovarianceMatrix covariance_
5x5 covariance matrix
float chi2() const
chi-squared of the fit
Definition: ForwardProton.h:67
float xi_
fractional momentum loss (positive for diffractive protons)
Point vertex_
reconstructed vertex position at z/s = 0
unsigned int ndof_
number of degrees of freedom
float xi() const
longitudinal fractional momentum loss
Definition: ForwardProton.h:76
Vector momentum_
reconstructed momentum vector
float time_
reconstructed time at forward detectors
ReconstructionMethod method() const
reconstruction method for this track
ReconstructionMethod method_
type of reconstruction applied
bool valid_fit_
fit validity flag
CTPPSLocalTrackLiteRefVector contributing_local_tracks_
collection of references to tracks contributing to this object definition
float time() const
time of proton arrival at forward stations
unsigned int ndof() const
number of degrees of freedom for the track fit
Definition: ForwardProton.h:69

Member Function Documentation

float ForwardProton::calculateT ( double  beam_mom,
double  proton_mom,
double  theta 
)
static

compute the squared four-momentum transfer from incident and scattered momenta, and angular information

Definition at line 29 of file ForwardProton.cc.

References massSquared_, S(), funct::sin(), mathSSE::sqrt(), and cscNeutronWriter_cfi::t0.

Referenced by CTPPSProtonReconstructionSimulationValidator::fillPlots(), mass(), and t().

30 {
31  const double t0 = 2.*( massSquared_+beam_mom*proton_mom-sqrt( ( massSquared_+beam_mom*beam_mom ) * ( massSquared_+proton_mom*proton_mom ) ) );
32  const double S = sin(theta/2.);
33  return t0 - 4. * beam_mom * proton_mom * S*S;
34 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Theta< T > theta() const
T sqrt(T t)
Definition: SSEVec.h:18
double S(const TLorentzVector &, const TLorentzVector &)
Definition: Particle.cc:99
static float massSquared_
proton mass squared, GeV^2
float reco::ForwardProton::chi2 ( void  ) const
inline

chi-squared of the fit

Definition at line 67 of file ForwardProton.h.

References chi2_.

Referenced by CTPPSProtonReconstructionPlotter::MultiRPPlots::fill().

67 { return chi2_; }
float chi2_
chi-squared
const CTPPSLocalTrackLiteRefVector& reco::ForwardProton::contributingLocalTracks ( ) const
inline

list of RP tracks that contributed to this global track

Definition at line 130 of file ForwardProton.h.

References contributing_local_tracks_.

Referenced by CTPPSProtonReconstructionPlotter::analyze(), CTPPSProtonReconstructionPlotter::CalculateTimingTrackingDistance(), and CTPPSProtonReconstructionPlotter::MultiRPPlots::fill().

130 { return contributing_local_tracks_; }
CTPPSLocalTrackLiteRefVector contributing_local_tracks_
collection of references to tracks contributing to this object definition
double reco::ForwardProton::error ( Index  i) const
inline

return the uncertainty on a given component

Definition at line 85 of file ForwardProton.h.

References covariance_, and mathSSE::sqrt().

Referenced by Page1Parser.Page1Parser::check_for_whole_start_tag(), thetaXError(), thetaYError(), vxError(), vyError(), and xiError().

85  {
86  return sqrt( covariance_( (unsigned int)i, (unsigned int)i ) );
87  }
CovarianceMatrix covariance_
5x5 covariance matrix
T sqrt(T t)
Definition: SSEVec.h:18
LHCSector reco::ForwardProton::lhcSector ( ) const
inline

Definition at line 134 of file ForwardProton.h.

References invalid, pz(), sector45, and sector56.

135  {
136  if ( pz() < 0. ) return LHCSector::sector56;
137  if ( pz() > 0. ) return LHCSector::sector45;
138  return LHCSector::invalid;
139  }
float pz() const
fitted track momentum longitudinal component
Definition: ForwardProton.h:64
static float reco::ForwardProton::mass ( )
inlinestatic

proton mass in GeV

Definition at line 101 of file ForwardProton.h.

References calculateT(), mass_, t(), and theta().

Referenced by Particle.Particle::__str__(), and DiObject.DiMuon::__str__().

101 { return mass_; }
static float mass_
proton mass, GeV
ReconstructionMethod reco::ForwardProton::method ( ) const
inline

reconstruction method for this track

Definition at line 125 of file ForwardProton.h.

References method_.

Referenced by setMethod().

125 { return method_; }
ReconstructionMethod method_
type of reconstruction applied
const Vector& reco::ForwardProton::momentum ( ) const
inline

fitted track direction

Definition at line 54 of file ForwardProton.h.

References momentum_.

54 { return momentum_; }
Vector momentum_
reconstructed momentum vector
unsigned int reco::ForwardProton::ndof ( ) const
inline

number of degrees of freedom for the track fit

Definition at line 69 of file ForwardProton.h.

References ndof_.

Referenced by CTPPSProtonReconstructionPlotter::MultiRPPlots::fill().

69 { return ndof_; }
unsigned int ndof_
number of degrees of freedom
float reco::ForwardProton::normalizedChi2 ( ) const
inline

chi-squared divided by ndof (or chi-squared * 1e6 if ndof is zero)

Definition at line 71 of file ForwardProton.h.

References chi2_, and ndof_.

Referenced by CTPPSProtonReconstructionPlotter::MultiRPPlots::fill().

71  {
72  return ( ndof_ != 0 ) ? chi2_ / ndof_ : chi2_ * 1.e6;
73  }
float chi2_
chi-squared
unsigned int ndof_
number of degrees of freedom
float reco::ForwardProton::p ( ) const
inline

scalar norm of fitted track momentum

Definition at line 56 of file ForwardProton.h.

References momentum_.

Referenced by Electron.Electron::ptErr(), t(), thetaX(), and thetaY().

56 { return momentum_.r(); }
Vector momentum_
reconstructed momentum vector
float reco::ForwardProton::pt ( ) const
inline
float reco::ForwardProton::px ( ) const
inline

fitted track momentum horizontal component

Definition at line 60 of file ForwardProton.h.

References momentum_.

Referenced by thetaX().

60 { return momentum_.x(); }
Vector momentum_
reconstructed momentum vector
float reco::ForwardProton::py ( ) const
inline

fitted track momentum vertical component

Definition at line 62 of file ForwardProton.h.

References momentum_.

Referenced by thetaY().

62 { return momentum_.y(); }
Vector momentum_
reconstructed momentum vector
float reco::ForwardProton::pz ( ) const
inline

fitted track momentum longitudinal component

Definition at line 64 of file ForwardProton.h.

References momentum_.

Referenced by lhcSector().

64 { return momentum_.z(); }
Vector momentum_
reconstructed momentum vector
void reco::ForwardProton::setContributingLocalTracks ( const CTPPSLocalTrackLiteRefVector v)
inline

store the list of RP tracks that contributed to this global track

Definition at line 128 of file ForwardProton.h.

References contributing_local_tracks_, and findQualityFiles::v.

Referenced by CTPPSProtonProducer::produce().

CTPPSLocalTrackLiteRefVector contributing_local_tracks_
collection of references to tracks contributing to this object definition
void reco::ForwardProton::setMethod ( const ReconstructionMethod method)
inline

set the reconstruction method for this track

Definition at line 123 of file ForwardProton.h.

References method(), and method_.

123 { method_ = method; }
ReconstructionMethod method() const
reconstruction method for this track
ReconstructionMethod method_
type of reconstruction applied
void reco::ForwardProton::setTime ( float  time)
inline

Definition at line 111 of file ForwardProton.h.

References time(), and time_.

Referenced by CTPPSProtonProducer::produce().

111 { time_ = time; }
float time_
reconstructed time at forward detectors
float time() const
time of proton arrival at forward stations
void reco::ForwardProton::setTimeError ( float  time_err)
inline

Definition at line 115 of file ForwardProton.h.

References time_err_.

Referenced by CTPPSProtonProducer::produce().

115 { time_err_ = time_err; }
float time_err_
uncertainty on reconstructed time at forward detectors
void reco::ForwardProton::setValidFit ( bool  valid = true)
inline

set the flag for the fit validity

Definition at line 118 of file ForwardProton.h.

References valid_fit_.

118 { valid_fit_ = valid; }
bool valid_fit_
fit validity flag
float ForwardProton::t ( ) const

four-momentum transfer squared, in GeV^2

Definition at line 37 of file ForwardProton.cc.

References calculateT(), p(), theta(), thetaX(), thetaY(), and xi().

Referenced by CTPPSProtonReconstructionPlotter::MultiRPPlots::fill(), CTPPSProtonReconstructionSimulationValidator::fillPlots(), and mass().

38 {
39  const double beam_mom = p() / (1.-xi());
40  const double theta = std::hypot( thetaX(), thetaY() );
41  return calculateT( beam_mom, p(), theta );
42 }
static float calculateT(double beam_mom, double proton_mom, double theta)
compute the squared four-momentum transfer from incident and scattered momenta, and angular informati...
Geom::Theta< T > theta() const
float p() const
scalar norm of fitted track momentum
Definition: ForwardProton.h:56
float thetaX() const
vertical scattering angle, in rad
Definition: ForwardProton.h:78
float xi() const
longitudinal fractional momentum loss
Definition: ForwardProton.h:76
float thetaY() const
horizontal scattering angle, in rad
Definition: ForwardProton.h:80
float reco::ForwardProton::thetaX ( ) const
inline

vertical scattering angle, in rad

Definition at line 78 of file ForwardProton.h.

References p(), and px().

Referenced by CTPPSProtonReconstructionPlotter::MultiRPPlots::fill(), CTPPSProtonReconstructionSimulationValidator::fillPlots(), and t().

78 { return px() / p(); }
float p() const
scalar norm of fitted track momentum
Definition: ForwardProton.h:56
float px() const
fitted track momentum horizontal component
Definition: ForwardProton.h:60
float reco::ForwardProton::thetaXError ( ) const
inline

uncertainty on fitted momentum horizontal angle opening

Definition at line 92 of file ForwardProton.h.

References error(), and th_x.

92 { return error( Index::th_x ); }
double error(Index i) const
return the uncertainty on a given component
Definition: ForwardProton.h:85
float reco::ForwardProton::thetaY ( ) const
inline

horizontal scattering angle, in rad

Definition at line 80 of file ForwardProton.h.

References p(), and py().

Referenced by CTPPSProtonReconstructionPlotter::SingleRPPlots::fill(), CTPPSProtonReconstructionPlotter::MultiRPPlots::fill(), CTPPSProtonReconstructionPlotter::SingleMultiCorrelationPlots::fill(), CTPPSProtonReconstructionPlotter::ArmCorrelationPlots::fill(), CTPPSProtonReconstructionSimulationValidator::fillPlots(), and t().

80 { return py() / p(); }
float py() const
fitted track momentum vertical component
Definition: ForwardProton.h:62
float p() const
scalar norm of fitted track momentum
Definition: ForwardProton.h:56
float reco::ForwardProton::thetaYError ( ) const
inline

uncertainty on fitted momentum vertical angle opening

Definition at line 94 of file ForwardProton.h.

References error(), and th_y.

94 { return error( Index::th_y ); }
double error(Index i) const
return the uncertainty on a given component
Definition: ForwardProton.h:85
float reco::ForwardProton::time ( ) const
inline

time of proton arrival at forward stations

Definition at line 110 of file ForwardProton.h.

References time_.

Referenced by CTPPSProtonReconstructionPlotter::MultiRPPlots::fill(), and setTime().

110 { return time_; }
float time_
reconstructed time at forward detectors
float reco::ForwardProton::timeError ( ) const
inline

uncertainty on time of proton arrival at forward stations

Definition at line 114 of file ForwardProton.h.

References time_err_.

114 { return time_err_; }
float time_err_
uncertainty on reconstructed time at forward detectors
bool reco::ForwardProton::validFit ( ) const
inline
const Point& reco::ForwardProton::vertex ( ) const
inline

fitted vertex position

Definition at line 46 of file ForwardProton.h.

References vertex_.

Referenced by Tau.Tau::dxy(), CTPPSProtonReconstructionPlotter::MultiRPPlots::fill(), and CTPPSProtonReconstructionSimulationValidator::fillPlots().

46 { return vertex_; }
Point vertex_
reconstructed vertex position at z/s = 0
float reco::ForwardProton::vx ( ) const
inline

fitted vertex horizontal position

Definition at line 48 of file ForwardProton.h.

References vertex_.

48 { return vertex_.x(); }
Point vertex_
reconstructed vertex position at z/s = 0
float reco::ForwardProton::vxError ( ) const
inline

uncertainty on fitted vertex horizontal position

Definition at line 96 of file ForwardProton.h.

References error(), and vtx_x.

96 { return error( Index::vtx_x ); }
double error(Index i) const
return the uncertainty on a given component
Definition: ForwardProton.h:85
float reco::ForwardProton::vy ( ) const
inline

fitted vertex vertical position

Definition at line 50 of file ForwardProton.h.

References vertex_.

50 { return vertex_.y(); }
Point vertex_
reconstructed vertex position at z/s = 0
float reco::ForwardProton::vyError ( ) const
inline

uncertainty on fitted vertex vertical position

Definition at line 98 of file ForwardProton.h.

References error(), and vtx_y.

98 { return error( Index::vtx_y ); }
double error(Index i) const
return the uncertainty on a given component
Definition: ForwardProton.h:85
float reco::ForwardProton::vz ( ) const
inline

vertex longitudinal position (conventionally set to 0)

Definition at line 52 of file ForwardProton.h.

References vertex_.

52 { return vertex_.z(); }
Point vertex_
reconstructed vertex position at z/s = 0
float reco::ForwardProton::xi ( ) const
inline
float reco::ForwardProton::xiError ( ) const
inline

uncertainty on longitudinal fractional momentum loss

Definition at line 90 of file ForwardProton.h.

References error(), and xi.

90 { return error( Index::xi ); }
double error(Index i) const
return the uncertainty on a given component
Definition: ForwardProton.h:85

Member Data Documentation

float reco::ForwardProton::chi2_
private

chi-squared

Definition at line 158 of file ForwardProton.h.

Referenced by chi2(), and normalizedChi2().

CTPPSLocalTrackLiteRefVector reco::ForwardProton::contributing_local_tracks_
private

collection of references to tracks contributing to this object definition

Definition at line 166 of file ForwardProton.h.

Referenced by contributingLocalTracks(), and setContributingLocalTracks().

CovarianceMatrix reco::ForwardProton::covariance_
private

5x5 covariance matrix

Definition at line 156 of file ForwardProton.h.

Referenced by error().

float reco::ForwardProton::mass_ = 0.938272046
staticprivate

proton mass, GeV

Definition at line 142 of file ForwardProton.h.

Referenced by mass().

float reco::ForwardProton::massSquared_ = 0.88035443
staticprivate

proton mass squared, GeV^2

Definition at line 143 of file ForwardProton.h.

Referenced by calculateT().

ReconstructionMethod reco::ForwardProton::method_
private

type of reconstruction applied

Definition at line 164 of file ForwardProton.h.

Referenced by method(), and setMethod().

Vector reco::ForwardProton::momentum_
private

reconstructed momentum vector

Definition at line 148 of file ForwardProton.h.

Referenced by momentum(), p(), pt(), px(), py(), and pz().

unsigned int reco::ForwardProton::ndof_
private

number of degrees of freedom

Definition at line 160 of file ForwardProton.h.

Referenced by ndof(), and normalizedChi2().

float reco::ForwardProton::time_
private

reconstructed time at forward detectors

Definition at line 150 of file ForwardProton.h.

Referenced by setTime(), and time().

float reco::ForwardProton::time_err_
private

uncertainty on reconstructed time at forward detectors

Definition at line 152 of file ForwardProton.h.

Referenced by setTimeError(), and timeError().

bool reco::ForwardProton::valid_fit_
private

fit validity flag

Definition at line 162 of file ForwardProton.h.

Referenced by setValidFit(), and validFit().

Point reco::ForwardProton::vertex_
private

reconstructed vertex position at z/s = 0

Definition at line 146 of file ForwardProton.h.

Referenced by vertex(), vx(), vy(), and vz().

float reco::ForwardProton::xi_
private

fractional momentum loss (positive for diffractive protons)

Definition at line 154 of file ForwardProton.h.

Referenced by xi().