24 for (
int i=0;
i<2; ++
i)
25 for (
int j=0;
j<2; ++
j)
26 for (
int k=0;
k<40; ++
k)
27 for (
int m=0;
m<40; ++
m) {
28 fed_[
i][
j][
k][
m] = -1;
29 kchip_[
i][
j][
k][
m] = -1;
32 for (
int i=0;
i<56; ++
i) {
35 slinkCRCStatus_[
i] = -1;
36 for (
int j=0;
j<36; ++
j)
37 fiberStatus_[
i][
j] = -1;
40 int nLines_,
z, iz, ip, ix, iy, fed, kchip, pace, bundle, fiber, optorx;
42 file.open(lookup_.fullPath().c_str());
43 if( file.is_open() ) {
47 for (
int i=0;
i<nLines_; ++
i) {
48 file>> iz >> ip >> ix >> iy >> fed >> kchip >> pace >> bundle >> fiber >> optorx;
51 fed_[z-1][ip-1][ix-1][iy-1] = fed;
52 kchip_[z-1][ip-1][ix-1][iy-1] = kchip;
53 fiber_[z-1][ip-1][ix-1][iy-1] = (fiber-1)+(optorx-1)*12;
57 cout<<
"ESIntegrityClient : Look up table file can not be found in "<<lookup_.fullPath().c_str()<<endl;
69 hOrbitNumberDiff_ = 0;
83 if ( debug_ )
cout <<
"ESIntegrityClient: beginJob" << endl;
91 if ( debug_ )
cout <<
"ESIntegrityClient: beginRun" << endl;
101 if ( debug_ )
cout <<
"ESIntegrityClient: endJob, ievt = " << ievt_ << endl;
109 if ( debug_ )
cout <<
"ESIntegrityClient: endRun, jevt = " << jevt_ << endl;
119 dqmStore_->setCurrentFolder( prefixME_ +
"/ESIntegrityClient" );
121 for (
int i=0 ;
i<2; ++
i)
122 for (
int j=0 ;
j<2; ++
j) {
123 int iz = (
i==0)? 1:-1;
124 sprintf(histo,
"ES Integrity Summary 1 Z %d P %d", iz,
j+1);
125 meFED_[
i][
j] = dqmStore_->book2D(histo, histo, 40, 0.5, 40.5, 40, 0.5, 40.5);
126 meFED_[
i][
j]->setAxisTitle(
"Si X", 1);
127 meFED_[
i][
j]->setAxisTitle(
"Si Y", 2);
129 sprintf(histo,
"ES Integrity Summary 2 Z %d P %d", iz,
j+1);
130 meKCHIP_[
i][
j] = dqmStore_->book2D(histo, histo, 40, 0.5, 40.5, 40, 0.5, 40.5);
131 meKCHIP_[
i][
j]->setAxisTitle(
"Si X", 1);
132 meKCHIP_[
i][
j]->setAxisTitle(
"Si Y", 2);
138 if ( ! enableCleanup_ )
return;
146 double nDI_FedErr[56];
147 for (
int i=0;
i<56; ++
i) nDI_FedErr[
i] = 0;
151 sprintf(histo, (prefixME_ +
"/ESIntegrityTask/ES FEDs used for data taking").c_str());
152 me = dqmStore_->get(histo);
153 hFED_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, hFED_ );
155 sprintf(histo, (prefixME_ +
"/ESIntegrityTask/ES Fiber Off").c_str());
156 me = dqmStore_->get(histo);
157 hFiberOff_ = UtilsClient::getHisto<TH2F*>( me, cloneME_, hFiberOff_ );
159 sprintf(histo, (prefixME_ +
"/ESIntegrityTask/ES Fiber Bad Status").c_str());
160 me = dqmStore_->get(histo);
161 hFiberBadStatus_ = UtilsClient::getHisto<TH2F*>( me, cloneME_, hFiberBadStatus_ );
163 sprintf(histo, (prefixME_ +
"/ESIntegrityTask/ES SLink CRC Errors").c_str());
164 me = dqmStore_->get(histo);
165 hSLinkCRCErr_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, hSLinkCRCErr_ );
170 for (
int i=1;
i<=56; ++
i)
171 if (nevFEDs < hFED_->GetBinContent(
i))
172 nevFEDs = (
int) hFED_->GetBinContent(
i);
176 for (
int i=1;
i<=56; ++
i) {
178 if (hFED_->GetBinContent(
i) > 0)
182 if (hSLinkCRCErr_->GetBinContent(
i) > 0)
183 slinkCRCStatus_[
i] = 1;
185 for (
int j=0;
j<36; ++
j) {
186 if (hFiberBadStatus_) {
187 if (hFiberBadStatus_->GetBinContent(
i,
j+1) > 0)
188 fiberStatus_[
i-1][
j] = 2;
190 fiberStatus_[
i-1][
j] = 1;
193 if (hFiberOff_->GetBinContent(
i,
j+1) > 0) {
194 fiberStatus_[
i-1][
j] = 0;
200 sprintf(histo, (prefixME_ +
"/ESRawDataTask/ES L1A DCC errors").c_str());
201 me = dqmStore_->get(histo);
202 hL1ADiff_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, hL1ADiff_ );
204 sprintf(histo, (prefixME_ +
"/ESRawDataTask/ES BX DCC errors").c_str());
205 me = dqmStore_->get(histo);
206 hBXDiff_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, hBXDiff_ );
208 sprintf(histo, (prefixME_ +
"/ESRawDataTask/ES Orbit Number DCC errors").c_str());
209 me = dqmStore_->get(histo);
210 hOrbitNumberDiff_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, hOrbitNumberDiff_ );
212 for (
int i=1;
i<=56; ++
i) {
213 if (hL1ADiff_ && hBXDiff_) {
214 if (hL1ADiff_->GetBinContent(
i) > 0 || hBXDiff_->GetBinContent(
i) > 0) {
215 syncStatus_[
i-1] = 1;
216 if (hL1ADiff_->GetBinContent(
i) > nDI_FedErr[
i-1]) nDI_FedErr[
i-1] = hL1ADiff_->GetBinContent(
i);
217 if (hBXDiff_->GetBinContent(
i) > nDI_FedErr[
i-1]) nDI_FedErr[
i-1] = hBXDiff_->GetBinContent(
i);
224 sprintf(histo, (prefixME_ +
"/ESIntegrityTask/ES KChip Flag 1 Error codes").c_str());
225 me = dqmStore_->get(histo);
226 hKF1_ = UtilsClient::getHisto<TH2F*>( me, cloneME_, hKF1_ );
228 sprintf(histo, (prefixME_ +
"/ESIntegrityTask/ES KChip Flag 2 Error codes").c_str());
229 me = dqmStore_->get(histo);
230 hKF2_ = UtilsClient::getHisto<TH2F*>( me, cloneME_, hKF2_ );
232 sprintf(histo, (prefixME_ +
"/ESIntegrityTask/ES KChip BC mismatch with OptoRX").c_str());
233 me = dqmStore_->get(histo);
234 hKBC_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, hKBC_ );
236 sprintf(histo, (prefixME_ +
"/ESIntegrityTask/ES KChip EC mismatch with OptoRX").c_str());
237 me = dqmStore_->get(histo);
238 hKEC_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, hKEC_ );
240 Int_t kchip_xval[1550];
241 for (
int i=0;
i<=1550; ++
i) {
245 for (
int j=1;
j<16; ++
j) {
247 if (hKF1_->GetBinContent(
i,
j+1)>0) {
253 if (hKF2_->GetBinContent(
i,
j+1)>0) {
260 if (hKBC_->GetBinContent(
i)>0) {
266 if (hKEC_->GetBinContent(
i)>0) {
271 if (kErr>1) xval = 7;
272 kchip_xval[
i] = xval;
276 for (
int iz=0; iz<2; ++iz)
277 for (
int ip=0; ip<2; ++ip)
278 for (
int ix=0; ix<40; ++ix)
279 for (
int iy=0; iy<40; ++iy) {
280 if (fed_[iz][ip][ix][iy] == -1)
continue;
281 if (fedStatus_[fed_[iz][ip][ix][iy]-520]==-1 || fiberStatus_[fed_[iz][ip][ix][iy]-520][fiber_[iz][ip][ix][iy]] == 0)
282 kchip_xval[kchip_[iz][ip][ix][iy]-1] = 0;
283 if ((kchip_[iz][ip][ix][iy]-2) >= 0)
284 meKCHIP_[iz][ip]->setBinContent(ix+1, iy+1, kchip_xval[kchip_[iz][ip][ix][iy]-2]);
289 for (
int iz=0; iz<2; ++iz)
290 for (
int ip=0; ip<2; ++ip)
291 for (
int ix=0; ix<40; ++ix)
292 for (
int iy=0; iy<40; ++iy) {
294 if (fed_[iz][ip][ix][iy] == -1)
continue;
297 if (fedStatus_[fed_[iz][ip][ix][iy]-520] == 1) {
300 if (hFED_->GetBinContent(fed_[iz][ip][ix][iy]-520+1) == nevFEDs)
308 if (fiberStatus_[fed_[iz][ip][ix][iy]-520][fiber_[iz][ip][ix][iy]] == 2) {
312 if (fiberStatus_[fed_[iz][ip][ix][iy]-520][fiber_[iz][ip][ix][iy]] == 0) {
315 if (kchip_xval[kchip_[iz][ip][ix][iy]-1] != 3 && kchip_xval[kchip_[iz][ip][ix][iy]-1] != 0) {
319 if (syncStatus_[fed_[iz][ip][ix][iy]-520] == 1) {
323 if (slinkCRCStatus_[fed_[iz][ip][ix][iy]-520] == 1) {
327 if (nErr > 1) xval = 7;
328 }
else if (fedStatus_[fed_[iz][ip][ix][iy]-520] == -1) {
332 meFED_[iz][ip]->setBinContent(ix+1, iy+1, xval);
void softReset(bool flag)
SoftReset.
T getUntrackedParameter(std::string const &, T const &) const
void beginRun(void)
BeginRun.
static void cleanup(const Factory::MakerMap::value_type &v)
virtual ~ESIntegrityClient()
Destructor.
void cleanup(void)
Cleanup.
void beginJob(DQMStore *dqmStore)
BeginJob.
Ecal Monitor Utils for Client.
ESIntegrityClient(const edm::ParameterSet &ps)
Constructor.
void analyze(void)
Analyze.