00001
00058 #ifndef XAOD_BPHYSHYPOHELPER_H
00059 #define XAOD_BPHYSHYPOHELPER_H
00060
00061 #include "BPhysHelper.h"
00062
00063 #include "TVector3.h"
00064 #include "TLorentzVector.h"
00065 #include "TMatrixTSym.h"
00066
00067 #include <assert.h>
00068
00069
00071 namespace xAOD {
00072
00073 class BPhysHypoHelper : public BPhysHelper {
00074
00075 public:
00076
00077
00086 BPhysHypoHelper(const std::string hypo, const xAOD::Vertex* b) :
00087 BPhysHelper(b),
00088 m_hypo(hypo)
00089 {
00090
00091 }
00092
00093
00103 float mass();
00104 float massErr();
00105
00112 bool setMass (const float val);
00113 bool setMassErr(const float val);
00114
00122 bool setMass(const std::vector<double> trkMasses);
00123
00125
00126
00137 enum tau_type { TAU_CONST_MASS, TAU_INV_MASS };
00138
00151 float tau(const pv_type vertexType = BPhysHelper::PV_MIN_A0,
00152 const tau_type tauType = BPhysHypoHelper::TAU_CONST_MASS);
00153
00154 float tauErr(const pv_type vertexType = BPhysHelper::PV_MIN_A0,
00155 const tau_type tauType = BPhysHypoHelper::TAU_CONST_MASS);
00156
00164 bool setTau(const float val,
00165 const pv_type vertexType = BPhysHelper::PV_MIN_A0,
00166 const tau_type tauType = BPhysHypoHelper::TAU_CONST_MASS);
00167
00168 bool setTauErr(const float val,
00169 const pv_type vertexType = BPhysHelper::PV_MIN_A0,
00170 const tau_type tauType = BPhysHypoHelper::TAU_CONST_MASS);
00171
00173
00174
00182 bool pass() const;
00183
00188 bool setPass(bool passVal);
00189
00190
00191
00193
00194
00195 protected:
00196
00201 std::string m_hypo;
00202
00206 };
00207 }
00208
00209 #endif
00210
00211