1253 |
// |
// |
1254 |
Float_t ener0 = 0.; |
Float_t ener0 = 0.; |
1255 |
Float_t cbase0 = 0.; |
Float_t cbase0 = 0.; |
1256 |
|
Float_t totbase = 0.; |
1257 |
|
Float_t totped = 0.; |
1258 |
Bool_t pproblem = false; |
Bool_t pproblem = false; |
1259 |
Bool_t negbase = false; |
Bool_t negbase = false; |
1260 |
// |
// |
1369 |
// |
// |
1370 |
pre = -1; |
pre = -1; |
1371 |
ener0 = 0.; |
ener0 = 0.; |
1372 |
|
totbase = 0.; |
1373 |
|
totped = 0.; |
1374 |
for (Int_t i = 0 ; i < 3 ; i++){ |
for (Int_t i = 0 ; i < 3 ; i++){ |
1375 |
ip[i] = 0; |
ip[i] = 0; |
1376 |
for (Int_t n = i*32 ; n < (i+1)*32 ; n++){ |
for (Int_t n = i*32 ; n < (i+1)*32 ; n++){ |
1438 |
ener = dexyc[l][m][n]; |
ener = dexyc[l][m][n]; |
1439 |
ener0 += ener; |
ener0 += ener; |
1440 |
clevel1->estrip[n][m][l] = 0.; |
clevel1->estrip[n][m][l] = 0.; |
1441 |
|
totbase += de->base[l][m][pre]; |
1442 |
|
totped += fabs(calped[l][m][n]); |
1443 |
if ( de->base[l][m][pre] < 0 ) negbase = true; |
if ( de->base[l][m][pre] < 0 ) negbase = true; |
1444 |
if ( base0>0 && base0 < 30000. ){ |
if ( base0>0 && base0 < 30000. ){ |
1445 |
// |
// |
1463 |
}; |
}; |
1464 |
// |
// |
1465 |
// check if there were problems with 5.7 or glitches in the power supply |
// check if there were problems with 5.7 or glitches in the power supply |
1466 |
// |
// |
1467 |
if ( ((ener0 == 0. && cbase0 == 0.) || negbase ) && !pproblem && clevel2->perr[se] == 0){ |
if ( ((ener0 == 0. && cbase0 == 0.) || negbase || totbase > 196600. || totped < 1. ) && !pproblem && clevel2->perr[se] == 0){ // check pedestal and baseline values for one plane, if all zeros calibration is not valid (calorimeter power problems) [8th data reduction bug, fixed on 25/11/2009 by E.M.] |
1468 |
if ( verbose ) printf(" L0 entry %i : calorimeter power problems! event marked as bad perr %f swerr %X view %i plane %i \n",ei,de->perror[se],de->stwerr[se],l,m); |
if ( verbose ) printf(" L0 entry %i : calorimeter power problems! event marked as bad perr %f swerr %X view %i plane %i \n",ei,de->perror[se],de->stwerr[se],l,m); |
1469 |
pproblem = true; |
pproblem = true; |
1470 |
pe++; |
pe++; |
1758 |
clevel1->estrip[j4][m][l] = 0.; |
clevel1->estrip[j4][m][l] = 0.; |
1759 |
}; |
}; |
1760 |
// |
// |
1761 |
|
if ( debug ) printf(" STRIP: view %i plane %i strip %i energy: %f \n",l,m,j4,clevel1->estrip[j4][m][l]); |
1762 |
|
// |
1763 |
// code and save the energy for each strip in svstrip |
// code and save the energy for each strip in svstrip |
1764 |
// |
// |
1765 |
if ( clevel1->estrip[j4][m][l] > clevel1->emin ){ |
if ( clevel1->estrip[j4][m][l] > clevel1->emin ){ |
1766 |
// |
// |
1767 |
Float_t savel1 = clevel1->estrip[j4][m][l]; |
Float_t savel1 = clevel1->estrip[j4][m][l]; |
1768 |
|
// |
1769 |
|
if ( m == 18 && l == 0 ){ |
1770 |
|
if ( debug ) printf(" Resetting plane 18X for variable calculation: view %i plane %i strip %i \n",l,m,j4); |
1771 |
|
clevel1->estrip[j4][m][l] = 0.; // SAVE STRIPS VALUE FOR PLANE 18 X but DO NOT USE IT FOR VARIABLE CALCULATION |
1772 |
|
}; |
1773 |
|
if ( debug ) printf(" HIT STRIP: view %i plane %i strip %i energy: %f \n",l,m,j4,clevel1->estrip[j4][m][l]); |
1774 |
// if ( dexyc[l][m][j4] == 32767. ){ |
// if ( dexyc[l][m][j4] == 32767. ){ |
1775 |
if ( dexyc[l][m][j4] > 32000. ){ |
if ( dexyc[l][m][j4] > 32000. ){ |
1776 |
savel1 += 5000.; |
savel1 += 5000.; |