CMS 3D CMS Logo

TTCluster.h
Go to the documentation of this file.
1 
14 #ifndef L1_TRACK_TRIGGER_CLUSTER_FORMAT_H
15 #define L1_TRACK_TRIGGER_CLUSTER_FORMAT_H
16 
25 
26 template< typename T >
27 class TTCluster
28 {
29  public:
31  TTCluster();
32  TTCluster( std::vector< T > aHits,
33  DetId aDetId,
34  unsigned int aStackMember,
35  bool storeLocal );
36 
38  ~TTCluster();
39 
42 
44  std::vector< T > getHits() const { return theHits; }
45  void setHits( std::vector< T > aHits ) { theHits = aHits; }
46 
48  DetId getDetId() const { return theDetId; }
49  void setDetId( DetId aDetId ) { theDetId = aDetId; }
50  unsigned int getStackMember() const { return theStackMember; }
51  void setStackMember( unsigned int aStackMember ) { theStackMember = aStackMember; }
52 
54  std::vector< int > findRows() const;
55  std::vector< int > findCols() const;
56  void setCoordinates( std::vector< int > a, std::vector< int > b ) { theRows = a; theCols = b; }
57  std::vector< int > getRows() const { return theRows; }
58  std::vector< int > getCols() const { return theCols; }
59 
61  unsigned int findWidth() const;
62 
65  MeasurementPoint findHitLocalCoordinates( unsigned int hitIdx ) const;
67 
69  std::string print( unsigned int i = 0 ) const;
70 
71  private:
73  std::vector< T > theHits;
75  unsigned int theStackMember;
76 
77  std::vector< int > theRows;
78  std::vector< int > theCols;
79 
80 };
81 
89 template< typename T >
93 {
95  theHits.clear();
96  theDetId = 0;
97  theStackMember = 0;
98 
99  theRows.clear();
100  theCols.clear();
101 }
102 
104 template< typename T >
105 TTCluster< T >::TTCluster( std::vector< T > aHits,
106  DetId aDetId,
107  unsigned int aStackMember,
108  bool storeLocal )
109 {
111  this->setHits( aHits );
112  this->setDetId( aDetId );
113  this->setStackMember( aStackMember );
114 
115  theRows.clear();
116  theCols.clear();
117  if ( storeLocal )
118  {
119  this->setCoordinates( this->findRows(), this->findCols() );
120  }
121 }
122 
124 template< typename T >
126 
128 template< >
130 
133 template< >
135 
136 template< >
137 MeasurementPoint TTCluster< edm::Ref< edm::DetSetVector< Phase2TrackerDigi >, Phase2TrackerDigi > >::findAverageLocalCoordinates() const;
138 
140 template< typename T >
141 std::vector< int > TTCluster< T >::findRows() const
142 {
143  std::vector< int > temp;
144  return temp;
145 }
146 
147 template< typename T >
148 std::vector< int > TTCluster< T >::findCols() const
149 {
150  std::vector< int > temp;
151  return temp;
152 }
153 
154 template< >
155 std::vector< int > TTCluster< edm::Ref< edm::DetSetVector< Phase2TrackerDigi >, Phase2TrackerDigi > >::findRows() const;
156 
157 template< >
158 std::vector< int > TTCluster< edm::Ref< edm::DetSetVector< Phase2TrackerDigi >, Phase2TrackerDigi > >::findCols() const;
159 
161 template< typename T >
162 std::string TTCluster< T >::print( unsigned int i ) const
163 {
164  std::string padding("");
165  for ( unsigned int j = 0; j != i; ++j )
166  {
167  padding+="\t";
168  }
169 
170  std::stringstream output;
171  output<<padding<<"TTCluster:\n";
172  padding+='\t';
173  output << padding << "DetId: " << theDetId.rawId() << '\n';
174  output << padding << "member: " << theStackMember << ", cluster size: " << theHits.size() << '\n';
175  return output.str();
176 }
177 
178 template< typename T >
179 std::ostream& operator << ( std::ostream& os, const TTCluster< T >& aTTCluster )
180 {
181  return ( os << aTTCluster.print() );
182 }
183 
184 #endif
185 
int i
Definition: DBlmapReader.cc:9
std::vector< T > getHits() const
Hits in the Cluster.
Definition: TTCluster.h:44
void setStackMember(unsigned int aStackMember)
Definition: TTCluster.h:51
void setDetId(DetId aDetId)
Definition: TTCluster.h:49
MeasurementPoint findHitLocalCoordinates(unsigned int hitIdx) const
DetId getDetId() const
Detector element.
Definition: TTCluster.h:48
std::vector< int > findCols() const
Definition: TTCluster.h:148
std::vector< int > findRows() const
Rows and columns to get rid of Digi collection.
Definition: TTCluster.h:141
std::vector< T > theHits
Data members.
Definition: TTCluster.h:73
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void setCoordinates(std::vector< int > a, std::vector< int > b)
Definition: TTCluster.h:56
~TTCluster()
Destructor.
Definition: TTCluster.h:125
int j
Definition: DBlmapReader.cc:9
unsigned int findWidth() const
Cluster width.
TTCluster()
Constructors.
Definition: TTCluster.h:92
std::string print(unsigned int i=0) const
Information.
Definition: TTCluster.h:162
std::vector< int > getRows() const
Definition: TTCluster.h:57
std::vector< int > theCols
Definition: TTCluster.h:78
Definition: DetId.h:18
DetId theDetId
Definition: TTCluster.h:74
std::vector< int > getCols() const
Definition: TTCluster.h:58
void setHits(std::vector< T > aHits)
Definition: TTCluster.h:45
NOTE: this is needed even if it seems not.
Definition: TTCluster.h:27
double b
Definition: hdecay.h:120
MeasurementPoint findAverageLocalCoordinates() const
std::vector< int > theRows
Definition: TTCluster.h:77
double a
Definition: hdecay.h:121
unsigned int getStackMember() const
Definition: TTCluster.h:50
unsigned int theStackMember
Definition: TTCluster.h:75