2222
2323//ROOT:
2424//#include "art/Framework/Services/Optional/TFileService.h"
25- #include "art_root_io/TFileService.h"
25+ #include "art_root_io/TFileService.h"
2626#include <TH1F.h>
2727#include <TH2F.h>
2828#include <TH1.h>
2929#include <TProfile.h>
3030
3131//Offline:
32- #include "ConditionsService/inc/AcceleratorParams.hh"
33- #include "ConditionsService/inc/ConditionsHandle.hh"
3432
3533
3634//C++:
@@ -56,7 +54,7 @@ namespace ots
5654 void beginRun(art::Run const&) override;
5755 void beginJob() override;
5856 private:
59-
57+
6058 enum {
6159 kNTrigInfo = 40
6260 };
@@ -67,7 +65,7 @@ namespace ots
6765 TH1F *_hTrigBDW [kNTrigInfo];
6866
6967 summaryInfoHist_() {
70- for (int i=0; i<kNTrigInfo; ++i){
68+ for (int i=0; i<kNTrigInfo; ++i){
7169 _hTrigInfo [i] = NULL;
7270 _h2DTrigInfo[i] = NULL;
7371 _hTrigBDW [i] = NULL;
@@ -78,18 +76,18 @@ namespace ots
7876 struct trigInfo_ {
7977 int counts;
8078 int exclusive_counts;
81- std::string label;
79+ std::string label;
8280 trigInfo_ ():counts(0), exclusive_counts(0){}
8381 };
8482
85- std::vector<trigInfo_> _trigAll;
86- std::vector<trigInfo_> _trigFinal;
87- std::vector<trigInfo_> _trigCaloOnly;
83+ std::vector<trigInfo_> _trigAll;
84+ std::vector<trigInfo_> _trigFinal;
85+ std::vector<trigInfo_> _trigCaloOnly;
8886 std::vector<trigInfo_> _trigCaloCalib;
89- std::vector<trigInfo_> _trigTrack;
90- std::vector<trigInfo_> _trigHelix;
91- std::vector<trigInfo_> _trigEvtPS;
92-
87+ std::vector<trigInfo_> _trigTrack;
88+ std::vector<trigInfo_> _trigHelix;
89+ std::vector<trigInfo_> _trigEvtPS;
90+
9391 summaryInfoHist_ sumHist_;
9492
9593 art::RunNumber_t current_run_;
@@ -98,13 +96,13 @@ namespace ots
9896 bool writeOutput_;
9997 bool doStreaming_;
10098 bool overwrite_mode_;
101- size_t _nMaxTrig;
99+ size_t _nMaxTrig;
102100 int _nTrackTrig;
103101 int _nCaloTrig;
104102 float _nProcess;
105103 double _duty_cycle;
106104 void PlotRate(art::Event const& e);
107-
105+
108106 void BookHistos();
109107 void BookTriggerHistos();
110108 void FillHistos();
@@ -127,13 +125,13 @@ ots::TriggerRates::TriggerRates(fhicl::ParameterSet const& pset)
127125 _duty_cycle (pset.get<float> ("dutyCycle", 1.))
128126{
129127 TLOG_INFO("TriggerRates") << "TriggerRate Plotter construction is beginning " << TLOG_ENDL;
130- _trigAll. resize(_nMaxTrig);
131- _trigFinal. resize(_nMaxTrig);
132- _trigCaloOnly. resize(_nMaxTrig);
128+ _trigAll. resize(_nMaxTrig);
129+ _trigFinal. resize(_nMaxTrig);
130+ _trigCaloOnly. resize(_nMaxTrig);
133131 _trigCaloCalib.resize(_nMaxTrig);
134- _trigTrack. resize(_nMaxTrig);
135- _trigHelix. resize(_nMaxTrig);
136- _trigEvtPS. resize(_nMaxTrig);
132+ _trigTrack. resize(_nMaxTrig);
133+ _trigHelix. resize(_nMaxTrig);
134+ _trigEvtPS. resize(_nMaxTrig);
137135 TLOG_DEBUG("TriggerRates") << "TriggerRate Plotter construction complete" << TLOG_ENDL;
138136}
139137
@@ -159,28 +157,28 @@ void ots::TriggerRates::analyze(art::Event const& e)
159157 void ots::TriggerRates::BookHistos(){
160158 art::TFileDirectory trigInfoDir = tfs->mkdir("trigInfo");
161159
162- sumHist_._hTrigInfo[0] = trigInfoDir.make<TH1F>("hTrigInfo_global", "Global Trigger rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
163- sumHist_._hTrigInfo[1] = trigInfoDir.make<TH1F>("hTrigInfo_track", "Calo-only Triggers rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
164- sumHist_._hTrigInfo[2] = trigInfoDir.make<TH1F>("hTrigInfo_calo", "Track Triggers rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
165- sumHist_._hTrigInfo[3] = trigInfoDir.make<TH1F>("hTrigInfo_evtPS", "Event prescaler Trigger bits distribution", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
166- sumHist_._hTrigInfo[4] = trigInfoDir.make<TH1F>("hTrigInfo_helix", "HelixSeed Triggers rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
167- sumHist_._hTrigInfo[5] = trigInfoDir.make<TH1F>("hTrigInfo_caloCalib", "Calo Calibration rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
168- sumHist_._hTrigInfo[6] = trigInfoDir.make<TH1F>("hTrigInfo_final" , "Global Trigger rejection of the paths" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
160+ sumHist_._hTrigInfo[0] = trigInfoDir.make<TH1F>("hTrigInfo_global", "Global Trigger rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
161+ sumHist_._hTrigInfo[1] = trigInfoDir.make<TH1F>("hTrigInfo_track", "Calo-only Triggers rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
162+ sumHist_._hTrigInfo[2] = trigInfoDir.make<TH1F>("hTrigInfo_calo", "Track Triggers rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
163+ sumHist_._hTrigInfo[3] = trigInfoDir.make<TH1F>("hTrigInfo_evtPS", "Event prescaler Trigger bits distribution", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
164+ sumHist_._hTrigInfo[4] = trigInfoDir.make<TH1F>("hTrigInfo_helix", "HelixSeed Triggers rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
165+ sumHist_._hTrigInfo[5] = trigInfoDir.make<TH1F>("hTrigInfo_caloCalib", "Calo Calibration rejection", (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
166+ sumHist_._hTrigInfo[6] = trigInfoDir.make<TH1F>("hTrigInfo_final" , "Global Trigger rejection of the paths" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
169167
170- sumHist_._hTrigInfo[10] = trigInfoDir.make<TH1F>("hTrigInfo_unique_all", "Events found only by each Trig path" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
171- sumHist_._hTrigInfo[11] = trigInfoDir.make<TH1F>("hTrigInfo_unique" , "Events found only by each Trig path" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
168+ sumHist_._hTrigInfo[10] = trigInfoDir.make<TH1F>("hTrigInfo_unique_all", "Events found only by each Trig path" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
169+ sumHist_._hTrigInfo[11] = trigInfoDir.make<TH1F>("hTrigInfo_unique" , "Events found only by each Trig path" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
172170
173- sumHist_._hTrigInfo[15] = trigInfoDir.make<TH1F>("hTrigInfo_paths" , "Rejection of all the Trigger paths" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
171+ sumHist_._hTrigInfo[15] = trigInfoDir.make<TH1F>("hTrigInfo_paths" , "Rejection of all the Trigger paths" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
174172
175173
176- sumHist_._h2DTrigInfo[0] = trigInfoDir.make<TH2F>("h2DTrigInfo_map_all" , "Trigger correlation map from all filters" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5), (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
177- sumHist_._h2DTrigInfo[1] = trigInfoDir.make<TH2F>("h2DTrigInfo_map" , "Trigger correlation map" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5), (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
174+ sumHist_._h2DTrigInfo[0] = trigInfoDir.make<TH2F>("h2DTrigInfo_map_all" , "Trigger correlation map from all filters" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5), (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
175+ sumHist_._h2DTrigInfo[1] = trigInfoDir.make<TH2F>("h2DTrigInfo_map" , "Trigger correlation map" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5), (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
178176
179177 art::TFileDirectory trigBDWDir = tfs->mkdir("trigBDW");
180178
181- sumHist_._hTrigBDW[0] = trigBDWDir.make<TH1F>("hTrigBDW_global" , "Trigger bandwidth; ; rate [Hz]" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
182- sumHist_._hTrigBDW[1] = trigBDWDir.make<TH1F>("hTrigBDW_cumulative", "Cumulative Trigger bandwidth; ; rate [Hz]" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
183-
179+ sumHist_._hTrigBDW[0] = trigBDWDir.make<TH1F>("hTrigBDW_global" , "Trigger bandwidth; ; rate [Hz]" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
180+ sumHist_._hTrigBDW[1] = trigBDWDir.make<TH1F>("hTrigBDW_cumulative", "Cumulative Trigger bandwidth; ; rate [Hz]" , (_nMaxTrig+2), -0.5, (_nMaxTrig+1.5));
181+
184182 }
185183
186184
@@ -203,7 +201,7 @@ void ots::TriggerRates::FillHistos(){
203201
204202 sumHist_._hTrigInfo[1]->GetXaxis()->SetBinLabel(i+1, _trigTrack[i].label.c_str());
205203 if (_trigTrack[i].counts > 0) sumHist_._hTrigInfo[1]->SetBinContent(i+1, _nProcess/_trigTrack[i].counts);
206-
204+
207205 sumHist_._hTrigInfo[2]->GetXaxis()->SetBinLabel(i+1, _trigCaloOnly[i].label.c_str());
208206 if (_trigCaloOnly[i].counts > 0) sumHist_._hTrigInfo[2]->SetBinContent(i+1, _nProcess/_trigCaloOnly[i].counts);
209207
@@ -271,25 +269,25 @@ void ots::TriggerRates::FillHistos(){
271269 }
272270 ++index_x;
273271 }
274-
272+
275273 evalTriggerRate();
276- //WRITE ROOT FILE
274+ //WRITE ROOT FILE
277275 //if(writeOutput_) tfs->write(); //tfs = art TFileService
278276 //STREAM - another handle, do stream ing as parameter - stream histograms
279277 //if (doStreaming_){ rootNetClient->write(); }
280278 }
281279
282280void ots::TriggerRates::evalTriggerRate(){
283-
281+
284282 std::sort(_trigFinal.begin(), _trigFinal.end(), [](const auto a, const auto b) {return a.counts < b.counts; });
285-
283+
286284 mu2e::ConditionsHandle<mu2e::AcceleratorParams> accPar("ignored");
287285 double mbtime = accPar->deBuncherPeriod;
288286 double mean_mb_rate = 1./(mbtime)*_duty_cycle;
289287
290288 bool isFirst(true);
291289 int index(0);
292-
290+
293291 std::vector<std::string> labels_by_rate;
294292
295293 for (size_t i=0; i< _trigFinal.size(); ++i){
0 commit comments