CMS 3D CMS Logo

DTSLRecCluster.h
Go to the documentation of this file.
1 #ifndef DTSLRECCLUSTER_H
2 #define DTSLRECCLUSTER_H
3 
16 /* Base Class Headers */
18 
19 /* Collaborating Class Declarations */
22 
23 /* C++ Headers */
24 #include <iosfwd>
25 
26 /* ====================================================================== */
27 
28 /* Class DTSLRecCluster Interface */
29 
30 class DTSLRecCluster : public RecHit1D {
31 
32  public:
33 
34  /* Constructor */
36 
38  DTSLRecCluster(const DTSuperLayerId id, const std::vector<DTRecHit1DPair>& pair) ;
39 
42  const LocalPoint&,
43  const LocalError&,
44  const std::vector<DTRecHit1DPair>& pair) ;
45 
46  /* Destructor */
47  ~DTSLRecCluster() override {}
48 
49  /* Operations */
51  DTSLRecCluster* clone() const override { return new DTSLRecCluster(*this); }
52 
54  DTSuperLayerId superLayerId() const { return theSlid; }
55 
57  AlgebraicVector parameters() const override {
58  return param( localPosition());
59  }
60 
61  // The parameter error matrix
63  return parError( localPositionError());
64  }
65 
69  AlgebraicMatrix projectionMatrix() const override {
70  return theProjectionMatrix;
71  }
72 
74  int dimension() const override { return 2;}
75  LocalPoint localPosition() const override { return thePos; }
76  LocalError localPositionError() const override { return thePosError; }
77 
79  std::vector<const TrackingRecHit*> recHits() const override ;
80 
81  std::vector<TrackingRecHit*> recHits() override ;
82 
84  std::vector<DTRecHit1DPair> specificRecHits() const { return thePairs; }
85 
86  int nHits() const { return thePairs.size() ; }
87 
88  private:
90 
93 
94  std::vector<DTRecHit1DPair> thePairs;
95 
96  private:
98 
99  AlgebraicVector param( const LocalPoint& lp) const {
101  result[1]=lp.x();
102  return result;
103  }
104 
107  m[0][0]=le.xx();
108  return m;
109  }
110 
111  protected:
112 
113 };
114 std::ostream& operator<<(std::ostream& os, const DTSLRecCluster& seg);
115 #endif // DTSLRECCLUSTER_H
116 
DTSuperLayerId superLayerId() const
The id of the superlayer on which reside the segment.
DTSLRecCluster * clone() const override
The clone method needed by the clone policy.
float xx() const
Definition: LocalError.h:24
std::vector< DTRecHit1DPair > thePairs
int dimension() const override
return 2. The dimension of the matrix
AlgebraicSymMatrix parError(const LocalError &le) const
AlgebraicMatrix projectionMatrix() const override
LocalPoint localPosition() const override
Local position.
AlgebraicVector param(const LocalPoint &lp) const
static const AlgebraicMatrix theProjectionMatrix
std::vector< DTRecHit1DPair > specificRecHits() const
Access to specific components.
~DTSLRecCluster() override
int nHits() const
CLHEP::HepMatrix AlgebraicMatrix
DTSuperLayerId theSlid
AlgebraicSymMatrix parametersError() const override
std::vector< const TrackingRecHit * > recHits() const override
return the hits
CLHEP::HepVector AlgebraicVector
LocalPoint thePos
std::ostream & operator<<(std::ostream &os, const DTSLRecCluster &seg)
AlgebraicVector parameters() const override
the vector of parameters (dx/dz,x)
CLHEP::HepSymMatrix AlgebraicSymMatrix
LocalError thePosError
LocalError localPositionError() const override
Error on the local position.
T x() const
Definition: PV3DBase.h:62