Belle II Software  release-08-01-10
Composite Class Reference

A class for composite particles, where the daughters must be ignored by the fitter. More...

#include <Composite.h>

Inheritance diagram for Composite:
Collaboration diagram for Composite:

Public Types

enum  TFParticleType {
  kInteractionPoint ,
  kOrigin ,
  kComposite ,
  kRecoResonance ,
  kInternalParticle ,
  kRecoTrack ,
  kResonance ,
  kRecoPhoton ,
  kRecoKlong ,
  kMissingParticle
}
 particle types

 
typedef std::vector< Constraintconstraintlist
 alias
 
typedef std::vector< std::pair< const ParticleBase *, int > > indexmap
 alias
 

Public Member Functions

 Composite (Belle2::Particle *bc, const ParticleBase *mother, const ConstraintConfiguration &config, bool massconstraint=false)
 constructor
 
virtual ~Composite ()
 destructor
 
virtual ErrCode initParticleWithMother (FitParams &fitparams) override
 init particle in case it has a mother
 
virtual ErrCode initMotherlessParticle (FitParams &fitparams) override
 init particle in case it has no mother
 
void updateParams ()
 update changed params
 
ErrCode projectComposite (const FitParams &fitparams, Projection &p) const
 project this particle constraint

 
int dimMeas () const
 dimension of the measurement vector
 
virtual int dim () const override
 get dimension of constraint
 
int dimM () const
 get dimension of measurement
 
virtual ErrCode projectConstraint (Constraint::Type, const FitParams &, Projection &) const override
 project this constraint
 
virtual int type () const override
 get ype
 
virtual int posIndex () const override
 get position index in statevectof x,y,z,tau,px,py,pz
 
virtual int tauIndex () const override
 get tau (lifetime) index in statevector
 
virtual int momIndex () const override
 get momentum index in statevector
 
virtual bool hasEnergy () const override
 return of this constraint/particle has an energy component
 
virtual bool hasPosition () const override
 return true FIXME
 
virtual void addToConstraintList (constraintlist &alist, int depth) const override
 add this to list
 
virtual ErrCode initCovariance (FitParams &) const
 init covariance matrix
 
virtual void updateIndex (int &offset)
 this sets the index for momentum, position, etc. More...
 
virtual std::string parname (int index) const
 get name of parameter i
 
const ParticleBaselocate (Belle2::Particle *particle) const
 get particle base from basf2 particle
 
Belle2::Particleparticle () const
 get basf2 particle

 
int index () const
 get index

 
const ParticleBasemother () const
 getMother() / hasMother()
 
virtual ErrCode projectGeoConstraint (const FitParams &, Projection &) const
 project geometrical constraint More...
 
virtual ErrCode projectMassConstraintParticle (const FitParams &, Projection &) const
 project mass constraint using the particles parameters More...
 
virtual ErrCode projectMassConstraintDaughters (const FitParams &, Projection &) const
 project mass constraint using the parameters of the daughters More...
 
virtual ErrCode projectMassConstraint (const FitParams &, Projection &) const
 project mass constraint abstract
 
virtual void forceP4Sum (FitParams &) const
 force p4 sum conservation all along the tree
 
int eneIndex () const
 get energy index

 
virtual double chiSquare (const FitParams &) const
 get chi2
 
int charge () const
 get charge
 
virtual ParticleBaseaddDaughter (Belle2::Particle *, const ConstraintConfiguration &config, bool forceFitAll=false)
 add daughter

 
virtual void removeDaughter (const ParticleBase *pb)
 remove daughter
 
virtual void retrieveIndexMap (indexmap &anindexmap) const
 get index map

 
void setMother (const ParticleBase *m)
 set mother

 
void collectVertexDaughters (std::vector< ParticleBase * > &particles, int posindex)
 get vertex daughters
 
virtual int nFinalChargedCandidates () const
 number of charged candidates
 

Static Public Member Functions

static ParticleBasecreateParticle (Belle2::Particle *particle, const ParticleBase *mother, const ConstraintConfiguration &config, bool forceFitAll=false)
 create the according treeFitter particle obj for a basf2 particle type

 
static ParticleBasecreateOrigin (Belle2::Particle *daughter, const ConstraintConfiguration &config, bool forceFitAll)
 create a custom origin particle or a beamspot
 

Protected Types

typedef std::vector< ParticleBase * > ParticleContainer
 just an alias
 

Protected Member Functions

ErrCode initTau (FitParams &par) const
 initialises tau as a length

 
void setIndex (int i)
 set Index (in statevector)
 

Static Protected Member Functions

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. More...
 

Protected Attributes

Eigen::Matrix< double, 7, 1 > m_params
 column vector to store the measurement
 
Eigen::Matrix< double, -1, -1, 0, 7, 7 > m_covariance
 only lower triangle filled!
 
bool m_hasEnergy
 flag
 
bool m_massconstraint
 flag
 
Belle2::Particlem_particle
 pointer to framework type

 
const ParticleBasem_mother
 motherparticle
 
std::vector< ParticleBase * > m_daughters
 daughter container

 
bool m_isStronglyDecayingResonance
 decay length less than 1 micron

 
const ConstraintConfigurationm_config
 has all the constraint config
 

Private Attributes

int m_index
 index
 
std::string m_name
 name

 

Detailed Description

A class for composite particles, where the daughters must be ignored by the fitter.

Currently used for bremsstrahlung correction and dummy invisibles

Definition at line 17 of file Composite.h.

Member Function Documentation

◆ isAResonance()

bool isAResonance ( Belle2::Particle particle)
staticprotectedinherited

controls if a particle is treated as a resonance(lifetime=0) or a particle that has a finite lifetime.

A finite life time means it will register a geo constraint for this particle

Definition at line 134 of file ParticleBase.cc.

135  {
136  bool rc = false ;
137  const int pdgcode = std::abs(particle->getPDGCode());
138 
139  if (pdgcode && !(particle->getMdstArrayIndex())) {
140  switch (pdgcode) {
141  case 22: //photon conversion
142  rc = false;
143  break ;
144 
145  case -11: //bremsstrahlung
146  case 11:
147  rc = true ;
148  break ;
149  default: //everything with boosted flight length less than 1 micrometer
150  rc = (pdgcode && particle->getPDGLifetime() < 1e-14);
151  }
152  }
153  return rc ;
154  }
unsigned getMdstArrayIndex(void) const
Returns 0-based index of MDST store array object (0 for composite particles)
Definition: Particle.h:459
int getPDGCode(void) const
Returns PDG code.
Definition: Particle.h:426
double getPDGLifetime() const
Returns particle nominal lifetime.
Definition: Particle.cc:617
Belle2::Particle * particle() const
get basf2 particle
Definition: ParticleBase.h:92

◆ projectGeoConstraint()

ErrCode projectGeoConstraint ( const FitParams fitparams,
Projection p 
) const
virtualinherited

project geometrical constraint

the direction of the momentum is very well known from the kinematic constraints that is why we do not extract the distance as a vector here

Definition at line 249 of file ParticleBase.cc.

◆ projectMassConstraintDaughters()

ErrCode projectMassConstraintDaughters ( const FitParams fitparams,
Projection p 
) const
virtualinherited

project mass constraint using the parameters of the daughters

be aware that the signs here are important E-|p|-m extracts a negative mass and messes with the momentum !

Definition at line 314 of file ParticleBase.cc.

◆ projectMassConstraintParticle()

ErrCode projectMassConstraintParticle ( const FitParams fitparams,
Projection p 
) const
virtualinherited

project mass constraint using the particles parameters

be aware that the signs here are important E-|p|-m extracts a negative mass and messes with the momentum !

Definition at line 375 of file ParticleBase.cc.

◆ updateIndex()

void updateIndex ( int &  offset)
virtualinherited

this sets the index for momentum, position, etc.

in the statevector

Definition at line 84 of file ParticleBase.cc.


The documentation for this class was generated from the following files: