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
|
#include "Geometry/MuonNumbering/interface/MuonSimHitNumberingScheme.h"
#include "Geometry/MuonNumbering/interface/DTNumberingScheme.h"
#include "Geometry/MuonNumbering/interface/CSCNumberingScheme.h"
#include "Geometry/MuonNumbering/interface/RPCNumberingScheme.h"
#include "Geometry/MuonNumbering/interface/GEMNumberingScheme.h"
#include "Geometry/MuonNumbering/interface/ME0NumberingScheme.h"
#include "Geometry/MuonNumbering/interface/MuonBaseNumber.h"
#include "Geometry/MuonNumbering/interface/MuonSubDetector.h"
#include "Geometry/MuonNumbering/interface/MuonGeometryConstants.h"
MuonSimHitNumberingScheme::MuonSimHitNumberingScheme(MuonSubDetector* d, const MuonGeometryConstants& muonConstants) {
theDetector = d;
if (theDetector->isBarrel()) {
theNumbering = new DTNumberingScheme(muonConstants);
} else if (theDetector->isEndcap()) {
theNumbering = new CSCNumberingScheme(muonConstants);
} else if (theDetector->isRPC()) {
theNumbering = new RPCNumberingScheme(muonConstants);
} else if (theDetector->isGEM()) {
theNumbering = new GEMNumberingScheme(muonConstants);
} else if (theDetector->isME0()) {
theNumbering = new ME0NumberingScheme(muonConstants);
}
}
MuonSimHitNumberingScheme::~MuonSimHitNumberingScheme() { delete theNumbering; }
int MuonSimHitNumberingScheme::baseNumberToUnitNumber(const MuonBaseNumber& num) const {
if (theNumbering) {
return theNumbering->baseNumberToUnitNumber(num);
} else {
return 0;
}
}
|