-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
GEMRegion.h
68 lines (49 loc) · 1.51 KB
/
GEMRegion.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef GEMGeometry_GEMRegion_h
#define GEMGeometry_GEMRegion_h
/** \class GEMRegion
*
* Model of a GEM Region
*
* A region has maximal 5 stations
*
* \author S. Dildick
*/
#include "Geometry/CommonDetUnit/interface/GeomDet.h"
#include "DataFormats/MuonDetId/interface/GEMDetId.h"
class GEMStation;
class GEMSuperChamber;
class GEMRegion
{
public:
/// constructor
GEMRegion(int region);
/// destructor
~GEMRegion();
/// Return the vector of GEMDetIds in this ring
std::vector<GEMDetId> ids() const;
/// equal if the id is the same
bool operator==(const GEMRegion& reg) const;
/// Add station to the region which takes ownership
void add(GEMStation* st);
/// Return the super chambers in the region
virtual std::vector<const GeomDet*> components() const;
/// Return the sub-component (super chamber) with a given id in this region
virtual const GeomDet* component(DetId id) const;
/// Return the super chamber corresponding to the given id
const GEMSuperChamber* superChamber(GEMDetId id) const;
/// Return the super chambers in the region
std::vector<const GEMSuperChamber*> superChambers() const;
/// Return a station
const GEMStation* station(int st) const;
/// Return all stations
const std::vector<const GEMStation*>& stations() const;
/// Return numbers of stations
int nStations() const;
/// Return the region
int region() const;
private:
int region_;
// vector of stations for a region
std::vector<const GEMStation*> stations_;
};
#endif