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 | Static Private Attributes | Friends
EEIntegrityClient Class Reference

#include <EEIntegrityClient.h>

Inheritance diagram for EEIntegrityClient:
EEClient

Public Member Functions

void analyze (void)
 Analyze. More...
 
void beginJob (void)
 BeginJob. More...
 
void beginRun (void)
 BeginRun. More...
 
void cleanup (void)
 Cleanup. More...
 
 EEIntegrityClient (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 ~EEIntegrityClient ()
 Destructor. More...
 
- Public Member Functions inherited from EEClient
virtual ~EEClient (void)
 

Private Attributes

bool cloneME_
 
bool debug_
 
DQMStoredqmStore_
 
bool enableCleanup_
 
TH1F * h00_
 
TH2F * h01_ [18]
 
TH2F * h02_ [18]
 
TH2F * h03_ [18]
 
TH2F * h04_ [18]
 
TH2F * h05_ [18]
 
TH2F * h06_ [18]
 
TH2F * h07_ [18]
 
TH2F * h08_ [18]
 
TH2F * h09_ [18]
 
TH2F * h_ [18]
 
TH2F * hmem_ [18]
 
int ievt_
 
int jevt_
 
MonitorElementmeg01_ [18]
 
MonitorElementmeg02_ [18]
 
std::string prefixME_
 
std::string subfolder_
 
std::vector< int > superModules_
 
float threshCry_
 
bool verbose_
 

Static Private Attributes

static const int chNum [5][5]
 

Friends

class EESummaryClient
 

Detailed Description

Definition at line 31 of file EEIntegrityClient.h.

Constructor & Destructor Documentation

EEIntegrityClient::EEIntegrityClient ( const edm::ParameterSet ps)

Constructor.

Definition at line 45 of file EEIntegrityClient.cc.

References cloneME_, debug_, enableCleanup_, edm::ParameterSet::getUntrackedParameter(), h00_, h01_, h02_, h03_, h04_, h05_, h06_, h07_, h08_, h09_, h_, hmem_, i, ecalpyutils::ism(), meg01_, meg02_, prefixME_, AlCaHLTBitMon_QueryRunRegistry::string, subfolder_, superModules_, threshCry_, and verbose_.

45  {
46 
47  // cloneME switch
48  cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
49 
50  // verbose switch
51  verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
52 
53  // debug switch
54  debug_ = ps.getUntrackedParameter<bool>("debug", false);
55 
56  // prefixME path
57  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
58 
59  subfolder_ = ps.getUntrackedParameter<std::string>("subfolder", "");
60 
61  // enableCleanup_ switch
62  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
63 
64  // vector of selected Super Modules (Defaults to all 18).
65  superModules_.reserve(18);
66  for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i);
67  superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
68 
69  h00_ = 0;
70 
71  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
72 
73  int ism = superModules_[i];
74 
75  h_[ism-1] = 0;
76  hmem_[ism-1] = 0;
77 
78  h01_[ism-1] = 0;
79  h02_[ism-1] = 0;
80  h03_[ism-1] = 0;
81  h04_[ism-1] = 0;
82  h05_[ism-1] = 0;
83  h06_[ism-1] = 0;
84  h07_[ism-1] = 0;
85  h08_[ism-1] = 0;
86  h09_[ism-1] = 0;
87 
88  }
89 
90  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
91 
92  int ism = superModules_[i];
93 
94  // integrity summary histograms
95  meg01_[ism-1] = 0;
96  meg02_[ism-1] = 0;
97 
98  }
99 
100  threshCry_ = 0.01;
101 
102 }
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
std::string subfolder_
MonitorElement * meg02_[18]
std::vector< int > superModules_
MonitorElement * meg01_[18]
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
EEIntegrityClient::~EEIntegrityClient ( )
virtual

Destructor.

Definition at line 104 of file EEIntegrityClient.cc.

104  {
105 
106 }

Member Function Documentation

void EEIntegrityClient::analyze ( void  )
virtual

Analyze.

Implements EEClient.

Definition at line 697 of file EEIntegrityClient.cc.

References EcalDQMStatusHelper::CH_GAIN_SWITCH_ERROR, EcalDQMStatusHelper::CH_GAIN_ZERO_ERROR, EcalDQMStatusHelper::CH_ID_ERROR, cloneME_, gather_cfg::cout, debug_, dqmStore_, EcalEndcap, DQMStore::get(), UtilsClient::getHisto(), h00_, h01_, h02_, h03_, h04_, h05_, h06_, h07_, h08_, h09_, h_, hmem_, i, ievt_, Numbers::ix0EE(), Numbers::iy0EE(), jevt_, UtilsClient::maskBinContent(), Masks::maskChannel(), Masks::maskPn(), meg01_, meg02_, prefixME_, MonitorElement::Reset(), Numbers::sEE(), MonitorElement::setBinContent(), AlCaHLTBitMon_QueryRunRegistry::string, subfolder_, superModules_, threshCry_, EcalDQMStatusHelper::TT_ID_ERROR, EcalDQMStatusHelper::TT_SIZE_ERROR, and Numbers::validEE().

697  {
698 
699  ievt_++;
700  jevt_++;
701  if ( ievt_ % 10 == 0 ) {
702  if ( debug_ ) std::cout << "EEIntegrityClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
703  }
704 
705  uint32_t bits01 = 0;
706  bits01 |= 1 << EcalDQMStatusHelper::CH_ID_ERROR;
709  bits01 |= 1 << EcalDQMStatusHelper::TT_ID_ERROR;
710  bits01 |= 1 << EcalDQMStatusHelper::TT_SIZE_ERROR;
711 
712  std::string subdir(subfolder_.size() ? subfolder_ + "/" : "");
713 
714  MonitorElement* me;
715 
716  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "EEIT DCC size error" );
718 
719  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
720 
721  int ism = superModules_[i];
722 
723  me = dqmStore_->get( prefixME_ + "/EEOccupancyTask/" + subdir + "EEOT digi occupancy " + Numbers::sEE(ism) );
724  h_[ism-1] = UtilsClient::getHisto( me, cloneME_, h_[ism-1] );
725 
726  me = dqmStore_->get( prefixME_ + "/EEOccupancyTask/" + subdir + "EEOT MEM digi occupancy " + Numbers::sEE(ism) );
727  hmem_[ism-1] = UtilsClient::getHisto( me, cloneME_, hmem_[ism-1] );
728 
729  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "Gain/EEIT gain " + Numbers::sEE(ism) );
730  h01_[ism-1] = UtilsClient::getHisto( me, cloneME_, h01_[ism-1] );
731 
732  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "ChId/EEIT ChId " + Numbers::sEE(ism) );
733  h02_[ism-1] = UtilsClient::getHisto( me, cloneME_, h02_[ism-1] );
734 
735  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "GainSwitch/EEIT gain switch " + Numbers::sEE(ism) );
736  h03_[ism-1] = UtilsClient::getHisto( me, cloneME_, h03_[ism-1] );
737 
738  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "TTId/EEIT TTId " + Numbers::sEE(ism) );
739  h04_[ism-1] = UtilsClient::getHisto( me, cloneME_, h04_[ism-1] );
740 
741  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "TTBlockSize/EEIT TTBlockSize " + Numbers::sEE(ism) );
742  h05_[ism-1] = UtilsClient::getHisto( me, cloneME_, h05_[ism-1] );
743 
744  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "MemChId/EEIT MemChId " + Numbers::sEE(ism) );
745  h06_[ism-1] = UtilsClient::getHisto( me, cloneME_, h06_[ism-1] );
746 
747  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "MemGain/EEIT MemGain " + Numbers::sEE(ism) );
748  h07_[ism-1] = UtilsClient::getHisto( me, cloneME_, h07_[ism-1] );
749 
750  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "MemTTId/EEIT MemTTId " + Numbers::sEE(ism) );
751  h08_[ism-1] = UtilsClient::getHisto( me, cloneME_, h08_[ism-1] );
752 
753  me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/" + subdir + "MemSize/EEIT MemSize " + Numbers::sEE(ism) );
754  h09_[ism-1] = UtilsClient::getHisto( me, cloneME_, h09_[ism-1] );
755 
756  float num00;
757 
758  // integrity summary histograms
759  if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
760  if ( meg01_[ism-1] ) meg02_[ism-1]->Reset();
761 
762  num00 = 0.;
763 
764  bool update0 = false;
765 
766  // dcc size errors
767  if ( h00_ ) {
768  num00 = h00_->GetBinContent(ism);
769  update0 = true;
770  }
771 
772  float num01, num02, num03, num04, num05;
773 
774  for ( int ix = 1; ix <= 50; ix++ ) {
775  for ( int iy = 1; iy <= 50; iy++ ) {
776 
777  num01 = num02 = num03 = num04 = num05 = 0.;
778 
779  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. );
780 
781  bool update1 = false;
782  bool update2 = false;
783 
784  float numTot = -1.;
785 
786  if ( h_[ism-1] ) numTot = h_[ism-1]->GetBinContent(ix, iy);
787 
788  if ( h01_[ism-1] ) {
789  num01 = h01_[ism-1]->GetBinContent(ix, iy);
790  update1 = true;
791  }
792 
793  if ( h02_[ism-1] ) {
794  num02 = h02_[ism-1]->GetBinContent(ix, iy);
795  update1 = true;
796  }
797 
798  if ( h03_[ism-1] ) {
799  num03 = h03_[ism-1]->GetBinContent(ix, iy);
800  update1 = true;
801  }
802 
803  if ( h04_[ism-1] ) {
804  num04 = h04_[ism-1]->GetBinContent(ix, iy);
805  update2 = true;
806  }
807 
808  if ( h05_[ism-1] ) {
809  num05 = h05_[ism-1]->GetBinContent(ix, iy);
810  update2 = true;
811  }
812 
813  if ( update0 || update1 || update2 ) {
814 
815  float val;
816 
817  val = 1.;
818  // number of events on a channel
819  if ( numTot > 0 ) {
820  float errorRate1 = num00 / ( numTot + num01 + num02 + num03 );
821  if ( errorRate1 > threshCry_ )
822  val = 0.;
823  errorRate1 = ( num01 + num02 + num03 ) / ( numTot + num01 + num02 + num03 ) / 3.;
824  if ( errorRate1 > threshCry_ )
825  val = 0.;
826  float errorRate2 = ( num04 + num05 ) / ( numTot + num04 + num05 ) / 2.;
827  if ( errorRate2 > threshCry_ )
828  val = 0.;
829  } else {
830  val = 2.;
831  if ( num00 > 0 )
832  val = 0.;
833  if ( ( num01 + num02 + num03 ) > 0 )
834  val = 0.;
835  if ( ( num04 + num05 ) > 0 )
836  val = 0.;
837  }
838 
839  int jx = ix + Numbers::ix0EE(ism);
840  int jy = iy + Numbers::iy0EE(ism);
841 
842  if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
843 
844  // filling the summary for SM channels
845  if ( Numbers::validEE(ism, jx, jy) ) {
846  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, val );
847  }
848 
849  }
850 
851  if ( Masks::maskChannel(ism, ix, iy, bits01, EcalEndcap) ) UtilsClient::maskBinContent( meg01_[ism-1], ix, iy );
852 
853  }
854  } // end of loop on crystals to fill summary plot
855 
856  // summaries for mem channels
857  float num06, num07, num08, num09;
858 
859  for ( int ie = 1; ie <= 10; ie++ ) {
860  for ( int ip = 1; ip <= 5; ip++ ) {
861 
862  num06 = num07 = num08 = num09 = 0.;
863 
864  // initialize summary histo for mem
865  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 6. );
866 
867  // non-existing mem
868  if ( (ism >= 3 && ism <= 4) || (ism >= 7 && ism <= 9) ) continue;
869  if ( (ism >= 12 && ism <= 13) || (ism >= 16 && ism <= 18) ) continue;
870 
871  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2. );
872 
873  bool update1 = false;
874  bool update2 = false;
875 
876  float numTotmem = -1.;
877 
878  if ( hmem_[ism-1] ) numTotmem = hmem_[ism-1]->GetBinContent(ie, ip);
879 
880  if ( h06_[ism-1] ) {
881  num06 = h06_[ism-1]->GetBinContent(ie, ip);
882  update1 = true;
883  }
884 
885  if ( h07_[ism-1] ) {
886  num07 = h07_[ism-1]->GetBinContent(ie, ip);
887  update1 = true;
888  }
889 
890  int iet = 1 + ((ie-1)/5);
891  int ipt = 1;
892 
893  if ( h08_[ism-1] ) {
894  num08 = h08_[ism-1]->GetBinContent(iet, ipt);
895  update2 = true;
896  }
897 
898  if ( h09_[ism-1] ) {
899  num09 = h09_[ism-1]->GetBinContent(iet, ipt);
900  update2 = true;
901  }
902 
903  if ( update0 || update1 || update2 ) {
904 
905  float val;
906 
907  val = 1.;
908  // number of events on a channel
909  if ( numTotmem > 0 ) {
910  float errorRate1 = ( num06 + num07 ) / ( numTotmem + num06 + num07 )/ 2.;
911  if ( errorRate1 > threshCry_ )
912  val = 0.;
913  float errorRate2 = ( num08 + num09 ) / ( numTotmem/25. + num08 + num09 ) / 2.;
914  if ( errorRate2 > threshCry_ )
915  val = 0.;
916  } else {
917  val = 2.;
918  if ( ( num06 + num07 ) > 0 )
919  val = 0.;
920  if ( ( num08 + num09 ) > 0 )
921  val = 0.;
922  }
923 
924  // filling summary for mem channels
925  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, val );
926 
927  }
928 
929  if ( Masks::maskPn(ism, ie, bits01, EcalEndcap) ) UtilsClient::maskBinContent( meg02_[ism-1], ie, ip );
930 
931  }
932  } // end loop on mem channels
933 
934  } // end loop on supermodules
935 
936 }
static std::string sEE(const unsigned ism)
Definition: Numbers.cc:223
int i
Definition: DBlmapReader.cc:9
static bool validEE(const unsigned ism, const unsigned ix, const unsigned iy)
Definition: Numbers.cc:829
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:57
static T getHisto(const MonitorElement *me, bool clone=false, T ret=0)
Returns the histogram contained by the Monitor Element.
Definition: UtilsClient.h:89
std::string subfolder_
static const int TT_SIZE_ERROR
static int ix0EE(const unsigned ism)
Definition: Numbers.cc:770
static const int CH_GAIN_SWITCH_ERROR
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
Definition: UtilsClient.cc:231
static bool maskPn(int ism, int i1, uint32_t bits, const EcalSubdetector subdet)
Definition: Masks.cc:109
static int iy0EE(const unsigned ism)
Definition: Numbers.cc:809
MonitorElement * meg02_[18]
std::vector< int > superModules_
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1623
static const int CH_GAIN_ZERO_ERROR
static const int TT_ID_ERROR
tuple cout
Definition: gather_cfg.py:121
MonitorElement * meg01_[18]
static const int CH_ID_ERROR
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void Reset(void)
reset ME (ie. contents, errors, etc)
void EEIntegrityClient::beginJob ( void  )
virtual

BeginJob.

Implements EEClient.

Definition at line 108 of file EEIntegrityClient.cc.

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

108  {
109 
111 
112  if ( debug_ ) std::cout << "EEIntegrityClient: beginJob" << std::endl;
113 
114  ievt_ = 0;
115  jevt_ = 0;
116 
117 }
tuple cout
Definition: gather_cfg.py:121
void EEIntegrityClient::beginRun ( void  )
virtual

BeginRun.

Implements EEClient.

Definition at line 119 of file EEIntegrityClient.cc.

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

119  {
120 
121  if ( debug_ ) std::cout << "EEIntegrityClient: beginRun" << std::endl;
122 
123  jevt_ = 0;
124 
125  this->setup();
126 
127 }
void setup(void)
Setup.
tuple cout
Definition: gather_cfg.py:121
void EEIntegrityClient::cleanup ( void  )
virtual

Cleanup.

Implements EEClient.

Definition at line 215 of file EEIntegrityClient.cc.

References cloneME_, dqmStore_, enableCleanup_, h00_, h01_, h02_, h03_, h04_, h05_, h06_, h07_, h08_, h09_, h_, hmem_, i, ecalpyutils::ism(), meg01_, meg02_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), subfolder_, and superModules_.

Referenced by endJob(), and endRun().

215  {
216 
217  if ( ! enableCleanup_ ) return;
218 
219  if ( cloneME_ ) {
220  if ( h00_ ) delete h00_;
221  }
222 
223  h00_ = 0;
224 
225  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
226 
227  int ism = superModules_[i];
228 
229  if ( cloneME_ ) {
230  if ( h_[ism-1] ) delete h_[ism-1];
231  if ( hmem_[ism-1] ) delete hmem_[ism-1];
232 
233  if ( h01_[ism-1] ) delete h01_[ism-1];
234  if ( h02_[ism-1] ) delete h02_[ism-1];
235  if ( h03_[ism-1] ) delete h03_[ism-1];
236  if ( h04_[ism-1] ) delete h04_[ism-1];
237  if ( h05_[ism-1] ) delete h05_[ism-1];
238  if ( h06_[ism-1] ) delete h06_[ism-1];
239  if ( h07_[ism-1] ) delete h07_[ism-1];
240  if ( h08_[ism-1] ) delete h08_[ism-1];
241  if ( h09_[ism-1] ) delete h09_[ism-1];
242  }
243 
244  h_[ism-1] = 0;
245  hmem_[ism-1] = 0;
246 
247  h01_[ism-1] = 0;
248  h02_[ism-1] = 0;
249  h03_[ism-1] = 0;
250  h04_[ism-1] = 0;
251  h05_[ism-1] = 0;
252  h06_[ism-1] = 0;
253  h07_[ism-1] = 0;
254  h08_[ism-1] = 0;
255  h09_[ism-1] = 0;
256 
257  }
258 
259  dqmStore_->setCurrentFolder( prefixME_ + "/EEIntegrityClient" );
260 
261  if(subfolder_.size())
262  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityClient/" + subfolder_);
263 
264  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
265 
266  int ism = superModules_[i];
267 
268  if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
269  meg01_[ism-1] = 0;
270 
271  if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
272  meg02_[ism-1] = 0;
273 
274  }
275 
276 }
int i
Definition: DBlmapReader.cc:9
std::string subfolder_
MonitorElement * meg02_[18]
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
MonitorElement * meg01_[18]
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
void EEIntegrityClient::endJob ( void  )
virtual

EndJob.

Implements EEClient.

Definition at line 129 of file EEIntegrityClient.cc.

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

129  {
130 
131  if ( debug_ ) std::cout << "EEIntegrityClient: endJob, ievt = " << ievt_ << std::endl;
132 
133  this->cleanup();
134 
135 }
void cleanup(void)
Cleanup.
tuple cout
Definition: gather_cfg.py:121
void EEIntegrityClient::endRun ( void  )
virtual

EndRun.

Implements EEClient.

Definition at line 137 of file EEIntegrityClient.cc.

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

137  {
138 
139  if ( debug_ ) std::cout << "EEIntegrityClient: endRun, jevt = " << jevt_ << std::endl;
140 
141  this->cleanup();
142 
143 }
void cleanup(void)
Cleanup.
tuple cout
Definition: gather_cfg.py:121
int EEIntegrityClient::getEvtPerJob ( void  )
inlinevirtual

Get Functions.

Implements EEClient.

Definition at line 70 of file EEIntegrityClient.h.

References ievt_.

70 { return ievt_; }
int EEIntegrityClient::getEvtPerRun ( void  )
inlinevirtual

Returns the number of processed events in this Run.

Implements EEClient.

Definition at line 71 of file EEIntegrityClient.h.

References jevt_.

71 { return jevt_; }
void EEIntegrityClient::setup ( void  )
virtual

Setup.

Implements EEClient.

Definition at line 145 of file EEIntegrityClient.cc.

References DQMStore::book2D(), dqmStore_, i, ecalpyutils::ism(), Numbers::ix0EE(), Numbers::iy0EE(), meg01_, meg02_, mergeVDriftHistosByStation::name, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEE(), MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), DQMStore::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, subfolder_, superModules_, and Numbers::validEE().

Referenced by beginRun().

145  {
146 
148 
149  dqmStore_->setCurrentFolder( prefixME_ + "/EEIntegrityClient" );
150 
151  if(subfolder_.size())
152  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityClient/" + subfolder_);
153 
154  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
155 
156  int ism = superModules_[i];
157 
158  if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
159  name = "EEIT data integrity quality " + Numbers::sEE(ism);
160  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.);
161  meg01_[ism-1]->setAxisTitle("ix", 1);
162  if ( ism >= 1 && ism <= 9 ) meg01_[ism-1]->setAxisTitle("101-ix", 1);
163  meg01_[ism-1]->setAxisTitle("iy", 2);
164 
165  if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
166  name = "EEIT data integrity quality MEM " + Numbers::sEE(ism);
167  meg02_[ism-1] = dqmStore_->book2D(name, name, 10, 0., 10., 5, 0.,5.);
168  meg02_[ism-1]->setAxisTitle("pseudo-strip", 1);
169  meg02_[ism-1]->setAxisTitle("channel", 2);
170 
171  }
172 
173  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
174 
175  int ism = superModules_[i];
176 
177  if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
178  if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
179 
180  for ( int ix = 1; ix <= 50; ix++ ) {
181  for ( int iy = 1; iy <= 50; iy++ ) {
182 
183  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. );
184 
185  int jx = ix + Numbers::ix0EE(ism);
186  int jy = iy + Numbers::iy0EE(ism);
187 
188  if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
189 
190  if ( Numbers::validEE(ism, jx, jy) ) {
191  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 2. );
192  }
193 
194  }
195  }
196 
197  for ( int ie = 1; ie <= 10; ie++ ) {
198  for ( int ip = 1; ip <= 5; ip++ ) {
199 
200  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 6. );
201 
202  // non-existing mem
203  if ( (ism >= 3 && ism <= 4) || (ism >= 7 && ism <= 9) ) continue;
204  if ( (ism >= 12 && ism <= 3) || (ism >= 16 && ism <= 18) ) continue;
205 
206  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2. );
207 
208  }
209  }
210 
211  }
212 
213 }
static std::string sEE(const unsigned ism)
Definition: Numbers.cc:223
int i
Definition: DBlmapReader.cc:9
static bool validEE(const unsigned ism, const unsigned ix, const unsigned iy)
Definition: Numbers.cc:829
void setBinContent(int binx, double content)
set content of bin (1-D)
std::string subfolder_
static int ix0EE(const unsigned ism)
Definition: Numbers.cc:770
static int iy0EE(const unsigned ism)
Definition: Numbers.cc:809
MonitorElement * meg02_[18]
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
MonitorElement * meg01_[18]
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:1000
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:584

Friends And Related Function Documentation

friend class EESummaryClient
friend

Definition at line 33 of file EEIntegrityClient.h.

Member Data Documentation

const int EEIntegrityClient::chNum
staticprivate
Initial value:
= {
{ 1, 2, 3, 4, 5},
{10, 9, 8, 7, 6},
{11, 12, 13, 14, 15},
{20, 19, 18, 17, 16},
{21, 22, 23, 24, 25}
}

Definition at line 115 of file EEIntegrityClient.h.

bool EEIntegrityClient::cloneME_
private

Definition at line 78 of file EEIntegrityClient.h.

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

bool EEIntegrityClient::debug_
private

Definition at line 81 of file EEIntegrityClient.h.

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

DQMStore* EEIntegrityClient::dqmStore_
private

Definition at line 91 of file EEIntegrityClient.h.

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

bool EEIntegrityClient::enableCleanup_
private

Definition at line 87 of file EEIntegrityClient.h.

Referenced by cleanup(), and EEIntegrityClient().

TH1F* EEIntegrityClient::h00_
private

Definition at line 93 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h01_[18]
private

Definition at line 95 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h02_[18]
private

Definition at line 96 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h03_[18]
private

Definition at line 97 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h04_[18]
private

Definition at line 98 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h05_[18]
private

Definition at line 99 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h06_[18]
private

Definition at line 100 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h07_[18]
private

Definition at line 101 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h08_[18]
private

Definition at line 102 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h09_[18]
private

Definition at line 103 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h_[18]
private

Definition at line 108 of file EEIntegrityClient.h.

Referenced by EESummaryClient::analyze(), analyze(), cleanup(), and EEIntegrityClient().

TH2F* EEIntegrityClient::hmem_[18]
private

Definition at line 109 of file EEIntegrityClient.h.

Referenced by EESummaryClient::analyze(), analyze(), cleanup(), and EEIntegrityClient().

int EEIntegrityClient::ievt_
private

Definition at line 75 of file EEIntegrityClient.h.

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

int EEIntegrityClient::jevt_
private

Definition at line 76 of file EEIntegrityClient.h.

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

MonitorElement* EEIntegrityClient::meg01_[18]
private
MonitorElement* EEIntegrityClient::meg02_[18]
private
std::string EEIntegrityClient::prefixME_
private

Definition at line 83 of file EEIntegrityClient.h.

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

std::string EEIntegrityClient::subfolder_
private

Definition at line 85 of file EEIntegrityClient.h.

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

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

Definition at line 89 of file EEIntegrityClient.h.

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

float EEIntegrityClient::threshCry_
private

Definition at line 113 of file EEIntegrityClient.h.

Referenced by analyze(), and EEIntegrityClient().

bool EEIntegrityClient::verbose_
private

Definition at line 80 of file EEIntegrityClient.h.

Referenced by EEIntegrityClient().