Represent an event for kinematic fitting as a collection of four-momenta. Each object is represented as an instance of FE_Obj. There may be an object for a neutrino. If that is the case, it is always at the end of the object list. It is not included in the count returned by nobjs(). But is is included in nobjs_all(). More...
#include <Fourvec_Event.h>
Public Member Functions | |
void | add (const FE_Obj &obj) |
Add an object to the event. The object should not be a neutrino, use the method set_nu_p for that. | |
Fourvec_Event () | |
Default constructor. | |
bool | has_neutrino () const |
Return TRUE is this event contains a neutrino, otherwise returns FALSE. | |
const Fourvec & | kt () const |
Access the four-momentum. | |
double | kt_x_error () const |
Return the x uncertainty in . | |
double | kt_xy_covar () const |
Return the xy covariance in . | |
double | kt_y_error () const |
Return the y uncertainty in . | |
int | nobjs () const |
Return the number of objects in the event not including any neutrinos. | |
int | nobjs_all () const |
Return the number of objects in the event including any neutrinos. | |
const Fourvec & | nu () const |
Access the neutrino four-momentum. | |
const FE_Obj & | obj (std::vector< FE_Obj >::size_type i) const |
Access object at index i, with the convention that the index starts at 0. | |
void | set_kt_error (double kt_x_error, double kt_y_error, double kt_xy_covar) |
Set the uncertainties on . | |
void | set_nu_p (const Fourvec &p) |
Set the neutrino four-momentum to . This method adds a neutrino if there wasn't already one. | |
void | set_obj_p (std::vector< FE_Obj >::size_type i, const Fourvec &p) |
Set the four-momentum of object at index i to . | |
void | set_x_p (const Fourvec &p) |
Set the four-momentum of the object. | |
const Fourvec & | x () const |
Access the four-momentum. | |
Private Attributes | |
bool | _has_neutrino |
Fourvec | _kt |
double | _kt_x_error |
double | _kt_xy_covar |
double | _kt_y_error |
std::vector< FE_Obj > | _objs |
Fourvec | _x |
Friends | |
std::ostream & | operator<< (std::ostream &s, const Fourvec_Event &fe) |
Output stream operator, print the content of this Fourvec_Event object to an output stream. |
Represent an event for kinematic fitting as a collection of four-momenta. Each object is represented as an instance of FE_Obj. There may be an object for a neutrino. If that is the case, it is always at the end of the object list. It is not included in the count returned by nobjs(). But is is included in nobjs_all().
We can also record the other momentum, that will be added into the sum. This can be used to store a missing transverse energy that is not attributed to a neutrino but is instead due to mismeasurement. Typically this will be set to zero in events that have a neutrino, and to the measured missing transverse energy in events that do not.
Definition at line 202 of file Fourvec_Event.h.
hitfit::Fourvec_Event::Fourvec_Event | ( | ) |
Default constructor.
Definition at line 112 of file Fourvec_Event.cc.
: _kt_x_error (0), _kt_y_error (0), _kt_xy_covar (0), _has_neutrino (false) { }
void hitfit::Fourvec_Event::add | ( | const FE_Obj & | obj | ) |
Add an object to the event. The object should not be a neutrino, use the method set_nu_p for that.
obj | The FE_Obj to add. |
Definition at line 268 of file Fourvec_Event.cc.
References _has_neutrino, _kt, _objs, hitfit::FE_Obj::label, hitfit::nu_label, obj(), and hitfit::FE_Obj::p.
bool hitfit::Fourvec_Event::has_neutrino | ( | ) | const |
Return TRUE is this event contains a neutrino, otherwise returns FALSE.
Definition at line 124 of file Fourvec_Event.cc.
References _has_neutrino.
Referenced by hitfit::Fourvec_Constrainer::constrain(), and hitfit::Fourvec_Constraint_Calculator::eval().
{ return _has_neutrino; }
const Fourvec & hitfit::Fourvec_Event::kt | ( | ) | const |
Access the four-momentum.
Definition at line 184 of file Fourvec_Event.cc.
References _kt.
{ return _kt; }
double hitfit::Fourvec_Event::kt_x_error | ( | ) | const |
Return the x uncertainty in .
Definition at line 202 of file Fourvec_Event.cc.
References _kt_x_error.
Referenced by set_kt_error().
{ return _kt_x_error; }
double hitfit::Fourvec_Event::kt_xy_covar | ( | ) | const |
Return the xy covariance in .
Definition at line 226 of file Fourvec_Event.cc.
References _kt_xy_covar.
Referenced by set_kt_error().
{ return _kt_xy_covar; }
double hitfit::Fourvec_Event::kt_y_error | ( | ) | const |
Return the y uncertainty in .
Definition at line 214 of file Fourvec_Event.cc.
References _kt_y_error.
Referenced by set_kt_error().
{ return _kt_y_error; }
int hitfit::Fourvec_Event::nobjs | ( | ) | const |
Return the number of objects in the event not including any neutrinos.
Definition at line 136 of file Fourvec_Event.cc.
References _has_neutrino, and _objs.
Referenced by hitfit::Fourvec_Constrainer::constrain(), and hitfit::Fourvec_Constraint_Calculator::eval().
{ return _objs.size() - (_has_neutrino ? 1 : 0); }
int hitfit::Fourvec_Event::nobjs_all | ( | ) | const |
Return the number of objects in the event including any neutrinos.
Definition at line 149 of file Fourvec_Event.cc.
References _objs.
Referenced by hitfit::Pair_Table::Pair_Table().
{ return _objs.size(); }
const Fourvec & hitfit::Fourvec_Event::nu | ( | ) | const |
Access the neutrino four-momentum.
Definition at line 174 of file Fourvec_Event.cc.
References _has_neutrino, and _objs.
{ assert (_has_neutrino); return _objs.back().p; }
Access object at index i, with the convention that the index starts at 0.
i | The index of the desired object. |
Definition at line 161 of file Fourvec_Event.cc.
References i.
Referenced by add(), and hitfit::Pair_Table::Pair_Table().
void hitfit::Fourvec_Event::set_kt_error | ( | double | kt_x_error, |
double | kt_y_error, | ||
double | kt_xy_covar | ||
) |
Set the uncertainties on .
kt_x_error | The uncertainty in the component of . |
kt_y_error | The uncertainty in the component of . |
kt_xy_covar | The covariance between the and component of . |
Definition at line 344 of file Fourvec_Event.cc.
References _kt_x_error, _kt_xy_covar, _kt_y_error, kt_x_error(), kt_xy_covar(), and kt_y_error().
{ _kt_x_error = kt_x_error; _kt_y_error = kt_y_error; _kt_xy_covar = kt_xy_covar; }
void hitfit::Fourvec_Event::set_nu_p | ( | const Fourvec & | p | ) |
Set the neutrino four-momentum to . This method adds a neutrino if there wasn't already one.
p | The new four-momentum of the neutrino. |
Definition at line 292 of file Fourvec_Event.cc.
References _has_neutrino, _kt, _objs, hitfit::nu_label, and AlCaHLTBitMon_ParallelJobs::p.
Set the four-momentum of object at index i to .
i | The position index of the object to change. |
p | The new four-momentum of object at index i. |
Definition at line 314 of file Fourvec_Event.cc.
References _kt, _objs, i, and AlCaHLTBitMon_ParallelJobs::p.
void hitfit::Fourvec_Event::set_x_p | ( | const Fourvec & | p | ) |
const Fourvec & hitfit::Fourvec_Event::x | ( | ) | const |
Access the four-momentum.
Definition at line 193 of file Fourvec_Event.cc.
References _x.
{ return _x; }
std::ostream& operator<< | ( | std::ostream & | s, |
const Fourvec_Event & | fe | ||
) | [friend] |
Output stream operator, print the content of this Fourvec_Event object to an output stream.
s | The stream to which to write. |
fe | The instance of Fourvec_Event to be printed. |
Definition at line 246 of file Fourvec_Event.cc.
bool hitfit::Fourvec_Event::_has_neutrino [private] |
Flag that a neutrino has been added to the event.
Definition at line 385 of file Fourvec_Event.h.
Referenced by add(), has_neutrino(), nobjs(), nu(), and set_nu_p().
Fourvec hitfit::Fourvec_Event::_kt [private] |
Cached , this should always be equal to the sum of all the object momenta, including .
Definition at line 358 of file Fourvec_Event.h.
Referenced by add(), kt(), hitfit::operator<<(), set_nu_p(), set_obj_p(), and set_x_p().
double hitfit::Fourvec_Event::_kt_x_error [private] |
The uncertainty in the component of .
Definition at line 369 of file Fourvec_Event.h.
Referenced by kt_x_error(), hitfit::operator<<(), and set_kt_error().
double hitfit::Fourvec_Event::_kt_xy_covar [private] |
The covariance between the and component of .
Definition at line 379 of file Fourvec_Event.h.
Referenced by kt_xy_covar(), hitfit::operator<<(), and set_kt_error().
double hitfit::Fourvec_Event::_kt_y_error [private] |
The uncertainty in the component of .
Definition at line 373 of file Fourvec_Event.h.
Referenced by kt_y_error(), hitfit::operator<<(), and set_kt_error().
std::vector<FE_Obj> hitfit::Fourvec_Event::_objs [private] |
The list of contained objects in the event.
Definition at line 350 of file Fourvec_Event.h.
Referenced by add(), nobjs(), nobjs_all(), nu(), hitfit::operator<<(), set_nu_p(), and set_obj_p().
Fourvec hitfit::Fourvec_Event::_x [private] |
Four-momentum of the object.
Definition at line 364 of file Fourvec_Event.h.
Referenced by hitfit::operator<<(), set_x_p(), and x().