CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
RPCLinkSynchroHistoMaker Class Reference

#include <RPCLinkSynchroHistoMaker.h>

Public Member Functions

void fill (TH1F *hDelay, TH2F *hDelaySpread, TH2F *hTopOccup, TH2F *hTopSpread) const
 
void fillDelayHisto (TH1F *histo)
 
void fillDelaySpreadHisto (TH2F *histo)
 
 RPCLinkSynchroHistoMaker (const RPCLinkSynchroStat &a)
 

Private Attributes

const RPCLinkSynchroStattheLinkStat
 

Detailed Description

Definition at line 13 of file RPCLinkSynchroHistoMaker.h.

Constructor & Destructor Documentation

◆ RPCLinkSynchroHistoMaker()

RPCLinkSynchroHistoMaker::RPCLinkSynchroHistoMaker ( const RPCLinkSynchroStat a)
inline

Definition at line 15 of file RPCLinkSynchroHistoMaker.h.

15 : theLinkStat(a) {}

Member Function Documentation

◆ fill()

void RPCLinkSynchroHistoMaker::fill ( TH1F *  hDelay,
TH2F *  hDelaySpread,
TH2F *  hTopOccup,
TH2F *  hTopSpread 
) const

Definition at line 22 of file RPCLinkSynchroHistoMaker.cc.

22  {
23  hDelay->Reset();
24  hDelaySpread->Reset();
25  hTopOccup->Reset();
26  hTopSpread->Reset();
27 
28  typedef std::vector<std::pair<unsigned int, unsigned int> > TopOccup;
29  typedef std::vector<std::pair<double, unsigned int> > TopSpread;
30  TopOccup topOccup(10, std::make_pair(0, 0));
31  TopSpread topSpread(10, std::make_pair(0., 0));
32 
33  for (unsigned int idx = 0; idx < theLinkStat.theLinkStatMap.size(); ++idx) {
35 
36  int sum = bc.second.sum();
37  double rms = bc.second.rms();
38 
39  hDelaySpread->Fill(bc.second.mean() - 3., bc.second.rms());
40 
41  if (sum == 0)
42  continue;
43  for (int i = 0; i <= 7; ++i)
44  hDelay->Fill(i - 3, bc.second.counts()[i]);
45 
46  std::pair<unsigned int, unsigned int> canOccup = std::make_pair(sum, idx);
47  std::pair<double, unsigned int> canSpread = std::make_pair(rms, idx);
48  TopOccup::iterator io = upper_bound(topOccup.begin(), topOccup.end(), canOccup, OrderLbOccup());
49  TopSpread::iterator is = upper_bound(topSpread.begin(), topSpread.end(), canSpread, OrderLbSpread());
50  if (io != topOccup.end()) {
51  topOccup.insert(io, canOccup);
52  topOccup.erase(topOccup.end() - 1);
53  }
54  if (is != topSpread.end()) {
55  topSpread.insert(is, canSpread);
56  topSpread.erase(topSpread.end() - 1);
57  }
58  }
59 
60  for (int itop = 0; itop < 10; itop++) {
61  const RPCLinkSynchroStat::BoardAndCounts& occup = theLinkStat.theLinkStatMap[topOccup[itop].second];
62  const RPCLinkSynchroStat::BoardAndCounts& spread = theLinkStat.theLinkStatMap[topSpread[itop].second];
63  hTopOccup->GetYaxis()->SetBinLabel(itop + 1, occup.first.name().c_str());
64  hTopSpread->GetYaxis()->SetBinLabel(itop + 1, spread.first.name().c_str());
65  for (unsigned int icount = 0; icount < occup.second.counts().size(); icount++) {
66  hTopOccup->SetBinContent(icount + 1, itop + 1, float(occup.second.counts()[icount]));
67  hTopSpread->SetBinContent(icount + 1, itop + 1, float(spread.second.counts()[icount]));
68  }
69  }
70  // for (int j=0; j<10; j++) { cout <<"topSpread["<<j<<"] = "<<topSpread[j].first<<endl; }
71  // for (int j=0; j<10; j++) { cout <<"topOccup["<<j<<"] = "<<topOccup[j].first<<endl; }
72 }

References mps_fire::i, training_settings::idx, SiStripPI::rms, theLinkStat, RPCLinkSynchroStat::theLinkStatMap, and cuda_std::upper_bound().

Referenced by RPCMonitorLinkSynchro::endLuminosityBlock().

◆ fillDelayHisto()

void RPCLinkSynchroHistoMaker::fillDelayHisto ( TH1F *  histo)

◆ fillDelaySpreadHisto()

void RPCLinkSynchroHistoMaker::fillDelaySpreadHisto ( TH2F *  histo)

Member Data Documentation

◆ theLinkStat

const RPCLinkSynchroStat& RPCLinkSynchroHistoMaker::theLinkStat
private

Definition at line 21 of file RPCLinkSynchroHistoMaker.h.

Referenced by fill().

mps_fire.i
i
Definition: mps_fire.py:355
SiStripPI::rms
Definition: SiStripPayloadInspectorHelper.h:169
training_settings.idx
idx
Definition: training_settings.py:16
cuda_std::upper_bound
__host__ constexpr __device__ RandomIt upper_bound(RandomIt first, RandomIt last, const T &value, Compare comp={})
Definition: cudastdAlgorithm.h:45
RPCLinkSynchroStat::BoardAndCounts
std::pair< LinkBoard, SynchroCounts > BoardAndCounts
Definition: RPCLinkSynchroStat.h:69
a
double a
Definition: hdecay.h:119
RPCLinkSynchroStat::theLinkStatMap
std::vector< BoardAndCounts > theLinkStatMap
Definition: RPCLinkSynchroStat.h:90
OrderLbOccup
Definition: RPCLinkSynchroHistoMaker.cc:16
OrderLbSpread
Definition: RPCLinkSynchroHistoMaker.cc:11
RPCLinkSynchroHistoMaker::theLinkStat
const RPCLinkSynchroStat & theLinkStat
Definition: RPCLinkSynchroHistoMaker.h:21