55 std::unique_ptr<TotemT2Segmentation>
segm_;
68 std::bitset<(TotemT2DetId::maxPlane + 1) * (TotemT2DetId::maxChannel + 1)>
hitTilesArray;
102 "number of active planes",
title +
" how many planes are active;number of active planes", 9, -0.5, 8.5);
105 title +
" trigger emulator;arbitrary unit;arbitrary unit",
118 "time over threshold",
title +
" time over threshold (rechit);time over threshold (ns)", 250, -25, 100);
130 digisMultiplicity = ibooker.
book2DD(
"digis multiplicity",
131 title +
" digis multiplicity;arbitrary unit;arbitrary unit",
138 rechitMultiplicity = ibooker.
book2DD(
"rechits multiplicity",
139 title +
" rechits multiplicity;x;y",
152 nbinsx_(iConfig.getParameter<unsigned
int>(
"nbinsx")),
153 nbinsy_(iConfig.getParameter<unsigned
int>(
"nbinsy")),
184 for (
const auto& digi : ds_digis) {
193 std::unordered_map<unsigned int, std::set<unsigned int>> planes;
197 for (
const auto& rechit : ds_rechits) {
205 plt.second.activePlanesCount->Fill(planes[plt.first].size());
208 for (
unsigned short plane = 0; plane <= 1; ++plane)
223 unsigned short pl = detid.
plane();
225 planes[secId].insert(pl);
232 unsigned short pl = detid.
plane();
233 unsigned short ch = detid.
channel();
239 sectorPlot.second.hitTilesArray.reset();
243 unsigned int channel = detid.
channel();
246 std::bitset<(TotemT2DetId::maxPlane + 1) * (TotemT2DetId::maxChannel + 1)>
mask;
248 unsigned int pl = detid.
plane() % 2 == 0 ? 0 : 1;
251 mask[4 * pl + channel] =
true;
261 for (
unsigned short error_index = 1; error_index <= 8; ++error_index)
void fillActivePlanes(std::unordered_map< unsigned int, std::set< unsigned int >> &, const TotemT2DetId &)
MonitorElement * digisMultiplicity
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Detector ID class for Totem T2 detectors. Bits [19:31] : Base CTPPSDetId class attributes Bits [16:18...
virtual void setCurrentFolder(std::string const &fullpath)
std::unique_ptr< TotemT2Segmentation > segm_
MonitorElement * HPTDCErrorFlags_2D_
void fillEdges(const TotemT2Digi &, const TotemT2DetId &)
static constexpr uint32_t maxChannel
std::string to_string(const V &value)
TotemT2DetId planeId() const
static const unsigned int MINIMAL_TRIGGER
const unsigned int nbinsx_
TotemT2DQMSource(const edm::ParameterSet &)
static constexpr uint32_t maxPlane
TEMPL(T2) struct Divides void
void bookHistograms(DQMStore::IBooker &, const edm::Run &, const edm::EventSetup &) override
MonitorElement * rechitMultiplicity
void fillToT(const TotemT2RecHit &, const TotemT2DetId &)
const edm::EDGetTokenT< edmNew::DetSetVector< TotemT2Digi > > digiToken_
const unsigned int nbinsy_
static const uint32_t maxArm
void planeName(std::string &name, NameFlag flag=nFull) const
void armName(std::string &name, NameFlag flag=nFull) const
#define DEFINE_FWK_MODULE(type)
MonitorElement * activePlanesCount
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
void clearTriggerBitset()
static constexpr double HPTDC_BIN_WIDTH_NS_
const unsigned int windowsNum_
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * timeOverTreshold
std::bitset<(TotemT2DetId::maxPlane+1) *(TotemT2DetId::maxChannel+1)> hitTilesArray
const edm::EDGetTokenT< edmNew::DetSetVector< TotemT2RecHit > > rechitToken_
MonitorElement * trailingEdge
MonitorElement * triggerEmulator
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
MonitorElement * leadingEdge
bool areChannelsTriggered(const TotemT2DetId &)
Event setup record containing the real (actual) geometry information.
MonitorElement * book2DD(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
std::unordered_map< unsigned int, PlanePlots > planePlots_
~TotemT2DQMSource() override=default
unsigned short trailingEdge() const
void fillTriggerBitset(const TotemT2DetId &)
const edm::ESGetToken< TotemGeometry, TotemGeometryRcd > geometryToken_
unsigned short leadingEdge() const
std::unordered_map< unsigned int, SectorPlots > sectorPlots_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
void bookErrorFlagsHistogram(DQMStore::IBooker &)
void fillErrorFlagsHistogram(const TotemT2Digi &)
MonitorElement * activePlanes