 |
Belle II Software
release-05-02-19
|
13 #include <analysis/VertexFitting/TreeFitter/Constraint.h>
14 #include <analysis/VertexFitting/TreeFitter/Projection.h>
15 #include <analysis/VertexFitting/TreeFitter/ErrCode.h>
16 #include <analysis/VertexFitting/TreeFitter/ConstraintConfiguration.h>
19 #include <analysis/dataobjects/Particle.h>
21 namespace TreeFitter {
24 class ConstraintConfiguration;
63 typedef std::vector< std::pair<const ParticleBase*, int> >
indexmap;
69 bool forceFitAll =
false
88 virtual int dim()
const = 0 ;
130 virtual int type()
const = 0 ;
133 virtual int posIndex()
const {
return -1 ; }
139 virtual int momIndex()
const {
return -1 ; }
143 virtual bool hasEnergy()
const {
return false ; }
146 virtual bool hasPosition()
const {
return false ; }
virtual ErrCode projectConstraint(Constraint::Type, const FitParams &, Projection &) const
project constraint.
virtual ErrCode projectMassConstraint(const FitParams &, Projection &) const
project mass constraint abstract
virtual int dim() const =0
get dimension of constraint
const std::string & name() const
get name of the particle
static ParticleBase * createParticle(Belle2::Particle *particle, const ParticleBase *mother, const ConstraintConfiguration &config, bool forceFitAll=false)
create the according treeFitter particle obj for a basf2 particle type
void setMother(const ParticleBase *m)
set mother
virtual int nFinalChargedCandidates() const
number of charged candidates
const ParticleBase * locate(Belle2::Particle *particle) const
get particle base from basf2 particle
ParticleBase(Belle2::Particle *particle, const ParticleBase *mother, const ConstraintConfiguration *config)
default constructor
virtual ErrCode projectMassConstraintDaughters(const FitParams &, Projection &) const
project mass constraint using the parameters of the daughters
abstract errorocode be aware that the default is succes
virtual int type() const =0
get particle type
double pdgMass() const
get pdg mass
base class for all particles
virtual double chiSquare(const FitParams &) const
get chi2
virtual ErrCode initParticleWithMother(FitParams &)=0
init particle that does need a mother vertex
Class to store and manage fitparams (statevector)
int eneIndex() const
get energy index
virtual ~ParticleBase()
destructor, actually does something
void setIndex(int i)
set Index (in statevector)
ErrCode initTau(FitParams &par) const
initialises tau as a length
void setParticle(Belle2::Particle *particle)
set the relation to basf2 particle type
static double bFieldOverC()
Bz/c
const double m_pdgMass
pdg mass
double pdgWidth() const
get pdg width
virtual void addToConstraintList(constraintlist &alist, int depth) const =0
add to constraint list
static bool isAResonance(Belle2::Particle *particle)
controls if a particle is treated as a resonance(lifetime=0) or a particle that has a finite lifetime...
static ParticleBase * createOrigin(Belle2::Particle *daughter, const ConstraintConfiguration &config, bool forceFitAll)
create a custom origin particle or a beamspot
Type
type of constraints the order of these constraints is important: it is the order in which they are ap...
int index() const
get index
int charge() const
get charge
std::vector< std::pair< const ParticleBase *, int > > indexmap
alias
virtual ErrCode projectGeoConstraint(const FitParams &, Projection &) const
project geometrical constraint
virtual int tauIndex() const
get tau index
virtual bool hasPosition() const
get false
virtual int posIndex() const
get vertex index (in statevector!)
std::vector< Constraint > constraintlist
alias
virtual ErrCode projectMassConstraintParticle(const FitParams &, Projection &) const
project mass constraint using the particles parameters
virtual bool hasEnergy() const
get momentum dimension
bool m_isStronglyDecayingResonance
decay length less than 1 micron
virtual ErrCode initCovariance(FitParams &) const
init covariance matrix
virtual std::string parname(int index) const
get name of parameter i
Class to store reconstructed particles.
virtual void removeDaughter(const ParticleBase *pb)
remove daughter
const ParticleBase * m_mother
motherparticle
Belle2::Particle * m_particle
pointer to framework type
const ParticleBase * mother() const
getMother() / hasMother()
virtual int momIndex() const
get momentum index
virtual void retrieveIndexMap(indexmap &anindexmap) const
get index map
virtual void forceP4Sum(FitParams &) const
force p4 sum conservation all allong the tree
void collectVertexDaughters(std::vector< ParticleBase * > &particles, int posindex)
get vertex daughters
double m_pdgWidth
particle width
double pdgLifeTime() const
get pdg lifetime
virtual ErrCode initMotherlessParticle(FitParams &)=0
init particle that does not need a mother vertex
virtual void updateIndex(int &offset)
this sets the index for momentum, position, etc.
const ConstraintConfiguration * m_config
has all the constraint config
TFParticleType
particle types
std::vector< ParticleBase * > ParticleContainer
just an alias
Belle2::Particle * particle() const
get basf2 particle
class to store the projected residuals and the corresponding jacobian as well as the covariance matri...
double pdgTime() const
get Tau
std::vector< ParticleBase * > m_daughters
daughter container
const double m_pdgLifeTime
lifetime in cm
virtual ParticleBase * addDaughter(Belle2::Particle *, const ConstraintConfiguration &config, bool forceFitAll=false)
add daughter