9 #define PARTICLEBASE_H 1 39 virtual int dim()
const = 0;
51 virtual int index()
const {
return m_index; }
53 const std::string &
name()
const {
return m_name; }
60 virtual int type()
const = 0;
78 double pdtMass()
const {
return m_pdtMass; }
81 double pdtTau()
const {
return m_pdtMass > 0 ? m_pdtCLifeTime / m_pdtMass : 0; }
82 int charge()
const {
return m_charge; }
91 const daucontainer &
daughters()
const {
return m_daughters; }
92 const_iterator
begin()
const {
return m_daughters.begin(); }
93 const_iterator
end()
const {
return m_daughters.end(); }
97 typedef std::vector<std::pair<const ParticleBase *, int>>
indexmap;
112 std::swap(add, m_hasMassConstraint);
113 return add != m_hasMassConstraint;
118 m_hasMassConstraint =
true;
137 void setName(
const std::string &n) { m_name = n; }
142 ParticleContainer m_daughters;
143 const TParticlePDG *m_prop;
147 double m_pdtCLifeTime;
150 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)