PandaRoot
RecoComposite.h
Go to the documentation of this file.
1 // ******************************************************
2 // DecayTreeFitter Package
3 // We thank the original author Wouter Hulsbergen
4 // (BaBar, LHCb) for providing the sources.
5 // http://arxiv.org/abs/physics/0503191v1 (2005)
6 // Adaptation & Development for PANDA: Ralf Kliemt (2015)
7 // ******************************************************
8 #ifndef EXTERNALBTAPARTICLE_H
9 #define EXTERNALBTAPARTICLE_H 1
10 
11 #include "ParticleBase.h"
12 #include "TVectorD.h"
13 #include "TMatrixDSym.h"
14 #include "Rtypes.h"
15 
16 namespace DecayTreeFitter {
17 
18 class RecoComposite : public ParticleBase {
19  public:
21  virtual ~RecoComposite();
22 
23  // the number of parameters
24  virtual int dim() const { return m_hasEnergy ? 8 : 7; } // (x,y,z,t,px,py,pz,(E))
25 
26  // the number of 'measurements'
27  int dimM() const { return m_hasEnergy ? 7 : 6; }
30 
31  virtual ErrCode initPar1(FitParams *);
32  virtual ErrCode initPar2(FitParams *);
33  virtual int type() const { return kRecoComposite; }
34 
35  virtual int posIndex() const { return index(); }
36  virtual int lenIndex() const { return index() + 3; }
37  virtual int momIndex() const { return index() + 4; }
38 
39  virtual bool hasEnergy() const { return m_hasEnergy; }
40  virtual bool hasPosition() const { return true; }
41 
42  virtual void updCache();
43  virtual double chiSquare(const FitParams *fitparams) const;
44 
45  virtual void addToConstraintList(constraintlist &alist, int depth) const
46  {
47  alist.push_back(Constraint(this, Constraint::composite, depth, dimM()));
48  alist.push_back(Constraint(this, Constraint::geometric, depth, 3));
49  }
50 
51  protected: // I hate this, so we need to change the design ...
52  // cache
53  TVectorD m_m; // 'measurement' (x,y,zpx,py,pz,E)
54  TMatrixDSym m_matrixV; // covariance in measurement
56  ClassDef(RecoComposite, 1)
57 };
58 
59 } // namespace DecayTreeFitter
60 
61 #endif
std::vector< DecayTreeFitter::Constraint > constraintlist
Definition: ParticleBase.h:102
virtual ErrCode initPar2(FitParams *)
const ParticleBase * mother() const
Definition: ParticleBase.h:52
ErrCode projectRecoComposite(const FitParams *, Projection &) const
RecoComposite(RhoCandidate *bc, const ParticleBase *mother)
virtual int posIndex() const
Definition: RecoComposite.h:35
virtual int momIndex() const
Definition: RecoComposite.h:37
virtual ErrCode initPar1(FitParams *)
virtual bool hasPosition() const
Definition: RecoComposite.h:40
virtual void addToConstraintList(constraintlist &alist, int depth) const
Definition: RecoComposite.h:45
virtual int lenIndex() const
Definition: RecoComposite.h:36
virtual int index() const
Definition: ParticleBase.h:51
virtual int type() const
Definition: RecoComposite.h:33
virtual ErrCode projectConstraint(Constraint::Type, const FitParams *, Projection &) const
virtual bool hasEnergy() const
Definition: RecoComposite.h:39
virtual double chiSquare(const FitParams *fitparams) const