20 #ifdef WITH_ECAL_COND_DB
215 name =
"EBIT integrity quality summary";
221 name =
"EBIT integrity quality errors summary";
223 for (
int i = 0;
i < 36;
i++) {
228 name =
"EBIT PN integrity quality summary";
234 name =
"EBOT digi occupancy summary";
240 name =
"EBOT digi occupancy summary 1D";
242 for (
int i = 0;
i < 36;
i++) {
247 name =
"EBOT PN digi occupancy summary";
253 name =
"EBSFT front-end status summary";
259 name =
"EBSFT front-end status errors summary";
261 for (
int i = 0;
i < 36;
i++) {
266 name =
"EBPOT pedestal quality summary G12";
272 name =
"EBPOT pedestal quality errors summary G12";
274 for (
int i = 0;
i < 36;
i++) {
279 name =
"EBPOT pedestal G12 RMS map";
285 name =
"EBPOT pedestal G12 mean";
287 for (
int i = 0;
i < 36;
i++) {
292 name =
"EBPOT pedestal G12 rms";
294 for (
int i = 0;
i < 36;
i++) {
301 name =
"EBLT laser quality summary L1";
307 name =
"EBLT laser quality errors summary L1";
309 for (
int i = 0;
i < 36;
i++) {
314 name =
"EBLT PN laser quality summary L1";
320 name =
"EBLT PN laser quality errors summary L1";
322 for (
int i = 0;
i < 36;
i++) {
327 name =
"EBLT laser L1 amplitude summary";
329 for (
int i = 0;
i < 36;
i++) {
334 name =
"EBLT laser L1 timing summary";
336 for (
int i = 0;
i < 36;
i++) {
341 name =
"EBLT laser L1 amplitude over PN summary";
343 for (
int i = 0;
i < 36;
i++) {
352 name =
"EBLT laser quality summary L2";
358 name =
"EBLT laser quality errors summary L2";
360 for (
int i = 0;
i < 36;
i++) {
365 name =
"EBLT PN laser quality summary L2";
371 name =
"EBLT PN laser quality errors summary L2";
373 for (
int i = 0;
i < 36;
i++) {
378 name =
"EBLT laser L2 amplitude summary";
380 for (
int i = 0;
i < 36;
i++) {
385 name =
"EBLT laser L2 timing summary";
387 for (
int i = 0;
i < 36;
i++) {
392 name =
"EBLT laser L2 amplitude over PN summary";
394 for (
int i = 0;
i < 36;
i++) {
403 name =
"EBLT laser quality summary L3";
409 name =
"EBLT laser quality errors summary L3";
411 for (
int i = 0;
i < 36;
i++) {
416 name =
"EBLT PN laser quality summary L3";
422 name =
"EBLT PN laser quality errors summary L3";
424 for (
int i = 0;
i < 36;
i++) {
429 name =
"EBLT laser L3 amplitude summary";
431 for (
int i = 0;
i < 36;
i++) {
436 name =
"EBLT laser L3 timing summary";
438 for (
int i = 0;
i < 36;
i++) {
443 name =
"EBLT laser L3 amplitude over PN summary";
445 for (
int i = 0;
i < 36;
i++) {
454 name =
"EBLT laser quality summary L4";
460 name =
"EBLT laser quality errors summary L4";
462 for (
int i = 0;
i < 36;
i++) {
467 name =
"EBLT PN laser quality summary L4";
473 name =
"EBLT PN laser quality errors summary L4";
475 for (
int i = 0;
i < 36;
i++) {
480 name =
"EBLT laser L4 amplitude summary";
482 for (
int i = 0;
i < 36;
i++) {
487 name =
"EBLT laser L4 timing summary";
489 for (
int i = 0;
i < 36;
i++) {
494 name =
"EBLT laser L4 amplitude over PN summary";
496 for (
int i = 0;
i < 36;
i++) {
505 name =
"EBPT pedestal quality G01 summary";
515 name =
"EBPT pedestal quality G06 summary";
525 name =
"EBPT pedestal quality G12 summary";
535 name =
"EBPT PN pedestal quality G01 summary";
545 name =
"EBPT PN pedestal quality G16 summary";
555 name =
"EBTPT test pulse quality G01 summary";
565 name =
"EBTPT test pulse quality G06 summary";
575 name =
"EBTPT test pulse quality G12 summary";
585 name =
"EBTPT PN test pulse quality G01 summary";
595 name =
"EBTPT PN test pulse quality G16 summary";
605 name =
"EBTPT test pulse amplitude G01 summary";
607 for (
int i = 0;
i < 36;
i++) {
616 name =
"EBTPT test pulse amplitude G06 summary";
618 for (
int i = 0;
i < 36;
i++) {
627 name =
"EBTPT test pulse amplitude G12 summary";
629 for (
int i = 0;
i < 36;
i++) {
636 name =
"EBOT energy summary";
642 name =
"EBTMT timing quality summary";
648 name =
"EBTMT timing mean 1D summary";
653 name =
"EBTMT timing rms 1D summary";
658 name =
"EBTMT timing mean";
660 for (
int i = 0;
i < 36;
i++) {
666 name =
"EBTMT timing rms";
668 for (
int i = 0;
i < 36;
i++) {
674 name =
"EBTTT Et trigger tower summary";
680 name =
"EBTTT emulator error quality summary";
686 name =
"EBTTT Trigger Primitives Timing summary";
693 name =
"EBTTT Trigger Primitives Non Single Timing summary";
700 name =
"EB global summary";
915 #ifdef WITH_ECAL_COND_DB
929 if (
ievt_ % 10 == 0 ) {
935 for (
int iex = 1; iex <= 170; iex++ ) {
936 for (
int ipx = 1; ipx <= 360; ipx++ ) {
961 for (
int iex = 1; iex <= 20; iex++ ) {
962 for (
int ipx = 1; ipx <= 90; ipx++ ) {
978 for (
int iex = 1; iex <= 34; iex++ ) {
979 for (
int ipx = 1; ipx <= 72; ipx++ ) {
1061 for (
unsigned int i=0;
i<
clients_.size();
i++ ) {
1103 for (
int ie = 1; ie <= 85; ie++ ) {
1104 for (
int ip = 1; ip <= 20; ip++ ) {
1108 me = ebic->
meg01_[ism-1];
1119 ipx = ip+20*(ism-1);
1122 ipx = 1+(20-ip)+20*(ism-19);
1130 h2 = ebic->
h_[ism-1];
1134 float xval = h2->GetBinContent( ie, ip );
1141 ipx = ip+20*(ism-1);
1144 ipx = 1+(20-ip)+20*(ism-19);
1156 me = ebpoc->
meg03_[ism-1];
1165 ipx = ip+20*(ism-1);
1168 ipx = 1+(20-ip)+20*(ism-19);
1178 float num01, mean01, rms01;
1188 ipx = ip+20*(ism-1);
1191 ipx = 1+(20-ip)+20*(ism-19);
1211 ipx = ip+20*(ism-1);
1214 ipx = 1+(20-ip)+20*(ism-19);
1219 me = eblc->
meg01_[ism-1];
1236 me = eblc->
meg02_[ism-1];
1253 me = eblc->
meg03_[ism-1];
1270 me = eblc->
meg04_[ism-1];
1289 me_01 = ebpc->
meg01_[ism-1];
1290 me_02 = ebpc->
meg02_[ism-1];
1291 me_03 = ebpc->
meg03_[ism-1];
1298 ipx = ip+20*(ism-1);
1301 ipx = 1+(20-ip)+20*(ism-19);
1321 me_01 = ebtpc->
meg01_[ism-1];
1322 me_02 = ebtpc->
meg02_[ism-1];
1323 me_03 = ebtpc->
meg03_[ism-1];
1330 ipx = ip+20*(ism-1);
1333 ipx = 1+(20-ip)+20*(ism-19);
1363 float xval =
hot01_[ism-1]->GetBinContent( ie, ip );
1370 ipx = ip+20*(ism-1);
1373 ipx = 1+(20-ip)+20*(ism-19);
1382 float num02, mean02, rms02;
1405 for (
int ie = 1; ie <= 17; ie++ ) {
1406 for (
int ip = 1; ip <= 4; ip++ ) {
1416 ipx = 1+(4-ip)+4*(ism-19);
1432 me = ebsfc->
meh01_[ism-1];
1451 bool hadNonZeroInterest =
false;
1455 mean01 =
httt01_[ism-1]->GetBinContent( ie, ip );
1457 if ( mean01 != 0. ) {
1471 hadNonZeroInterest =
true;
1491 h2 = ebtttc->
l01_[ism-1];
1492 h3 = ebtttc->
l02_[ism-1];
1497 float emulErrorVal = h2->GetBinContent( ie, ip );
1499 if( emulErrorVal!=0 && hadNonZeroInterest ) xval = 0;
1503 if ( xval!=0 && hadNonZeroInterest ) xval = 1;
1515 float ent,
cont, err;
1516 float num, sum, sumw2;
1517 num = sum = sumw2 = 0.;
1520 for(
int ce=1; ce<=5; ce++){
1521 for(
int cp=1;
cp<=5;
cp++){
1523 int scie = (ie - 1) * 5 + ce;
1524 int scip = (ip - 1) * 5 +
cp;
1525 int bin =
htmt01_[ism-1]->GetBin( scie, scip );
1528 ent =
htmt01_[ism-1]->GetBinEntries( bin );
1529 cont =
htmt01_[ism-1]->GetBinContent( bin ) - 50.;
1530 err =
htmt01_[ism-1]->GetBinError( bin );
1534 sumw2 += (err * err + cont *
cont) * ent;
1546 if(
std::abs(mean) > 2. || rms > 6. ) xval = 0.;
1562 for(
int i = 1;
i <= 10;
i++ ) {
1563 for(
int j = 1;
j <= 5;
j++ ) {
1570 ipseudostripx =
j+5*(ism-1);
1573 ipseudostripx =
j+5*(ism-19);
1578 me_04 = ebic->
meg02_[ism-1];
1579 h2 = ebic->
hmem_[ism-1];
1590 float xval = h2->GetBinContent(
i,1);
1599 me_04 = ebpc->
meg04_[ism-1];
1600 me_05 = ebpc->
meg05_[ism-1];
1615 me_04 = ebtpc->
meg04_[ism-1];
1616 me_05 = ebtpc->
meg05_[ism-1];
1633 me = eblc->
meg09_[ism-1];
1650 me = eblc->
meg10_[ism-1];
1667 me = eblc->
meg11_[ism-1];
1684 me = eblc->
meg12_[ism-1];
1704 for(
int chan=0; chan<1700; chan++) {
1706 int ie = (chan)/20 + 1;
1707 int ip = (chan)%20 + 1;
1720 if( xval != 2 && xval != 5 ) {
1726 if( mea01 && met01 && meaopn01 ) {
1744 if( xval != 2 && xval != 5 ) {
1750 if( mea02 && met02 && meaopn02 ) {
1768 if( xval != 2 && xval != 5 ) {
1774 if( mea03 && met03 && meaopn03 ) {
1792 if( xval != 2 && xval != 5 ) {
1798 if( mea04 && met04 && meaopn04 ) {
1820 if ( xval01 != 2 && xval01 != 5 ) {
1822 me = ebtpc->
mea01_[ism-1];
1838 if ( xval02 != 2 && xval02 != 5 ) {
1840 me = ebtpc->
mea02_[ism-1];
1856 if ( xval03 != 2 && xval03 != 5 ) {
1858 me = ebtpc->
mea03_[ism-1];
1879 int nGlobalErrors = 0;
1880 int nGlobalErrorsEB[36];
1881 int nValidChannels = 0;
1882 int nValidChannelsEB[36];
1884 for (
int i = 0;
i < 36;
i++) {
1885 nGlobalErrorsEB[
i] = 0;
1886 nValidChannelsEB[
i] = 0;
1889 for (
int iex = 1; iex <= 170; iex++ ) {
1890 for (
int ipx = 1; ipx <= 360; ipx++ ) {
1894 int ism = (ipx-1)/20 + 1 ;
1895 if ( iex>85 ) ism+=18;
1897 int iet = (iex-1)/5 + 1;
1898 int ipt = (ipx-1)/5 + 1;
1910 float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
1913 if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
1917 if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
1921 if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
1925 if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
1929 if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;
1943 if( val_in==3 || val_in==4 || val_in==5) val_in=1;
1944 if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
1945 if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
1946 if( val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
1947 if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
1949 if(val_in==6) xval=6;
1950 else if(val_in==0) xval=0;
1951 else if(val_po==0 || val_ls==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
1952 else if(val_po==2 || val_ls==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
1960 float frac_synch_errors = 0.;
1962 if(norm > 0) frac_synch_errors = float(
synch01_->GetBinContent(ism))/
float(norm);
1964 if(val_sy==0) xval=0;
1969 for (
unsigned int i=0;
i<
clients_.size();
i++ ) {
1972 TH2F* h2 = ebic->
h_[ism-1];
1974 iEntries = h2->GetEntries();
1980 if ( iEntries==0 ) {
1986 if ( xval >= 0 && xval <= 5 ) {
1987 if ( xval != 2 && xval != 5 ) ++nValidChannels;
1989 if ( xval != 2 && xval != 5 ) ++nValidChannelsEB[(ipx-1)/20];
1991 if ( xval != 2 && xval != 5 ) ++nValidChannelsEB[18+(ipx-1)/20];
1993 if ( xval == 0 ) ++nGlobalErrors;
1995 if ( xval == 0 ) ++nGlobalErrorsEB[(ipx-1)/20];
1997 if ( xval == 0 ) ++nGlobalErrorsEB[18+(ipx-1)/20];
2008 float reportSummary = -1.0;
2009 if ( nValidChannels != 0 )
2010 reportSummary = 1.0 - float(nGlobalErrors)/float(nValidChannels);
2012 if ( me ) me->
Fill(reportSummary);
2014 for (
int i = 0;
i < 36;
i++) {
2015 float reportSummaryEB = -1.0;
2016 if ( nValidChannelsEB[
i] != 0 )
2017 reportSummaryEB = 1.0 - float(nGlobalErrorsEB[
i])/float(nValidChannelsEB[i]);
2019 if ( me ) me->
Fill(reportSummaryEB);
2025 int nValidChannelsTT[72][34];
2026 int nGlobalErrorsTT[72][34];
2027 for (
int iettx = 0; iettx < 34; iettx++ ) {
2028 for (
int ipttx = 0; ipttx < 72; ipttx++ ) {
2029 nValidChannelsTT[ipttx][iettx] = 0;
2030 nGlobalErrorsTT[ipttx][iettx] = 0;
2034 for (
int iex = 1; iex <= 170; iex++ ) {
2035 for (
int ipx = 1; ipx <= 360; ipx++ ) {
2037 int iettx = (iex-1)/5+1;
2038 int ipttx = (ipx-1)/5+1;
2042 if ( xval >= 0 && xval <= 5 ) {
2043 if ( xval != 2 && xval != 5 ) ++nValidChannelsTT[ipttx-1][iettx-1];
2044 if ( xval == 0 ) ++nGlobalErrorsTT[ipttx-1][iettx-1];
2050 for (
int iettx = 0; iettx < 34; iettx++ ) {
2051 for (
int ipttx = 0; ipttx < 72; ipttx++ ) {
2054 if ( nValidChannelsTT[ipttx][iettx] != 0 )
2055 xval = 1.0 - float(nGlobalErrorsTT[ipttx][iettx])/float(nValidChannelsTT[ipttx][iettx]);
MonitorElement * mea02_[36]
MonitorElement * meg12_[36]
MonitorElement * mePedestalOnlineRMS_
MonitorElement * meLaserL4PNErr_
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
MonitorElement * meOccupancyPN_
MonitorElement * meRecHitEnergy_
MonitorElement * meg09_[36]
MonitorElement * meTriggerTowerEt_
void setBinContent(int binx, double content)
set content of bin (1-D)
virtual ~EBSummaryClient()
Destructor.
static bool maskChannel(int ism, int i1, int i2, uint32_t bits, const EcalSubdetector subdet)
static std::string sEB(const int ism)
MonitorElement * meLaserL3_
void cleanup(void)
Cleanup.
MonitorElement * meTestPulseAmplG01_
MonitorElement * meg03_[36]
MonitorElement * me_o02_[36]
MonitorElement * meg02_[36]
MonitorElement * meg05_[36]
MonitorElement * meTestPulseG12_
static const int PHYSICS_BAD_CHANNEL_WARNING
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * meLaserL4AmplOverPN_
MonitorElement * meg04_[36]
static T getHisto(const MonitorElement *me, bool clone=false, T ret=0)
Returns the histogram contained by the Monitor Element.
MonitorElement * mePedestalPNG01_
MonitorElement * met02_[36]
MonitorElement * meLaserL1Timing_
MonitorElement * meTimingMean_
Some "id" conversions.
MonitorElement * meStatusFlagsErr_
MonitorElement * meLaserL1_
MonitorElement * meg02_[36]
MonitorElement * meg03_[36]
MonitorElement * mea01_[36]
MonitorElement * meIntegrity_
MonitorElement * meg02_[36]
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 * meg01_[36]
MonitorElement * mePedestalOnlineErr_
MonitorElement * mePedestalG06_
MonitorElement * meOccupancy_
MonitorElement * meTestPulseAmplG12_
MonitorElement * meLaserL3Timing_
std::vector< int > superModules_
std::vector< int > laserWavelengths_
double getEntries(void) const
get # of entries
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
MonitorElement * mea03_[36]
MonitorElement * met04_[36]
MonitorElement * meLaserL2Err_
MonitorElement * meLaserL2_
MonitorElement * meg04_[36]
MonitorElement * meLaserL3Ampl_
MonitorElement * meTestPulsePNG16_
MonitorElement * mea02_[36]
MonitorElement * mePedestalG01_
MonitorElement * meg10_[36]
MonitorElement * meIntegrityErr_
void beginJob(void)
BeginJob.
MonitorElement * meLaserL3PNErr_
MonitorElement * meg01_[36]
MonitorElement * meLaserL2PN_
MonitorElement * meTestPulsePNG01_
MonitorElement * meLaserL4Timing_
MonitorElement * meLaserL2AmplOverPN_
void removeElement(const std::string &name)
MonitorElement * meTimingRMS_
EBSummaryClient(const edm::ParameterSet &ps)
Constructor.
MonitorElement * meIntegrityPN_
MonitorElement * mea04_[36]
MonitorElement * meLaserL3Err_
MonitorElement * meLaserL4Err_
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
MonitorElement * meh01_[36]
MonitorElement * meg04_[36]
MonitorElement * meTimingRMS1D_
MonitorElement * meOccupancy1D_
void setEntries(double nentries)
set # of entries
MonitorElement * meTriggerTowerEmulError_
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
MonitorElement * met03_[36]
MonitorElement * meTriggerTowerTiming_
Ecal Monitor Utils for Client.
static bool getBinStatistics(TH1 *histo, const int ix, const int iy, float &num, float &mean, float &rms, float minEntries=1.)
Returns true if the bin contains good statistical data.
MonitorElement * meLaserL3PN_
MonitorElement * meLaserL3AmplOverPN_
MonitorElement * meaopn04_[36]
MonitorElement * meLaserL4PN_
MonitorElement * meLaserL2Timing_
MonitorElement * meaopn01_[36]
MonitorElement * meTimingMean1D_
MonitorElement * me_o01_[36]
MonitorElement * meTiming_
double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
MonitorElement * meg03_[36]
MonitorElement * meLaserL1AmplOverPN_
MonitorElement * mePedestalOnlineRMSMap_
MonitorElement * meg11_[36]
MonitorElement * meLaserL4Ampl_
MonitorElement * meLaserL1Err_
MonitorElement * mea01_[36]
MonitorElement * mea03_[36]
MonitorElement * meLaserL4_
MonitorElement * meg01_[36]
MonitorElement * meTestPulseAmplG06_
double getBinContent(int binx) const
get content of bin (1-D)
MonitorElement * mePedestalOnline_
MonitorElement * meGlobalSummary_
std::vector< int > MGPAGainsPN_
MonitorElement * meStatusFlags_
MonitorElement * meLaserL1PN_
MonitorElement * meLaserL2PNErr_
MonitorElement * meTestPulseG06_
MonitorElement * meTestPulseG01_
MonitorElement * meLaserL1Ampl_
MonitorElement * meg05_[36]
float synchErrorThreshold_
MonitorElement * meLaserL1PNErr_
MonitorElement * meg02_[36]
MonitorElement * meg03_[36]
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
MonitorElement * meg01_[36]
std::vector< int > MGPAGains_
MonitorElement * meaopn02_[36]
int ism(int ieta, int iphi)
MonitorElement * meaopn03_[36]
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
MonitorElement * meLaserL2Ampl_
std::vector< EBClient * > clients_
void analyze(void)
Analyze.
void beginRun(void)
BeginRun.
MonitorElement * mePedestalG12_
void setCurrentFolder(const std::string &fullpath)
MonitorElement * met01_[36]
MonitorElement * meTriggerTowerNonSingleTiming_
MonitorElement * mePedestalOnlineMean_
MonitorElement * mePedestalPNG16_