1 #ifndef DPGAnalysis_SiStripTools_DigiBXCorrHistogramMaker_H
2 #define DPGAnalysis_SiStripTools_DigiBXCorrHistogramMaker_H
12 #include "TProfile2D.h"
32 void beginRun(
const unsigned int nrun);
34 void fillcorr(
const T& he1,
const T& he2,
const std::map<int,int>& ndigi);
92 m_ncorbins(ncorbins), m_hitname(
"digi"), m_dbx3Histo(
false), m_dbx3Histo3D(
false),
93 m_runHisto(
true), m_labels(), m_binmax(), m_phasepart(), m_scalefact(), m_nbins(200),
98 m_ncorbins(iConfig.getUntrackedParameter<int>(
"corrNbins")),
99 m_hitname(iConfig.getUntrackedParameter<std::
string>(
"hitName",
"digi")),
100 m_dbx3Histo(iConfig.getUntrackedParameter<bool>(
"dbx3Histo",
false)),
101 m_dbx3Histo3D(iConfig.getUntrackedParameter<bool>(
"dbx3Histo3D",
false)),
102 m_runHisto(iConfig.getUntrackedParameter<bool>(
"runHisto",
true)),
104 m_scalefact(iConfig.getUntrackedParameter<std::vector<int> >(
"scaleFactors",std::vector<int>(1,5))),
105 m_nbins(iConfig.getUntrackedParameter<int>(
"numberOfBins",200)),
109 std::vector<edm::ParameterSet>
110 wantedsubds(iConfig.
getUntrackedParameter<std::vector<edm::ParameterSet> >(
"wantedSubDets",std::vector<edm::ParameterSet>()));
112 for(std::vector<edm::ParameterSet>::iterator ps=wantedsubds.begin();ps!=wantedsubds.end();++ps) {
113 m_binmax[ps->getParameter<
unsigned int>(
"detSelection")] = ps->getParameter<
int>(
"binMax");
114 m_phasepart[ps->getParameter<
unsigned int>(
"detSelection")] = ps->getUntrackedParameter<
std::string>(
"phasePartition",
"None");
129 edm::LogInfo(
"NumberOfBins") <<
"Number of Bins: " << m_nbins;
130 edm::LogInfo(
"ScaleFactors") <<
"x-axis range scale factors: ";
131 for(std::vector<int>::const_iterator sf=m_scalefact.begin();sf!=m_scalefact.end();++sf) {
134 edm::LogInfo(
"BinMaxValue") <<
"Setting bin max values";
136 for(std::map<int,std::string>::const_iterator lab=m_labels.begin();lab!=m_labels.end();lab++) {
138 const int i = lab->first;
const std::string slab = lab->second;
const unsigned int ui =
i;
140 if(m_binmax.find(ui)==m_binmax.end()) {
142 <<
" not configured: " << trnumb.
nstrips(i) <<
" used";
146 edm::LogVerbatim(
"BinMaxValue") <<
"Bin max for " << lab->second <<
" is " << m_binmax[
ui];
150 edm::LogInfo(
"PhasePartitions") <<
"Partitions for APV Cycle Phase";
152 for(std::map<int,std::string>::const_iterator lab=m_labels.begin();lab!=m_labels.end();lab++) {
154 const int i = lab->first;
const std::string slab = lab->second;
const unsigned int ui =
i;
155 edm::LogVerbatim(
"PhasePartitions") <<
"Partition for " << lab->second <<
" is " << ((m_phasepart.find(ui)!=m_phasepart.end()) ? m_phasepart[ui] :
"not found") ;
159 for(std::map<int,std::string>::const_iterator lab=m_labels.begin();lab!=m_labels.end();lab++) {
161 const int i = lab->first;
const std::string slab = lab->second;
const unsigned int ui =
i;
168 if(m_scalefact.size()>=1) {
169 sprintf(title,
"%s %s multiplicity vs BX separation",slab.c_str(),m_hitname.c_str());
170 sprintf(name,
"n%sdigivsdbx2D",slab.c_str());
171 m_ndigivsdbx2D[
i] = subev.
make<TH2F>(
name,
title,1000,-0.5,500000-0.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[0]*m_nbins))*m_nbins);
172 sprintf(name,
"n%sdigivsdbx2Dzoom2",slab.c_str());
173 m_ndigivsdbx2Dzoom2[
i] = subev.
make<TH2F>(
name,
title,1000,-0.5,50000-0.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[0]*m_nbins))*m_nbins);
174 sprintf(name,
"n%sdigivsdbx2Dzoom",slab.c_str());
175 m_ndigivsdbx2Dzoom[
i] = subev.
make<TH2F>(
name,
title,1000,-0.5,999.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[0]*m_nbins))*m_nbins);
177 m_ndigivsdbx2D[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbx2D[
i]->GetYaxis()->SetTitle(
"Number of Hits");
178 m_ndigivsdbx2Dzoom2[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbx2Dzoom2[
i]->GetYaxis()->SetTitle(
"Number of Hits");
179 m_ndigivsdbx2Dzoom[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbx2Dzoom[
i]->GetYaxis()->SetTitle(
"Number of Hits");
182 sprintf(title,
"%s %s multiplicity vs BX separation",slab.c_str(),m_hitname.c_str());
183 sprintf(name,
"n%sdigivsdbx",slab.c_str());
184 m_ndigivsdbx[
i] = subev.
make<TProfile>(
name,
title,1000,-0.5,500000.-0.5);
185 sprintf(name,
"n%sdigivsdbxzoom2",slab.c_str());
186 m_ndigivsdbxzoom2[
i] = subev.
make<TProfile>(
name,
title,1000,-0.5,50000.-0.5);
187 sprintf(name,
"n%sdigivsdbxzoom",slab.c_str());
188 m_ndigivsdbxzoom[
i] = subev.
make<TProfile>(
name,
title,1000,-0.5,999.5);
189 m_ndigivsdbx[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbx[
i]->GetYaxis()->SetTitle(
"Number of Hits");
190 m_ndigivsdbxzoom2[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbxzoom2[
i]->GetYaxis()->SetTitle(
"Number of Hits");
191 m_ndigivsdbxzoom[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_ndigivsdbxzoom[
i]->GetYaxis()->SetTitle(
"Number of Hits");
193 sprintf(name,
"n%sdigivsdbx3zoom",slab.c_str());
194 sprintf(title,
"%s %s multiplicity vs Triplets BX separation",slab.c_str(),m_hitname.c_str());
195 m_ndigivsdbx3zoom[
i] = subev.
make<TProfile2D>(
name,
title,100,-0.5,999.5,100,-0.5,999.5);
196 m_ndigivsdbx3zoom[
i]->GetXaxis()->SetTitle(
"#DeltaBX(n,n-1)"); m_ndigivsdbx3zoom[
i]->GetYaxis()->SetTitle(
"#DeltaBX(n,n-2)");
198 sprintf(name,
"%sdigicorr",slab.c_str());
199 sprintf(title,
"%s %s DBX correlation",slab.c_str(),m_hitname.c_str());
200 m_digicorr[
i] = subev.
make<TProfile>(
name,
title,m_ncorbins,-0.5,m_ncorbins-0.5);
201 m_digicorr[
i]->GetXaxis()->SetTitle(
"#DeltaBX"); m_digicorr[
i]->GetYaxis()->SetTitle(
"Number of Hits");
205 if(m_scalefact.size()>=1) {
207 if(m_phasepart.find(ui)!=m_phasepart.end() && m_phasepart[
ui]!=
"None") {
208 sprintf(name,
"n%sdigivsdbxincycle",slab.c_str());
209 sprintf(title,
"%s %s multiplicity vs BX separation w.r.t. cycle",slab.c_str(),m_hitname.c_str());
210 m_ndigivsdbxincycle[
i] = subev.
make<TProfile>(
name,
title,1000,-0.5,999.5);
211 m_ndigivsdbxincycle[
i]->GetXaxis()->SetTitle(
"#DeltaBX w.r.t. cycle"); m_ndigivsdbxincycle[
i]->GetYaxis()->SetTitle(
"Number of Hits");
213 sprintf(name,
"n%sdigivsdbxincycle2D",slab.c_str());
214 sprintf(title,
"%s %s multiplicity vs BX separation w.r.t. cycle",slab.c_str(),m_hitname.c_str());
215 m_ndigivsdbxincycle2D[
i] = subev.
make<TH2F>(
name,
title,1000,-0.5,999.5,m_nbins,0.,(1+m_binmax[
ui]/(m_scalefact[0]*m_nbins))*m_nbins);
216 m_ndigivsdbxincycle2D[
i]->GetXaxis()->SetTitle(
"#DeltaBX w.r.t. cycle"); m_ndigivsdbxincycle2D[
i]->GetYaxis()->SetTitle(
"Number of Hits");
219 sprintf(name,
"n%sdigivsdbxincycle3",slab.c_str());
220 sprintf(title,
"%s %s multiplicity vs Triplets BX separation w.r.t. cycle",slab.c_str(),m_hitname.c_str());
221 m_ndigivsdbxincycle3[
i] = subev.
make<TProfile2D>(
name,
title,2000,-0.5,1999.5,30,-0.5,2099.5);
222 m_ndigivsdbxincycle3[
i]->GetXaxis()->SetTitle(
"#DeltaBX(n,n-1)");
223 m_ndigivsdbxincycle3[
i]->GetYaxis()->SetTitle(
"#DeltaBX(n,n-2)-#DeltaBX(n,n-1)");
226 sprintf(name,
"n%sdigivsdbxincycle33D",slab.c_str());
227 sprintf(title,
"%s %s multiplicity vs Triplets BX separation w.r.t. cycle",slab.c_str(),m_hitname.c_str());
228 m_ndigivsdbxincycle33D[
i] = subev.
make<TH3F>(
name,
title,2000,-0.5,1999.5,30,-0.5,2099.5,50,0.,(1+m_binmax[
ui]/(m_scalefact[0]*50))*50);
229 m_ndigivsdbxincycle33D[
i]->GetXaxis()->SetTitle(
"#DeltaBX(n,n-1)");
230 m_ndigivsdbxincycle33D[
i]->GetYaxis()->SetTitle(
"#DeltaBX(n,n-2)-#DeltaBX(n,n-1)");
239 if(m_phasepart.find(ui)!=m_phasepart.end() && m_phasepart[
ui]!=
"None") {
241 sprintf(title,
"%s Mean %s multiplicity vs BX mod(70)",slab.c_str(),m_hitname.c_str());
242 sprintf(name,
"n%smeandigivscycle",slab.c_str());
243 m_nmeandigivscycle[
i] =subev.
make<TProfile>(
name,
title,70,-0.5,69.5);
244 m_nmeandigivscycle[
i]->GetXaxis()->SetTitle(
"absolute BX mod(70)");
245 m_nmeandigivscycle[
i]->GetYaxis()->SetTitle(
"Mean number of Hits");
247 sprintf(title,
"%s %s multiplicity vs BX mod(70)",slab.c_str(),m_hitname.c_str());
249 if(m_scalefact.size()>=1) {
250 sprintf(name,
"n%sdigivscycle",slab.c_str());
251 m_ndigivscycle[
i] =subev.
make<TH2F>(
name,
title,70,-0.5,69.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[0]*m_nbins))*m_nbins);
252 m_ndigivscycle[
i]->GetXaxis()->SetTitle(
"absolute BX mod(70)"); m_ndigivscycle[
i]->GetYaxis()->SetTitle(
"Number of Hits");
254 if(m_scalefact.size()>=2) {
255 sprintf(name,
"n%sdigivscyclezoom",slab.c_str());
256 m_ndigivscyclezoom[
i] =subev.
make<TH2F>(
name,
title,70,-0.5,69.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[1]*m_nbins))*m_nbins);
257 m_ndigivscyclezoom[
i]->GetXaxis()->SetTitle(
"absolute BX mod(70)");
258 m_ndigivscyclezoom[
i]->GetYaxis()->SetTitle(
"Number of Hits");
260 if(m_scalefact.size()>=3) {
261 sprintf(name,
"n%sdigivscyclezoom2",slab.c_str());
262 m_ndigivscyclezoom2[
i] =subev.
make<TH2F>(
name,
title,70,-0.5,69.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[2]*m_nbins))*m_nbins);
263 m_ndigivscyclezoom2[
i]->GetXaxis()->SetTitle(
"absolute BX mod(70)");
264 m_ndigivscyclezoom2[
i]->GetYaxis()->SetTitle(
"Number of Hits");
267 sprintf(name,
"n%sdigivscycledbx",slab.c_str());
268 sprintf(title,
"%s %s multiplicity vs BX mod(70) and DBX",slab.c_str(),m_hitname.c_str());
269 m_ndigivscycledbx[
i] = subev.
make<TProfile2D>(
name,
title,70,-0.5,69.5,1000,-0.5,999.5);
270 m_ndigivscycledbx[
i]->GetXaxis()->SetTitle(
"Event 1 BX mod(70)"); m_ndigivscycledbx[
i]->GetYaxis()->SetTitle(
"#DeltaBX event 2-1");
272 sprintf(name,
"n%sdigivscycle2dbx",slab.c_str());
273 sprintf(title,
"%s %s multiplicity vs BX mod(70) and DBX",slab.c_str(),m_hitname.c_str());
274 m_ndigivscycle2dbx[
i] = subev.
make<TProfile2D>(
name,
title,70,-0.5,69.5,1000,-0.5,999.5);
275 m_ndigivscycle2dbx[
i]->GetXaxis()->SetTitle(
"Event 2 BX mod(70)"); m_ndigivscycle2dbx[
i]->GetYaxis()->SetTitle(
"#DeltaBX event 2-1");
282 sprintf(name,
"n%sdigivscycletime",slab.c_str());
283 sprintf(title,
"%s %s multiplicity vs BX mod(70) and Orbit",slab.c_str(),m_hitname.c_str());
284 m_ndigivscycletime[
i] =
m_rhm.makeTProfile2D(name,title,70,-0.5,69.5,90,0.,90*262144);
291 sprintf(title,
"%s %s mean multiplicity vs BX",slab.c_str(),m_hitname.c_str());
292 sprintf(name,
"n%sdigivsbx",slab.c_str());
293 m_ndigivsbx[
i] =subev.
make<TProfile>(
name,
title,3564,-0.5,3563.5);
294 m_ndigivsbx[
i]->GetXaxis()->SetTitle(
"BX#"); m_ndigivsbx[
i]->GetYaxis()->SetTitle(
"Mean Number of Hits");
296 sprintf(title,
"%s %s multiplicity vs BX",slab.c_str(),m_hitname.c_str());
298 if(m_scalefact.size()>=1) {
299 sprintf(name,
"n%sdigivsbx2D",slab.c_str());
300 m_ndigivsbx2D[
i] =subev.
make<TH2F>(
name,
title,3564,-0.5,3563.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[0]*m_nbins))*m_nbins);
301 m_ndigivsbx2D[
i]->GetXaxis()->SetTitle(
"BX#"); m_ndigivsbx2D[
i]->GetYaxis()->SetTitle(
"Number of Hits");
303 if(m_scalefact.size()>=2) {
304 sprintf(name,
"n%sdigivsbx2Dzoom",slab.c_str());
305 m_ndigivsbx2Dzoom[
i] =subev.
make<TH2F>(
name,
title,3564,-0.5,3563.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[1]*m_nbins))*m_nbins);
306 m_ndigivsbx2Dzoom[
i]->GetXaxis()->SetTitle(
"BX#"); m_ndigivsbx2Dzoom[
i]->GetYaxis()->SetTitle(
"Number of Hits");
308 if(m_scalefact.size()>=3) {
309 sprintf(name,
"n%sdigivsbx2Dzoom2",slab.c_str());
310 m_ndigivsbx2Dzoom2[
i] =subev.
make<TH2F>(
name,
title,3564,-0.5,3563.5,m_nbins,0,(1+m_binmax[
ui]/(m_scalefact[2]*m_nbins))*m_nbins);
311 m_ndigivsbx2Dzoom2[
i]->GetXaxis()->SetTitle(
"BX#"); m_ndigivsbx2Dzoom2[
i]->GetYaxis()->SetTitle(
"Number of Hits");
321 m_rhm.beginRun(nrun);
323 for(std::map<int,std::string>::const_iterator lab=m_labels.begin();lab!=m_labels.end();lab++) {
325 const int i = lab->first;
327 if(m_ndigivscycletime[i]) {
328 (*m_ndigivscycletime[
i])->GetXaxis()->SetTitle(
"Event 1 BX mod(70)"); (*m_ndigivscycletime[
i])->GetYaxis()->SetTitle(
"time [Orb#]");
329 (*m_ndigivscycletime[
i])->SetCanExtend(TH1::kAllAxes);
340 for(std::map<int,int>::const_iterator digi=ndigi.begin();digi!=ndigi.end();digi++) {
342 if(m_labels.find(digi->first) != m_labels.end()) {
343 const int i=digi->first;
const unsigned int ui =
i;
346 if(m_phasepart.find(ui)!=m_phasepart.end() && m_phasepart[
ui]!=
"None") {
348 thephase = phase->getPhase(m_phasepart[ui]);
352 long long tbx = he.absoluteBX();
359 if(m_nmeandigivscycle.find(i)!=m_nmeandigivscycle.end()) m_nmeandigivscycle[i]->
Fill(tbx%70,digi->second);
361 if(m_ndigivscycle.find(i)!=m_ndigivscycle.end()) m_ndigivscycle[i]->
Fill(tbx%70,digi->second);
362 if(m_ndigivscyclezoom.find(i)!=m_ndigivscyclezoom.end()) m_ndigivscyclezoom[i]->
Fill(tbx%70,digi->second);
363 if(m_ndigivscyclezoom2.find(i)!=m_ndigivscyclezoom2.end()) m_ndigivscyclezoom2[i]->
Fill(tbx%70,digi->second);
368 if(m_ndigivscycletime.find(i)!=m_ndigivscycletime.end()) {
369 if(m_ndigivscycletime[i]!=0 && (*m_ndigivscycletime[i])!=0 ) (*m_ndigivscycletime[i])->Fill(tbx%70,(
int)he._orbit,digi->second);
373 m_ndigivsbx[
i]->Fill(he.bx()%3564,digi->second);
374 if(m_ndigivsbx2D.find(i)!=m_ndigivsbx2D.end()) m_ndigivsbx2D[i]->
Fill(he.bx()%3564,digi->second);
375 if(m_ndigivsbx2Dzoom.find(i)!=m_ndigivsbx2Dzoom.end()) m_ndigivsbx2Dzoom[i]->
Fill(he.bx()%3564,digi->second);
376 if(m_ndigivsbx2Dzoom2.find(i)!=m_ndigivsbx2Dzoom2.end()) m_ndigivsbx2Dzoom2[i]->
Fill(he.bx()%3564,digi->second);
381 long long dbx = he.deltaBX();
383 m_ndigivsdbx[
i]->Fill(dbx,digi->second);
384 m_ndigivsdbxzoom[
i]->Fill(dbx,digi->second);
385 m_ndigivsdbxzoom2[
i]->Fill(dbx,digi->second);
387 if(m_ndigivsdbx2D.find(i)!=m_ndigivsdbx2D.end()) m_ndigivsdbx2D[i]->
Fill(dbx,digi->second);
388 if(m_ndigivsdbx2Dzoom.find(i)!=m_ndigivsdbx2Dzoom.end()) m_ndigivsdbx2Dzoom[i]->
Fill(dbx,digi->second);
389 if(m_ndigivsdbx2Dzoom2.find(i)!=m_ndigivsdbx2Dzoom2.end()) m_ndigivsdbx2Dzoom2[i]->
Fill(dbx,digi->second);
391 long long prevtbx = he.absoluteBX(1);
396 long long dbxincycle = he.deltaBXinCycle(thephase);
397 if(m_ndigivsdbxincycle2D.find(i)!=m_ndigivsdbxincycle2D.end()) m_ndigivsdbxincycle2D[i]->
Fill(dbxincycle,digi->second);
398 if(m_ndigivsdbxincycle.find(i)!=m_ndigivsdbxincycle.end()) m_ndigivsdbxincycle[i]->
Fill(dbxincycle,digi->second);
401 if(m_ndigivscycledbx.find(i)!=m_ndigivscycledbx.end()) m_ndigivscycledbx[i]->
Fill(prevtbx%70,dbx,digi->second);
402 if(m_ndigivscycle2dbx.find(i)!=m_ndigivscycle2dbx.end()) m_ndigivscycle2dbx[i]->
Fill(tbx%70,dbx,digi->second);
408 long long dbx2 = he.deltaBX(2);
409 m_ndigivsdbx3zoom[
i]->Fill(dbx2,dbx,digi->second);
414 long long dbxincycle = he.deltaBXinCycle(thephase);
415 long long dbxincycle2 = he.deltaBXinCycle(2,thephase);
417 if(m_ndigivsdbxincycle3.find(i)!=m_ndigivsdbxincycle3.end()) m_ndigivsdbxincycle3[i]->
Fill(dbxincycle,dbxincycle2-dbxincycle,digi->second);
419 if(m_ndigivsdbxincycle33D.find(i)!=m_ndigivsdbxincycle33D.end()) m_ndigivsdbxincycle33D[i]->
Fill(dbxincycle,dbxincycle2-dbxincycle,digi->second);
428 edm::LogWarning(
"MissingKey") <<
" Key " << digi->first <<
" is missing ";
437 for(std::map<int,int>::const_iterator digi=ndigi.begin();digi!=ndigi.end();digi++) {
439 if(m_labels.find(digi->first) != m_labels.end()) {
440 const int i=digi->first;
442 long long dbx = he2.deltaBX(he1);
443 m_digicorr[
i]->Fill(dbx,digi->second);
447 edm::LogWarning(
"MissingKey") <<
" Key " << digi->first <<
" is missing ";
454 #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)
m_rhm(consumesCollector())
std::map< int, TProfile * > m_ndigivsdbxincycle
std::map< unsigned int, int > m_binmax
T * make(const Args &...args) const
make new ROOT object
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
DigiBXCorrHistogramMaker(edm::ConsumesCollector &&iC, const int ncorbins=1000)
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)
std::map< int, TProfile * > m_ndigivsdbx
volatile std::atomic< bool > shutdown_flag false
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
void beginRun(const unsigned int nrun)