CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
SiPixelDataQuality Class Reference

#include <SiPixelDataQuality.h>

Public Member Functions

void bookGlobalQualityFlag (DQMStore *bei, bool Tier0Flag, int nFEDs)
 
void computeGlobalQualityFlag (DQMStore *bei, bool init, int nFEDs, bool Tier0Flag)
 
void computeGlobalQualityFlagByLumi (DQMStore *bei, bool init, int nFEDs, bool Tier0Flag, int nEvents_lastLS_, int nErrorsBarrel_lastLS_, int nErrorsEndcap_lastLS_)
 
void fillGlobalQualityPlot (DQMStore *bei, bool init, edm::EventSetup const &eSetup, int nFEDs, bool Tier0Flag, int lumisec)
 
int getDetId (MonitorElement *mE)
 (Documentation under construction). More...
 
 SiPixelDataQuality (bool offlineXMLfile)
 Constructor of the SiPixelInformationExtractor class. More...
 
 ~SiPixelDataQuality ()
 Destructor of the SiPixelDataQuality class. More...
 

Private Attributes

int allMods_
 
TH2F * allmodsMap
 
TH1D * allmodsVec
 
float barrel_error_flag_
 
int barrelMods_
 
MonitorElementClusterChargeBarrel
 
MonitorElementClusterChargeEndcap
 
int clusterCounterBarrel
 
int clusterCounterEndcap
 
MonitorElementClusterMod1
 
MonitorElementClusterMod2
 
MonitorElementClusterMod3
 
MonitorElementClusterMod4
 
MonitorElementClusterModAll
 
MonitorElementClusterSizeBarrel
 
MonitorElementClusterSizeEndcap
 
bool clusterStatsBarrel
 
bool clusterStatsEndcap
 
int count
 
int count1
 
int count2
 
int count3
 
int count4
 
int count5
 
int count6
 
MonitorElementDigiChargeBarrel
 
MonitorElementDigiChargeEndcap
 
int digiCounterBarrel
 
int digiCounterEndcap
 
bool digiStatsBarrel
 
bool digiStatsEndcap
 
bool DONE_
 
float endcap_error_flag_
 
int endcapMods_
 
bool endOfModules_
 
int errcount
 
TH2F * errmodsMap
 
TH1D * errmodsVec
 
int errorMods_
 
MonitorElementFEDErrReportMap
 
TH2F * goodmodsMap
 
TH1D * goodmodsVec
 
bool gotDigis
 
float lastallmods_ [40]
 
float lasterrmods_ [40]
 
int lastLS_
 
int modCounter_
 
std::ofstream myfile_
 
int n_errors_barrel_
 
int n_errors_endcap_
 
int n_errors_pixel_
 
MonitorElementNClustersBarrel
 
MonitorElementNClustersEndcap
 
MonitorElementNDigisBarrel
 
MonitorElementNDigisEndcap
 
MonitorElementNErrorsBarrel
 
MonitorElementNErrorsEndcap
 
MonitorElementNErrorsFEDs
 
int nevents_
 
MonitorElementNPixelTracks
 
int objectCount_
 
bool offlineXMLfile_
 
float pixel_error_flag_
 
float qflag_
 
MonitorElementSummaryBarrel
 
MonitorElementSummaryEndcap
 
MonitorElementSummaryPixel
 
MonitorElementSummaryReportMap
 
edm::ESHandle
< SiPixelFedCablingMap
theCablingMap
 
int timeoutCounter_
 
int trackCounterBarrel
 
int trackCounterEndcap
 
bool trackStatsBarrel
 
bool trackStatsEndcap
 

Detailed Description

Definition at line 41 of file SiPixelDataQuality.h.

Constructor & Destructor Documentation

SiPixelDataQuality::SiPixelDataQuality ( bool  offlineXMLfile)

Constructor of the SiPixelInformationExtractor class.

Definition at line 68 of file SiPixelDataQuality.cc.

References allMods_, allmodsMap, allmodsVec, errmodsMap, errmodsVec, errorMods_, goodmodsMap, goodmodsVec, i, lastallmods_, lasterrmods_, lastLS_, qflag_, and timeoutCounter_.

68  : offlineXMLfile_(offlineXMLfile) {
69  edm::LogInfo("SiPixelDataQuality") <<
70  " Creating SiPixelDataQuality " << "\n" ;
71 
72  allMods_=0;
73  errorMods_=0;
74  qflag_=1.;
75 
76  allmodsMap=0;
77  errmodsMap=0;
78  goodmodsMap=0;
79  allmodsVec=0;
80  errmodsVec=0;
81  goodmodsVec=0;
82  for (int i = 0; i < 40; ++i)
83  {lastallmods_[i] = 0; lasterrmods_[i] = 0;}
85  lastLS_=-1;
86 }
int i
Definition: DBlmapReader.cc:9
SiPixelDataQuality::~SiPixelDataQuality ( )

Destructor of the SiPixelDataQuality class.

Definition at line 92 of file SiPixelDataQuality.cc.

References allmodsMap, allmodsVec, errmodsMap, errmodsVec, goodmodsMap, and goodmodsVec.

92  {
93  edm::LogInfo("SiPixelDataQuality") <<
94  " Deleting SiPixelDataQuality " << "\n" ;
95  if(allmodsMap) delete allmodsMap;
96  if(errmodsMap) delete errmodsMap;
97  if(goodmodsMap) delete goodmodsMap;
98  if(allmodsVec) delete allmodsVec;
99  if(errmodsVec) delete errmodsVec;
100  if(goodmodsVec) delete goodmodsVec;
101 }

Member Function Documentation

void SiPixelDataQuality::bookGlobalQualityFlag ( DQMStore bei,
bool  Tier0Flag,
int  nFEDs 
)

Definition at line 136 of file SiPixelDataQuality.cc.

References allmodsMap, allmodsVec, DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookFloat(), DQMStore::bookInt(), DQMStore::cd(), ClusterChargeBarrel, ClusterChargeEndcap, ClusterMod1, ClusterMod2, ClusterMod3, ClusterMod4, ClusterModAll, ClusterSizeBarrel, ClusterSizeEndcap, DigiChargeBarrel, DigiChargeEndcap, errmodsMap, errmodsVec, MonitorElement::Fill(), DQMStore::get(), goodmodsMap, goodmodsVec, i, j, NClustersBarrel, NClustersEndcap, NDigisBarrel, NDigisEndcap, NErrorsBarrel, NErrorsEndcap, NErrorsFEDs, NPixelTracks, MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), SummaryBarrel, SummaryEndcap, SummaryPixel, and SummaryReportMap.

136  {
137 //std::cout<<"BOOK GLOBAL QUALITY FLAG MEs!"<<std::endl;
138  bei->cd();
139 
140  bei->setCurrentFolder("Pixel/Barrel");
141  if(!Tier0Flag){
142  ClusterModAll = bei->book1D("NClustertoChargeRatio_AllMod","Cluster Noise All Modules", 768, 0., 768.);
143  ClusterMod1 = bei->book1D("NClustertoChargeRatio_NormMod1", "Normalized N_{Clusters} to Charge Ratio per Module1", 192, 0., 192.);
144  ClusterMod2 = bei->book1D("NClustertoChargeRatio_NormMod2", "Normalized N_{Clusters} to Charge Ratio per Module2", 192, 0., 192.);
145  ClusterMod3 = bei->book1D("NClustertoChargeRatio_NormMod3", "Normalized N_{Clusters} to Charge Ratio per Module3", 192, 0., 192.);
146  ClusterMod4 = bei->book1D("NClustertoChargeRatio_NormMod4", "Normalized N_{Clusters} to Charge Ratio per Module4", 192, 0., 192.);
147  }
148  bei->setCurrentFolder("Pixel/EventInfo");
149  if(!Tier0Flag){
150  /*SummaryReportMap = bei->book2D("reportSummaryMap","Pixel Summary Map",40,0.,40.,36,1.,37.);
151  SummaryReportMap->setAxisTitle("Pixel FED #",1);
152  SummaryReportMap->setAxisTitle("Pixel FED Channel #",2);
153  allmodsMap = new TH2F("allmodsMap","allmodsMap",40,0.,40.,36,1.,37.);
154  errmodsMap = new TH2F("errmodsMap","errmodsMap",40,0.,40.,36,1.,37.);
155  goodmodsMap = new TH2F("goodmodsMap","goodmodsMap",40,0.,40.,36,1.,37.);
156  */
157  SummaryReportMap = bei->book2D("reportSummaryMap","Pixel Summary Map",3000,0.,3000.,40,0.,40.);
158  SummaryReportMap->setAxisTitle("Lumi Section",1);
159  SummaryReportMap->setAxisTitle("Pixel FED #",2);
160  allmodsVec = new TH1D("allmodsVec","allmodsVec",40,0.,40.);
161  errmodsVec = new TH1D("errmodsVec","errmodsVec",40,0.,40.);
162  goodmodsVec = new TH1D("goodmodsVec","goodmodsVec",40,0.,40.);
163  }else{
164  SummaryReportMap = bei->book2D("reportSummaryMap","Pixel Summary Map",2,0.,2.,7,0.,7.);
165  SummaryReportMap->setBinLabel(1,"Barrel",1);
166  SummaryReportMap->setBinLabel(2,"Endcaps",1);
167  SummaryReportMap->setBinLabel(1,"Errors",2);
168  SummaryReportMap->setBinLabel(2,"NDigis",2);
169  SummaryReportMap->setBinLabel(3,"DigiCharge",2);
170  SummaryReportMap->setBinLabel(4,"ClusterSize",2);
171  SummaryReportMap->setBinLabel(5,"NClusters",2);
172  SummaryReportMap->setBinLabel(6,"ClusterCharge",2);
173  SummaryReportMap->setBinLabel(7,"HitEff",2);
174  allmodsMap = new TH2F("allmodsMap","allmodsMap",2,0.,2.,7,0.,7.);
175  errmodsMap = new TH2F("errmodsMap","errmodsMap",2,0.,2.,7,0.,7.);
176  goodmodsMap = new TH2F("goodmodsMap","goodmodsMap",2,0.,2.,7,0.,7.);
177  }
178  SummaryPixel = bei->bookFloat("reportSummary");
179  bei->setCurrentFolder("Pixel/EventInfo/reportSummaryContents");
180  SummaryBarrel = bei->bookFloat("PixelBarrelFraction");
181  SummaryEndcap = bei->bookFloat("PixelEndcapFraction");
182  // book the data certification cuts:
183  bei->setCurrentFolder("Pixel/AdditionalPixelErrors");
184  NErrorsFEDs = bei->bookFloat("FEDsNErrorsCut");
185  bei->setCurrentFolder("Pixel/Barrel");
186  NErrorsBarrel = bei->bookFloat("BarrelNErrorsCut");
187  NDigisBarrel = bei->bookInt("BarrelNDigisCut");
188  DigiChargeBarrel = bei->bookInt("BarrelDigiChargeCut");
189  ClusterSizeBarrel = bei->bookInt("BarrelClusterSizeCut");
190  NClustersBarrel = bei->bookInt("BarrelNClustersCut");
191  ClusterChargeBarrel = bei->bookInt("BarrelClusterChargeCut");
192  bei->setCurrentFolder("Pixel/Endcap");
193  NErrorsEndcap = bei->bookFloat("EndcapNErrorsCut");
194  NDigisEndcap = bei->bookInt("EndcapNDigisCut");
195  DigiChargeEndcap = bei->bookInt("EndcapDigiChargeCut");
196  ClusterSizeEndcap = bei->bookInt("EndcapClusterSizeCut");
197  NClustersEndcap = bei->bookInt("EndcapNClustersCut");
198  ClusterChargeEndcap = bei->bookInt("EndcapClusterChargeCut");
199  if(Tier0Flag){
200  bei->setCurrentFolder("Pixel/Tracks");
201  NPixelTracks = bei->bookInt("PixelTracksCut");
202  }
203 
204  // Init MonitoringElements:
205  if(nFEDs>0){
206  SummaryPixel = bei->get("Pixel/EventInfo/reportSummary");
207  if(SummaryPixel) SummaryPixel->Fill(1.);
208  SummaryBarrel = bei->get("Pixel/EventInfo/reportSummaryContents/PixelBarrelFraction");
210  SummaryEndcap = bei->get("Pixel/EventInfo/reportSummaryContents/PixelEndcapFraction");
212  }else{
213  SummaryPixel = bei->get("Pixel/EventInfo/reportSummary");
214  if(SummaryPixel) SummaryPixel->Fill(-1.);
215  SummaryBarrel = bei->get("Pixel/EventInfo/reportSummaryContents/PixelBarrelFraction");
216  if(SummaryBarrel) SummaryBarrel->Fill(-1.);
217  SummaryEndcap = bei->get("Pixel/EventInfo/reportSummaryContents/PixelEndcapFraction");
218  if(SummaryEndcap) SummaryEndcap->Fill(-1.);
219  }
220  NErrorsBarrel = bei->get("Pixel/Barrel/BarrelNErrorsCut");
222  NErrorsEndcap = bei->get("Pixel/Endcap/EndcapNErrorsCut");
224  NErrorsFEDs = bei->get("Pixel/AdditionalPixelErrors/FEDsNErrorsCut");
225  if(NErrorsFEDs) NErrorsFEDs->Fill(1.);
226  NDigisBarrel = bei->get("Pixel/Barrel/BarrelNDigisCut");
228  NDigisEndcap = bei->get("Pixel/Endcap/EndcapNDigisCut");
230  DigiChargeBarrel = bei->get("Pixel/Barrel/BarrelDigiChargeCut");
232  DigiChargeEndcap = bei->get("Pixel/Endcap/EndcapDigiChargeCut");
234  ClusterSizeBarrel = bei->get("Pixel/Barrel/BarrelClusterSizeCut");
236  ClusterSizeEndcap = bei->get("Pixel/Endcap/EndcapClusterSizeCut");
238  ClusterChargeBarrel = bei->get("Pixel/Barrel/BarrelClusterChargeCut");
240  ClusterChargeEndcap = bei->get("Pixel/Endcap/EndcapClusterChargeCut");
242  NClustersBarrel = bei->get("Pixel/Barrel/BarrelNClustersCut");
244  NClustersEndcap = bei->get("Pixel/Endcap/EndcapNClustersCut");
246  if(Tier0Flag){
247  NPixelTracks = bei->get("Pixel/Tracks/PixelTracksCut");
249  }
250 
251  SummaryReportMap = bei->get("Pixel/EventInfo/reportSummaryMap");
252  if(SummaryReportMap){
253  if(!Tier0Flag) for(int i=1; i!=3001; i++) for(int j=1; j!=41; j++) SummaryReportMap->setBinContent(i,j,-1.);
254  if(Tier0Flag) for(int i=1; i!=3; i++) for(int j=1; j!=8; j++) SummaryReportMap->setBinContent(i,j,-1.);
255  }
256  if(!Tier0Flag){
257  for(int j=1; j!=41; j++){
258  if(allmodsVec) allmodsVec->SetBinContent(j,0.);
259  if(errmodsVec) errmodsVec->SetBinContent(j,0.);
260  if(goodmodsVec) goodmodsVec->SetBinContent(j,0.);
261  }
262  }
263  if(Tier0Flag){
264  for(int i=1; i!=3; i++) for(int j=1; j!=8; j++){
265  if(allmodsMap) allmodsMap->SetBinContent(i,j,0.);
266  if(errmodsMap) errmodsMap->SetBinContent(i,j,0.);
267  if(goodmodsMap) goodmodsMap->SetBinContent(i,j,0.);
268  }
269  }
270 
271  bei->cd();
272 }
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:954
MonitorElement * ClusterChargeBarrel
void cd(void)
go to top directory (ie. root)
Definition: DQMStore.cc:644
MonitorElement * ClusterModAll
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * SummaryBarrel
MonitorElement * ClusterSizeEndcap
MonitorElement * NPixelTracks
MonitorElement * bookFloat(const char *name)
Book float.
Definition: DQMStore.cc:891
MonitorElement * NErrorsFEDs
void Fill(long long x)
MonitorElement * NDigisEndcap
MonitorElement * SummaryPixel
MonitorElement * NErrorsEndcap
MonitorElement * ClusterMod3
MonitorElement * ClusterMod1
MonitorElement * ClusterMod4
MonitorElement * NErrorsBarrel
MonitorElement * ClusterMod2
MonitorElement * NClustersEndcap
int j
Definition: DBlmapReader.cc:9
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1708
MonitorElement * ClusterSizeBarrel
MonitorElement * SummaryReportMap
MonitorElement * DigiChargeEndcap
MonitorElement * SummaryEndcap
MonitorElement * NDigisBarrel
MonitorElement * bookInt(const char *name)
Book int.
Definition: DQMStore.cc:861
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1082
MonitorElement * ClusterChargeEndcap
MonitorElement * DigiChargeBarrel
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * NClustersBarrel
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:667
void SiPixelDataQuality::computeGlobalQualityFlag ( DQMStore bei,
bool  init,
int  nFEDs,
bool  Tier0Flag 
)

Definition at line 276 of file SiPixelDataQuality.cc.

References allMods_, barrel_error_flag_, barrelMods_, DQMStore::cd(), ClusterChargeBarrel, ClusterChargeEndcap, clusterCounterBarrel, clusterCounterEndcap, ClusterSizeBarrel, ClusterSizeEndcap, clusterStatsBarrel, clusterStatsEndcap, cuy::denominator, DigiChargeBarrel, DigiChargeEndcap, digiCounterBarrel, digiCounterEndcap, digiStatsBarrel, digiStatsEndcap, RefreshWebPage::dname, DONE_, endcap_error_flag_, endcapMods_, errorMods_, MonitorElement::Fill(), DQMStore::get(), MonitorElement::getBinContent(), MonitorElement::getEntries(), MonitorElement::getFloatValue(), MonitorElement::getIntValue(), DQMStore::getMEs(), DQMStore::getSubdirs(), DQMStore::goUp(), MonitorElement::hasError(), i, j, gen::k, n_errors_barrel_, n_errors_endcap_, n_errors_pixel_, NClustersBarrel, NClustersEndcap, NDigisBarrel, NDigisEndcap, NErrorsBarrel, NErrorsEndcap, NPixelTracks, cuy::numerator, objectCount_, pixel_error_flag_, DQMStore::pwd(), qflag_, SummaryBarrel, SummaryEndcap, SummaryPixel, trackCounterBarrel, trackCounterEndcap, trackStatsBarrel, and trackStatsEndcap.

279  {
280 //cout<<"entering SiPixelDataQuality::ComputeGlobalQualityFlag"<<endl;
281 // cout << ACRed << ACBold
282 // << "[SiPixelDataQuality::ComputeGlobalQualityFlag]"
283 // << ACPlain
284 // << " Enter"
285 // << endl ;
286  if(init){
287 //cout<<"Entering SiPixelDataQuality::computeGlobalQualityFlag for the first time"<<endl;
288  allMods_=0; errorMods_=0; qflag_=0.;
290  objectCount_=0;
291  DONE_ = false;
292 
293  //Error counters and flags:
297  digiStatsBarrel = false, clusterStatsBarrel = false, trackStatsBarrel = false;
299  digiStatsEndcap = false, clusterStatsEndcap = false, trackStatsEndcap = false;
301  init=false;
302  }
303  if(nFEDs==0) return;
304 
305  string currDir = bei->pwd();
306  string dname = currDir.substr(currDir.find_last_of("/")+1);
307 //cout<<"currDir="<<currDir<<endl;
308 
309  if((!Tier0Flag && dname.find("Module_")!=string::npos) ||
310  (Tier0Flag && (dname.find("Ladder_")!=string::npos || dname.find("Blade_")!=string::npos))){
311 
312  objectCount_++;
313 
314  if(currDir.find("Pixel")!=string::npos) allMods_++;
315  if(currDir.find("Barrel")!=string::npos) barrelMods_++;
316  if(currDir.find("Endcap")!=string::npos) endcapMods_++;
317  vector<string> meVec = bei->getMEs();
318  for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
319  string full_path = currDir + "/" + (*it);
320  //cout<<"full_path:"<<full_path<<endl;
321  if(full_path.find("ndigis_")!=string::npos){
322  //cout<<"found an ndigi histo now"<<endl;
323  MonitorElement * me = bei->get(full_path);
324  if(!me) continue;
325  //cout<<"got the histo now"<<endl;
326  if(me->getEntries()>25){
327  //cout<<"histo has more than 50 entries"<<endl;
328  if(full_path.find("Barrel")!=string::npos) digiCounterBarrel++;
329  if(full_path.find("Endcap")!=string::npos) digiCounterEndcap++;
330  //cout<<"counter are now: "<<digiCounterBarrel<<","<<digiCounterBarrelL1<<endl;
331  }
332  }else if(Tier0Flag && full_path.find("nclusters_OnTrack_")!=string::npos){
333  MonitorElement * me = bei->get(full_path);
334  if(!me) continue;
335  if(me->getEntries()>25){
336  if(full_path.find("Barrel")!=string::npos) clusterCounterBarrel++;
337  if(full_path.find("Endcap")!=string::npos) clusterCounterEndcap++;
338  }
339  }else if(!Tier0Flag && full_path.find("nclusters_")!=string::npos){
340  MonitorElement * me = bei->get(full_path);
341  if(!me) continue;
342  if(me->getEntries()>25){
343  if(full_path.find("Barrel")!=string::npos) clusterCounterBarrel++;
344  if(full_path.find("Endcap")!=string::npos) clusterCounterEndcap++;
345  }
346  }
347  }
348  }
349  vector<string> subDirVec = bei->getSubdirs();
350  for (vector<string>::const_iterator ic = subDirVec.begin();
351  ic != subDirVec.end(); ic++) {
352  bei->cd(*ic);
353  init=false;
354  computeGlobalQualityFlag(bei,init,nFEDs,Tier0Flag);
355  bei->goUp();
356  }
357 
358  // Make sure I have finished looping over all Modules/Ladders/Blades:
359  if(!Tier0Flag){ // online case
360  if(objectCount_ == 1440) DONE_ = true;
361  }else{ // offline case
362  if(objectCount_ == 288) DONE_ = true;
363  }
364 
365  if(DONE_ && currDir=="Pixel/EventInfo/reportSummaryContents"){
366 
367  // Evaluate error flag now, only stored in AdditionalPixelErrors:
368  MonitorElement * me_err = bei->get("Pixel/AdditionalPixelErrors/FedETypeNErrArray");
369  MonitorElement * me_evt = bei->get("Pixel/EventInfo/processedEvents");
370  if(me_err && me_evt){
371  for(int i=1; i!=41; i++)for(int j=1; j!=22; j++)
372  if(me_err->getBinContent(i,j)>0){
374  if(i<33) n_errors_barrel_=n_errors_barrel_+int(me_err->getBinContent(i,j));
375  if(i>32) n_errors_endcap_=n_errors_endcap_+int(me_err->getBinContent(i,j));
376  }
377  int NProcEvts = me_evt->getIntValue();
378  if(NProcEvts>0){
379  barrel_error_flag_ = (float(NProcEvts)-float(n_errors_barrel_))/float(NProcEvts);
380  endcap_error_flag_ = (float(NProcEvts)-float(n_errors_endcap_))/float(NProcEvts);
381  pixel_error_flag_ = (float(NProcEvts)-float(n_errors_barrel_)-float(n_errors_endcap_))/float(NProcEvts);
382  }
383  }
384  NErrorsBarrel = bei->get("Pixel/Barrel/BarrelNErrorsCut");
386  NErrorsEndcap = bei->get("Pixel/Endcap/EndcapNErrorsCut");
388 
389  string meName0;
390  MonitorElement * me;
391 
392  // Fill the Digi flags:
393  if(!Tier0Flag){
394  meName0 = "Pixel/Barrel/SUMDIG_ndigis_Barrel";
395  if(digiCounterBarrel/768 > 0.5) digiStatsBarrel = true;
396  if(digiCounterEndcap/672 > 0.5) digiStatsEndcap = true;
397  //cout<<"digiStatsBarrel="<<digiStatsBarrel<<" , digiStatsEndcap="<<digiStatsEndcap<<endl;
398  }else{
399  meName0 = "Pixel/Barrel/SUMOFF_ndigis_Barrel";
400  if(digiCounterBarrel/192 > 0.5) digiStatsBarrel = true;
401  if(digiCounterEndcap/96 > 0.5) digiStatsEndcap = true;
402  }
403  me = bei->get(meName0);
404  if(me){
405  NDigisBarrel = bei->get("Pixel/Barrel/BarrelNDigisCut");
406  // cout<<"NDigis: "<<NDigisBarrel<<" , "<<digiStatsBarrel<<" , "<<me->hasError()<<endl;
408  if(me->hasError()) NDigisBarrel->Fill(0);
409  else NDigisBarrel->Fill(1);
410  }
411  }
412  if(!Tier0Flag) meName0 = "Pixel/Endcap/SUMDIG_ndigis_Endcap";
413  else meName0 = "Pixel/Endcap/SUMOFF_ndigis_Endcap";
414  me = bei->get(meName0);
415  if(me){
416  NDigisEndcap = bei->get("Pixel/Endcap/EndcapNDigisCut");
418  if(me->hasError()) NDigisEndcap->Fill(0);
419  else NDigisEndcap->Fill(1);
420  }
421  }
422  if(!Tier0Flag) meName0 = "Pixel/Barrel/SUMDIG_adc_Barrel";
423  else meName0 = "Pixel/Barrel/SUMOFF_adc_Barrel";
424  me = bei->get(meName0);
425  if(me){
426  DigiChargeBarrel = bei->get("Pixel/Barrel/BarrelDigiChargeCut");
428  if(me->hasError()) DigiChargeBarrel->Fill(0);
429  else DigiChargeBarrel->Fill(1);
430  }
431  }
432  if(!Tier0Flag) meName0 = "Pixel/Endcap/SUMDIG_adc_Endcap";
433  else meName0 = "Pixel/Endcap/SUMOFF_adc_Endcap";
434  me = bei->get(meName0);
435  if(me){
436  DigiChargeEndcap = bei->get("Pixel/Endcap/EndcapDigiChargeCut");
438  if(me->hasError()) DigiChargeEndcap->Fill(0);
439  else DigiChargeEndcap->Fill(1);
440  }
441  }
442 
443 
444  // Fill the Cluster flags:
445  if(!Tier0Flag){
446  meName0 = "Pixel/Barrel/SUMCLU_size_Barrel";
447  if(clusterCounterBarrel/768 > 0.5) clusterStatsBarrel = true;
448  if(clusterCounterEndcap/672 > 0.5) clusterStatsEndcap = true;
449  }else{
450  meName0 = "Pixel/Barrel/SUMOFF_size_OnTrack_Barrel";
451  if(clusterCounterBarrel/192 > 0.5) clusterStatsBarrel = true;
452  if(clusterCounterEndcap/96 > 0.5) clusterStatsEndcap = true;
453  }
454  me = bei->get(meName0);
455  if(me){
456  ClusterSizeBarrel = bei->get("Pixel/Barrel/BarrelClusterSizeCut");
458  if(me->hasError()) ClusterSizeBarrel->Fill(0);
459  else ClusterSizeBarrel->Fill(1);
460  }
461  }
462  if(!Tier0Flag) meName0 = "Pixel/Endcap/SUMCLU_size_Endcap";
463  else meName0 = "Pixel/Endcap/SUMOFF_size_OnTrack_Endcap";
464  me = bei->get(meName0);
465  if(me){
466  ClusterSizeEndcap = bei->get("Pixel/Endcap/EndcapClusterSizeCut");
468  if(me->hasError()) ClusterSizeEndcap->Fill(0);
469  else ClusterSizeEndcap->Fill(1);
470  }
471  }
472  if(!Tier0Flag) meName0 = "Pixel/Barrel/SUMCLU_charge_Barrel";
473  else meName0 = "Pixel/Barrel/SUMOFF_charge_OnTrack_Barrel";
474  me = bei->get(meName0);
475  if(me){
476  ClusterChargeBarrel = bei->get("Pixel/Barrel/BarrelClusterChargeCut");
478  if(me->hasError()) ClusterChargeBarrel->Fill(0);
479  else ClusterChargeBarrel->Fill(1);
480  }
481  }
482  if(!Tier0Flag) meName0 = "Pixel/Endcap/SUMCLU_charge_Endcap";
483  else meName0 = "Pixel/Endcap/SUMOFF_charge_OnTrack_Endcap";
484  me = bei->get(meName0);
485  if(me){
486  ClusterChargeEndcap = bei->get("Pixel/Endcap/EndcapClusterChargeCut");
488  if(me->hasError()) ClusterChargeEndcap->Fill(0);
489  else ClusterChargeEndcap->Fill(1);
490  }
491  }
492  if(!Tier0Flag) meName0 = "Pixel/Barrel/SUMCLU_nclusters_Barrel";
493  else meName0 = "Pixel/Barrel/SUMOFF_nclusters_OnTrack_Barrel";
494  me = bei->get(meName0);
495  if(me){
496  NClustersBarrel = bei->get("Pixel/Barrel/BarrelNClustersCut");
498  if(me->hasError()) NClustersBarrel->Fill(0);
499  else NClustersBarrel->Fill(1);
500  }
501  }
502  if(!Tier0Flag) meName0 = "Pixel/Endcap/SUMCLU_nclusters_Endcap";
503  else meName0 = "Pixel/Endcap/SUMOFF_nclusters_OnTrack_Endcap";
504  me = bei->get(meName0);
505  if(me){
506  NClustersEndcap = bei->get("Pixel/Endcap/EndcapNClustersCut");
508  if(me->hasError()) NClustersEndcap->Fill(0);
509  else NClustersEndcap->Fill(1);
510  }
511  }
512  // Pixel Track multiplicity / Pixel hit efficiency
513  meName0 = "Pixel/Tracks/ntracks_generalTracks";
514  me = bei->get(meName0);
515  if(me){
516  NPixelTracks = bei->get("Pixel/Tracks/PixelTracksCut");
517  if(NPixelTracks && me->getBinContent(1)>1000){
518  if((float)me->getBinContent(2)/(float)me->getBinContent(1)<0.01){
519  NPixelTracks->Fill(0);
520  }else{
521  NPixelTracks->Fill(1);
522  }
523  }
524  }
525 
526 
527 //********************************************************************************************************
528 
529  // Final combination of all Data Quality results:
530  float pixelFlag = -1., barrelFlag = -1., endcapFlag = -1.;
531  float barrel_errors_temp[1]={-1.}; int barrel_cuts_temp[5]={5*-1};
532  float endcap_errors_temp[1]={-1.}; int endcap_cuts_temp[5]={5*-1};
533  int pixel_cuts_temp[1]={-1};
534  float combinedCuts = 1.; int numerator = 0, denominator = 0;
535 
536  // Barrel results:
537  me = bei->get("Pixel/Barrel/BarrelNErrorsCut");
538  if(me) barrel_errors_temp[0] = me->getFloatValue();
539  me = bei->get("Pixel/Barrel/BarrelNDigisCut");
540  if(me) barrel_cuts_temp[0] = me->getIntValue();
541  me = bei->get("Pixel/Barrel/BarrelDigiChargeCut");
542  if(me) barrel_cuts_temp[1] = me->getIntValue();
543  me = bei->get("Pixel/Barrel/BarrelClusterSizeCut");
544  if(me) barrel_cuts_temp[2] = me->getIntValue();
545  me = bei->get("Pixel/Barrel/BarrelNClustersCut");
546  if(me) barrel_cuts_temp[3] = me->getIntValue();
547  me = bei->get("Pixel/Barrel/BarrelClusterChargeCut");
548  if(me) barrel_cuts_temp[4] = me->getIntValue();
549  for(int k=0; k!=5; k++){
550  if(barrel_cuts_temp[k]>=0){
551  numerator = numerator + barrel_cuts_temp[k];
552  denominator++;
553  //cout<<"cut flag, Barrel: "<<k<<","<<barrel_cuts_temp[k]<<","<<numerator<<","<<denominator<<endl;
554  }
555  }
556  if(denominator!=0) combinedCuts = float(numerator)/float(denominator);
557  barrelFlag = barrel_errors_temp[0] * combinedCuts;
558 
559 
560  //cout<<" the resulting barrel flag is: "<<barrel_errors_temp[0]<<"*"<<combinedCuts<<"="<<barrelFlag<<endl;
561 
562  // Endcap results:
563  combinedCuts = 1.; numerator = 0; denominator = 0;
564  me = bei->get("Pixel/Endcap/EndcapNErrorsCut");
565  if(me) endcap_errors_temp[0] = me->getFloatValue();
566  me = bei->get("Pixel/Endcap/EndcapNDigisCut");
567  if(me) endcap_cuts_temp[0] = me->getIntValue();
568  me = bei->get("Pixel/Endcap/EndcapDigiChargeCut");
569  if(me) endcap_cuts_temp[1] = me->getIntValue();
570  me = bei->get("Pixel/Endcap/EndcapClusterSizeCut");
571  if(me) endcap_cuts_temp[2] = me->getIntValue();
572  me = bei->get("Pixel/Endcap/EndcapNClustersCut");
573  if(me) endcap_cuts_temp[3] = me->getIntValue();
574  me = bei->get("Pixel/Endcap/EndcapClusterChargeCut");
575  if(me) endcap_cuts_temp[4] = me->getIntValue();
576  for(int k=0; k!=5; k++){
577  if(endcap_cuts_temp[k]>=0){
578  numerator = numerator + endcap_cuts_temp[k];
579  denominator++;
580  //cout<<"cut flag, Endcap: "<<k<<","<<endcap_cuts_temp[k]<<","<<numerator<<","<<denominator<<endl;
581  }
582  }
583  if(denominator!=0) combinedCuts = float(numerator)/float(denominator);
584  endcapFlag = endcap_errors_temp[0] * combinedCuts;
585  //cout<<" the resulting endcap flag is: "<<endcap_errors_temp[0]<<"*"<<combinedCuts<<"="<<endcapFlag<<endl;
586 
587  // Track results:
588  combinedCuts = 1.; numerator = 0; denominator = 0;
589  me = bei->get("Pixel/Tracks/PixelTracksCut");
590  if(me) pixel_cuts_temp[0] = me->getIntValue();
591 
592  //Combination of all:
593  combinedCuts = 1.; numerator = 0; denominator = 0;
594  for(int k=0; k!=5; k++){
595  if(barrel_cuts_temp[k]>=0){
596  numerator = numerator + barrel_cuts_temp[k];
597  denominator++;
598  }
599  //cout<<"after barrel: num="<<numerator<<" , den="<<denominator<<endl;
600  if(endcap_cuts_temp[k]>=0){
601  numerator = numerator + endcap_cuts_temp[k];
602  denominator++;
603  }
604  if(k<1 && pixel_cuts_temp[k]>=0){
605  numerator = numerator + pixel_cuts_temp[k];
606  denominator++;
607  }
608  //cout<<"after both: num="<<numerator<<" , den="<<denominator<<endl;
609  }
610  if(denominator!=0) combinedCuts = float(numerator)/float(denominator);
611  pixelFlag = float(pixel_error_flag_) * float(combinedCuts);
612 
613 
614  //cout<<"barrel, endcap, pixel flags: "<<barrelFlag<<","<<endcapFlag<<","<<pixelFlag<<endl;
615  SummaryPixel = bei->get("Pixel/EventInfo/reportSummary");
616  if(SummaryPixel) SummaryPixel->Fill(pixelFlag);
617  SummaryBarrel = bei->get("Pixel/EventInfo/reportSummaryContents/PixelBarrelFraction");
618  if(SummaryBarrel) SummaryBarrel->Fill(barrelFlag);
619  SummaryEndcap = bei->get("Pixel/EventInfo/reportSummaryContents/PixelEndcapFraction");
620  if(SummaryEndcap) SummaryEndcap->Fill(endcapFlag);
621  }
622 }
int i
Definition: DBlmapReader.cc:9
list numerator
Definition: cuy.py:483
std::vector< std::string > getSubdirs(void) const
Definition: DQMStore.cc:1659
MonitorElement * ClusterChargeBarrel
void cd(void)
go to top directory (ie. root)
Definition: DQMStore.cc:644
void computeGlobalQualityFlag(DQMStore *bei, bool init, int nFEDs, bool Tier0Flag)
int init
Definition: HydjetWrapper.h:62
bool hasError(void) const
true if at least of one of the quality tests returned an error
MonitorElement * SummaryBarrel
MonitorElement * ClusterSizeEndcap
double getEntries(void) const
get # of entries
MonitorElement * NPixelTracks
void Fill(long long x)
MonitorElement * NDigisEndcap
MonitorElement * SummaryPixel
MonitorElement * NErrorsEndcap
list denominator
Definition: cuy.py:484
double getFloatValue(void) const
MonitorElement * NErrorsBarrel
MonitorElement * NClustersEndcap
int j
Definition: DBlmapReader.cc:9
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1708
MonitorElement * ClusterSizeBarrel
int k[5][pyjets_maxn]
int64_t getIntValue(void) const
MonitorElement * DigiChargeEndcap
MonitorElement * SummaryEndcap
std::vector< std::string > getMEs(void) const
get list of (non-dir) MEs of current directory
Definition: DQMStore.cc:1682
double getBinContent(int binx) const
get content of bin (1-D)
void goUp(void)
equivalent to &quot;cd ..&quot;
Definition: DQMStore.cc:678
MonitorElement * NDigisBarrel
MonitorElement * ClusterChargeEndcap
MonitorElement * DigiChargeBarrel
MonitorElement * NClustersBarrel
const std::string & pwd(void) const
Definition: DQMStore.cc:639
void SiPixelDataQuality::computeGlobalQualityFlagByLumi ( DQMStore bei,
bool  init,
int  nFEDs,
bool  Tier0Flag,
int  nEvents_lastLS_,
int  nErrorsBarrel_lastLS_,
int  nErrorsEndcap_lastLS_ 
)

Definition at line 626 of file SiPixelDataQuality.cc.

References MonitorElement::Fill(), DQMStore::get(), MonitorElement::getBinContent(), MonitorElement::getMean(), i, SummaryBarrel, SummaryEndcap, and SummaryPixel.

632  {
633 //cout<<"entering SiPixelDataQuality::ComputeGlobalQualityFlagByLumi"<<endl;
634 // cout << ACRed << ACBold
635 // << "[SiPixelDataQuality::ComputeGlobalQualityFlag]"
636 // << ACPlain
637 // << " Enter"
638 // << endl ;
639 
640  if(nFEDs==0) return;
641 
642  // evaluate fatal FED errors for data quality:
643  float BarrelRate_LS = 1.;
644  float EndcapRate_LS = 1.;
645  float PixelRate_LS = 1.;
646  MonitorElement * me = bei->get("Pixel/AdditionalPixelErrors/byLumiErrors");
647  if(me){
648  //cout<<"NENTRIES: "<<me->getEntries()<<" "<<nEvents_lastLS_<<" "<<nErrorsBarrel_lastLS_<<" "<<nErrorsEndcap_lastLS_<<endl;
649  double nBarrelErrors_LS = me->getBinContent(1) - nErrorsBarrel_lastLS_;
650  double nEndcapErrors_LS = me->getBinContent(2) - nErrorsEndcap_lastLS_;
651  double nEvents_LS = me->getBinContent(0) - nEvents_lastLS_;
652  //cout<<"BINS: "<<me->getBinContent(0)<<" "<<me->getBinContent(1)<<" "<<me->getBinContent(2)<<endl;
653  if(nBarrelErrors_LS/nEvents_LS>0.5) BarrelRate_LS=0.;
654  if(nEndcapErrors_LS/nEvents_LS>0.5) EndcapRate_LS=0.;
655  if((nBarrelErrors_LS + nEndcapErrors_LS)/nEvents_LS>0.5) PixelRate_LS=0.;
656  //std::cout<<"nEvents_LS: "<<nEvents_LS<<" , nBarrelErrors_LS: "<<nBarrelErrors_LS<<" , nEndcapErrors_LS: "<<nEndcapErrors_LS<<" , BarrelRate_LS: "<<BarrelRate_LS<<" , EndcapRate_LS: "<<EndcapRate_LS<<" , PixelRate_LS: "<<PixelRate_LS<<std::endl;
657  }
658 
659  // evaluate mean cluster charge on tracks for data quality:
660  float BarrelClusterCharge = 1.;
661  float EndcapClusterCharge = 1.;
662  float PixelClusterCharge = 1.;
663  MonitorElement * me1 = bei->get("Pixel/Clusters/OnTrack/charge_siPixelClusters_Barrel");
664  if(me1 && me1->getMean()<12.) BarrelClusterCharge = 0.;
665  //if(me1) cout<<"Mean cluster charge in Barrel: "<<me1->getMean()<<endl;
666  MonitorElement * me2 = bei->get("Pixel/Clusters/OnTrack/charge_siPixelClusters_Endcap");
667  if(me2 && me2->getMean()<12.) EndcapClusterCharge = 0.;
668  //if(me2) cout<<"Mean cluster charge in Endcap: "<<me2->getMean()<<endl;
669  MonitorElement * me3 = bei->get("Pixel/Clusters/OnTrack/charge_siPixelClusters");
670  if(me3 && me3->getMean()<12.) PixelClusterCharge = 0.;
671  //if(me3) cout<<"Mean cluster charge in Pixel: "<<me3->getMean()<<endl;
672 
673  // evaluate average FED occupancy for data quality:
674  float BarrelOccupancy = 1.;
675  float EndcapOccupancy = 1.;
676  float PixelOccupancy = 1.;
677  MonitorElement * me4 = bei->get("Pixel/averageDigiOccupancy");
678  if(me4){
679  double minBarrelOcc = 999999.;
680  double maxBarrelOcc = -1.;
681  double meanBarrelOcc = 0.;
682  double minEndcapOcc = 999999.;
683  double maxEndcapOcc = -1.;
684  double meanEndcapOcc = 0.;
685  for(int i=1; i!=41; i++){
686  if(i<=32 && me4->getBinContent(i)<minBarrelOcc) minBarrelOcc=me4->getBinContent(i);
687  if(i<=32 && me4->getBinContent(i)>maxBarrelOcc) maxBarrelOcc=me4->getBinContent(i);
688  if(i<=32) meanBarrelOcc+=me4->getBinContent(i);
689  if(i>32 && me4->getBinContent(i)<minEndcapOcc) minEndcapOcc=me4->getBinContent(i);
690  if(i>32 && me4->getBinContent(i)>maxEndcapOcc) maxEndcapOcc=me4->getBinContent(i);
691  if(i>32) meanEndcapOcc+=me4->getBinContent(i);
692  //cout<<"OCCUPANCY: "<<i<<" "<<me4->getBinContent(i)<<" : "<<minBarrelOcc<<" "<<maxBarrelOcc<<" "<<minEndcapOcc<<" "<<maxEndcapOcc<<endl;
693  }
694  meanBarrelOcc = meanBarrelOcc/32.;
695  meanEndcapOcc = meanEndcapOcc/8.;
696  //cout<<"MEANS: "<<meanBarrelOcc<<" "<<meanEndcapOcc<<endl;
697  if(minBarrelOcc<0.1*meanBarrelOcc || maxBarrelOcc>2.5*meanBarrelOcc) BarrelOccupancy=0.;
698  if(minEndcapOcc<0.2*meanEndcapOcc || maxEndcapOcc>1.8*meanEndcapOcc) EndcapOccupancy=0.;
699  PixelOccupancy=BarrelOccupancy*EndcapOccupancy;
700  //cout<<"Occupancies: "<<meanBarrelOcc<<" "<<meanEndcapOcc<<endl;
701  }
702 
703  float pixelFlag = PixelRate_LS * PixelClusterCharge * PixelOccupancy;
704  float barrelFlag = BarrelRate_LS * BarrelClusterCharge * BarrelOccupancy;
705  float endcapFlag = EndcapRate_LS * EndcapClusterCharge * EndcapOccupancy;
706  //cout<<"barrel, endcap, pixel flags: "<<barrelFlag<<","<<endcapFlag<<","<<pixelFlag<<endl;
707  SummaryPixel = bei->get("Pixel/EventInfo/reportSummary");
708  if(SummaryPixel) SummaryPixel->Fill(pixelFlag);
709  SummaryBarrel = bei->get("Pixel/EventInfo/reportSummaryContents/PixelBarrelFraction");
710  if(SummaryBarrel) SummaryBarrel->Fill(barrelFlag);
711  SummaryEndcap = bei->get("Pixel/EventInfo/reportSummaryContents/PixelEndcapFraction");
712  if(SummaryEndcap) SummaryEndcap->Fill(endcapFlag);
713 
714 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * SummaryBarrel
double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
void Fill(long long x)
MonitorElement * SummaryPixel
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1708
MonitorElement * SummaryEndcap
double getBinContent(int binx) const
get content of bin (1-D)
void SiPixelDataQuality::fillGlobalQualityPlot ( DQMStore bei,
bool  init,
edm::EventSetup const &  eSetup,
int  nFEDs,
bool  Tier0Flag,
int  lumisec 
)

Definition at line 718 of file SiPixelDataQuality.cc.

References allmodsMap, allmodsVec, newFWLiteAna::bin, DQMStore::cd(), ws_sso_content_reader::content, relmon_rootfiles_spy::contents, count, count1, count2, count3, count4, count5, count6, RefreshWebPage::dname, errcount, errmodsMap, errmodsVec, edm::EventSetup::get(), DQMStore::get(), MonitorElement::getBinContent(), getDetId(), MonitorElement::getEntries(), MonitorElement::getFloatValue(), MonitorElement::getIntValue(), DQMStore::getMEs(), MonitorElement::getNbinsX(), DQMStore::getSubdirs(), goodmodsMap, goodmodsVec, DQMStore::goUp(), i, j, gen::k, lastallmods_, lasterrmods_, modCounter_, edm::ESHandle< class >::product(), DQMStore::pwd(), MonitorElement::setBinContent(), SummaryReportMap, theCablingMap, and histoStyle::weight.

718  {
719 //std::cout<<"Entering SiPixelDataQuality::fillGlobalQualityPlot: "<<nFEDs<<std::endl;
720  //calculate eta and phi of the modules and fill a 2D plot:
721  //if(lastLS_<lumisec){ cout<<"lastLS_="<<lastLS_<<" ,lumisec="<<lumisec<<endl; lastLS_=lumisec; init=true; cout<<"init="<<init<<endl; }
722  if(init){
723  count=0; errcount=0;
724  init=false;
725  count1=0;
726  count2=0;
727  count3=0;
728  count4=0;
729  count5=0;
730  count6=0;
731  modCounter_=0;
732  if(!Tier0Flag){
733 
734  //cout<<"RESETS"<<endl;
735  //The plots that these Vecs are integrated throughout a run
736  //So at each lumi section I save their last values (lastmods)
737  //And then subtract them out later when filling the SummaryMap
738  for(int j=1; j!=41; j++){
739  if(allmodsVec) lastallmods_[j-1] = allmodsVec->GetBinContent(j);
740  if(errmodsVec) lasterrmods_[j-1] = errmodsVec->GetBinContent(j);
741  if(allmodsVec) allmodsVec->SetBinContent(j,0.);
742  if(errmodsVec) errmodsVec->SetBinContent(j,0.);
743  if(goodmodsVec) goodmodsVec->SetBinContent(j,0.);
744  }
745  }
746  if(Tier0Flag){
747  for(int i=1; i!=3; i++) for(int j=1; j!=8; j++){
748  if(allmodsMap) allmodsMap->SetBinContent(i,j,0.);
749  if(errmodsMap) errmodsMap->SetBinContent(i,j,0.);
750  if(goodmodsMap) goodmodsMap->SetBinContent(i,j,0.);
751  }
752  }
753  }
754 
755 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
756 // Fill Maps:
757  // Online:
758  if(nFEDs==0) return;
759 /* if(!Tier0Flag){
760  eSetup.get<SiPixelFedCablingMapRcd>().get(theCablingMap);
761  string currDir = bei->pwd();
762  if(currDir.find("Reference")!=string::npos) return;
763  //cout<<"currDir="<<currDir<<endl;
764  string dname = currDir.substr(currDir.find_last_of("/")+1);
765  // find a detId for Blades and Ladders (first of the contained Modules!):
766  std::ifstream infile(edm::FileInPath("DQM/SiPixelMonitorClient/test/detId.dat").fullPath().c_str(),ios::in);
767  string I_name[1440];
768  int I_detId[1440];
769  int I_fedId[1440];
770  int I_linkId[1440];
771  int nModsInFile=0;
772  while(!infile.eof()) {
773  infile >> I_name[nModsInFile] >> I_detId[nModsInFile] >> I_fedId[nModsInFile] >> I_linkId[nModsInFile] ;
774  //cout<<I_name<<" "<<I_detId<<" "<<I_fedId<<" "<<I_linkId ;
775  //getline(infile,dummys); //necessary to reach end of record
776  infile.close();
777  nModsInFile++;
778  }
779  if(dname.find("Module_")!=string::npos && currDir.find("Reference")==string::npos){
780  vector<string> meVec = bei->getMEs();
781  int detId=-1; int fedId=-1; int linkId=-1;
782  for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
783  //checking for any digis or FED errors to decide if this module is in DAQ:
784  string full_path = currDir + "/" + (*it);
785  //cout<<"path: "<<full_path<<" , detId= "<<detId<<endl;
786  if(detId==-1 && full_path.find("SUMOFF")==string::npos &&
787  (full_path.find("ndigis")!=string::npos && full_path.find("SUMDIG")==string::npos) &&
788  (getDetId(bei->get(full_path)) > 100)){
789  //cout<<"Got into the first ndigis or NErrors histogram!"<<endl;
790  MonitorElement * me = bei->get(full_path);
791  if (!me) continue;
792  if((full_path.find("ndigis")!=string::npos)){
793  modCounter_++;
794  detId = getDetId(me);
795  for(int fedid=0; fedid!=40; ++fedid){
796  SiPixelFrameConverter converter(theCablingMap.product(),fedid);
797  uint32_t newDetId = detId;
798  if(converter.hasDetUnit(newDetId)){
799  fedId=fedid;
800  break;
801  }
802  }
803  if(fedId==-1) continue;
804  sipixelobjects::ElectronicIndex cabling;
805  SiPixelFrameConverter formatter(theCablingMap.product(),fedId);
806  sipixelobjects::DetectorIndex detector = {detId, 1, 1};
807  formatter.toCabling(cabling,detector);
808  linkId = cabling.link;
809  //cout<<"it has this FED ID and channel ID: "<<fedId<<" , "<<linkId<<endl;
810  int NDigis = 0;
811  if(full_path.find("ndigis")!=string::npos) NDigis = me->getEntries();
812  float weight = (allmodsMap->GetBinContent(fedId+1,linkId))+NDigis;
813  allmodsMap->Fill(fedId,linkId,weight);
814  static const char buf[] = "Pixel/AdditionalPixelErrors/FED_%d/FedChNErrArray_%d";
815  char fedplot[sizeof(buf)+4];
816  sprintf(fedplot,buf,fedId,linkId);
817  me = bei->get(fedplot);
818  int NErrors = 0;
819  if(me) NErrors = me->getIntValue();
820  //if(fedId==37&&linkId==5) std::cout<<"THIS CHANNEL: "<<fedplot<<" , "<<NErrors<<" , "<<bei->pwd()<<std::endl;
821  if(NErrors>0) {errmodsMap->Fill(fedId,linkId,NErrors);} //if(fedId==37&&linkId==5) std::cout<<"filling errmodsMap now : "<<errmodsMap->GetBinContent(fedId+1,linkId)<<" , and: "<<NErrors<<std::endl;}
822  }
823  }
824  }//end loop over MEs
825  }//end of module dir's
826  vector<string> subDirVec = bei->getSubdirs();
827  for (vector<string>::const_iterator ic = subDirVec.begin();
828  ic != subDirVec.end(); ic++) {
829  bei->cd(*ic);
830  init=false;
831  fillGlobalQualityPlot(bei,init,eSetup,nFEDs,Tier0Flag);
832  bei->goUp();
833  }
834  if(modCounter_==1440){
835  bei->cd("Pixel/EventInfo/reportSummaryContents");
836  //cout<<"B: Loop over all modules is done, now I am in "<<bei->pwd()<<" and currDir is "<<currDir<<endl;
837  if(bei->pwd()=="Pixel/EventInfo/reportSummaryContents"){
838  SummaryReportMap = bei->get("Pixel/EventInfo/reportSummaryMap");
839  if(SummaryReportMap){
840  float contents=0.;
841  for(int i=0; i!=40; i++)for(int j=1; j!=37; j++){
842  //cout<<"bin: "<<i<<","<<j<<endl;
843  if((allmodsMap->GetBinContent(i+1,j)) + (errmodsMap->GetBinContent(i+1,j)) > 0){
844  contents = (allmodsMap->GetBinContent(i+1,j))/((allmodsMap->GetBinContent(i+1,j))+(errmodsMap->GetBinContent(i+1,j)));
845  }else{
846  contents = -1.;
847  }
848  //if(contents>=0.&&contents<0.8) std::cout<<"HERE: "<<i<<" , "<<j<<" , "<<allmodsMap->GetBinContent(i+1,j)<<" , "<<errmodsMap->GetBinContent(i+1,j)<<std::endl;
849  if(i==13&&j==17&&contents>0) count1++;
850  if(i==13&&j==18&&contents>0) count2++;
851  if(i==15&&j==5&&contents>0) count3++;
852  if(i==15&&j==6&&contents>0) count4++;
853  //cout<<"\t\t MAP: "<<i<<","<<j<<","<<contents<<endl;
854  if(((i==0||i==2||i==3||i==5||i==11||i==8)&&(j==1||j==8||j==13||j==17||j==20))||
855  ((i==1||i==9||i==10||i==13)&&(j==1||j==5||j==8||j==20||j==22))||
856  ((i==4||i==12)&&(j==5||j==10||j==13||j==17||j==22))||
857  ((i==2||i==5||i==6||i==7||i==14)&&(j==5||j==10||j==22))||
858  ((i==7||i==10)&&(j==13||j==17))||
859  ((i==6||i==14)&&(j==1||j==20))||
860  ((i==10||i==13)&&(j==10))||
861  ((i==4||i==12)&&(j==2))||
862  ((i==14)&&(j==15))){
863  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+1));
864  }else if(((i==16||i==19||i==21||i==24||i==26||i==27||i==29)&&(j==2||j==9||j==14||j==18||j==21))||
865  ((i==17||i==18||i==25)&&(j==2||j==6||j==9||j==21||j==23))||
866  ((i==20||i==23||i==28||i==31)&&(j==6||j==11||j==14||j==18||j==23))||
867  ((i==21||i==22||i==26||i==29||i==30)&&(j==6||j==11||j==23))||
868  ((i==18)&&(j==14||j==18))||
869  ((i==22||i==30)&&(j==2||j==21))||
870  ((i==18)&&(j==11))||
871  ((i==17||i==25)&&(j==16))||
872  ((i==19||i==27)&&(j==5))){
873  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-1));
874  }else if(i==6&&(j==14||j==15)){
875  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+2));
876  }else if((i==14)&&j==14){
877  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+3));
878  }else if((i==17||i==25)&&j==17){
879  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-3));
880  }else if(((i==0||i==2||i==3||i==5||i==8||i==10||i==11||i==13)&&(j==3||j==15))||
881  ((i==1||i==9)&&j==3)||
882  ((i==7||i==12||i==15)&&j==15)){
883  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+4));
884  }else if(((i==16||i==18||i==19||i==21||i==24||i==26||i==27||i==29)&&(j==7||j==19))||
885  ((i==17||i==25)&&j==7)||
886  ((i==20||i==23||i==28||i==31)&&j==19)){
887  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-4));
888  }else if((i==6||i==14)&&(j==13||j==19)){
889  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+5));
890  }else if((i==17||i==25)&&(j==18||j==24)){
891  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-5));
892  }else if(((i==4||i==12)&&j==1)||
893  ((i==3||i==11)&&j==6)){
894  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+6));
895  }else if((i==9||i==1)&&j==4){
896  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+8));
897  }else if((i==17||i==25)&&j==12){
898  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-8));
899  }else if(((i==20||i==28)&&j==20)||
900  ((i==19||i==27)&&j==22)){
901  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-11));
902  }else if(((i==20||i==28)&&j==21)||
903  ((i==19||i==27)&&j==23)){
904  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-13));
905  }else{
906  SummaryReportMap->setBinContent(i+1,j,contents);
907  }
908  }//end for loop over summaryReportMap bins
909  for(int i=0; i!=40; i++)for(int j=1; j!=37; j++){ // catch the last few holes...
910  if(((i==2||i==4||i==5||i==6||i==7||i==10||i==12||i==13||i==14||i==15)&&j==12)||
911  ((i==0||i==2||i==3||i==4||i==5||i==7||i==8||i==10||i==11||i==12||i==13||i==15)&&j==24)){
912  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-8));
913  }else if(((i==18||i==20||i==21||i==22||i==23||i==26||i==28||i==29||i==30||i==31)&&j==4)||
914  ((i==16||i==18||i==19||i==20||i==21||i==23||i==24||i==26||i==27||i==28||i==29||i==31)&&j==16)){
915  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+8));
916  }else if(((i==6||i==14)&&j==9)||
917  ((i==3||i==11)&&j==5)||
918  ((i==1||i==9)&&(j==11||j==16))){
919  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-1));
920  }else if(((i==17||i==25)&&j==10)||
921  ((i==22||i==30)&&(j==8||j==15))||
922  ((i==20||i==28)&&(j==2))){
923  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+1));
924  }else if((i==1||i==9)&&j==17){
925  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-3));
926  }else if((i==22||i==30)&&j==14){
927  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+3));
928  }else if((i==6||i==14)&&j==7){
929  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-4));
930  }else if((i==22||i==30)&&j==3){
931  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+4));
932  }else if((i==1||i==9)&&(j==18||j==24)){
933  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-5));
934  }else if((i==22||i==30)&&(j==13||j==19)){
935  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+5));
936  }else if(((i==20||i==28)&&j==1)||
937  ((i==19||i==27)&&j==6)){
938  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j+6));
939  }else if(((i==4||i==12)&&j==20)||
940  ((i==3||i==11)&&j==22)){
941  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-11));
942  }else if(((i==4||i==12)&&j==21)||
943  ((i==3||i==11)&&j==23)){
944  SummaryReportMap->setBinContent(i+1,j,SummaryReportMap->getBinContent(i+1,j-13));
945  }
946  }//end of loop over bins
947  //std::cout<<"COUNTERS: "<<count1<<" , "<<count2<<" , "<<count3<<" , "<<count4<<" , "<<count5<<" , "<<count6<<std::endl;
948  }//end if reportSummaryMap ME exists
949  }//end if in summary directory
950  }//end if modCounter_
951 */
952 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
953  if(!Tier0Flag){
954  //Not elegant, but not sure where else to put this sweet new plot!
955  MonitorElement * meTmp = bei->get("Pixel/Barrel/NClustertoChargeRatio_AllMod");
956  MonitorElement * meTop = bei->get("Pixel/Barrel/SUMCLU_nclusters_Barrel");
957  MonitorElement * meBot = bei->get("Pixel/Barrel/SUMCLU_charge_Barrel");
958  if(meTop && meBot && meTmp){
959  for (int bin = 1; bin < 769; ++bin){
960  float content = 0.0;
961  if (meBot->getBinContent(bin) > 0.0){
962  content = meTop->getBinContent(bin)/meBot->getBinContent(bin);
963  }
964  meTmp->setBinContent(bin,content);
965  }
966  for (int j = 0; j < 4; ++j){
967  static const char buf[] = "Pixel/Barrel/NClustertoChargeRatio_NormMod%i";
968  char modplot[sizeof(buf)+2];
969  sprintf(modplot,buf,j+1);
970  MonitorElement * meFinal = bei->get(modplot);
971  if(!meFinal) continue;
972  for (int i = 1; i < 769; ++i){
973  int k = 3 - j;
974  if (int(i+k)%4 == 0)
975  meFinal->setBinContent(int((i+k)/4), meTmp->getBinContent(i));
976  }
977  //Filling done. Now modification.
978  float SFLay[3], TotLay[3];
979  for (int ll = 0; ll < 3; ++ll) TotLay[ll] = 0.0;
980  for (int bin = 1; bin < (meFinal->getNbinsX()+1);++bin){
981  int layer = int((bin%48)/16);
982  TotLay[layer] += meFinal->getBinContent(bin);
983  }
984  float laynorm = TotLay[1]/64.;
985  for (int ll = 0; ll < 3; ++ll){
986  SFLay[ll] = 0.0; if (TotLay[ll] > 0.0 && TotLay[1] > 0.0) SFLay[ll] = TotLay[1]/TotLay[ll]*(1./laynorm);
987  }
988  //now loop through plot
989  for (int bin = 1; bin < (meFinal->getNbinsX()+1); ++bin){
990  //access the layer number for bin: int((i%48)/16)
991  int layer = int((bin%48)/16);
992  float content = meFinal->getBinContent(bin);
993  //apply scale factor to bin content
994  meFinal->setBinContent(bin,content*SFLay[layer]);
995  }
996  }
997  }
998 
999  eSetup.get<SiPixelFedCablingMapRcd>().get(theCablingMap);
1000  string currDir = bei->pwd();
1001  if(currDir.find("Reference")!=string::npos || currDir.find("Additional")!=string::npos) return;
1002  //cout<<"currDir="<<currDir<<endl;
1003  string dname = currDir.substr(currDir.find_last_of("/")+1);
1004  if(dname.find("Module_")!=string::npos && currDir.find("Reference")==string::npos){
1005  vector<string> meVec = bei->getMEs();
1006  int detId=-1; int fedId=-1;
1007  for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++){//loop over all modules and fill ndigis into allmodsMap
1008  //checking for any digis or FED errors to decide if this module is in DAQ:
1009  string full_path = currDir + "/" + (*it);
1010  if(detId==-1 && full_path.find("SUMOFF")==string::npos &&
1011  (full_path.find("ndigis")!=string::npos && full_path.find("SUMDIG")==string::npos) &&
1012  (getDetId(bei->get(full_path)) > 100)){
1013  MonitorElement * me = bei->get(full_path);
1014  if (!me) continue;
1015  if((full_path.find("ndigis")!=string::npos)){
1016  modCounter_++;
1017  detId = getDetId(me);
1018  for(int fedid=0; fedid!=40; ++fedid){
1019  SiPixelFrameConverter converter(theCablingMap.product(),fedid);
1020  uint32_t newDetId = detId;
1021  if(converter.hasDetUnit(newDetId)){
1022  fedId=fedid;
1023  break;
1024  }
1025  }
1026  double NDigis = 0;
1027  if(full_path.find("ndigis")!=string::npos) NDigis = me->getEntries();
1028  float weight = (allmodsVec->GetBinContent(fedId+1))+NDigis;
1029  //cout<<"DIGIS: "<<currDir<<" , "<<fedId<<" , "<<weight<<" , "<<NDigis<<endl;
1030  allmodsVec->SetBinContent(fedId+1,weight);
1031  //cout<<"\t filled: "<<allmodsVec->GetBinContent(fedId+1,weight)<<endl;
1032  }
1033  }
1034  }//end loop over MEs
1035  }//end of module dir's
1036  //if(currDir.find("FED_")!=std::string::npos){
1037  //fillGlobalQualityPlot(bei,init,eSetup,nFEDs,Tier0Flag,lumisec);
1038  //bei->goUp();
1039  //}
1040  vector<string> subDirVec = bei->getSubdirs();
1041  for (vector<string>::const_iterator ic = subDirVec.begin();
1042  ic != subDirVec.end(); ic++) {
1043  bei->cd(*ic);
1044  init=false;
1045  fillGlobalQualityPlot(bei,init,eSetup,nFEDs,Tier0Flag,lumisec);
1046  bei->goUp();
1047  }
1048  //cout<<"modCounter_: "<<modCounter_<<" , "<<bei->pwd()<<endl;
1049  if(modCounter_==1440){
1050  bei->cd("Pixel/EventInfo/reportSummaryContents");
1051  if(bei->pwd()=="Pixel/EventInfo/reportSummaryContents"){
1052  for(int i=0; i!=40; i++){//loop over FEDs to fetch the errors
1053  static const char buf[] = "Pixel/AdditionalPixelErrors/FED_%d/FedChNErrArray_%d";
1054  char fedplot[sizeof(buf)+4];
1055  int NErrors = 0;
1056  for(int j=0; j!=37; j++){//loop over FED channels within a FED
1057  sprintf(fedplot,buf,i,j);
1058  MonitorElement * me = bei->get(fedplot);
1059  if(me) NErrors = NErrors + me->getIntValue();
1060  }
1061  //If I fill, then I end up majorly overcounting the numbers of errors...
1062  //if(NErrors>0){ errmodsVec->Fill(i,NErrors); }
1063  if(NErrors>0){ errmodsVec->SetBinContent(i+1,NErrors); }
1064  }
1065  SummaryReportMap = bei->get("Pixel/EventInfo/reportSummaryMap");
1066  if(SummaryReportMap){
1067  float contents=0.;
1068  for(int i=1; i!=41; i++){
1069  //Dynamically subtracting previous (integrated) lumi section values
1070  //in order to only show current lumi section's numbers
1071  float mydigis = allmodsVec->GetBinContent(i) - lastallmods_[i-1];
1072  float myerrs = errmodsVec->GetBinContent(i) - lasterrmods_[i-1];
1073  if ((mydigis + myerrs) > 0.){
1074  contents = mydigis/(mydigis + myerrs);
1075  //std::cout<<"Fed: "<<i-1<<" , nevents: "<<nevents<<" , ndigis: "<< mydigis <<" , nerrors: "<< myerrs << " , contents: " << contents << std::endl;
1076  }else{
1077  //Changed so that dynamic zooming will still
1078  //advance over these bins(in renderplugins)
1079  contents = -0.5;
1080  }
1081  SummaryReportMap->setBinContent(lumisec+1,i,contents);
1082  }//end for loop over summaryReportMap bins
1083  }//end if reportSummaryMap ME exists
1084  }//end if in summary directory
1085  }//end if modCounter_
1086  }else{ // Offline
1087  float barrel_errors_temp[1]={-1.}; int barrel_cuts_temp[6]={6*-1};
1088  float endcap_errors_temp[1]={-1.}; int endcap_cuts_temp[6]={6*-1};
1089  int pixel_cuts_temp[1]={-1};
1090  // Barrel results:
1091  MonitorElement * me;
1092  me = bei->get("Pixel/Barrel/BarrelNErrorsCut");
1093  if(me) barrel_errors_temp[0] = me->getFloatValue();
1094  me = bei->get("Pixel/Endcap/EndcapNErrorsCut");
1095  if(me) endcap_errors_temp[0] = me->getFloatValue();
1096  SummaryReportMap->setBinContent(1,1,barrel_errors_temp[0]);
1097  SummaryReportMap->setBinContent(2,1,endcap_errors_temp[0]);
1098  me = bei->get("Pixel/Barrel/BarrelNDigisCut");
1099  if(me) barrel_cuts_temp[0] = me->getIntValue();
1100  me = bei->get("Pixel/Barrel/BarrelDigiChargeCut");
1101  if(me) barrel_cuts_temp[1] = me->getIntValue();
1102  me = bei->get("Pixel/Barrel/BarrelClusterSizeCut");
1103  if(me) barrel_cuts_temp[2] = me->getIntValue();
1104  me = bei->get("Pixel/Barrel/BarrelNClustersCut");
1105  if(me) barrel_cuts_temp[3] = me->getIntValue();
1106  me = bei->get("Pixel/Barrel/BarrelClusterChargeCut");
1107  if(me) barrel_cuts_temp[4] = me->getIntValue();
1108  me = bei->get("Pixel/Endcap/EndcapNDigisCut");
1109  if(me) endcap_cuts_temp[0] = me->getIntValue();
1110  me = bei->get("Pixel/Endcap/EndcapDigiChargeCut");
1111  if(me) endcap_cuts_temp[1] = me->getIntValue();
1112  me = bei->get("Pixel/Endcap/EndcapClusterSizeCut");
1113  if(me) endcap_cuts_temp[2] = me->getIntValue();
1114  me = bei->get("Pixel/Endcap/EndcapNClustersCut");
1115  if(me) endcap_cuts_temp[3] = me->getIntValue();
1116  me = bei->get("Pixel/Endcap/EndcapClusterChargeCut");
1117  if(me) endcap_cuts_temp[4] = me->getIntValue();
1118  for(int j=2; j!=7; j++){
1119  SummaryReportMap->setBinContent(1,j,barrel_cuts_temp[j-2]);
1120  SummaryReportMap->setBinContent(2,j,endcap_cuts_temp[j-2]);
1121  //cout<<"error cut values: "<<j<<" , "<<barrel_cuts_temp[j-2]<<" , "<<endcap_cuts_temp[j-2]<<endl;
1122  }
1123  me = bei->get("Pixel/Tracks/PixelTracksCut");
1124  if(me) pixel_cuts_temp[0] = me->getIntValue();
1125  SummaryReportMap->setBinContent(1,7,pixel_cuts_temp[0]);
1126  SummaryReportMap->setBinContent(2,7,pixel_cuts_temp[0]);
1127  }//end of offline map
1128  if(allmodsMap) allmodsMap->Clear();
1129  if(goodmodsMap) goodmodsMap->Clear();
1130  if(errmodsMap) errmodsMap->Clear();
1131 }
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
std::vector< std::string > getSubdirs(void) const
Definition: DQMStore.cc:1659
void fillGlobalQualityPlot(DQMStore *bei, bool init, edm::EventSetup const &eSetup, int nFEDs, bool Tier0Flag, int lumisec)
void cd(void)
go to top directory (ie. root)
Definition: DQMStore.cc:644
int init
Definition: HydjetWrapper.h:62
double getEntries(void) const
get # of entries
int getDetId(MonitorElement *mE)
(Documentation under construction).
double getFloatValue(void) const
int j
Definition: DBlmapReader.cc:9
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1708
int k[5][pyjets_maxn]
MonitorElement * SummaryReportMap
int64_t getIntValue(void) const
edm::ESHandle< SiPixelFedCablingMap > theCablingMap
T const * product() const
Definition: ESHandle.h:62
std::vector< std::string > getMEs(void) const
get list of (non-dir) MEs of current directory
Definition: DQMStore.cc:1682
double getBinContent(int binx) const
get content of bin (1-D)
int getNbinsX(void) const
get # of bins in X-axis
void goUp(void)
equivalent to &quot;cd ..&quot;
Definition: DQMStore.cc:678
int weight
Definition: histoStyle.py:50
const std::string & pwd(void) const
Definition: DQMStore.cc:639
int SiPixelDataQuality::getDetId ( MonitorElement mE)

(Documentation under construction).

Given a pointer to ME returns the associated detId

Definition at line 109 of file SiPixelDataQuality.cc.

References MonitorElement::getName().

Referenced by fillGlobalQualityPlot().

110 {
111  string mEName = mE->getName() ;
112 
113  int detId = 0;
114 
115  if( mEName.find("_3") != string::npos )
116  {
117  string detIdString = mEName.substr((mEName.find_last_of("_"))+1,9);
118  std::istringstream isst;
119  isst.str(detIdString);
120  isst>>detId;
121 // } else {
122 // cout << ACYellow << ACBold
123 // << "[SiPixelInformationExtractor::getDetId()] "
124 // << ACPlain
125 // << "Could not extract detId from "
126 // << mEName
127 // << endl ;
128  }
129 
130  return detId ;
131 
132 }
const std::string & getName(void) const
get name of ME

Member Data Documentation

int SiPixelDataQuality::allMods_
private

Definition at line 110 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag(), and SiPixelDataQuality().

TH2F* SiPixelDataQuality::allmodsMap
private
TH1D* SiPixelDataQuality::allmodsVec
private
float SiPixelDataQuality::barrel_error_flag_
private

Definition at line 118 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

int SiPixelDataQuality::barrelMods_
private

Definition at line 110 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterChargeBarrel
private

Definition at line 134 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterChargeEndcap
private

Definition at line 135 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

int SiPixelDataQuality::clusterCounterBarrel
private

Definition at line 121 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

int SiPixelDataQuality::clusterCounterEndcap
private

Definition at line 123 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterMod1
private

Definition at line 104 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterMod2
private

Definition at line 105 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterMod3
private

Definition at line 106 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterMod4
private

Definition at line 107 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterModAll
private

Definition at line 103 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterSizeBarrel
private

Definition at line 132 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::ClusterSizeEndcap
private

Definition at line 133 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

bool SiPixelDataQuality::clusterStatsBarrel
private

Definition at line 120 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

bool SiPixelDataQuality::clusterStatsEndcap
private

Definition at line 122 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

int SiPixelDataQuality::count
private
int SiPixelDataQuality::count1
private

Definition at line 142 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

int SiPixelDataQuality::count2
private

Definition at line 143 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

int SiPixelDataQuality::count3
private

Definition at line 144 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

int SiPixelDataQuality::count4
private

Definition at line 145 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

int SiPixelDataQuality::count5
private

Definition at line 146 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

int SiPixelDataQuality::count6
private

Definition at line 147 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

MonitorElement* SiPixelDataQuality::DigiChargeBarrel
private

Definition at line 128 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::DigiChargeEndcap
private

Definition at line 129 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

int SiPixelDataQuality::digiCounterBarrel
private

Definition at line 121 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

int SiPixelDataQuality::digiCounterEndcap
private

Definition at line 123 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

bool SiPixelDataQuality::digiStatsBarrel
private

Definition at line 120 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

bool SiPixelDataQuality::digiStatsEndcap
private

Definition at line 122 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

bool SiPixelDataQuality::DONE_
private

Definition at line 90 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

float SiPixelDataQuality::endcap_error_flag_
private

Definition at line 118 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

int SiPixelDataQuality::endcapMods_
private

Definition at line 110 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

bool SiPixelDataQuality::endOfModules_
private

Definition at line 95 of file SiPixelDataQuality.h.

int SiPixelDataQuality::errcount
private

Definition at line 86 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

TH2F* SiPixelDataQuality::errmodsMap
private
TH1D* SiPixelDataQuality::errmodsVec
private
int SiPixelDataQuality::errorMods_
private

Definition at line 110 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag(), and SiPixelDataQuality().

MonitorElement* SiPixelDataQuality::FEDErrReportMap
private

Definition at line 113 of file SiPixelDataQuality.h.

TH2F* SiPixelDataQuality::goodmodsMap
private
TH1D* SiPixelDataQuality::goodmodsVec
private
bool SiPixelDataQuality::gotDigis
private

Definition at line 87 of file SiPixelDataQuality.h.

float SiPixelDataQuality::lastallmods_[40]
private

Definition at line 153 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot(), and SiPixelDataQuality().

float SiPixelDataQuality::lasterrmods_[40]
private

Definition at line 152 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot(), and SiPixelDataQuality().

int SiPixelDataQuality::lastLS_
private

Definition at line 151 of file SiPixelDataQuality.h.

Referenced by SiPixelDataQuality().

int SiPixelDataQuality::modCounter_
private

Definition at line 150 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

std::ofstream SiPixelDataQuality::myfile_
private

Definition at line 93 of file SiPixelDataQuality.h.

int SiPixelDataQuality::n_errors_barrel_
private

Definition at line 117 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

int SiPixelDataQuality::n_errors_endcap_
private

Definition at line 117 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

int SiPixelDataQuality::n_errors_pixel_
private

Definition at line 117 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::NClustersBarrel
private

Definition at line 136 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::NClustersEndcap
private

Definition at line 137 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::NDigisBarrel
private

Definition at line 126 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::NDigisEndcap
private

Definition at line 127 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::NErrorsBarrel
private

Definition at line 114 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::NErrorsEndcap
private

Definition at line 115 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

MonitorElement* SiPixelDataQuality::NErrorsFEDs
private

Definition at line 116 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag().

int SiPixelDataQuality::nevents_
private

Definition at line 94 of file SiPixelDataQuality.h.

MonitorElement* SiPixelDataQuality::NPixelTracks
private

Definition at line 140 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and computeGlobalQualityFlag().

int SiPixelDataQuality::objectCount_
private

Definition at line 89 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

bool SiPixelDataQuality::offlineXMLfile_
private

Definition at line 76 of file SiPixelDataQuality.h.

float SiPixelDataQuality::pixel_error_flag_
private

Definition at line 118 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

float SiPixelDataQuality::qflag_
private

Definition at line 109 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag(), and SiPixelDataQuality().

MonitorElement* SiPixelDataQuality::SummaryBarrel
private
MonitorElement* SiPixelDataQuality::SummaryEndcap
private
MonitorElement* SiPixelDataQuality::SummaryPixel
private
MonitorElement* SiPixelDataQuality::SummaryReportMap
private

Definition at line 99 of file SiPixelDataQuality.h.

Referenced by bookGlobalQualityFlag(), and fillGlobalQualityPlot().

edm::ESHandle<SiPixelFedCablingMap> SiPixelDataQuality::theCablingMap
private

Definition at line 96 of file SiPixelDataQuality.h.

Referenced by fillGlobalQualityPlot().

int SiPixelDataQuality::timeoutCounter_
private

Definition at line 149 of file SiPixelDataQuality.h.

Referenced by SiPixelDataQuality().

int SiPixelDataQuality::trackCounterBarrel
private

Definition at line 121 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

int SiPixelDataQuality::trackCounterEndcap
private

Definition at line 123 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

bool SiPixelDataQuality::trackStatsBarrel
private

Definition at line 120 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().

bool SiPixelDataQuality::trackStatsEndcap
private

Definition at line 122 of file SiPixelDataQuality.h.

Referenced by computeGlobalQualityFlag().