20 #ifndef PARTICLEBASE_H 21 #define PARTICLEBASE_H 1 51 virtual int dim()
const = 0;
63 virtual int index()
const {
return m_index; }
65 const std::string &
name()
const {
return m_name; }
72 virtual int type()
const = 0;
90 double pdtMass()
const {
return m_pdtMass; }
93 double pdtTau()
const {
return m_pdtMass > 0 ? m_pdtCLifeTime / m_pdtMass : 0; }
94 int charge()
const {
return m_charge; }
103 const daucontainer &
daughters()
const {
return m_daughters; }
104 const_iterator
begin()
const {
return m_daughters.begin(); }
105 const_iterator
end()
const {
return m_daughters.end(); }
109 typedef std::vector<std::pair<const ParticleBase *, int>>
indexmap;
124 std::swap(add, m_hasMassConstraint);
125 return add != m_hasMassConstraint;
130 m_hasMassConstraint =
true;
149 void setName(
const std::string &n) { m_name = n; }
154 ParticleContainer m_daughters;
155 const TParticlePDG *m_prop;
159 double m_pdtCLifeTime;
162 bool m_hasMassConstraint;
static double bFieldOverC()
std::vector< DecayTreeFitter::Constraint > constraintlist
const ParticleBase * mother() const
RhoCandidate * particle() const
virtual int posIndex() const
virtual void addToConstraintList(constraintlist &alist, int depth) const =0
daucontainer & daughters()
virtual int dim() const =0
const std::string & name() const
virtual int lenIndex() const
void setName(const std::string &n)
virtual int nFinalChargedCandidates() const
void setMother(const ParticleBase *m)
virtual ErrCode initPar2(FitParams *)=0
static bool isAResonance(const TParticlePDG *bc)
std::vector< ParticleBase * > ParticleContainer
const_iterator begin() const
double pdtCLifeTime() const
ParticleBase * addDaughter(RhoCandidate *, const Configuration &config)
virtual ErrCode projectConstraint(Constraint::Type, const FitParams *, Projection &) const
daucontainer::const_iterator const_iterator
void collectVertexDaughters(daucontainer &particles, int posindex)
bool hasMassConstraint() const
ParticleBase(RhoCandidate *bc, const ParticleBase *mother)
virtual ErrCode initCov(FitParams *) const
void removeDaughter(const ParticleBase *pb)
void setParticle(RhoCandidate *bc)
virtual int type() const =0
ErrCode initTau(FitParams *par) const
virtual ErrCode projectGeoConstraint(const FitParams *, Projection &) const
void setMassConstraint(double mass)
virtual bool hasEnergy() const
const ParticleBase * locate(RhoCandidate *bc) const
virtual ErrCode projectMassConstraint(const FitParams *, Projection &) const
const_iterator end() const
virtual double chiSquareD(const FitParams *) const
const daucontainer & daughters() const
virtual void print(const FitParams *) const
std::vector< std::pair< const ParticleBase *, int > > indexmap
virtual ErrCode initPar1(FitParams *)=0
virtual bool hasPosition() const
virtual int momIndex() const
ChiSquare chiSquare(const FitParams *fitparams) const
bool setMassConstraint(bool add)
virtual void retrieveIndexMap(indexmap &anindexmap) const
static ParticleBase * createParticle(RhoCandidate *bc, const ParticleBase *mother, const Configuration &config)
virtual std::string parname(int index) const
std::vector< ParticleBase * > daucontainer
virtual int index() const
void makeName(RhoCandidate *bc)
virtual void updateIndex(int &offset)