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
39namespace 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
s
Definition: check_shower.C:55
Definition: VtDistance.hh:30
std::vector< Relation * >::iterator Rel_it
Definition: VtMassC.hh:43
std::ostream & operator<<(std::ostream &os, const VtIni &t)
Definition: VtIni.hh:83
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
void r(int rid=2)
Definition: test.C:201