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
|
#include "DataFormats/ForwardDetId/interface/HGCScintillatorDetId.h"
#include <ostream>
#include <iostream>
const HGCScintillatorDetId HGCScintillatorDetId::Undefined(0, 0, 0, 0, false);
std::vector<HGCScintillatorDetId> HGCScintillatorDetId::detectorCells() const {
std::vector<HGCScintillatorDetId> cells;
int irad = ring();
int ifi = iphi();
int iz = zside();
if (trigger()) {
cells.emplace_back(HGCScintillatorDetId(type(), layer(), (2 * irad - 1) * iz, 2 * ifi - 1, false));
cells.emplace_back(HGCScintillatorDetId(type(), layer(), 2 * irad * iz, 2 * ifi - 1, false));
cells.emplace_back(HGCScintillatorDetId(type(), layer(), (2 * irad - 1) * iz, 2 * ifi, false));
cells.emplace_back(HGCScintillatorDetId(type(), layer(), 2 * irad * iz, 2 * ifi, false));
} else {
cells.emplace_back(HGCScintillatorDetId(type(), layer(), irad * iz, ifi, false));
}
return cells;
}
std::ostream& operator<<(std::ostream& s, const HGCScintillatorDetId& id) {
return s << " HGCScintillatorDetId::EE:HE= " << id.isEE() << ":" << id.isHE() << " trigger= " << id.trigger()
<< " granularity= " << id.granularity() << " type= " << id.type() << " SiPM= " << id.sipm()
<< " layer= " << id.layer() << " ring= " << id.iradius() << ":" << id.iradiusTrigger()
<< " phi= " << id.iphi() << ":" << id.iphiTrigger();
}
|