FEDRA emulsion software from the OPERA Collaboration
VtMassC.hh
Go to the documentation of this file.
1 #ifndef __VTMASSCONSTR
2 #define __VTMASSCONSTR
3 
4 // *****************************************************************************
5 //
6 // source:
7 //
8 // type: source code
9 //
10 // created: 12. Sept 2000
11 //
12 // author: Thorsten Glebe
13 // HERA-B Collaboration
14 // Max-Planck-Institut fuer Kernphysik
15 // Saupfercheckweg 1
16 // 69117 Heidelberg
17 // Germany
18 // E-mail: T.Glebe@mpi-hd.mpg.de
19 //
20 // Description: class for a mass constraint
21 //
22 // changes:
23 // 12 Sep 2000 (TG) creation
24 // 18 Okt 2000 (TG) removed #include "VtVector.hh"
25 // 18 Okt 2000 (TG) added print() member function, added operator<<()
26 // 18 Okt 2000 (TG) added member m_galp, calc_Sl() member function
27 // 25 Okt 2000 (TG) check_kinematic() added
28 //
29 // *****************************************************************************
30 
31 #include <iosfwd>
32 #include <vector>
33 #include "VtVector.hh"
34 
35 #ifdef WIN32
36 # include "Rtypes.h"
37 #endif
38 
39 namespace VERTEX {
40  class Relation;
41 
42  typedef std::vector<Relation*> Rel_v;
45 
47  //============================================================================
48  // Class MassC
49  //============================================================================
50  class MassC {
51  public:
54  MassC();
56  MassC(double m);
58  ~MassC();
59 
62  inline void push_back(Relation& r) { push_back(&r); }
64  void push_back(Relation* r);
66  inline double mass() const { return m_mass; }
68  inline void mass(double m) { m_mass = m; }
70  inline double galp() const { return m_galp; }
71 
74  void print(std::ostream& os) const;
76  void calc_Sl();
78  const bool check_kinematic() const;
80  const MATRIX::VtVector gam(const Relation&) const;
81 
82  private:
83  double m_mass; // mass for mass constraint (in Vt: xmc)
84  double m_SE; // S_l^E in Vt (eq. 41)
85  MATRIX::VtVector m_Sl; // S_l in Vt (eq. 42)
86  Rel_v m_rel; // list of tracks participating im mass constr.
87  double m_galp; // constraint (in Vt: eq. 43)
88 
89 #ifdef WIN32
90  ClassDef(MassC,0)
91 #endif
92  };
93 
94  //==============================================================================
95  // operator<<
96  //==============================================================================
97  inline std::ostream& operator<<(std::ostream& s, const MassC& a) {
98  a.print(s);
99  return s;
100  }
101 
102 } // end of namespace VERTEX
103 #endif
void a()
Definition: check_aligned.C:59
Definition: VtVector.hh:45
Definition: VtMassC.hh:50
void print(std::ostream &os) const
called by operator<<()
Definition: VtMassC.C:153
MassC()
Definition: VtMassC.C:42
double m_mass
Definition: VtMassC.hh:83
const MATRIX::VtVector gam(const Relation &) const
return $\Gamma_{li}$
Definition: VtMassC.C:124
double m_SE
Definition: VtMassC.hh:84
Rel_v m_rel
Definition: VtMassC.hh:86
const bool check_kinematic() const
check kinematic boundary
Definition: VtMassC.C:73
~MassC()
Definition: VtMassC.C:56
double galp() const
constraint $\vec{g}(\vec{\alpha}^{(0)})$
Definition: VtMassC.hh:70
void push_back(Relation &r)
add Track to mass constraint
Definition: VtMassC.hh:62
MATRIX::VtVector m_Sl
Definition: VtMassC.hh:85
void mass(double m)
set mass constraint
Definition: VtMassC.hh:68
double mass() const
get mass constraint
Definition: VtMassC.hh:66
void calc_Sl()
compute mass constraint $\vec{g}(\vec{\alpha}^{(0)})$
Definition: VtMassC.C:90
double m_galp
Definition: VtMassC.hh:87
Definition: VtRelation.hh:51
Definition: VtDistance.hh:30
std::vector< Relation * >::iterator Rel_it
Definition: VtMassC.hh:43
ConstRelationIterator const_iterator
Definition: VtRelationList.hh:54
std::vector< Relation * >::const_iterator Rel_cit
Definition: VtMassC.hh:44
std::vector< Relation * > Rel_v
Definition: VtMassC.hh:40
RelationIterator iterator
Definition: VtRelationList.hh:53
std::ostream & operator<<(std::ostream &os, const VtIni &t)
Definition: VtIni.hh:83
void r(int rid=2)
Definition: test.C:201
EdbSegP * s
Definition: tlg2pattern.C:32