1 #ifndef DPGAnalysis_SiStripTools_DigiBXCorrHistogramMaker_H
2 #define DPGAnalysis_SiStripTools_DigiBXCorrHistogramMaker_H
11 #include "TProfile2D.h"
31 void beginRun(
const unsigned int nrun);
33 void fillcorr(
const T& he1,
const T& he2,
const std::map<int,int>& ndigi);
91 m_ncorbins(ncorbins), m_hitname(
"digi"), m_dbx3Histo(
false), m_dbx3Histo3D(
false),
92 m_runHisto(
true), m_labels(), m_binmax(), m_phasepart(), m_scalefact(), m_nbins(200),
97 m_ncorbins(iConfig.getUntrackedParameter<int>(
"corrNbins")),
98 m_hitname(iConfig.getUntrackedParameter<std::string>(
"hitName",
"digi")),
99 m_dbx3Histo(iConfig.getUntrackedParameter<bool>(
"dbx3Histo",
false)),
100 m_dbx3Histo3D(iConfig.getUntrackedParameter<bool>(
"dbx3Histo3D",
false)),
101 m_runHisto(iConfig.getUntrackedParameter<bool>(
"runHisto",
true)),
103 m_scalefact(iConfig.getUntrackedParameter<std::vector<int> >(
"scaleFactors",std::vector<int>(1,5))),
104 m_nbins(iConfig.getUntrackedParameter<int>(
"numberOfBins",200)),
108 std::vector<edm::ParameterSet>
109 wantedsubds(iConfig.
getUntrackedParameter<std::vector<edm::ParameterSet> >(
"wantedSubDets",std::vector<edm::ParameterSet>()));
111 for(std::vector<edm::ParameterSet>::iterator ps=wantedsubds.begin();ps!=wantedsubds.end();++ps) {
112 m_binmax[ps->getParameter<
unsigned int>(
"detSelection")] = ps->getParameter<
int>(
"binMax");
113 m_phasepart[ps->getParameter<
unsigned int>(
"detSelection")] = ps->getUntrackedParameter<std::string>(
"phasePartition",
"None");
128 edm::LogInfo(
"NumberOfBins") <<
"Number of Bins: " << m_nbins;
129 edm::LogInfo(
"ScaleFactors") <<
"x-axis range scale factors: ";
130 for(std::vector<int>::const_iterator sf=m_scalefact.begin();sf!=m_scalefact.end();++sf) {
133 edm::LogInfo(
"BinMaxValue") <<
"Setting bin max values";
135 for(std::map<int,std::string>::const_iterator lab=m_labels.begin();lab!=m_labels.end();lab++) {
137 const int i = lab->first;
const std::string slab = lab->second;
const unsigned int ui =
i;
139 if(m_binmax.find(ui)==m_binmax.end()) {
141 <<
" not configured: " << trnumb.
nstrips(i) <<
" used";
145 edm::LogVerbatim(
"BinMaxValue") <<
"Bin max for " << lab->second <<
" is " << m_binmax[
ui];
149 edm::LogInfo(
"PhasePartitions") <<
"Partitions for APV Cycle Phase";
151 for(std::map<int,std::string>::const_iterator lab=m_labels.begin();lab!=m_labels.end();lab++) {
153 const int i = lab->first;
const std::string slab = lab->second;
const unsigned int ui =
i;
154 edm::LogVerbatim(
"PhasePartitions") <<
"Partition for " << lab->second <<
" is " << ((m_phasepart.find(ui)!=m_phasepart.end()) ? m_phasepart[ui] :
"not found") ;
158 for(std::map<int,std::string>::const_iterator lab=m_labels.begin();lab!=m_labels.end();lab++) {
160 const int i = lab->first;
const std::string slab = lab->second;
const unsigned int ui =
i;
167 if(m_scalefact.size()>=1) {
168 sprintf(title,
"%s %s multiplicity vs BX separation",slab.c_str(),m_hitname.c_str());
169 sprintf(name,
"n%sdigivsdbx2D",slab.c_str());
170 m_ndigivsdbx2D[
i] = subev.
make<TH2F>(
name,
title,1000,-0.5,500000-0.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[0]*m_nbins)*m_nbins);
171 sprintf(name,
"n%sdigivsdbx2Dzoom2",slab.c_str());
172 m_ndigivsdbx2Dzoom2[
i] = subev.
make<TH2F>(
name,
title,1000,-0.5,50000-0.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[0]*m_nbins)*m_nbins);
173 sprintf(name,
"n%sdigivsdbx2Dzoom",slab.c_str());
174 m_ndigivsdbx2Dzoom[
i] = subev.
make<TH2F>(
name,
title,1000,-0.5,999.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[0]*m_nbins)*m_nbins);
176 m_ndigivsdbx2D[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbx2D[
i]->GetYaxis()->SetTitle(
"Number of Hits");
177 m_ndigivsdbx2Dzoom2[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbx2Dzoom2[
i]->GetYaxis()->SetTitle(
"Number of Hits");
178 m_ndigivsdbx2Dzoom[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbx2Dzoom[
i]->GetYaxis()->SetTitle(
"Number of Hits");
181 sprintf(title,
"%s %s multiplicity vs BX separation",slab.c_str(),m_hitname.c_str());
182 sprintf(name,
"n%sdigivsdbx",slab.c_str());
183 m_ndigivsdbx[
i] = subev.
make<TProfile>(
name,
title,1000,-0.5,500000.-0.5);
184 sprintf(name,
"n%sdigivsdbxzoom2",slab.c_str());
185 m_ndigivsdbxzoom2[
i] = subev.
make<TProfile>(
name,
title,1000,-0.5,50000.-0.5);
186 sprintf(name,
"n%sdigivsdbxzoom",slab.c_str());
187 m_ndigivsdbxzoom[
i] = subev.
make<TProfile>(
name,
title,1000,-0.5,999.5);
188 m_ndigivsdbx[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbx[
i]->GetYaxis()->SetTitle(
"Number of Hits");
189 m_ndigivsdbxzoom2[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbxzoom2[
i]->GetYaxis()->SetTitle(
"Number of Hits");
190 m_ndigivsdbxzoom[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbxzoom[
i]->GetYaxis()->SetTitle(
"Number of Hits");
192 sprintf(name,
"n%sdigivsdbx3zoom",slab.c_str());
193 sprintf(title,
"%s %s multiplicity vs Triplets BX separation",slab.c_str(),m_hitname.c_str());
194 m_ndigivsdbx3zoom[
i] = subev.
make<TProfile2D>(
name,
title,100,-0.5,999.5,100,-0.5,999.5);
195 m_ndigivsdbx3zoom[
i]->GetXaxis()->SetTitle(
"#DeltaBX(n,n-1)"); m_ndigivsdbx3zoom[
i]->GetYaxis()->SetTitle(
"#DeltaBX(n,n-2)");
197 sprintf(name,
"%sdigicorr",slab.c_str());
198 sprintf(title,
"%s %s DBX correlation",slab.c_str(),m_hitname.c_str());
199 m_digicorr[
i] = subev.
make<TProfile>(
name,
title,m_ncorbins,-0.5,m_ncorbins-0.5);
200 m_digicorr[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_digicorr[
i]->GetYaxis()->SetTitle(
"Number of Hits");
204 if(m_scalefact.size()>=1) {
206 if(m_phasepart.find(ui)!=m_phasepart.end() && m_phasepart[
ui]!=
"None") {
207 sprintf(name,
"n%sdigivsdbxincycle",slab.c_str());
208 sprintf(title,
"%s %s multiplicity vs BX separation w.r.t. cycle",slab.c_str(),m_hitname.c_str());
209 m_ndigivsdbxincycle[
i] = subev.
make<TProfile>(
name,
title,1000,-0.5,999.5);
210 m_ndigivsdbxincycle[
i]->GetXaxis()->SetTitle(
"#DeltaBX w.r.t. cycle"); m_ndigivsdbxincycle[
i]->GetYaxis()->SetTitle(
"Number of Hits");
212 sprintf(name,
"n%sdigivsdbxincycle2D",slab.c_str());
213 sprintf(title,
"%s %s multiplicity vs BX separation w.r.t. cycle",slab.c_str(),m_hitname.c_str());
214 m_ndigivsdbxincycle2D[
i] = subev.
make<TH2F>(
name,
title,1000,-0.5,999.5,m_nbins,0.,m_binmax[
ui]/(m_scalefact[0]*m_nbins)*m_nbins);
215 m_ndigivsdbxincycle2D[
i]->GetXaxis()->SetTitle(
"#DeltaBX w.r.t. cycle"); m_ndigivsdbxincycle2D[
i]->GetYaxis()->SetTitle(
"Number of Hits");
218 sprintf(name,
"n%sdigivsdbxincycle3",slab.c_str());
219 sprintf(title,
"%s %s multiplicity vs Triplets BX separation w.r.t. cycle",slab.c_str(),m_hitname.c_str());
220 m_ndigivsdbxincycle3[
i] = subev.
make<TProfile2D>(
name,
title,2000,-0.5,1999.5,30,-0.5,2099.5);
221 m_ndigivsdbxincycle3[
i]->GetXaxis()->SetTitle(
"#DeltaBX(n,n-1)");
222 m_ndigivsdbxincycle3[
i]->GetYaxis()->SetTitle(
"#DeltaBX(n,n-2)-#DeltaBX(n,n-1)");
225 sprintf(name,
"n%sdigivsdbxincycle33D",slab.c_str());
226 sprintf(title,
"%s %s multiplicity vs Triplets BX separation w.r.t. cycle",slab.c_str(),m_hitname.c_str());
227 m_ndigivsdbxincycle33D[
i] = subev.
make<TH3F>(
name,
title,2000,-0.5,1999.5,30,-0.5,2099.5,50,0.,m_binmax[
ui]/(m_scalefact[0]*50)*50);
228 m_ndigivsdbxincycle33D[
i]->GetXaxis()->SetTitle(
"#DeltaBX(n,n-1)");
229 m_ndigivsdbxincycle33D[
i]->GetYaxis()->SetTitle(
"#DeltaBX(n,n-2)-#DeltaBX(n,n-1)");
238 if(m_phasepart.find(ui)!=m_phasepart.end() && m_phasepart[
ui]!=
"None") {
240 sprintf(title,
"%s Mean %s multiplicity vs BX mod(70)",slab.c_str(),m_hitname.c_str());
241 sprintf(name,
"n%smeandigivscycle",slab.c_str());
242 m_nmeandigivscycle[
i] =subev.
make<TProfile>(
name,
title,70,-0.5,69.5);
243 m_nmeandigivscycle[
i]->GetXaxis()->SetTitle(
"absolute BX mod(70)");
244 m_nmeandigivscycle[
i]->GetYaxis()->SetTitle(
"Mean number of Hits");
246 sprintf(title,
"%s %s multiplicity vs BX mod(70)",slab.c_str(),m_hitname.c_str());
248 if(m_scalefact.size()>=1) {
249 sprintf(name,
"n%sdigivscycle",slab.c_str());
250 m_ndigivscycle[
i] =subev.
make<TH2F>(
name,
title,70,-0.5,69.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[0]*m_nbins)*m_nbins);
251 m_ndigivscycle[
i]->GetXaxis()->SetTitle(
"absolute BX mod(70)"); m_ndigivscycle[
i]->GetYaxis()->SetTitle(
"Number of Hits");
253 if(m_scalefact.size()>=2) {
254 sprintf(name,
"n%sdigivscyclezoom",slab.c_str());
255 m_ndigivscyclezoom[
i] =subev.
make<TH2F>(
name,
title,70,-0.5,69.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[1]*m_nbins)*m_nbins);
256 m_ndigivscyclezoom[
i]->GetXaxis()->SetTitle(
"absolute BX mod(70)");
257 m_ndigivscyclezoom[
i]->GetYaxis()->SetTitle(
"Number of Hits");
259 if(m_scalefact.size()>=3) {
260 sprintf(name,
"n%sdigivscyclezoom2",slab.c_str());
261 m_ndigivscyclezoom2[
i] =subev.
make<TH2F>(
name,
title,70,-0.5,69.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[2]*m_nbins)*m_nbins);
262 m_ndigivscyclezoom2[
i]->GetXaxis()->SetTitle(
"absolute BX mod(70)");
263 m_ndigivscyclezoom2[
i]->GetYaxis()->SetTitle(
"Number of Hits");
266 sprintf(name,
"n%sdigivscycledbx",slab.c_str());
267 sprintf(title,
"%s %s multiplicity vs BX mod(70) and DBX",slab.c_str(),m_hitname.c_str());
268 m_ndigivscycledbx[
i] = subev.
make<TProfile2D>(
name,
title,70,-0.5,69.5,1000,-0.5,999.5);
269 m_ndigivscycledbx[
i]->GetXaxis()->SetTitle(
"Event 1 BX mod(70)"); m_ndigivscycledbx[
i]->GetYaxis()->SetTitle(
"#DeltaBX event 2-1");
271 sprintf(name,
"n%sdigivscycle2dbx",slab.c_str());
272 sprintf(title,
"%s %s multiplicity vs BX mod(70) and DBX",slab.c_str(),m_hitname.c_str());
273 m_ndigivscycle2dbx[
i] = subev.
make<TProfile2D>(
name,
title,70,-0.5,69.5,1000,-0.5,999.5);
274 m_ndigivscycle2dbx[
i]->GetXaxis()->SetTitle(
"Event 2 BX mod(70)"); m_ndigivscycle2dbx[
i]->GetYaxis()->SetTitle(
"#DeltaBX event 2-1");
281 sprintf(name,
"n%sdigivscycletime",slab.c_str());
282 sprintf(title,
"%s %s multiplicity vs BX mod(70) and Orbit",slab.c_str(),m_hitname.c_str());
283 m_ndigivscycletime[
i] = m_rhm.makeTProfile2D(name,title,70,-0.5,69.5,90,0.,90.*11223);
290 sprintf(title,
"%s %s mean multiplicity vs BX",slab.c_str(),m_hitname.c_str());
291 sprintf(name,
"n%sdigivsbx",slab.c_str());
292 m_ndigivsbx[
i] =subev.
make<TProfile>(
name,
title,3564,-0.5,3563.5);
293 m_ndigivsbx[
i]->GetXaxis()->SetTitle(
"BX#"); m_ndigivsbx[
i]->GetYaxis()->SetTitle(
"Mean Number of Hits");
295 sprintf(title,
"%s %s multiplicity vs BX",slab.c_str(),m_hitname.c_str());
297 if(m_scalefact.size()>=1) {
298 sprintf(name,
"n%sdigivsbx2D",slab.c_str());
299 m_ndigivsbx2D[
i] =subev.
make<TH2F>(
name,
title,3564,-0.5,3563.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[0]*m_nbins)*m_nbins);
300 m_ndigivsbx2D[
i]->GetXaxis()->SetTitle(
"BX#"); m_ndigivsbx2D[
i]->GetYaxis()->SetTitle(
"Number of Hits");
302 if(m_scalefact.size()>=2) {
303 sprintf(name,
"n%sdigivsbx2Dzoom",slab.c_str());
304 m_ndigivsbx2Dzoom[
i] =subev.
make<TH2F>(
name,
title,3564,-0.5,3563.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[1]*m_nbins)*m_nbins);
305 m_ndigivsbx2Dzoom[
i]->GetXaxis()->SetTitle(
"BX#"); m_ndigivsbx2Dzoom[
i]->GetYaxis()->SetTitle(
"Number of Hits");
307 if(m_scalefact.size()>=3) {
308 sprintf(name,
"n%sdigivsbx2Dzoom2",slab.c_str());
309 m_ndigivsbx2Dzoom2[
i] =subev.
make<TH2F>(
name,
title,3564,-0.5,3563.5,m_nbins,0,m_binmax[
ui]/(m_scalefact[2]*m_nbins)*m_nbins);
310 m_ndigivsbx2Dzoom2[
i]->GetXaxis()->SetTitle(
"BX#"); m_ndigivsbx2Dzoom2[
i]->GetYaxis()->SetTitle(
"Number of Hits");
320 m_rhm.beginRun(nrun);
322 for(std::map<int,std::string>::const_iterator lab=m_labels.begin();lab!=m_labels.end();lab++) {
324 const int i = lab->first;
326 if(m_ndigivscycletime[i]) {
327 (*m_ndigivscycletime[
i])->GetXaxis()->SetTitle(
"Event 1 BX mod(70)"); (*m_ndigivscycletime[
i])->GetYaxis()->SetTitle(
"time [Orb#]");
328 (*m_ndigivscycletime[
i])->SetBit(TH1::kCanRebin);
339 for(std::map<int,int>::const_iterator digi=ndigi.begin();digi!=ndigi.end();digi++) {
341 if(m_labels.find(digi->first) != m_labels.end()) {
342 const int i=digi->first;
const unsigned int ui =
i;
345 if(m_phasepart.find(ui)!=m_phasepart.end() && m_phasepart[
ui]!=
"None") {
347 thephase = phase->getPhase(m_phasepart[ui]);
351 long long tbx = he.absoluteBX();
356 if(m_nmeandigivscycle.find(i)!=m_nmeandigivscycle.end()) m_nmeandigivscycle[i]->
Fill(tbx%70,digi->second);
358 if(m_ndigivscycle.find(i)!=m_ndigivscycle.end()) m_ndigivscycle[i]->
Fill(tbx%70,digi->second);
359 if(m_ndigivscyclezoom.find(i)!=m_ndigivscyclezoom.end()) m_ndigivscyclezoom[i]->
Fill(tbx%70,digi->second);
360 if(m_ndigivscyclezoom2.find(i)!=m_ndigivscyclezoom2.end()) m_ndigivscyclezoom2[i]->
Fill(tbx%70,digi->second);
363 if(m_ndigivscycletime.find(i)!=m_ndigivscycletime.end()) {
364 if(m_ndigivscycletime[i]!=0 && (*m_ndigivscycletime[i])!=0 ) (*m_ndigivscycletime[i])->Fill(tbx%70,(
int)he._orbit,digi->second);
368 m_ndigivsbx[
i]->Fill(he.bx(),digi->second);
369 if(m_ndigivsbx2D.find(i)!=m_ndigivsbx2D.end()) m_ndigivsbx2D[i]->
Fill(he.bx(),digi->second);
370 if(m_ndigivsbx2Dzoom.find(i)!=m_ndigivsbx2Dzoom.end()) m_ndigivsbx2Dzoom[i]->
Fill(he.bx(),digi->second);
371 if(m_ndigivsbx2Dzoom2.find(i)!=m_ndigivsbx2Dzoom2.end()) m_ndigivsbx2Dzoom2[i]->
Fill(he.bx(),digi->second);
376 long long dbx = he.deltaBX();
378 m_ndigivsdbx[
i]->Fill(dbx,digi->second);
379 m_ndigivsdbxzoom[
i]->Fill(dbx,digi->second);
380 m_ndigivsdbxzoom2[
i]->Fill(dbx,digi->second);
382 if(m_ndigivsdbx2D.find(i)!=m_ndigivsdbx2D.end()) m_ndigivsdbx2D[i]->
Fill(dbx,digi->second);
383 if(m_ndigivsdbx2Dzoom.find(i)!=m_ndigivsdbx2Dzoom.end()) m_ndigivsdbx2Dzoom[i]->
Fill(dbx,digi->second);
384 if(m_ndigivsdbx2Dzoom2.find(i)!=m_ndigivsdbx2Dzoom2.end()) m_ndigivsdbx2Dzoom2[i]->
Fill(dbx,digi->second);
389 long long dbxincycle = he.deltaBXinCycle(thephase);
390 if(m_ndigivsdbxincycle2D.find(i)!=m_ndigivsdbxincycle2D.end()) m_ndigivsdbxincycle2D[i]->
Fill(dbxincycle,digi->second);
391 if(m_ndigivsdbxincycle.find(i)!=m_ndigivsdbxincycle.end()) m_ndigivsdbxincycle[i]->
Fill(dbxincycle,digi->second);
394 long long prevtbx = he.absoluteBX(1);
400 if(m_ndigivscycledbx.find(i)!=m_ndigivscycledbx.end()) m_ndigivscycledbx[i]->
Fill(prevtbx%70,dbx,digi->second);
401 if(m_ndigivscycle2dbx.find(i)!=m_ndigivscycle2dbx.end()) m_ndigivscycle2dbx[i]->
Fill(tbx%70,dbx,digi->second);
405 long long dbx2 = he.deltaBX(2);
406 m_ndigivsdbx3zoom[
i]->Fill(dbx2,dbx,digi->second);
411 long long dbxincycle = he.deltaBXinCycle(thephase);
412 long long dbxincycle2 = he.deltaBXinCycle(2,thephase);
414 if(m_ndigivsdbxincycle3.find(i)!=m_ndigivsdbxincycle3.end()) m_ndigivsdbxincycle3[i]->
Fill(dbxincycle,dbxincycle2-dbxincycle,digi->second);
416 if(m_ndigivsdbxincycle33D.find(i)!=m_ndigivsdbxincycle33D.end()) m_ndigivsdbxincycle33D[i]->
Fill(dbxincycle,dbxincycle2-dbxincycle,digi->second);
425 edm::LogWarning(
"MissingKey") <<
" Key " << digi->first <<
" is missing ";
434 for(std::map<int,int>::const_iterator digi=ndigi.begin();digi!=ndigi.end();digi++) {
436 if(m_labels.find(digi->first) != m_labels.end()) {
437 const int i=digi->first;
439 long long dbx = he2.deltaBX(he1);
440 m_digicorr[
i]->Fill(dbx,digi->second);
444 edm::LogWarning(
"MissingKey") <<
" Key " << digi->first <<
" is missing ";
451 #endif // DPGAnalysis_SiStripTools_DigiBXCorrHistogramMaker_H
std::map< int, TH2F * > m_ndigivsbx2D
T getUntrackedParameter(std::string const &, T const &) const
std::map< int, TH2F * > m_ndigivscycle
std::map< int, TProfile2D * > m_ndigivscycle2dbx
std::map< int, TProfile * > m_ndigivsdbxzoom2
std::map< int, TProfile * > m_ndigivsdbxzoom
std::map< int, TH2F * > m_ndigivscyclezoom2
RunHistogramManager m_rhm
std::map< int, std::string > m_labels
std::map< int, TH3F * > m_ndigivsdbxincycle33D
std::map< int, TH2F * > m_ndigivsdbx2D
std::map< int, TProfile * > m_ndigivsbx
std::map< int, TH2F * > m_ndigivsbx2Dzoom2
std::map< int, TH2F * > m_ndigivsdbx2Dzoom2
std::map< int, TProfile * > m_digicorr
int nstrips(const SiStripDetId &detid) const
void book(const char *dirname, const std::map< int, std::string > &labels)
~DigiBXCorrHistogramMaker()
std::map< int, TH2F * > m_ndigivsdbx2Dzoom
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::map< int, TProfile * > m_ndigivsdbxincycle
std::map< unsigned int, int > m_binmax
std::map< int, TProfile2D * > m_ndigivsdbx3zoom
std::map< int, TProfile2D * > m_ndigivsdbxincycle3
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
void fillcorr(const T &he1, const T &he2, const std::map< int, int > &ndigi)
std::map< int, TProfile2D ** > m_ndigivscycletime
std::map< int, TProfile2D * > m_ndigivscycledbx
void fill(const T &he, const std::map< int, int > &ndigi, const edm::Handle< APVCyclePhaseCollection > &phase)
T * make() const
make new ROOT object
std::map< int, TProfile * > m_ndigivsdbx
std::map< int, TH2F * > m_ndigivsdbxincycle2D
std::vector< int > m_scalefact
std::map< int, TProfile * > m_nmeandigivscycle
std::map< int, TH2F * > m_ndigivsbx2Dzoom
std::map< int, std::string > m_phasepart
std::map< int, TH2F * > m_ndigivscyclezoom
DigiBXCorrHistogramMaker(const int ncorbins=1000)
void beginRun(const unsigned int nrun)