272 bool nohitBLayer(
false);
273 bool nohitInnermostLayer(
false);
274 bool nohitNextToInnermostLayer(
false);
275 bool exphitInnermostLayer(
false);
276 bool exphitNextToInnermostLayer(
false);
278 bool sharedClass(
false);
279 bool blasharedClass(
false);
280 bool innermostsharedClass(
false);
281 bool nexttoinnermostsharedClass(
false);
282 bool pixsharedClass(
false);
283 bool sctsharedClass(
false);
285 bool innermostsplitClass(
false);
286 bool nexttoinnermostsplitClass(
false);
287 bool pixsplitClass(
false);
289 bool pixoutlierClass(
false);
290 bool pixspoiltClass(
false);
296 int gamma_region = -1;
304 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfInnermostPixelLayerHits for TrackGrade!");
306 if (nbs==0) nohitBLayer =
true;
311 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfInnermostPixelLayerHits for TrackGrade!");
313 if (nih==0) nohitInnermostLayer =
true;
316 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfNextToInnermostPixelLayerHits for TrackGrade!");
318 if (nnih==0) nohitNextToInnermostLayer =
true;
323 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve expectInnermostPixelLayerHit for TrackGrade!");
325 if (Enih>0) exphitInnermostLayer=
true;
328 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve expectNextToInnermostPixelLayerHit for TrackGrade!");
330 if (Ennih>0) exphitNextToInnermostLayer=
true;
337 uint8_t nbs=0, nps=0, nss=0;
339 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfBLayerSharedHists for TrackGrade!");
343 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfPixelSharedHists for TrackGrade!");
347 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfSCTSharedHists for TrackGrade!");
352 blasharedClass =
true;
356 pixsharedClass =
true;
360 sctsharedClass =
true;
368 uint8_t nips=0, nnips=0, nps=0, nss=0;
370 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfInnermostPixelLayerSharedHits for TrackGrade!");
374 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfNextToInnermostPixelLayerSharedHits for TrackGrade!");
378 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfPixelSharedHits for TrackGrade!");
382 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfSCTSharedHits for TrackGrade!");
390 innermostsharedClass =
true;
394 nexttoinnermostsharedClass =
true;
398 pixsharedClass =
true;
402 sctsharedClass =
true;
412 uint8_t nips, nnips, nps;
414 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfInnermostPixelLayerSplitHits for TrackGrade!");
418 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfNextToInnermostPixelLayerSplitHits for TrackGrade!");
422 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfPixelSplitHits for TrackGrade!");
427 innermostsplitClass =
true;
431 nexttoinnermostsplitClass =
true;
435 pixsplitClass =
true;
440 double ptTrack = track.pt();
441 double etaTrack = fabs(track.eta());
445 double ptJet = jetMomentum.Pt();
449 std::string ptEtaCategoryName;
458 for (
int i=0;i<ptGradeNumber;i++){
460 if (i<ptGradeNumber-1) {
474 for (
int i=0;i<etaGradeNumber;i++){
476 if (i<etaGradeNumber-1) {
490 std::string nameGrade(
"Good");
493 if (ptBin<ptGradeNumber-1) {
500 if (etaBin<etaGradeNumber-1) {
509 ptEtaCategoryName=nameGrade;
518 else if (sharedClass) {
524 if(pixsharedClass&&(!blasharedClass)) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"PixShared"));
553 if ( nohitInnermostLayer && nohitNextToInnermostLayer ) {
554 if ( exphitInnermostLayer && exphitNextToInnermostLayer ) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"0HitIn0HitNInExp2"));
555 else if ( exphitInnermostLayer && !exphitNextToInnermostLayer ) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"0HitIn0HitNInExpIn"));
556 else if ( !exphitInnermostLayer && exphitNextToInnermostLayer ) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"0HitIn0HitNInExpNIn"));
558 }
else if ( nohitInnermostLayer && !nohitNextToInnermostLayer ) {
561 }
else if ( !nohitInnermostLayer && nohitNextToInnermostLayer ) {
571 if( innermostsharedClass && nexttoinnermostsharedClass ) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"InANDNInShared"));
578 if( innermostsplitClass && nexttoinnermostsplitClass ) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"InANDNInSplit"));
586 uint8_t nih, nnih, nieh, nnieh;
589 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfInnermostPixelLayerHits for TrackGrade!");
592 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfInnermostPixelLayerEndcapHits for TrackGrade!");
594 if ((nih+nieh)==0) nohitInnermostLayer =
true;
597 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfNextToInnermostPixelLayerHits for TrackGrade!");
600 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfNextToInnermostPixelLayerEndcapHits for TrackGrade!");
602 if ((nnih+nnieh)==0) nohitNextToInnermostLayer =
true;
608 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve expectInnermostPixelLayerHit for TrackGrade!");
610 if (Enih>0) exphitInnermostLayer=
true;
613 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve expectNextToInnermostPixelLayerHit for TrackGrade!");
615 if (Ennih>0) exphitNextToInnermostLayer=
true;
621 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfPixelSharedHists for TrackGrade!");
624 ATH_MSG_ERROR(
"#BTAG# Cannot retrieve numberOfSCTSharedHists for TrackGrade!");
630 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfInnermostPixelLayerSharedHits for TrackGrade!");
633 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfNextToInnermostPixelLayerSharedHits for TrackGrade!");
638 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfInnermostPixelLayerOutliers for TrackGrade!");
641 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfNextToInnermostPixelLayerOutliers for TrackGrade!");
643 int notot = nipo + nnipo;
647 ATH_MSG_FATAL(
"#BTAG# Cannot retrieve numberOfPixelSpoiltHits for TrackGrade!");
652 innermostsharedClass =
true;
656 nexttoinnermostsharedClass =
true;
660 pixsharedClass =
true;
664 sctsharedClass =
true;
670 pixoutlierClass =
true;
673 pixspoiltClass =
true;
677 double etaTrack = fabs(track.eta());
678 double ptTrack = track.pt();
679 double thetaTrack=track.theta();
680 if (etaTrack<=1) eta_region = 0;
681 else if (etaTrack>1 && etaTrack<=2) eta_region = 1;
682 else if (etaTrack>2) eta_region = 2;
684 double gamma =1./(ptTrack*sqrt(sin(thetaTrack)));
693 if( nohitInnermostLayer && nohitNextToInnermostLayer) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"A01"));
695 else if ( nohitInnermostLayer && !nohitNextToInnermostLayer ){
700 else if (!nohitInnermostLayer && nohitNextToInnermostLayer){
716 else if(eta_region==1){
718 if( nohitInnermostLayer && nohitNextToInnermostLayer) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"B01"));
720 else if ( nohitInnermostLayer && !nohitNextToInnermostLayer ){
725 else if (!nohitInnermostLayer && nohitNextToInnermostLayer){
741 else if(eta_region==2){
743 if(nohitInnermostLayer && nohitNextToInnermostLayer) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"C01"));
744 else if (nohitInnermostLayer || nohitNextToInnermostLayer) gradeToReturn=
m_trackGradesDefinition.getGrade(std::string(
"C02030405"));
761 if (gradeToReturn==0) {
775 if (gradeToReturn==0) {