12 struct OrderLbSpread {
bool operator() (
const std::pair<double,unsigned int> & lb1,
const std::pair<double,unsigned int> & lb2) {
return lb1.first > lb2.first; } };
13 struct OrderLbOccup {
bool operator() (
const std::pair<unsigned int,unsigned int> & lb1,
const std::pair<unsigned int,unsigned int> & lb2) {
return lb1.first > lb2.first; } };
18 hDelaySpread->Reset();
22 typedef std::vector< std::pair<unsigned int, unsigned int> > TopOccup;
23 typedef std::vector< std::pair<double, unsigned int> > TopSpread;
24 TopOccup topOccup(10,std::make_pair(0,0));
25 TopSpread topSpread(10,std::make_pair(0.,0));
27 for (
unsigned int idx=0;
idx < theLinkStat.theLinkStatMap.size(); ++
idx) {
30 int sum = bc.second.sum();
31 double rms = bc.second.rms();
33 hDelaySpread->Fill(bc.second.mean()-3.,bc.second.rms());
36 for (
int i=0;
i<=7; ++
i) hDelay->Fill(
i-3,bc.second.counts()[
i]);
38 std::pair<unsigned int, unsigned int> canOccup = std::make_pair(sum,
idx);
39 std::pair<double, unsigned int> canSpread = std::make_pair(rms,
idx);
40 TopOccup::iterator io = upper_bound(topOccup.begin(), topOccup.end(), canOccup,
OrderLbOccup());
41 TopSpread::iterator is = upper_bound(topSpread.begin(), topSpread.end(), canSpread,
OrderLbSpread());
42 if (io != topOccup.end()) {
43 topOccup.insert(io,canOccup);
44 topOccup.erase(topOccup.end()-1);
46 if (is != topSpread.end()) {
47 topSpread.insert(is,canSpread);
48 topSpread.erase(topSpread.end()-1);
52 for (
int itop=0; itop<10; itop++) {
55 hTopOccup->GetYaxis()->SetBinLabel(itop+1,occup.first.name().c_str());
56 hTopSpread->GetYaxis()->SetBinLabel(itop+1,spread.first.name().c_str());
57 for (
unsigned int icount=0; icount<occup.second.counts().size(); icount++) {
58 hTopOccup->SetBinContent(icount+1, itop+1,
float(occup.second.counts()[icount]));
59 hTopSpread->SetBinContent(icount+1, itop+1,
float(spread.second.counts()[icount]));
std::pair< LinkBoard, SynchroCounts > BoardAndCounts
bool operator()(const std::pair< double, unsigned int > &lb1, const std::pair< double, unsigned int > &lb2)
void fill(TH1F *hDelay, TH2F *hDelaySpread, TH2F *hTopOccup, TH2F *hTopSpread) const