: B-physcis xAOD helpers. More...
#include "BPhysHelper.h"
#include "TVector3.h"
#include "TLorentzVector.h"
#include "TMatrixTSym.h"
#include <assert.h>
Go to the source code of this file.
Classes | |
class | xAOD::BPhysHypoHelper |
Namespaces | |
namespace | xAOD |
Namespace holding all the xAOD EDM classes. |
: B-physcis xAOD helpers.
This class provides interface to the basic B-physics augmemtation which depends on the invariant mass hypothesis, i.e.:
It is derived from the BPhysHelper which means that it also provides access to all basic hypothesis-independent decorations (reffited tracks, lxy, etc).
The basic idea is that the analysis code augments the vertex with hypothesis-independent variables (e.g. lxy, ptError, etc) and also variables dependent on the given mass hypothesis (e.g. mass). Since one vertex can be treated as candidate for more than one decay hypothesis (e.g. in case of Bd->JpsiK* and Bs->JpsiPhi, or LamB->JPsiLam and Bd->Jpsi Ks), the hypothesis-dependent augmentation variables have prefix to distinguish between different hypotheses. These prefixes are defined by user when creating the BPhysHypoHelper:
xAOD::BPhysHypoHelper jpsi("jpsi", vtx); // "jpsi" is the name of the hypothesis
To check if the vertex has been augmented with variables for a given hypothesis, call method xAOD::BPhysHypoHelper::isValidHypo()
Usage example:
void myFunction(xAOD::Vertex* vtx) { // Let "vtx" be some xAOD::Vertex created by the b-physics software // We gain access to its augmentations through the helper class: xAOD::BPhysHypoHelper jpsi("jpsi", vtx); // "jpsi" is the name of the hypothesis // access to mehods inherited from the BPhysHelper: std::cout << "Refitted pT of the 1st track: "; if(jpsi.nRefTrks()>0) { std::cout << jpsi.refTrk(0).Pt(); } std::cout << std::endl; // access to the hypothesis-specific variables if( !jpsi.isValidHypo() ) { std::cout << "The vertex is not jpsi" << std::endl; return; } else { std::cout << "Jpsi invariant mass" << jpsi.m() << std::endl; } }