#include <EEIntegrityClient.h>
Public Member Functions | |
void | analyze (void) |
Analyze. | |
void | beginJob (void) |
BeginJob. | |
void | beginRun (void) |
BeginRun. | |
void | cleanup (void) |
Cleanup. | |
EEIntegrityClient (const edm::ParameterSet &ps) | |
Constructor. | |
void | endJob (void) |
EndJob. | |
void | endRun (void) |
EndRun. | |
int | getEvtPerJob () |
Get Functions. | |
int | getEvtPerRun () |
Returns the number of processed events in this Run. | |
void | setup (void) |
Setup. | |
virtual | ~EEIntegrityClient () |
Destructor. | |
Private Attributes | |
bool | cloneME_ |
bool | debug_ |
DQMStore * | dqmStore_ |
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_ |
MonitorElement * | meg01_ [18] |
MonitorElement * | meg02_ [18] |
std::string | prefixME_ |
std::vector< int > | superModules_ |
float | threshCry_ |
bool | verbose_ |
Static Private Attributes | |
static const int | chNum [5][5] |
Friends | |
class | EESummaryClient |
Definition at line 33 of file EEIntegrityClient.h.
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_, superModules_, threshCry_, and verbose_.
{ // cloneME switch cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true); // verbose switch verbose_ = ps.getUntrackedParameter<bool>("verbose", true); // debug switch debug_ = ps.getUntrackedParameter<bool>("debug", false); // prefixME path prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", ""); // enableCleanup_ switch enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false); // vector of selected Super Modules (Defaults to all 18). superModules_.reserve(18); for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i); superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_); h00_ = 0; for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; h_[ism-1] = 0; hmem_[ism-1] = 0; h01_[ism-1] = 0; h02_[ism-1] = 0; h03_[ism-1] = 0; h04_[ism-1] = 0; h05_[ism-1] = 0; h06_[ism-1] = 0; h07_[ism-1] = 0; h08_[ism-1] = 0; h09_[ism-1] = 0; } for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; // integrity summary histograms meg01_[ism-1] = 0; meg02_[ism-1] = 0; } threshCry_ = 0.01; }
EEIntegrityClient::~EEIntegrityClient | ( | ) | [virtual] |
void EEIntegrityClient::analyze | ( | void | ) | [virtual] |
Analyze.
Implements EEClient.
Definition at line 691 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(), 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(), superModules_, threshCry_, EcalDQMStatusHelper::TT_ID_ERROR, EcalDQMStatusHelper::TT_SIZE_ERROR, and Numbers::validEE().
{ ievt_++; jevt_++; if ( ievt_ % 10 == 0 ) { if ( debug_ ) std::cout << "EEIntegrityClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl; } uint32_t bits01 = 0; bits01 |= 1 << EcalDQMStatusHelper::CH_ID_ERROR; bits01 |= 1 << EcalDQMStatusHelper::CH_GAIN_ZERO_ERROR; bits01 |= 1 << EcalDQMStatusHelper::CH_GAIN_SWITCH_ERROR; bits01 |= 1 << EcalDQMStatusHelper::TT_ID_ERROR; bits01 |= 1 << EcalDQMStatusHelper::TT_SIZE_ERROR; MonitorElement* me; me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/EEIT DCC size error" ); h00_ = UtilsClient::getHisto( me, cloneME_, h00_ ); for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; me = dqmStore_->get( prefixME_ + "/EEOccupancyTask/EEOT digi occupancy " + Numbers::sEE(ism) ); h_[ism-1] = UtilsClient::getHisto( me, cloneME_, h_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEOccupancyTask/EEOT MEM digi occupancy " + Numbers::sEE(ism) ); hmem_[ism-1] = UtilsClient::getHisto( me, cloneME_, hmem_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/Gain/EEIT gain " + Numbers::sEE(ism) ); h01_[ism-1] = UtilsClient::getHisto( me, cloneME_, h01_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/ChId/EEIT ChId " + Numbers::sEE(ism) ); h02_[ism-1] = UtilsClient::getHisto( me, cloneME_, h02_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/GainSwitch/EEIT gain switch " + Numbers::sEE(ism) ); h03_[ism-1] = UtilsClient::getHisto( me, cloneME_, h03_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/TTId/EEIT TTId " + Numbers::sEE(ism) ); h04_[ism-1] = UtilsClient::getHisto( me, cloneME_, h04_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/TTBlockSize/EEIT TTBlockSize " + Numbers::sEE(ism) ); h05_[ism-1] = UtilsClient::getHisto( me, cloneME_, h05_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/MemChId/EEIT MemChId " + Numbers::sEE(ism) ); h06_[ism-1] = UtilsClient::getHisto( me, cloneME_, h06_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/MemGain/EEIT MemGain " + Numbers::sEE(ism) ); h07_[ism-1] = UtilsClient::getHisto( me, cloneME_, h07_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/MemTTId/EEIT MemTTId " + Numbers::sEE(ism) ); h08_[ism-1] = UtilsClient::getHisto( me, cloneME_, h08_[ism-1] ); me = dqmStore_->get( prefixME_ + "/EEIntegrityTask/MemSize/EEIT MemSize " + Numbers::sEE(ism) ); h09_[ism-1] = UtilsClient::getHisto( me, cloneME_, h09_[ism-1] ); float num00; // integrity summary histograms if ( meg01_[ism-1] ) meg01_[ism-1]->Reset(); if ( meg01_[ism-1] ) meg02_[ism-1]->Reset(); num00 = 0.; bool update0 = false; // dcc size errors if ( h00_ ) { num00 = h00_->GetBinContent(ism); update0 = true; } float num01, num02, num03, num04, num05; for ( int ix = 1; ix <= 50; ix++ ) { for ( int iy = 1; iy <= 50; iy++ ) { num01 = num02 = num03 = num04 = num05 = 0.; if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. ); bool update1 = false; bool update2 = false; float numTot = -1.; if ( h_[ism-1] ) numTot = h_[ism-1]->GetBinContent(ix, iy); if ( h01_[ism-1] ) { num01 = h01_[ism-1]->GetBinContent(ix, iy); update1 = true; } if ( h02_[ism-1] ) { num02 = h02_[ism-1]->GetBinContent(ix, iy); update1 = true; } if ( h03_[ism-1] ) { num03 = h03_[ism-1]->GetBinContent(ix, iy); update1 = true; } if ( h04_[ism-1] ) { num04 = h04_[ism-1]->GetBinContent(ix, iy); update2 = true; } if ( h05_[ism-1] ) { num05 = h05_[ism-1]->GetBinContent(ix, iy); update2 = true; } if ( update0 || update1 || update2 ) { float val; val = 1.; // number of events on a channel if ( numTot > 0 ) { float errorRate1 = num00 / ( numTot + num01 + num02 + num03 ); if ( errorRate1 > threshCry_ ) val = 0.; errorRate1 = ( num01 + num02 + num03 ) / ( numTot + num01 + num02 + num03 ) / 3.; if ( errorRate1 > threshCry_ ) val = 0.; float errorRate2 = ( num04 + num05 ) / ( numTot + num04 + num05 ) / 2.; if ( errorRate2 > threshCry_ ) val = 0.; } else { val = 2.; if ( num00 > 0 ) val = 0.; if ( ( num01 + num02 + num03 ) > 0 ) val = 0.; if ( ( num04 + num05 ) > 0 ) val = 0.; } int jx = ix + Numbers::ix0EE(ism); int jy = iy + Numbers::iy0EE(ism); if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; // filling the summary for SM channels if ( Numbers::validEE(ism, jx, jy) ) { if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, val ); } } if ( Masks::maskChannel(ism, ix, iy, bits01, EcalEndcap) ) UtilsClient::maskBinContent( meg01_[ism-1], ix, iy ); } } // end of loop on crystals to fill summary plot // summaries for mem channels float num06, num07, num08, num09; for ( int ie = 1; ie <= 10; ie++ ) { for ( int ip = 1; ip <= 5; ip++ ) { num06 = num07 = num08 = num09 = 0.; // initialize summary histo for mem if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 6. ); // non-existing mem if ( (ism >= 3 && ism <= 4) || (ism >= 7 && ism <= 9) ) continue; if ( (ism >= 12 && ism <= 13) || (ism >= 16 && ism <= 18) ) continue; if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2. ); bool update1 = false; bool update2 = false; float numTotmem = -1.; if ( hmem_[ism-1] ) numTotmem = hmem_[ism-1]->GetBinContent(ie, ip); if ( h06_[ism-1] ) { num06 = h06_[ism-1]->GetBinContent(ie, ip); update1 = true; } if ( h07_[ism-1] ) { num07 = h07_[ism-1]->GetBinContent(ie, ip); update1 = true; } int iet = 1 + ((ie-1)/5); int ipt = 1; if ( h08_[ism-1] ) { num08 = h08_[ism-1]->GetBinContent(iet, ipt); update2 = true; } if ( h09_[ism-1] ) { num09 = h09_[ism-1]->GetBinContent(iet, ipt); update2 = true; } if ( update0 || update1 || update2 ) { float val; val = 1.; // number of events on a channel if ( numTotmem > 0 ) { float errorRate1 = ( num06 + num07 ) / ( numTotmem + num06 + num07 )/ 2.; if ( errorRate1 > threshCry_ ) val = 0.; float errorRate2 = ( num08 + num09 ) / ( numTotmem/25. + num08 + num09 ) / 2.; if ( errorRate2 > threshCry_ ) val = 0.; } else { val = 2.; if ( ( num06 + num07 ) > 0 ) val = 0.; if ( ( num08 + num09 ) > 0 ) val = 0.; } // filling summary for mem channels if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, val ); } if ( Masks::maskPn(ism, ie, bits01, EcalEndcap) ) UtilsClient::maskBinContent( meg02_[ism-1], ie, ip ); } } // end loop on mem channels } // end loop on supermodules }
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 cmsCodeRules::cppFunctionSkipper::operator.
void EEIntegrityClient::beginRun | ( | void | ) | [virtual] |
void EEIntegrityClient::cleanup | ( | void | ) | [virtual] |
Cleanup.
Implements EEClient.
Definition at line 212 of file EEIntegrityClient.cc.
References cloneME_, dqmStore_, enableCleanup_, edm::getName(), h00_, h01_, h02_, h03_, h04_, h05_, h06_, h07_, h08_, h09_, h_, hmem_, i, ecalpyutils::ism(), meg01_, meg02_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), and superModules_.
Referenced by endJob(), and endRun().
{ if ( ! enableCleanup_ ) return; if ( cloneME_ ) { if ( h00_ ) delete h00_; } h00_ = 0; for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; if ( cloneME_ ) { if ( h_[ism-1] ) delete h_[ism-1]; if ( hmem_[ism-1] ) delete hmem_[ism-1]; if ( h01_[ism-1] ) delete h01_[ism-1]; if ( h02_[ism-1] ) delete h02_[ism-1]; if ( h03_[ism-1] ) delete h03_[ism-1]; if ( h04_[ism-1] ) delete h04_[ism-1]; if ( h05_[ism-1] ) delete h05_[ism-1]; if ( h06_[ism-1] ) delete h06_[ism-1]; if ( h07_[ism-1] ) delete h07_[ism-1]; if ( h08_[ism-1] ) delete h08_[ism-1]; if ( h09_[ism-1] ) delete h09_[ism-1]; } h_[ism-1] = 0; hmem_[ism-1] = 0; h01_[ism-1] = 0; h02_[ism-1] = 0; h03_[ism-1] = 0; h04_[ism-1] = 0; h05_[ism-1] = 0; h06_[ism-1] = 0; h07_[ism-1] = 0; h08_[ism-1] = 0; h09_[ism-1] = 0; } dqmStore_->setCurrentFolder( prefixME_ + "/EEIntegrityClient" ); for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() ); meg01_[ism-1] = 0; if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() ); meg02_[ism-1] = 0; } }
void EEIntegrityClient::endJob | ( | void | ) | [virtual] |
void EEIntegrityClient::endRun | ( | void | ) | [virtual] |
int EEIntegrityClient::getEvtPerJob | ( | void | ) | [inline, virtual] |
Get Functions.
Implements EEClient.
Definition at line 72 of file EEIntegrityClient.h.
References ievt_.
{ return ievt_; }
int EEIntegrityClient::getEvtPerRun | ( | void | ) | [inline, virtual] |
void EEIntegrityClient::setup | ( | void | ) | [virtual] |
Setup.
Implements EEClient.
Definition at line 145 of file EEIntegrityClient.cc.
References DQMStore::book2D(), dqmStore_, edm::getName(), i, ecalpyutils::ism(), Numbers::ix0EE(), Numbers::iy0EE(), meg01_, meg02_, mergeVDriftHistosByStation::name, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEE(), MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), DQMStore::setCurrentFolder(), superModules_, and Numbers::validEE().
Referenced by beginRun().
{ std::string name; dqmStore_->setCurrentFolder( prefixME_ + "/EEIntegrityClient" ); for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() ); name = "EEIT data integrity quality " + Numbers::sEE(ism); 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.); meg01_[ism-1]->setAxisTitle("ix", 1); if ( ism >= 1 && ism <= 9 ) meg01_[ism-1]->setAxisTitle("101-ix", 1); meg01_[ism-1]->setAxisTitle("iy", 2); if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() ); name = "EEIT data integrity quality MEM " + Numbers::sEE(ism); meg02_[ism-1] = dqmStore_->book2D(name, name, 10, 0., 10., 5, 0.,5.); meg02_[ism-1]->setAxisTitle("pseudo-strip", 1); meg02_[ism-1]->setAxisTitle("channel", 2); } for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; if ( meg01_[ism-1] ) meg01_[ism-1]->Reset(); if ( meg02_[ism-1] ) meg02_[ism-1]->Reset(); for ( int ix = 1; ix <= 50; ix++ ) { for ( int iy = 1; iy <= 50; iy++ ) { if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. ); int jx = ix + Numbers::ix0EE(ism); int jy = iy + Numbers::iy0EE(ism); if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; if ( Numbers::validEE(ism, jx, jy) ) { if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 2. ); } } } for ( int ie = 1; ie <= 10; ie++ ) { for ( int ip = 1; ip <= 5; ip++ ) { if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 6. ); // non-existing mem if ( (ism >= 3 && ism <= 4) || (ism >= 7 && ism <= 9) ) continue; if ( (ism >= 12 && ism <= 3) || (ism >= 16 && ism <= 18) ) continue; if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2. ); } } } }
friend class EESummaryClient [friend] |
Definition at line 35 of file EEIntegrityClient.h.
const int EEIntegrityClient::chNum [static, private] |
{ { 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 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 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 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] |
Definition at line 105 of file EEIntegrityClient.h.
Referenced by EESummaryClient::analyze(), analyze(), cleanup(), EEIntegrityClient(), and setup().
MonitorElement* EEIntegrityClient::meg02_[18] [private] |
Definition at line 106 of file EEIntegrityClient.h.
Referenced by EESummaryClient::analyze(), analyze(), cleanup(), EEIntegrityClient(), and setup().
std::string EEIntegrityClient::prefixME_ [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 82 of file EEIntegrityClient.h.
Referenced by EEIntegrityClient().