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 | Friends
EETestPulseClient Class Reference

#include <EETestPulseClient.h>

Inheritance diagram for EETestPulseClient:
EEClient

Public Member Functions

void analyze (void)
 Analyze. More...
 
void beginJob (void)
 BeginJob. More...
 
void beginRun (void)
 BeginRun. More...
 
void cleanup (void)
 Cleanup. More...
 
 EETestPulseClient (const edm::ParameterSet &ps)
 Constructor. More...
 
void endJob (void)
 EndJob. More...
 
void endRun (void)
 EndRun. More...
 
int getEvtPerJob ()
 Get Functions. More...
 
int getEvtPerRun ()
 Returns the number of processed events in this Run. More...
 
void setup (void)
 Setup. More...
 
virtual ~EETestPulseClient ()
 Destructor. More...
 
- Public Member Functions inherited from EEClient
virtual ~EEClient (void)
 

Private Attributes

float amplitudeThreshold_
 
float amplitudeThresholdPnG01_
 
float amplitudeThresholdPnG16_
 
bool cloneME_
 
bool debug_
 
DQMStoredqmStore_
 
bool enableCleanup_
 
TProfile2D * ha01_ [18]
 
TProfile2D * ha02_ [18]
 
TProfile2D * ha03_ [18]
 
TProfile2D * hs01_ [18]
 
TProfile2D * hs02_ [18]
 
TProfile2D * hs03_ [18]
 
TProfile * i01_ [18]
 
TProfile * i02_ [18]
 
TProfile * i03_ [18]
 
TProfile * i04_ [18]
 
int ievt_
 
int jevt_
 
MonitorElementme_hs01_ [18]
 
MonitorElementme_hs02_ [18]
 
MonitorElementme_hs03_ [18]
 
MonitorElementmea01_ [18]
 
MonitorElementmea02_ [18]
 
MonitorElementmea03_ [18]
 
MonitorElementmeg01_ [18]
 
MonitorElementmeg02_ [18]
 
MonitorElementmeg03_ [18]
 
MonitorElementmeg04_ [18]
 
MonitorElementmeg05_ [18]
 
MonitorElementmer04_ [18]
 
MonitorElementmer05_ [18]
 
std::vector< int > MGPAGains_
 
std::vector< int > MGPAGainsPN_
 
float pedPnDiscrepancyMean_ [2]
 
float pedPnExpectedMean_ [2]
 
float pedPnRMSThreshold_ [2]
 
float percentVariation_
 
std::string prefixME_
 
float RMSThreshold_
 
std::vector< int > superModules_
 
bool verbose_
 

Friends

class EESummaryClient
 

Detailed Description

Definition at line 33 of file EETestPulseClient.h.

Constructor & Destructor Documentation

EETestPulseClient::EETestPulseClient ( const edm::ParameterSet ps)

Constructor.

Definition at line 42 of file EETestPulseClient.cc.

References amplitudeThreshold_, amplitudeThresholdPnG01_, amplitudeThresholdPnG16_, cloneME_, debug_, enableCleanup_, edm::ParameterSet::getUntrackedParameter(), ha01_, ha02_, ha03_, hs01_, hs02_, hs03_, i, i01_, i02_, i03_, i04_, ecalpyutils::ism(), me_hs01_, me_hs02_, me_hs03_, mea01_, mea02_, mea03_, meg01_, meg02_, meg03_, meg04_, meg05_, mer04_, mer05_, MGPAGains_, MGPAGainsPN_, pedPnDiscrepancyMean_, pedPnExpectedMean_, pedPnRMSThreshold_, percentVariation_, prefixME_, RMSThreshold_, superModules_, and verbose_.

42  {
43 
44  // cloneME switch
45  cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
46 
47  // verbose switch
48  verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
49 
50  // debug switch
51  debug_ = ps.getUntrackedParameter<bool>("debug", false);
52 
53  // prefixME path
54  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
55 
56  // enableCleanup_ switch
57  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
58 
59  // vector of selected Super Modules (Defaults to all 18).
60  superModules_.reserve(18);
61  for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i);
62  superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
63 
64  MGPAGains_.reserve(3);
65  for ( unsigned int i = 1; i <= 3; i++ ) MGPAGains_.push_back(i);
66  MGPAGains_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGains", MGPAGains_);
67 
68  MGPAGainsPN_.reserve(2);
69  for ( unsigned int i = 1; i <= 3; i++ ) MGPAGainsPN_.push_back(i);
70  MGPAGainsPN_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGainsPN", MGPAGainsPN_);
71 
72  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
73 
74  int ism = superModules_[i];
75 
76  ha01_[ism-1] = 0;
77  ha02_[ism-1] = 0;
78  ha03_[ism-1] = 0;
79 
80  hs01_[ism-1] = 0;
81  hs02_[ism-1] = 0;
82  hs03_[ism-1] = 0;
83 
84  i01_[ism-1] = 0;
85  i02_[ism-1] = 0;
86  i03_[ism-1] = 0;
87  i04_[ism-1] = 0;
88 
89  }
90 
91  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
92 
93  int ism = superModules_[i];
94 
95  meg01_[ism-1] = 0;
96  meg02_[ism-1] = 0;
97  meg03_[ism-1] = 0;
98 
99  meg04_[ism-1] = 0;
100  meg05_[ism-1] = 0;
101 
102  mea01_[ism-1] = 0;
103  mea02_[ism-1] = 0;
104  mea03_[ism-1] = 0;
105 
106  mer04_[ism-1] = 0;
107  mer05_[ism-1] = 0;
108 
109  me_hs01_[ism-1] = 0;
110  me_hs02_[ism-1] = 0;
111  me_hs03_[ism-1] = 0;
112 
113  }
114 
115  percentVariation_ = 0.2;
116  RMSThreshold_ = 300.0;
117  amplitudeThreshold_ = 10.;
118 
119  amplitudeThresholdPnG01_ = 200./16.;
121 
122  pedPnExpectedMean_[0] = 750.0;
123  pedPnExpectedMean_[1] = 750.0;
124 
125  pedPnDiscrepancyMean_[0] = 100.0;
126  pedPnDiscrepancyMean_[1] = 100.0;
127 
128  pedPnRMSThreshold_[0] = 999.;
129  pedPnRMSThreshold_[1] = 999.;
130 
131 }
TProfile2D * hs03_[18]
MonitorElement * me_hs03_[18]
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
MonitorElement * mea03_[18]
TProfile2D * hs01_[18]
TProfile2D * ha01_[18]
MonitorElement * me_hs02_[18]
TProfile2D * ha02_[18]
MonitorElement * mea01_[18]
std::vector< int > MGPAGainsPN_
MonitorElement * meg01_[18]
MonitorElement * meg05_[18]
TProfile * i03_[18]
TProfile * i02_[18]
MonitorElement * meg04_[18]
MonitorElement * meg03_[18]
MonitorElement * mea02_[18]
TProfile * i04_[18]
MonitorElement * mer04_[18]
MonitorElement * mer05_[18]
MonitorElement * me_hs01_[18]
MonitorElement * meg02_[18]
TProfile2D * ha03_[18]
TProfile2D * hs02_[18]
TProfile * i01_[18]
std::vector< int > MGPAGains_
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
float pedPnDiscrepancyMean_[2]
std::vector< int > superModules_
EETestPulseClient::~EETestPulseClient ( )
virtual

Destructor.

Definition at line 133 of file EETestPulseClient.cc.

133  {
134 
135 }

Member Function Documentation

void EETestPulseClient::analyze ( void  )
virtual

Analyze.

Implements EEClient.

Definition at line 697 of file EETestPulseClient.cc.

References abs, amplitudeThreshold_, amplitudeThresholdPnG01_, amplitudeThresholdPnG16_, cloneME_, gather_cfg::cout, debug_, dqmStore_, EcalEndcap, MonitorElement::Fill(), spr::find(), DQMStore::get(), UtilsClient::getBinStatistics(), UtilsClient::getFirstNonEmptyChannel(), UtilsClient::getHisto(), ha01_, ha02_, ha03_, hs01_, hs02_, hs03_, i, i01_, i02_, i03_, i04_, Numbers::icEE(), ievt_, Numbers::ix0EE(), Numbers::iy0EE(), jevt_, UtilsClient::maskBinContent(), Masks::maskChannel(), Masks::maskPn(), me_hs01_, me_hs02_, me_hs03_, mea01_, mea02_, mea03_, meg01_, meg02_, meg03_, meg04_, meg05_, mer04_, mer05_, MGPAGains_, MGPAGainsPN_, EcalDQMStatusHelper::PEDESTAL_HIGH_GAIN_MEAN_ERROR, EcalDQMStatusHelper::PEDESTAL_HIGH_GAIN_RMS_ERROR, EcalDQMStatusHelper::PEDESTAL_LOW_GAIN_MEAN_ERROR, EcalDQMStatusHelper::PEDESTAL_LOW_GAIN_RMS_ERROR, pedPnDiscrepancyMean_, pedPnExpectedMean_, pedPnRMSThreshold_, percentVariation_, prefixME_, MonitorElement::Reset(), RMSThreshold_, Numbers::sEE(), MonitorElement::setBinContent(), MonitorElement::setBinError(), MonitorElement::setEntries(), superModules_, EcalDQMStatusHelper::TESTPULSE_HIGH_GAIN_MEAN_ERROR, EcalDQMStatusHelper::TESTPULSE_HIGH_GAIN_RMS_ERROR, EcalDQMStatusHelper::TESTPULSE_LOW_GAIN_MEAN_ERROR, EcalDQMStatusHelper::TESTPULSE_LOW_GAIN_RMS_ERROR, EcalDQMStatusHelper::TESTPULSE_MIDDLE_GAIN_MEAN_ERROR, EcalDQMStatusHelper::TESTPULSE_MIDDLE_GAIN_RMS_ERROR, and Numbers::validEE().

697  {
698 
699  ievt_++;
700  jevt_++;
701  if ( ievt_ % 10 == 0 ) {
702  if ( debug_ ) std::cout << "EETestPulseClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
703  }
704 
705  uint32_t bits01 = 0;
708 
709  uint32_t bits02 = 0;
712 
713  uint32_t bits03 = 0;
716 
717  uint32_t bits04 = 0;
720 
721  uint32_t bits05 = 0;
724 
725  MonitorElement* me;
726 
727  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
728 
729  int ism = superModules_[i];
730 
731  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
732  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/Gain01/EETPT amplitude " + Numbers::sEE(ism) + " G01" );
733  ha01_[ism-1] = UtilsClient::getHisto( me, cloneME_, ha01_[ism-1] );
734  }
735 
736  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
737  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/Gain06/EETPT amplitude " + Numbers::sEE(ism) + " G06" );
738  ha02_[ism-1] = UtilsClient::getHisto( me, cloneME_, ha02_[ism-1] );
739  }
740 
741  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
742  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/Gain12/EETPT amplitude " + Numbers::sEE(ism) + " G12" );
743  ha03_[ism-1] = UtilsClient::getHisto( me, cloneME_, ha03_[ism-1] );
744  }
745 
746  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
747  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/Gain01/EETPT shape " + Numbers::sEE(ism) + " G01" );
748  hs01_[ism-1] = UtilsClient::getHisto( me, cloneME_, hs01_[ism-1] );
749  }
750 
751  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
752  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/Gain06/EETPT shape " + Numbers::sEE(ism) + " G06" );
753  hs02_[ism-1] = UtilsClient::getHisto( me, cloneME_, hs02_[ism-1] );
754  }
755 
756  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
757  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/Gain12/EETPT shape " + Numbers::sEE(ism) + " G12" );
758  hs03_[ism-1] = UtilsClient::getHisto( me, cloneME_, hs03_[ism-1] );
759  }
760 
761  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
762  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/PN/Gain01/EETPT PNs amplitude " + Numbers::sEE(ism) + " G01" );
763  i01_[ism-1] = UtilsClient::getHisto( me, cloneME_, i01_[ism-1] );
764  }
765 
766  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
767  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/PN/Gain16/EETPT PNs amplitude " + Numbers::sEE(ism) + " G16" );
768  i02_[ism-1] = UtilsClient::getHisto( me, cloneME_, i02_[ism-1] );
769  }
770 
771  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
772  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/PN/Gain01/EETPT PNs pedestal " + Numbers::sEE(ism) + " G01" );
773  i03_[ism-1] = UtilsClient::getHisto( me, cloneME_, i03_[ism-1] );
774  }
775 
776  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
777  me = dqmStore_->get( prefixME_ + "/EETestPulseTask/PN/Gain16/EETPT PNs pedestal " + Numbers::sEE(ism) + " G16" );
778  i04_[ism-1] = UtilsClient::getHisto( me, cloneME_, i04_[ism-1] );
779  }
780 
781  if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
782  if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
783  if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
784 
785  if ( meg04_[ism-1] ) meg04_[ism-1]->Reset();
786  if ( meg05_[ism-1] ) meg05_[ism-1]->Reset();
787 
788  if ( mea01_[ism-1] ) mea01_[ism-1]->Reset();
789  if ( mea02_[ism-1] ) mea02_[ism-1]->Reset();
790  if ( mea03_[ism-1] ) mea03_[ism-1]->Reset();
791 
792  if ( mer04_[ism-1] ) mer04_[ism-1]->Reset();
793  if ( mer05_[ism-1] ) mer05_[ism-1]->Reset();
794 
795  if ( me_hs01_[ism-1] ) me_hs01_[ism-1]->Reset();
796  if ( me_hs02_[ism-1] ) me_hs02_[ism-1]->Reset();
797  if ( me_hs03_[ism-1] ) me_hs03_[ism-1]->Reset();
798 
799  float meanAmpl01, meanAmpl02, meanAmpl03;
800 
801  int nCry01, nCry02, nCry03;
802 
803  meanAmpl01 = meanAmpl02 = meanAmpl03 = 0.;
804 
805  nCry01 = nCry02 = nCry03 = 0;
806 
807  for ( int ix = 1; ix <= 50; ix++ ) {
808  for ( int iy = 1; iy <= 50; iy++ ) {
809 
810  bool update01;
811  bool update02;
812  bool update03;
813 
814  float num01, num02, num03;
815  float mean01, mean02, mean03;
816  float rms01, rms02, rms03;
817 
818  update01 = UtilsClient::getBinStatistics(ha01_[ism-1], ix, iy, num01, mean01, rms01);
819  update02 = UtilsClient::getBinStatistics(ha02_[ism-1], ix, iy, num02, mean02, rms02);
820  update03 = UtilsClient::getBinStatistics(ha03_[ism-1], ix, iy, num03, mean03, rms03);
821 
822  if ( update01 ) {
823  meanAmpl01 += mean01;
824  nCry01++;
825  }
826 
827  if ( update02 ) {
828  meanAmpl02 += mean02;
829  nCry02++;
830  }
831 
832  if ( update03 ) {
833  meanAmpl03 += mean03;
834  nCry03++;
835  }
836 
837  }
838  }
839 
840  if ( nCry01 > 0 ) meanAmpl01 /= float (nCry01);
841  if ( nCry02 > 0 ) meanAmpl02 /= float (nCry02);
842  if ( nCry03 > 0 ) meanAmpl03 /= float (nCry03);
843 
844  for ( int ix = 1; ix <= 50; ix++ ) {
845  for ( int iy = 1; iy <= 50; iy++ ) {
846 
847  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. );
848  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 6. );
849  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 6. );
850 
851  int jx = ix + Numbers::ix0EE(ism);
852  int jy = iy + Numbers::iy0EE(ism);
853 
854  if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
855 
856  if ( Numbers::validEE(ism, jx, jy) ) {
857  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 2. );
858  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 2. );
859  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 2. );
860  }
861 
862  float numEventsinCry[3] = {0., 0., 0.};
863 
864  if ( ha01_[ism-1] ) numEventsinCry[0] = ha01_[ism-1]->GetBinEntries(ha01_[ism-1]->GetBin(ix, iy));
865  if ( ha02_[ism-1] ) numEventsinCry[1] = ha02_[ism-1]->GetBinEntries(ha02_[ism-1]->GetBin(ix, iy));
866  if ( ha03_[ism-1] ) numEventsinCry[2] = ha03_[ism-1]->GetBinEntries(ha03_[ism-1]->GetBin(ix, iy));
867 
868  bool update01;
869  bool update02;
870  bool update03;
871 
872  float num01, num02, num03;
873  float mean01, mean02, mean03;
874  float rms01, rms02, rms03;
875 
876  update01 = UtilsClient::getBinStatistics(ha01_[ism-1], ix, iy, num01, mean01, rms01);
877  update02 = UtilsClient::getBinStatistics(ha02_[ism-1], ix, iy, num02, mean02, rms02);
878  update03 = UtilsClient::getBinStatistics(ha03_[ism-1], ix, iy, num03, mean03, rms03);
879 
880  if ( update01 ) {
881 
882  float val;
883 
884  val = 1.;
885  if ( std::abs(mean01 - meanAmpl01) > std::abs(percentVariation_ * meanAmpl01) || mean01 < amplitudeThreshold_ )
886  val = 0.;
887  if ( rms01 > RMSThreshold_ )
888  val = 0.;
889  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, val );
890 
891  int ic = Numbers::icEE(ism, jx, jy);
892 
893  if ( ic != -1 ) {
894  if ( mea01_[ism-1] ) {
895  if ( mean01 > 0. ) {
896  mea01_[ism-1]->setBinContent( ic, mean01 );
897  mea01_[ism-1]->setBinError( ic, rms01 );
898  } else {
899  mea01_[ism-1]->setEntries( 1.+mea01_[ism-1]->getEntries() );
900  }
901  }
902  }
903 
904  }
905 
906  if ( update02 ) {
907 
908  float val;
909 
910  val = 1.;
911  if ( std::abs(mean02 - meanAmpl02) > std::abs(percentVariation_ * meanAmpl02) || mean02 < amplitudeThreshold_ )
912  val = 0.;
913  if ( rms02 > RMSThreshold_ )
914  val = 0.;
915  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, val );
916 
917  int ic = Numbers::icEE(ism, jx, jy);
918 
919  if ( ic != -1 ) {
920  if ( mea02_[ism-1] ) {
921  if ( mean02 > 0. ) {
922  mea02_[ism-1]->setBinContent( ic, mean02 );
923  mea02_[ism-1]->setBinError( ic, rms02 );
924  } else {
925  mea02_[ism-1]->setEntries( 1.+mea02_[ism-1]->getEntries() );
926  }
927  }
928  }
929 
930  }
931 
932  if ( update03 ) {
933 
934  float val;
935 
936  val = 1.;
937  if ( std::abs(mean03 - meanAmpl03) > std::abs(percentVariation_ * meanAmpl03) || mean03 < amplitudeThreshold_ )
938  val = 0.;
939  if ( rms03 > RMSThreshold_ )
940  val = 0.;
941  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, val );
942 
943  int ic = Numbers::icEE(ism, jx, jy);
944 
945  if ( ic != -1 ) {
946  if ( mea03_[ism-1] ) {
947  if ( mean03 > 0. ) {
948  mea03_[ism-1]->setBinContent( ic, mean03 );
949  mea03_[ism-1]->setBinError( ic, rms03 );
950  } else {
951  mea03_[ism-1]->setEntries( 1.+mea03_[ism-1]->getEntries() );
952  }
953  }
954  }
955 
956  }
957 
958  if ( Masks::maskChannel(ism, ix, iy, bits01, EcalEndcap) ) UtilsClient::maskBinContent( meg01_[ism-1], ix, iy );
959  if ( Masks::maskChannel(ism, ix, iy, bits02, EcalEndcap) ) UtilsClient::maskBinContent( meg02_[ism-1], ix, iy );
960  if ( Masks::maskChannel(ism, ix, iy, bits03, EcalEndcap) ) UtilsClient::maskBinContent( meg03_[ism-1], ix, iy );
961 
962  }
963  }
964 
965  for ( int i = 1; i <= 10; i++ ) {
966 
967  if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( i, 1, 6. );
968  if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 6. );
969 
970  // non-existing mem
971  if ( (ism >= 3 && ism <= 4) || (ism >= 7 && ism <= 9) ) continue;
972  if ( (ism >= 12 && ism <= 13) || (ism >= 16 && ism <= 18) ) continue;
973 
974  if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( i, 1, 2. );
975  if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. );
976 
977  bool update01;
978  bool update02;
979  bool update03;
980  bool update04;
981 
982  float num01, num02, num03, num04;
983  float mean01, mean02, mean03, mean04;
984  float rms01, rms02, rms03, rms04;
985 
986  update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01);
987  update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02);
988  update03 = UtilsClient::getBinStatistics(i03_[ism-1], i, 0, num03, mean03, rms03);
989  update04 = UtilsClient::getBinStatistics(i04_[ism-1], i, 0, num04, mean04, rms04);
990 
991  if ( mer04_[ism-1] ) mer04_[ism-1]->Fill(rms03);
992  if ( mer05_[ism-1] ) mer05_[ism-1]->Fill(rms04);
993 
994  if ( update01 && update03 ) {
995 
996  float val;
997 
998  val = 1.;
999  if ( mean01 < amplitudeThresholdPnG01_ )
1000  val = 0.;
1001  if ( mean03 < pedPnExpectedMean_[0] - pedPnDiscrepancyMean_[0] ||
1002  pedPnExpectedMean_[0] + pedPnDiscrepancyMean_[0] < mean03)
1003  val = 0.;
1004  if ( rms03 > pedPnRMSThreshold_[0] )
1005  val = 0.;
1006  if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent(i, 1, val);
1007 
1008  }
1009 
1010  if ( update02 && update04 ) {
1011 
1012  float val;
1013 
1014  val = 1.;
1015  if ( mean02 < amplitudeThresholdPnG16_ )
1016  val = 0.;
1017  if ( mean04 < pedPnExpectedMean_[1] - pedPnDiscrepancyMean_[1] ||
1018  pedPnExpectedMean_[1] + pedPnDiscrepancyMean_[1] < mean04)
1019  val = 0.;
1020  if ( rms04 > pedPnRMSThreshold_[1] )
1021  val = 0.;
1022  if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent(i, 1, val);
1023 
1024  }
1025 
1026  if ( Masks::maskPn(ism, i, bits01|bits04, EcalEndcap) ) UtilsClient::maskBinContent( meg04_[ism-1], i, 1 );
1027  if ( Masks::maskPn(ism, i, bits03|bits05, EcalEndcap) ) UtilsClient::maskBinContent( meg05_[ism-1], i, 1 );
1028 
1029  }
1030 
1031  for ( int i = 1; i <= 10; i++ ) {
1032 
1033  if ( hs01_[ism-1] ) {
1034  int ic = UtilsClient::getFirstNonEmptyChannel( hs01_[ism-1] );
1035  if ( me_hs01_[ism-1] ) {
1036  me_hs01_[ism-1]->setBinContent( i, hs01_[ism-1]->GetBinContent(ic, i) );
1037  me_hs01_[ism-1]->setBinError( i, hs01_[ism-1]->GetBinError(ic, i) );
1038  }
1039  }
1040 
1041  if ( hs02_[ism-1] ) {
1042  int ic = UtilsClient::getFirstNonEmptyChannel( hs02_[ism-1] );
1043  if ( me_hs02_[ism-1] ) {
1044  me_hs02_[ism-1]->setBinContent( i, hs02_[ism-1]->GetBinContent(ic, i) );
1045  me_hs02_[ism-1]->setBinError( i, hs02_[ism-1]->GetBinError(ic, i) );
1046  }
1047  }
1048 
1049  if ( hs03_[ism-1] ) {
1050  int ic = UtilsClient::getFirstNonEmptyChannel( hs03_[ism-1] );
1051  if ( me_hs03_[ism-1] ) {
1052  me_hs03_[ism-1]->setBinContent( i, hs03_[ism-1]->GetBinContent(ic, i) );
1053  me_hs03_[ism-1]->setBinError( i, hs03_[ism-1]->GetBinError(ic, i) );
1054  }
1055  }
1056 
1057  }
1058 
1059  }
1060 
1061 }
TProfile2D * hs03_[18]
MonitorElement * me_hs03_[18]
int i
Definition: DBlmapReader.cc:9
MonitorElement * mea03_[18]
void setBinContent(int binx, double content)
set content of bin (1-D)
static bool maskChannel(int ism, int i1, int i2, uint32_t bits, const EcalSubdetector subdet)
Definition: Masks.cc:60
static const int TESTPULSE_LOW_GAIN_RMS_ERROR
TProfile2D * hs01_[18]
TProfile2D * ha01_[18]
static int iy0EE(const int ism)
Definition: Numbers.cc:987
static T getHisto(const MonitorElement *me, bool clone=false, T ret=0)
Returns the histogram contained by the Monitor Element.
Definition: UtilsClient.h:91
MonitorElement * me_hs02_[18]
static const int PEDESTAL_HIGH_GAIN_MEAN_ERROR
static std::string sEE(const int ism)
Definition: Numbers.cc:205
#define abs(x)
Definition: mlp_lapack.h:159
TProfile2D * ha02_[18]
MonitorElement * mea01_[18]
static const int TESTPULSE_MIDDLE_GAIN_MEAN_ERROR
static const int PEDESTAL_LOW_GAIN_RMS_ERROR
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
Definition: UtilsClient.cc:231
std::vector< int > MGPAGainsPN_
static const int PEDESTAL_HIGH_GAIN_RMS_ERROR
static bool maskPn(int ism, int i1, uint32_t bits, const EcalSubdetector subdet)
Definition: Masks.cc:112
MonitorElement * meg01_[18]
MonitorElement * meg05_[18]
void Fill(long long x)
static const int TESTPULSE_MIDDLE_GAIN_RMS_ERROR
TProfile * i03_[18]
static int icEE(const int ism, const int ix, const int iy)
Definition: Numbers.cc:906
TProfile * i02_[18]
MonitorElement * meg04_[18]
static const int TESTPULSE_HIGH_GAIN_RMS_ERROR
MonitorElement * meg03_[18]
MonitorElement * mea02_[18]
TProfile * i04_[18]
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
MonitorElement * mer04_[18]
void setEntries(double nentries)
set # of entries
MonitorElement * mer05_[18]
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
static const int PEDESTAL_LOW_GAIN_MEAN_ERROR
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.
Definition: UtilsClient.cc:74
static const int TESTPULSE_LOW_GAIN_MEAN_ERROR
MonitorElement * me_hs01_[18]
MonitorElement * meg02_[18]
static int ix0EE(const int ism)
Definition: Numbers.cc:952
TProfile2D * ha03_[18]
TProfile2D * hs02_[18]
TProfile * i01_[18]
tuple cout
Definition: gather_cfg.py:41
static const int TESTPULSE_HIGH_GAIN_MEAN_ERROR
static bool validEE(const int ism, const int ix, const int iy)
Definition: Numbers.cc:1005
std::vector< int > MGPAGains_
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void Reset(void)
reset ME (ie. contents, errors, etc)
float pedPnDiscrepancyMean_[2]
static int getFirstNonEmptyChannel(const TProfile2D *histo)
Find the first non empty bin.
Definition: UtilsClient.cc:246
std::vector< int > superModules_
void EETestPulseClient::beginJob ( void  )
virtual

BeginJob.

Implements EEClient.

Definition at line 137 of file EETestPulseClient.cc.

References gather_cfg::cout, debug_, dqmStore_, ievt_, jevt_, and cmsCodeRules.cppFunctionSkipper::operator.

137  {
138 
140 
141  if ( debug_ ) std::cout << "EETestPulseClient: beginJob" << std::endl;
142 
143  ievt_ = 0;
144  jevt_ = 0;
145 
146 }
tuple cout
Definition: gather_cfg.py:41
void EETestPulseClient::beginRun ( void  )
virtual

BeginRun.

Implements EEClient.

Definition at line 148 of file EETestPulseClient.cc.

References gather_cfg::cout, debug_, jevt_, and setup().

148  {
149 
150  if ( debug_ ) std::cout << "EETestPulseClient: beginRun" << std::endl;
151 
152  jevt_ = 0;
153 
154  this->setup();
155 
156 }
void setup(void)
Setup.
tuple cout
Definition: gather_cfg.py:41
void EETestPulseClient::cleanup ( void  )
virtual

Cleanup.

Implements EEClient.

Definition at line 344 of file EETestPulseClient.cc.

References cloneME_, dqmStore_, enableCleanup_, edm::getName(), ha01_, ha02_, ha03_, hs01_, hs02_, hs03_, i, i01_, i02_, i03_, i04_, ecalpyutils::ism(), me_hs01_, me_hs02_, me_hs03_, mea01_, mea02_, mea03_, meg01_, meg02_, meg03_, meg04_, meg05_, mer04_, mer05_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), and superModules_.

Referenced by endJob(), and endRun().

344  {
345 
346  if ( ! enableCleanup_ ) return;
347 
348  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
349 
350  int ism = superModules_[i];
351 
352  if ( cloneME_ ) {
353  if ( ha01_[ism-1] ) delete ha01_[ism-1];
354  if ( ha02_[ism-1] ) delete ha02_[ism-1];
355  if ( ha03_[ism-1] ) delete ha03_[ism-1];
356 
357  if ( hs01_[ism-1] ) delete hs01_[ism-1];
358  if ( hs02_[ism-1] ) delete hs02_[ism-1];
359  if ( hs03_[ism-1] ) delete hs03_[ism-1];
360 
361  if ( i01_[ism-1] ) delete i01_[ism-1];
362  if ( i02_[ism-1] ) delete i02_[ism-1];
363  if ( i03_[ism-1] ) delete i03_[ism-1];
364  if ( i04_[ism-1] ) delete i04_[ism-1];
365  }
366 
367  ha01_[ism-1] = 0;
368  ha02_[ism-1] = 0;
369  ha03_[ism-1] = 0;
370 
371  hs01_[ism-1] = 0;
372  hs02_[ism-1] = 0;
373  hs03_[ism-1] = 0;
374 
375  i01_[ism-1] = 0;
376  i02_[ism-1] = 0;
377  i03_[ism-1] = 0;
378  i04_[ism-1] = 0;
379 
380  }
381 
382  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
383 
384  int ism = superModules_[i];
385 
386  dqmStore_->setCurrentFolder( prefixME_ + "/EETestPulseClient" );
387 
388  if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
389  meg01_[ism-1] = 0;
390  if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
391  meg02_[ism-1] = 0;
392  if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
393  meg03_[ism-1] = 0;
394 
395  if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() );
396  meg04_[ism-1] = 0;
397  if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() );
398  meg05_[ism-1] = 0;
399 
400  if ( mea01_[ism-1] ) dqmStore_->removeElement( mea01_[ism-1]->getName() );
401  mea01_[ism-1] = 0;
402  if ( mea02_[ism-1] ) dqmStore_->removeElement( mea02_[ism-1]->getName() );
403  mea02_[ism-1] = 0;
404  if ( mea03_[ism-1] ) dqmStore_->removeElement( mea03_[ism-1]->getName() );
405  mea03_[ism-1] = 0;
406 
407  if ( mer04_[ism-1] ) dqmStore_->removeElement( mer04_[ism-1]->getName() );
408  mer04_[ism-1] = 0;
409  if ( mer05_[ism-1] ) dqmStore_->removeElement( mer05_[ism-1]->getName() );
410  mer05_[ism-1] = 0;
411 
412  if ( me_hs01_[ism-1] ) dqmStore_->removeElement( me_hs01_[ism-1]->getName() );
413  me_hs01_[ism-1] = 0;
414  if ( me_hs02_[ism-1] ) dqmStore_->removeElement( me_hs02_[ism-1]->getName() );
415  me_hs02_[ism-1] = 0;
416  if ( me_hs03_[ism-1] ) dqmStore_->removeElement( me_hs03_[ism-1]->getName() );
417  me_hs03_[ism-1] = 0;
418 
419  }
420 
421 }
TProfile2D * hs03_[18]
MonitorElement * me_hs03_[18]
int i
Definition: DBlmapReader.cc:9
MonitorElement * mea03_[18]
TProfile2D * hs01_[18]
TProfile2D * ha01_[18]
MonitorElement * me_hs02_[18]
TProfile2D * ha02_[18]
MonitorElement * mea01_[18]
MonitorElement * meg01_[18]
MonitorElement * meg05_[18]
TProfile * i03_[18]
TProfile * i02_[18]
MonitorElement * meg04_[18]
void removeElement(const std::string &name)
Definition: DQMStore.cc:2353
MonitorElement * meg03_[18]
MonitorElement * mea02_[18]
TProfile * i04_[18]
std::string getName(Reflex::Type &cc)
Definition: ClassFiller.cc:18
MonitorElement * mer04_[18]
MonitorElement * mer05_[18]
MonitorElement * me_hs01_[18]
MonitorElement * meg02_[18]
TProfile2D * ha03_[18]
TProfile2D * hs02_[18]
TProfile * i01_[18]
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
std::vector< int > superModules_
void EETestPulseClient::endJob ( void  )
virtual

EndJob.

Implements EEClient.

Definition at line 158 of file EETestPulseClient.cc.

References cleanup(), gather_cfg::cout, debug_, and ievt_.

158  {
159 
160  if ( debug_ ) std::cout << "EETestPulseClient: endJob, ievt = " << ievt_ << std::endl;
161 
162  this->cleanup();
163 
164 }
tuple cout
Definition: gather_cfg.py:41
void cleanup(void)
Cleanup.
void EETestPulseClient::endRun ( void  )
virtual

EndRun.

Implements EEClient.

Definition at line 166 of file EETestPulseClient.cc.

References cleanup(), gather_cfg::cout, debug_, and jevt_.

166  {
167 
168  if ( debug_ ) std::cout << "EETestPulseClient: endRun, jevt = " << jevt_ << std::endl;
169 
170  this->cleanup();
171 
172 }
tuple cout
Definition: gather_cfg.py:41
void cleanup(void)
Cleanup.
int EETestPulseClient::getEvtPerJob ( void  )
inlinevirtual

Get Functions.

Implements EEClient.

Definition at line 72 of file EETestPulseClient.h.

References ievt_.

72 { return ievt_; }
int EETestPulseClient::getEvtPerRun ( void  )
inlinevirtual

Returns the number of processed events in this Run.

Implements EEClient.

Definition at line 73 of file EETestPulseClient.h.

References jevt_.

73 { return jevt_; }
void EETestPulseClient::setup ( void  )
virtual

Setup.

Implements EEClient.

Definition at line 174 of file EETestPulseClient.cc.

References DQMStore::book1D(), DQMStore::book2D(), dqmStore_, spr::find(), edm::getName(), i, ecalpyutils::ism(), Numbers::ix0EE(), Numbers::iy0EE(), me_hs01_, me_hs02_, me_hs03_, mea01_, mea02_, mea03_, meg01_, meg02_, meg03_, meg04_, meg05_, mer04_, mer05_, MGPAGains_, MGPAGainsPN_, mergeVDriftHistosByStation::name, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEE(), MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), DQMStore::setCurrentFolder(), superModules_, and Numbers::validEE().

Referenced by beginRun().

174  {
175 
176  std::string name;
177 
178  dqmStore_->setCurrentFolder( prefixME_ + "/EETestPulseClient" );
179 
180  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
181 
182  int ism = superModules_[i];
183 
184  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
185  if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
186  name = "EETPT test pulse quality G01 " + Numbers::sEE(ism);
187  meg01_[ism-1] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
188  meg01_[ism-1]->setAxisTitle("ix", 1);
189  if ( ism >= 1 && ism <= 9 ) meg01_[ism-1]->setAxisTitle("101-ix", 1);
190  meg01_[ism-1]->setAxisTitle("iy", 2);
191  }
192  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
193  if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
194  name = "EETPT test pulse quality G06 " + Numbers::sEE(ism);
195  meg02_[ism-1] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
196  meg02_[ism-1]->setAxisTitle("ix", 1);
197  if ( ism >= 1 && ism <= 9 ) meg02_[ism-1]->setAxisTitle("101-ix", 1);
198  meg02_[ism-1]->setAxisTitle("iy", 2);
199  }
200  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
201  if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
202  name = "EETPT test pulse quality G12 " + Numbers::sEE(ism);
203  meg03_[ism-1] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
204  meg03_[ism-1]->setAxisTitle("ix", 1);
205  if ( ism >= 1 && ism <= 9 ) meg03_[ism-1]->setAxisTitle("101-ix", 1);
206  meg03_[ism-1]->setAxisTitle("iy", 2);
207  }
208 
209  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
210  if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() );
211  name = "EETPT test pulse quality PNs G01 " + Numbers::sEE(ism);
212  meg04_[ism-1] = dqmStore_->book2D(name, name, 10, 0., 10., 1, 0., 5.);
213  meg04_[ism-1]->setAxisTitle("pseudo-strip", 1);
214  meg04_[ism-1]->setAxisTitle("channel", 2);
215  }
216  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
217  if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() );
218  name = "EETPT test pulse quality PNs G16 " + Numbers::sEE(ism);
219  meg05_[ism-1] = dqmStore_->book2D(name, name, 10, 0., 10., 1, 0., 5.);
220  meg05_[ism-1]->setAxisTitle("pseudo-strip", 1);
221  meg05_[ism-1]->setAxisTitle("channel", 2);
222  }
223 
224  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
225  if ( mea01_[ism-1] ) dqmStore_->removeElement( mea01_[ism-1]->getName() );
226  name = "EETPT test pulse amplitude G01 " + Numbers::sEE(ism);
227  mea01_[ism-1] = dqmStore_->book1D(name, name, 850, 0., 850.);
228  mea01_[ism-1]->setAxisTitle("channel", 1);
229  mea01_[ism-1]->setAxisTitle("amplitude", 2);
230  }
231  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
232  if ( mea02_[ism-1] ) dqmStore_->removeElement( mea02_[ism-1]->getName() );
233  name = "EETPT test pulse amplitude G06 " + Numbers::sEE(ism);
234  mea02_[ism-1] = dqmStore_->book1D(name, name, 850, 0., 850.);
235  mea02_[ism-1]->setAxisTitle("channel", 1);
236  mea02_[ism-1]->setAxisTitle("amplitude", 2);
237  }
238  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
239  if ( mea03_[ism-1] ) dqmStore_->removeElement( mea03_[ism-1]->getName() );
240  name = "EETPT test pulse amplitude G12 " + Numbers::sEE(ism);
241  mea03_[ism-1] = dqmStore_->book1D(name, name, 850, 0., 850.);
242  mea03_[ism-1]->setAxisTitle("channel", 1);
243  mea03_[ism-1]->setAxisTitle("amplitude", 2);
244  }
245 
246  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
247  if ( mer04_[ism-1] ) dqmStore_->removeElement( mer04_[ism-1]->getName() );
248  name = "EETPT PNs pedestal rms " + Numbers::sEE(ism) + " G01";
249  mer04_[ism-1] = dqmStore_->book1D(name, name, 100, 0., 10.);
250  mer04_[ism-1]->setAxisTitle("rms", 1);
251  }
252  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
253  if ( mer05_[ism-1] ) dqmStore_->removeElement( mer05_[ism-1]->getName() );
254  name = "EETPT PNs pedestal rms " + Numbers::sEE(ism) + " G16";
255  mer05_[ism-1] = dqmStore_->book1D(name, name, 100, 0., 10.);
256  mer05_[ism-1]->setAxisTitle("rms", 1);
257  }
258 
259  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
260  if ( me_hs01_[ism-1] ) dqmStore_->removeElement( me_hs01_[ism-1]->getName() );
261  name = "EETPT test pulse shape G01 " + Numbers::sEE(ism);
262  me_hs01_[ism-1] = dqmStore_->book1D(name, name, 10, 0., 10.);
263  me_hs01_[ism-1]->setAxisTitle("sample", 1);
264  me_hs01_[ism-1]->setAxisTitle("amplitude", 2);
265  }
266  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
267  if ( me_hs02_[ism-1] ) dqmStore_->removeElement( me_hs02_[ism-1]->getName() );
268  name = "EETPT test pulse shape G06 " + Numbers::sEE(ism);
269  me_hs02_[ism-1] = dqmStore_->book1D(name, name, 10, 0., 10.);
270  me_hs02_[ism-1]->setAxisTitle("sample", 1);
271  me_hs02_[ism-1]->setAxisTitle("amplitude", 2);
272  }
273  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
274  if ( me_hs03_[ism-1] ) dqmStore_->removeElement( me_hs03_[ism-1]->getName() );
275  name = "EETPT test pulse shape G12 " + Numbers::sEE(ism);
276  me_hs03_[ism-1] = dqmStore_->book1D(name, name, 10, 0., 10.);
277  me_hs03_[ism-1]->setAxisTitle("sample", 1);
278  me_hs03_[ism-1]->setAxisTitle("amplitude", 2);
279  }
280 
281  }
282 
283  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
284 
285  int ism = superModules_[i];
286 
287  if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
288  if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
289  if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
290 
291  if ( meg04_[ism-1] ) meg04_[ism-1]->Reset();
292  if ( meg05_[ism-1] ) meg05_[ism-1]->Reset();
293 
294  for ( int ix = 1; ix <= 50; ix++ ) {
295  for ( int iy = 1; iy <= 50; iy++ ) {
296 
297  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. );
298  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 6. );
299  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 6. );
300 
301  int jx = ix + Numbers::ix0EE(ism);
302  int jy = iy + Numbers::iy0EE(ism);
303 
304  if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
305 
306  if ( Numbers::validEE(ism, jx, jy) ) {
307  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 2. );
308  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 2. );
309  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 2. );
310  }
311 
312  }
313  }
314 
315  for ( int i = 1; i <= 10; i++ ) {
316 
317  if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( i, 1, 6. );
318  if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 6. );
319 
320  // non-existing mem
321  if ( (ism >= 3 && ism <= 4) || (ism >= 7 && ism <= 9) ) continue;
322  if ( (ism >= 12 && ism <= 13) || (ism >= 16 && ism <= 18) ) continue;
323 
324  if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( i, 1, 2. );
325  if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. );
326 
327  }
328 
329  if ( mea01_[ism-1] ) mea01_[ism-1]->Reset();
330  if ( mea02_[ism-1] ) mea02_[ism-1]->Reset();
331  if ( mea03_[ism-1] ) mea03_[ism-1]->Reset();
332 
333  if ( mer04_[ism-1] ) mer04_[ism-1]->Reset();
334  if ( mer05_[ism-1] ) mer05_[ism-1]->Reset();
335 
336  if ( me_hs01_[ism-1] ) me_hs01_[ism-1]->Reset();
337  if ( me_hs02_[ism-1] ) me_hs02_[ism-1]->Reset();
338  if ( me_hs03_[ism-1] ) me_hs03_[ism-1]->Reset();
339 
340  }
341 
342 }
MonitorElement * me_hs03_[18]
int i
Definition: DBlmapReader.cc:9
MonitorElement * mea03_[18]
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:514
static int iy0EE(const int ism)
Definition: Numbers.cc:987
MonitorElement * me_hs02_[18]
static std::string sEE(const int ism)
Definition: Numbers.cc:205
MonitorElement * mea01_[18]
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::vector< int > MGPAGainsPN_
MonitorElement * meg01_[18]
MonitorElement * meg05_[18]
MonitorElement * meg04_[18]
void removeElement(const std::string &name)
Definition: DQMStore.cc:2353
MonitorElement * meg03_[18]
MonitorElement * mea02_[18]
std::string getName(Reflex::Type &cc)
Definition: ClassFiller.cc:18
MonitorElement * mer04_[18]
MonitorElement * mer05_[18]
MonitorElement * me_hs01_[18]
MonitorElement * meg02_[18]
static int ix0EE(const int ism)
Definition: Numbers.cc:952
static bool validEE(const int ism, const int ix, const int iy)
Definition: Numbers.cc:1005
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:642
std::vector< int > MGPAGains_
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
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)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
std::vector< int > superModules_

Friends And Related Function Documentation

friend class EESummaryClient
friend

Definition at line 35 of file EETestPulseClient.h.

Member Data Documentation

float EETestPulseClient::amplitudeThreshold_
private

Definition at line 130 of file EETestPulseClient.h.

Referenced by analyze(), and EETestPulseClient().

float EETestPulseClient::amplitudeThresholdPnG01_
private

Definition at line 134 of file EETestPulseClient.h.

Referenced by analyze(), and EETestPulseClient().

float EETestPulseClient::amplitudeThresholdPnG16_
private

Definition at line 135 of file EETestPulseClient.h.

Referenced by analyze(), and EETestPulseClient().

bool EETestPulseClient::cloneME_
private

Definition at line 80 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

bool EETestPulseClient::debug_
private

Definition at line 83 of file EETestPulseClient.h.

Referenced by analyze(), beginJob(), beginRun(), EETestPulseClient(), endJob(), and endRun().

DQMStore* EETestPulseClient::dqmStore_
private

Definition at line 93 of file EETestPulseClient.h.

Referenced by analyze(), beginJob(), cleanup(), and setup().

bool EETestPulseClient::enableCleanup_
private

Definition at line 87 of file EETestPulseClient.h.

Referenced by cleanup(), and EETestPulseClient().

TProfile2D* EETestPulseClient::ha01_[18]
private

Definition at line 95 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile2D* EETestPulseClient::ha02_[18]
private

Definition at line 96 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile2D* EETestPulseClient::ha03_[18]
private

Definition at line 97 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile2D* EETestPulseClient::hs01_[18]
private

Definition at line 99 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile2D* EETestPulseClient::hs02_[18]
private

Definition at line 100 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile2D* EETestPulseClient::hs03_[18]
private

Definition at line 101 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile* EETestPulseClient::i01_[18]
private

Definition at line 121 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile* EETestPulseClient::i02_[18]
private

Definition at line 122 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile* EETestPulseClient::i03_[18]
private

Definition at line 123 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

TProfile* EETestPulseClient::i04_[18]
private

Definition at line 124 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), and EETestPulseClient().

int EETestPulseClient::ievt_
private

Definition at line 77 of file EETestPulseClient.h.

Referenced by analyze(), beginJob(), endJob(), and getEvtPerJob().

int EETestPulseClient::jevt_
private

Definition at line 78 of file EETestPulseClient.h.

Referenced by analyze(), beginJob(), beginRun(), endRun(), and getEvtPerRun().

MonitorElement* EETestPulseClient::me_hs01_[18]
private

Definition at line 117 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), EETestPulseClient(), and setup().

MonitorElement* EETestPulseClient::me_hs02_[18]
private

Definition at line 118 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), EETestPulseClient(), and setup().

MonitorElement* EETestPulseClient::me_hs03_[18]
private

Definition at line 119 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), EETestPulseClient(), and setup().

MonitorElement* EETestPulseClient::mea01_[18]
private
MonitorElement* EETestPulseClient::mea02_[18]
private
MonitorElement* EETestPulseClient::mea03_[18]
private
MonitorElement* EETestPulseClient::meg01_[18]
private
MonitorElement* EETestPulseClient::meg02_[18]
private
MonitorElement* EETestPulseClient::meg03_[18]
private
MonitorElement* EETestPulseClient::meg04_[18]
private
MonitorElement* EETestPulseClient::meg05_[18]
private
MonitorElement* EETestPulseClient::mer04_[18]
private

Definition at line 114 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), EETestPulseClient(), and setup().

MonitorElement* EETestPulseClient::mer05_[18]
private

Definition at line 115 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), EETestPulseClient(), and setup().

std::vector<int> EETestPulseClient::MGPAGains_
private

Definition at line 90 of file EETestPulseClient.h.

Referenced by analyze(), EETestPulseClient(), and setup().

std::vector<int> EETestPulseClient::MGPAGainsPN_
private

Definition at line 91 of file EETestPulseClient.h.

Referenced by analyze(), EETestPulseClient(), and setup().

float EETestPulseClient::pedPnDiscrepancyMean_[2]
private

Definition at line 137 of file EETestPulseClient.h.

Referenced by analyze(), and EETestPulseClient().

float EETestPulseClient::pedPnExpectedMean_[2]
private

Definition at line 136 of file EETestPulseClient.h.

Referenced by analyze(), and EETestPulseClient().

float EETestPulseClient::pedPnRMSThreshold_[2]
private

Definition at line 138 of file EETestPulseClient.h.

Referenced by analyze(), and EETestPulseClient().

float EETestPulseClient::percentVariation_
private

Definition at line 128 of file EETestPulseClient.h.

Referenced by analyze(), and EETestPulseClient().

std::string EETestPulseClient::prefixME_
private

Definition at line 85 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), EETestPulseClient(), and setup().

float EETestPulseClient::RMSThreshold_
private

Definition at line 129 of file EETestPulseClient.h.

Referenced by analyze(), and EETestPulseClient().

std::vector<int> EETestPulseClient::superModules_
private

Definition at line 89 of file EETestPulseClient.h.

Referenced by analyze(), cleanup(), EETestPulseClient(), and setup().

bool EETestPulseClient::verbose_
private

Definition at line 82 of file EETestPulseClient.h.

Referenced by EETestPulseClient().