56 |
clevel1 = &clevel1_; |
clevel1 = &clevel1_; |
57 |
clevel2 = &clevel2_; |
clevel2 = &clevel2_; |
58 |
// |
// |
59 |
|
// extern struct FlEventi eventi_; |
60 |
|
// extern struct FlGruppo gruppo_; |
61 |
|
// extern struct FlGruppo2 gruppo2_; |
62 |
|
// extern struct FlGruppo4 gruppo4_; |
63 |
|
// extern struct FlTaglioen taglioen_; |
64 |
|
// extern struct FlAngolo angolo_; |
65 |
|
// extern struct FlWhere where_; |
66 |
|
// extern struct FlGeneral general_; |
67 |
|
// extern struct FlCh ch_; |
68 |
|
// extern struct FlCalofit calofit_; |
69 |
|
// extern struct FlPawcd pawcd_; |
70 |
|
// extern struct FlQuestd questd_; |
71 |
|
// eventi = &eventi_; |
72 |
|
// gruppo = &gruppo_; |
73 |
|
// gruppo2 = &gruppo2_; |
74 |
|
// gruppo4 = &gruppo4_; |
75 |
|
// taglioen = &taglioen_; |
76 |
|
// angolo = &angolo_; |
77 |
|
// where = &where_; |
78 |
|
// general = &general_; |
79 |
|
// ch = &ch_; |
80 |
|
// calofit = &calofit_; |
81 |
|
// pawcd = &pawcd_; |
82 |
|
// questd = &questd_; |
83 |
|
// |
84 |
trkseqno = 0; |
trkseqno = 0; |
85 |
ClearStructs(); |
ClearStructs(); |
86 |
// |
// |
100 |
calopar4 = true; |
calopar4 = true; |
101 |
calopar5 = true; |
calopar5 = true; |
102 |
crosst = true; |
crosst = true; |
103 |
|
mask18 = false; |
104 |
ftcalopar1 = 0; |
ftcalopar1 = 0; |
105 |
ttcalopar1 = 0; |
ttcalopar1 = 0; |
106 |
ftcalopar2 = 0; |
ftcalopar2 = 0; |
1190 |
// |
// |
1191 |
clevel2->nsatstrip = 0.; |
clevel2->nsatstrip = 0.; |
1192 |
Int_t val = 0; |
Int_t val = 0; |
1193 |
Int_t del = 1100; |
Int_t del = 1000; |
1194 |
for (Int_t sec = 0; sec < 4; sec++){ |
for (Int_t sec = 0; sec < 4; sec++){ |
1195 |
for (Int_t dsec = 0; dsec < 7; dsec++){ |
for (Int_t dsec = 0; dsec < 7; dsec++){ |
1196 |
val = (Int_t)de->calselftrig[sec][dsec]; |
val = (Int_t)de->calselftrig[sec][dsec]; |
1199 |
}; |
}; |
1200 |
}; |
}; |
1201 |
val = 0; |
val = 0; |
1202 |
del = 1100; |
del = 1000; |
1203 |
if ( clevel2->trigty != 2. ){ |
if ( clevel2->trigty < 2. ){ |
1204 |
Bool_t ck = false; |
Bool_t ck = false; |
1205 |
for (Int_t sec = 0; sec < 4; sec++){ |
for (Int_t sec = 0; sec < 4; sec++){ |
1206 |
val = (Int_t)de->calselftrig[sec][6]; |
val = (Int_t)de->calselftrig[sec][6]; |
1207 |
del = delay(val); |
del = delay(val); |
1208 |
if ( del < 1100 ){ |
if ( del < 1000 ){ |
1209 |
clevel2->wartrig = 0.; |
clevel2->wartrig = 0.; |
1210 |
clevel2->trigty = 3.; |
clevel2->trigty = 3.; |
1211 |
ck = true; |
ck = true; |
1212 |
break; |
break; |
1213 |
}; |
}; |
1214 |
}; |
}; |
1215 |
if ( !ck ) clevel2->wartrig = 100.; |
// if ( !ck ) clevel2->wartrig = 100.; |
1216 |
} else { |
} else { |
1217 |
Bool_t ck = false; |
Bool_t ck = false; |
1218 |
for (Int_t sec = 0; sec < 4; sec++){ |
for (Int_t sec = 0; sec < 4; sec++){ |
1219 |
val = (Int_t)de->calselftrig[sec][6]; |
val = (Int_t)de->calselftrig[sec][6]; |
1220 |
del = delay(val); |
del = delay(val); |
1221 |
if ( del < 1100 ){ |
if ( del < 1000 ){ |
1222 |
clevel2->wartrig = 0.; |
clevel2->wartrig = 0.; |
1223 |
ck = true; |
ck = true; |
1224 |
}; |
}; |
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 |
// |
// |
1296 |
}; |
}; |
1297 |
clevel2->perr[se] = 0; |
clevel2->perr[se] = 0; |
1298 |
if ( de->perror[se] != 0 ){ |
if ( de->perror[se] != 0 ){ |
1299 |
clevel2->perr[se] = 1; |
clevel2->perr[se] = (Int_t)de->perror[se]; |
1300 |
pe++; |
pe++; |
1301 |
}; |
}; |
1302 |
clevel2->swerr[se] = 0; |
clevel2->swerr[se] = 0; |
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++; |
1752 |
// CALOLEVEL1 CODING AND FILLING |
// CALOLEVEL1 CODING AND FILLING |
1753 |
// |
// |
1754 |
// |
// |
1755 |
// NOTICE: THE FOLLOWING LINE EXCLUDE ALL STRIPS FOR WHICH THE RMS*4 IS GREATER THAN 26 !!! <=============== IMPORTANT! =================> |
// NOTICE: THE FOLLOWING LINE EXCLUDE ALL STRIPS FOR WHICH THE RMS*4 IS GREATER THAN 26 !!! <=============== IMPORTANT! =================> // not true anymore, now it trust parameter files |
1756 |
// |
// |
1757 |
if ( obadmask[l][m][j4] == 1 || clevel1->estrip[j4][m][l] <= clevel1->emin || clevel1->estrip[j4][m][l] <= memin[l][m][j4] || calrms[l][m][j4] > maxrms[l][m] ){ |
if ( obadmask[l][m][j4] == 1 || clevel1->estrip[j4][m][l] <= clevel1->emin || clevel1->estrip[j4][m][l] <= memin[l][m][j4] || calrms[l][m][j4] > maxrms[l][m] || (l==0 && m == 18 && mask18 ) ){ |
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.; |
1912 |
void CaloLevel0::FillCommonVar(CaloLevel1 *c1, CaloLevel2 *ca){ |
void CaloLevel0::FillCommonVar(CaloLevel1 *c1, CaloLevel2 *ca){ |
1913 |
// |
// |
1914 |
ca->good = clevel2->good; |
ca->good = clevel2->good; |
1915 |
if ( clevel2->trigty == 2. ){ |
// if ( clevel2->trigty == 2. ){ |
1916 |
ca->selftrigger = 1; |
// ca->selftrigger = 1; |
1917 |
} else { |
// } else { |
1918 |
ca->selftrigger = 0; |
// ca->selftrigger = 0; |
1919 |
}; |
// }; |
1920 |
// |
// |
1921 |
ca->selftrigger += (Int_t)clevel2->wartrig; |
ca->selftrigger = (Int_t)clevel2->trigty + (Int_t)clevel2->wartrig; |
1922 |
// |
// |
1923 |
memcpy(ca->perr,clevel2->perr,sizeof(clevel2->perr)); |
memcpy(ca->perr,clevel2->perr,sizeof(clevel2->perr)); |
1924 |
memcpy(ca->swerr,clevel2->swerr,sizeof(clevel2->swerr)); |
memcpy(ca->swerr,clevel2->swerr,sizeof(clevel2->swerr)); |