45 std::vector<QString> headerID(3), barrelID, endcapID, generalID,
46 barrelData, endcapData, generalData;
49 headerID[0]=QString(
"Barrel");
50 headerID[1]=QString(
"Endcap");
51 headerID[2]=QString(
"General");
58 std::vector<const MuonFeatureDetails*>::const_iterator itMfd;
62 int id = (*itMfd)->id();
66 int systemID = (*itMfd)->roi_system();
69 bool isL1hitThere =
false;
70 bool isL1emuOkForTriggerPlane =
false;
72 int nRPC = (*itMfd)->pad_hit_onlineId().size();
74 int nTGCMidRho = (*itMfd)->tgc_Mid_rho_N();
75 int nTGCMidPhi = (*itMfd)->tgc_Mid_phi_N();
77 float TGCMidRhoChi2 = (*itMfd)->tgc_Mid_rho_chi2();
78 float TGCMidPhiChi2 = (*itMfd)->tgc_Mid_phi_chi2();
82 float rpc1_z = (*itMfd)->rpc1_z();
83 float rpc2_z = (*itMfd)->rpc2_z();
84 const float NO_VALUE = 99999;
85 if(nRPC!=0) isL1hitThere =
true;
87 isL1emuOkForTriggerPlane =
true;
91 barrelID.push_back(
"RPC-1: Z");
92 barrelData.push_back(QString::number(rpc1_z));
94 barrelID.push_back(
"RPC-2: Z");
95 barrelData.push_back(QString::number(rpc2_z));
97 barrelID.push_back(
"RPC: nHits");
98 barrelData.push_back(QString::number(nRPC));
100 const float NO_VALUE = -99999;
101 if(nTGCMidRho!=0 && nTGCMidPhi!=0) isL1hitThere =
true;
102 if(fabs(TGCMidRhoChi2 - NO_VALUE) >
ZERO_LIMIT && fabs(TGCMidPhiChi2 - NO_VALUE) >
ZERO_LIMIT) isL1emuOkForTriggerPlane =
true;
105 endcapID.push_back(
"TGC Mid nHits: Rho");
106 endcapData.push_back(QString::number(nTGCMidRho));
108 endcapID.push_back(
"TGC Mid nHits: Phi");
109 endcapData.push_back(QString::number(nTGCMidPhi));
111 endcapID.push_back(
"TGC Mid Chi2: Rho");
112 endcapData.push_back(QString::number(TGCMidRhoChi2));
114 endcapID.push_back(
"TGC Mid Chi2: Phi");
115 endcapData.push_back(QString::number(TGCMidPhiChi2));
119 std::vector<float> mdt_tube_residual = (*itMfd)->mdt_tube_residual();
120 std::vector<float> mdt_tube_r = (*itMfd)->mdt_tube_r();
121 std::vector<float> mdt_tube_z = (*itMfd)->mdt_tube_z();
124 int n_mdt_hits_middle = 0;
128 for(
int i_tube=0; i_tube<(int)mdt_tube_residual.size(); i_tube++) {
130 float res = mdt_tube_residual[i_tube];
131 float r = mdt_tube_r[i_tube];
135 if (
r<650) { imr=0; }
136 else if(
r<850) { imr=1; }
140 tube = (QString::number(i_tube));
141 barrelID.push_back(QString(
"muFast_MDT_Inn_residual_barrel Tube No-")+tube);
142 barrelData.push_back(QString::number(
res));
152 tube = (QString::number(i_tube));
153 barrelID.push_back(QString(
"muFast_MDT_Mid_residual_barrel Tube No-")+tube);
154 barrelData.push_back(QString::number(
res));
163 tube = (QString::number(i_tube));
164 barrelID.push_back(QString(
"muFast_MDT_Out_residual_barrel tube No-")+tube);
165 barrelData.push_back(QString::number(
res));
176 for(
int i_tube=0; i_tube<(int)mdt_tube_residual.size(); i_tube++) {
178 float z = mdt_tube_z[i_tube];
181 if ( fabs(
z) < 10000 ) { imr=0; }
182 else if( fabs(
z) < 15000 ) { imr=1; }
186 tube = (QString::number(i_tube));
187 endcapID.push_back(QString(
"muFast_MDT_Inn_residual_endcap Tube No-")+tube);
188 endcapData.push_back(QString::number(TGCMidRhoChi2));
198 tube = (QString::number(i_tube));
199 endcapID.push_back(QString(
"muFast_MDT_Mid_residual_endcap Tube No-")+tube);
200 endcapData.push_back(QString::number(TGCMidRhoChi2));
207 }
else if(imr == 2) {
208 tube = (QString::number(i_tube));
209 endcapID.push_back(QString(
"muFast_MDT_Out_residual_endcap Tube No-" )+tube);
210 endcapData.push_back(QString::number(TGCMidRhoChi2));
222 bool isMDThitThereForTriggerPlane =
false;
223 bool isMDTFitOkForTriggerPlane =
false;
224 bool isMDTFitOkFor2Plane =
false;
226 int nMDT = (*itMfd)->mdt_onlineId().size();
228 float MDTInnChi2 = (*itMfd)->mdt_Inner_fit_chi();
229 float MDTMidChi2 = (*itMfd)->mdt_Middle_fit_chi();
230 float MDTOutChi2 = (*itMfd)->mdt_Outer_fit_chi();
232 const float MDT_CHI2_NO_VALUE = -99999;
234 if(n_mdt_hits_middle != 0) isMDThitThereForTriggerPlane =
true;
235 if(fabs(MDTMidChi2-MDT_CHI2_NO_VALUE) >
ZERO_LIMIT) isMDTFitOkForTriggerPlane =
true;
236 if(isMDTFitOkForTriggerPlane && (fabs(MDTInnChi2 - MDT_CHI2_NO_VALUE) >
ZERO_LIMIT || fabs(MDTOutChi2 - MDT_CHI2_NO_VALUE) >
ZERO_LIMIT) ) {
237 isMDTFitOkFor2Plane =
true;
241 int isL1hitTheret, isL1emuOkForTriggerPlanet, isMDThitTheret, isMDTFitOkForTriggerPlanet, isMDTFitOkFor2Planet;
243 if(isL1hitThere==
true) isL1hitTheret=1;
244 else isL1hitTheret=0;
246 if(isL1emuOkForTriggerPlane==
true) isL1emuOkForTriggerPlanet=1;
247 else isL1emuOkForTriggerPlanet=0;
249 if(isMDThitThereForTriggerPlane==
true) isMDThitTheret=1;
250 else isMDThitTheret=0;
252 if(isMDTFitOkForTriggerPlane==
true) isMDTFitOkForTriggerPlanet=1;
253 else isMDTFitOkForTriggerPlanet=0;
255 if(isMDTFitOkFor2Plane==
true) isMDTFitOkFor2Planet=1;
256 else isMDTFitOkFor2Planet=0;
259 generalID.push_back(
"isL1hitThere");
260 generalData.push_back(QString::number(isL1hitTheret));
262 generalID.push_back(
"L1emuOkForTriggerPlane");
263 generalData.push_back(QString::number(isL1emuOkForTriggerPlanet));
265 generalID.push_back(
"isMDThitThere");
266 generalData.push_back(QString::number(isMDThitTheret));
268 generalID.push_back(
"FitOkForTriggerPlane");
269 generalData.push_back(QString::number(isMDTFitOkForTriggerPlanet));
271 generalID.push_back(
"FitOkFor2Plane");
272 generalData.push_back(QString::number(isMDTFitOkFor2Planet));
276 barrelID.push_back(
"muFast_RPC_Pad_N" );
277 barrelData.push_back(QString::number(nRPC));
279 barrelID.push_back(
"muFast_MDT_Inn_fit_chi2_barrel");
280 barrelData.push_back(QString::number(MDTInnChi2));
282 barrelID.push_back(
"muFast_MDT_Mid_fit_chi2_barrel");
283 barrelData.push_back(QString::number(MDTMidChi2));
285 barrelID.push_back(
"muFast_MDT_Out_fit_chi2_barrel");
286 barrelData.push_back(QString::number(MDTOutChi2));
289 endcapID.push_back(
"muFast_TGC_Mid_rho_chi2");
290 endcapData.push_back(QString::number(TGCMidRhoChi2));
292 endcapID.push_back(
"muFast_TGC_Mid_phi_chi2" );
293 endcapData.push_back(QString::number(TGCMidPhiChi2));
295 endcapID.push_back(
"muFast_MDT_Inn_fit_chi2_endcap");
296 endcapData.push_back(QString::number(MDTInnChi2));
298 endcapID.push_back(
"FitOkFor2Plane");
299 endcapData.push_back(QString::number(MDTMidChi2));
301 endcapID.push_back(
"muFast_MDT_Out_fit_chi2_endcap");
302 endcapData.push_back(QString::number(MDTOutChi2));
304 endcapID.push_back(
"muFast_MDT_N_endcap");
305 endcapData.push_back(QString::number(nMDT));
311 if(
int(headerID.size())==3) {
312 if(
int(barrelID.size())==
int(barrelData.size()) &&
int(endcapID.size())==
int(endcapData.size()) &&
int(generalID.size())==
int(generalData.size())) {
313 if(
int(barrelData.size())!=0 ||
int(endcapData.size())!=0 ||
int(generalData.size())) {
327 log_warning(
"processitem(): No Barrel, Endcap or General data found.");
330 log_error(
"processitem(): ID-Data size matching failed!");
333 log_error(
"processitem(): incorrect headerID size!");