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 public:
32  /* Constructor */
34 
36  DTSLRecCluster(const DTSuperLayerId id, const std::vector<DTRecHit1DPair>& pair);
37 
39  DTSLRecCluster(const DTSuperLayerId id, const LocalPoint&, const LocalError&, const std::vector<DTRecHit1DPair>& pair);
40 
41  /* Destructor */
42  ~DTSLRecCluster() override {}
43 
44  /* Operations */
46  DTSLRecCluster* clone() const override { return new DTSLRecCluster(*this); }
47 
49  DTSuperLayerId superLayerId() const { return theSlid; }
50 
52  AlgebraicVector parameters() const override { return param(localPosition()); }
53 
54  // The parameter error matrix
56 
61 
63  int dimension() const override { return 2; }
64  LocalPoint localPosition() const override { return thePos; }
65  LocalError localPositionError() const override { return thePosError; }
66 
68  std::vector<const TrackingRecHit*> recHits() const override;
69 
70  std::vector<TrackingRecHit*> recHits() override;
71 
73  std::vector<DTRecHit1DPair> specificRecHits() const { return thePairs; }
74 
75  int nHits() const { return thePairs.size(); }
76 
77 private:
79 
82 
83  std::vector<DTRecHit1DPair> thePairs;
84 
85 private:
87 
88  AlgebraicVector param(const LocalPoint& lp) const {
90  result[1] = lp.x();
91  return result;
92  }
93 
96  m[0][0] = le.xx();
97  return m;
98  }
99 
100 protected:
101 };
102 std::ostream& operator<<(std::ostream& os, const DTSLRecCluster& seg);
103 #endif // DTSLRECCLUSTER_H
int nHits() const
std::vector< const TrackingRecHit * > recHits() const override
return the hits
AlgebraicSymMatrix parError(const LocalError &le) const
std::vector< DTRecHit1DPair > thePairs
AlgebraicVector param(const LocalPoint &lp) const
int dimension() const override
return 2. The dimension of the matrix
DTSuperLayerId superLayerId() const
The id of the superlayer on which reside the segment.
AlgebraicVector parameters() const override
the vector of parameters (dx/dz,x)
static const AlgebraicMatrix theProjectionMatrix
T x() const
Definition: PV3DBase.h:59
~DTSLRecCluster() override
LocalError localPositionError() const override
Error on the local position.
CLHEP::HepMatrix AlgebraicMatrix
DTSuperLayerId theSlid
DTSLRecCluster * clone() const override
The clone method needed by the clone policy.
CLHEP::HepVector AlgebraicVector
LocalPoint thePos
std::ostream & operator<<(std::ostream &os, const DTSLRecCluster &seg)
AlgebraicSymMatrix parametersError() const override
CLHEP::HepSymMatrix AlgebraicSymMatrix
std::vector< DTRecHit1DPair > specificRecHits() const
Access to specific components.
LocalError thePosError
float xx() const
Definition: LocalError.h:22
AlgebraicMatrix projectionMatrix() const override
LocalPoint localPosition() const override
Local position.