FEDRA emulsion software from the OPERA Collaboration
VtRelation.hh
Go to the documentation of this file.
1 #ifndef __VTRELATION_HH
2 #define __VTRELATION_HH
3 // *****************************************************************************
4 //
5 // source:
6 //
7 // type: source code
8 //
9 // created: 21. Aug 2000
10 //
11 // author: Thorsten Glebe
12 // HERA-B Collaboration
13 // Max-Planck-Institut fuer Kernphysik
14 // Saupfercheckweg 1
15 // 69117 Heidelberg
16 // Germany
17 // E-mail: T.Glebe@mpi-hd.mpg.de
18 //
19 // Description: Relation class
20 //
21 // changes:
22 // 21 Aug 2000 (TG) creation
23 // 13 Sep 2000 (TG) added MassC member
24 // 20 Okt 2000 (TG) #include VtVassC_list.hh added, changed type of massc
25 // from MassC* to MassC_v
26 // 14 Nov 2000 (TG) added getTrack(), getVertex(), getKalman() member functions,
27 // hide reference members in case of CINT (CINT limitation)
28 //
29 // *****************************************************************************
30 
31 #include <iosfwd>
32 #include "vt++/VtMassC_list.hh"
33 
34 #ifdef WIN32
35 # include "Rtypes.h"
36 #endif
37 
38 namespace VERTEX {
39 
40  class Track;
41  class Vertex;
42  class Kalman;
43  class Relation;
44 
48  //============================================================================
49  // Class Relation - class for Vertex-Track-Kalman relations
50  //============================================================================
51  class Relation {
52  public:
55  Relation(Track& ttrack, Vertex& vvertex);
57  ~Relation();
58 
61  void print( std::ostream& os ) const;
62 
64  inline Track& getTrack() { return track; }
66  inline Vertex& getVertex() { return vertex; }
68  inline Kalman& getKalman() { return kalman; }
69 
70  //#ifndef __CINT__
71  // reference members are currently a CINT limitation
72  Track& track; // reference to track
73  Vertex& vertex; // reference to vertex
74  Kalman& kalman; // reference to Kalman-object
75  //#endif
76  MassC_v massc; // vector of mass-constraint objects
77 
78 #ifdef WIN32
79  ClassDef(Relation,0)
80 #endif
81  };
82 
83  //==============================================================================
84  // operator <<
85  //==============================================================================
86  inline std::ostream& operator<< ( std::ostream& os, const Relation& r ) {
87  r.print(os);
88  return os;
89  }
90 
91 } // end of namespace VERTEX
92 #endif
Definition: Track.h:10
Definition: VtKalman.hh:70
Definition: VtRelation.hh:51
void print(std::ostream &os) const
Definition: VtRelation.C:44
Track & getTrack()
Definition: VtRelation.hh:64
Relation(Track &ttrack, Vertex &vvertex)
Definition: VtRelation.C:34
Vertex & vertex
Definition: VtRelation.hh:73
MassC_v massc
Definition: VtRelation.hh:76
Vertex & getVertex()
Definition: VtRelation.hh:66
Track & track
Definition: VtRelation.hh:72
~Relation()
Definition: VtRelation.C:39
Kalman & kalman
Definition: VtRelation.hh:74
Kalman & getKalman()
Definition: VtRelation.hh:68
Definition: VtTrack.hh:64
Definition: VtVertex.hh:88
Definition: VtDistance.hh:30
std::list< MassC * > MassC_v
Definition: VtMassC_list.hh:28
std::ostream & operator<<(std::ostream &os, const VtIni &t)
Definition: VtIni.hh:83
void r(int rid=2)
Definition: test.C:201