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 33 of file EEIntegrityClient.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 47 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_.

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

106  {
107 
108 }

Member Function Documentation

void EEIntegrityClient::analyze ( void  )
virtual

Analyze.

Implements EEClient.

Definition at line 699 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().

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

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

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

BeginRun.

Implements EEClient.

Definition at line 121 of file EEIntegrityClient.cc.

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

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

Cleanup.

Implements EEClient.

Definition at line 217 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().

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

EndJob.

Implements EEClient.

Definition at line 131 of file EEIntegrityClient.cc.

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

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

EndRun.

Implements EEClient.

Definition at line 139 of file EEIntegrityClient.cc.

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

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

Get Functions.

Implements EEClient.

Definition at line 72 of file EEIntegrityClient.h.

References ievt_.

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

Returns the number of processed events in this Run.

Implements EEClient.

Definition at line 73 of file EEIntegrityClient.h.

References jevt_.

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

Setup.

Implements EEClient.

Definition at line 147 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().

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

Friends And Related Function Documentation

friend class EESummaryClient
friend

Definition at line 35 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 117 of file EEIntegrityClient.h.

bool EEIntegrityClient::cloneME_
private

Definition at line 80 of file EEIntegrityClient.h.

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

bool EEIntegrityClient::debug_
private

Definition at line 83 of file EEIntegrityClient.h.

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

DQMStore* EEIntegrityClient::dqmStore_
private

Definition at line 93 of file EEIntegrityClient.h.

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

bool EEIntegrityClient::enableCleanup_
private

Definition at line 89 of file EEIntegrityClient.h.

Referenced by cleanup(), and EEIntegrityClient().

TH1F* EEIntegrityClient::h00_
private

Definition at line 95 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h01_[18]
private

Definition at line 97 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h02_[18]
private

Definition at line 98 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h03_[18]
private

Definition at line 99 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h04_[18]
private

Definition at line 100 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h05_[18]
private

Definition at line 101 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h06_[18]
private

Definition at line 102 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h07_[18]
private

Definition at line 103 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h08_[18]
private

Definition at line 104 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h09_[18]
private

Definition at line 105 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::h_[18]
private

Definition at line 110 of file EEIntegrityClient.h.

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

TH2F* EEIntegrityClient::hmem_[18]
private

Definition at line 111 of file EEIntegrityClient.h.

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

int EEIntegrityClient::ievt_
private

Definition at line 77 of file EEIntegrityClient.h.

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

int EEIntegrityClient::jevt_
private

Definition at line 78 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 85 of file EEIntegrityClient.h.

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

std::string EEIntegrityClient::subfolder_
private

Definition at line 87 of file EEIntegrityClient.h.

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

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

Definition at line 91 of file EEIntegrityClient.h.

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

float EEIntegrityClient::threshCry_
private

Definition at line 115 of file EEIntegrityClient.h.

Referenced by analyze(), and EEIntegrityClient().

bool EEIntegrityClient::verbose_
private

Definition at line 82 of file EEIntegrityClient.h.

Referenced by EEIntegrityClient().