@@ -3319,9 +3319,16 @@ void JetContainer::FillJet( const xAOD::IParticle* particle, const xAOD::Vertex*
33193319 float pu, pb, pc, ptau, score;
33203320
33213321 pu=0 ; pb=0 ; pc=0 ;
3322- myBTag->variable <float >(" DL1r" , " pu" , pu);
3323- myBTag->variable <float >(" DL1r" , " pc" , pc);
3324- myBTag->variable <float >(" DL1r" , " pb" , pb);
3322+ std::string actualTagger = " DL1r" ;
3323+ SG ::ConstAccessor<float > pbTaggerAcc_dl1r (actualTagger+" _pb" );
3324+ SG ::ConstAccessor<float > pcTaggerAcc_dl1r (actualTagger+" _pc" );
3325+ SG ::ConstAccessor<float > puTaggerAcc_dl1r (actualTagger+" _pu" );
3326+ if (pbTaggerAcc_dl1r.isAvailable (*jet) && pcTaggerAcc_dl1r.isAvailable (*jet)
3327+ && puTaggerAcc_dl1r.isAvailable (*jet)) {
3328+ pb = pbTaggerAcc_dl1r (*jet);
3329+ pc = pcTaggerAcc_dl1r (*jet);
3330+ pu = puTaggerAcc_dl1r (*jet);
3331+ }
33253332 // FixMe: Retrieve the correct f_c value from the CDI file would be the best approach
33263333 score=log ( pb / (0.018 *pc+0.982 *pu) );
33273334 m_DL1r_pu->push_back (pu);
@@ -3330,19 +3337,33 @@ void JetContainer::FillJet( const xAOD::IParticle* particle, const xAOD::Vertex*
33303337 m_DL1r->push_back ( score );
33313338
33323339 pu=0 ; pb=0 ; pc=0 ;
3333- myBTag->variable <float >(" DL1dv00" , " pu" , pu);
3334- myBTag->variable <float >(" DL1dv00" , " pc" , pc);
3335- myBTag->variable <float >(" DL1dv00" , " pb" , pb);
3340+ actualTagger = " DL1dv00" ;
3341+ SG ::ConstAccessor<float > pbTaggerAcc_dl1dv00 (actualTagger+" _pb" );
3342+ SG ::ConstAccessor<float > pcTaggerAcc_dl1dv00 (actualTagger+" _pc" );
3343+ SG ::ConstAccessor<float > puTaggerAcc_dl1dv00 (actualTagger+" _pu" );
3344+ if (pbTaggerAcc_dl1dv00.isAvailable (*jet) && pcTaggerAcc_dl1dv00.isAvailable (*jet)
3345+ && puTaggerAcc_dl1dv00.isAvailable (*jet)) {
3346+ pb = pbTaggerAcc_dl1dv00 (*jet);
3347+ pc = pcTaggerAcc_dl1dv00 (*jet);
3348+ pu = puTaggerAcc_dl1dv00 (*jet);
3349+ }
33363350 // FixMe: Retrieve the correct f_c value from the CDI file would be the best approach
33373351 score=log ( pb / (0.018 *pc+0.982 *pu) );
33383352 m_DL1dv00_pu->push_back (pu);
33393353 m_DL1dv00_pc->push_back (pc);
33403354 m_DL1dv00_pb->push_back (pb);
33413355 m_DL1dv00->push_back ( score );
33423356 pu=0 ; pb=0 ; pc=0 ;
3343- myBTag->variable <float >(" DL1dv01" , " pu" , pu);
3344- myBTag->variable <float >(" DL1dv01" , " pc" , pc);
3345- myBTag->variable <float >(" DL1dv01" , " pb" , pb);
3357+ actualTagger = " DL1dv01" ;
3358+ SG ::ConstAccessor<float > pbTaggerAcc_dl1dv01 (actualTagger+" _pb" );
3359+ SG ::ConstAccessor<float > pcTaggerAcc_dl1dv01 (actualTagger+" _pc" );
3360+ SG ::ConstAccessor<float > puTaggerAcc_dl1dv01 (actualTagger+" _pu" );
3361+ if (pbTaggerAcc_dl1dv01.isAvailable (*jet) && pcTaggerAcc_dl1dv01.isAvailable (*jet)
3362+ && puTaggerAcc_dl1dv01.isAvailable (*jet)) {
3363+ pb = pbTaggerAcc_dl1dv01 (*jet);
3364+ pc = pcTaggerAcc_dl1dv01 (*jet);
3365+ pu = puTaggerAcc_dl1dv01 (*jet);
3366+ }
33463367 // FixMe: Retrieve the correct f_c value from the CDI file would be the best approach
33473368 score=log ( pb / (0.018 *pc+0.982 *pu) );
33483369 m_DL1dv01_pu->push_back (pu);
@@ -3351,9 +3372,16 @@ void JetContainer::FillJet( const xAOD::IParticle* particle, const xAOD::Vertex*
33513372 m_DL1dv01->push_back ( score );
33523373
33533374 pu=0 ; pb=0 ; pc=0 ;
3354- myBTag->variable <float >(" GN120220509" , " pu" , pu);
3355- myBTag->variable <float >(" GN120220509" , " pc" , pc);
3356- myBTag->variable <float >(" GN120220509" , " pb" , pb);
3375+ actualTagger = " GN120220509" ;
3376+ SG ::ConstAccessor<float > pbTaggerAcc_GN120220509 (actualTagger+" _pb" );
3377+ SG ::ConstAccessor<float > pcTaggerAcc_GN120220509 (actualTagger+" _pc" );
3378+ SG ::ConstAccessor<float > puTaggerAcc_GN120220509 (actualTagger+" _pu" );
3379+ if (pbTaggerAcc_GN120220509.isAvailable (*jet) && pcTaggerAcc_GN120220509.isAvailable (*jet)
3380+ && puTaggerAcc_GN120220509.isAvailable (*jet)) {
3381+ pb = pbTaggerAcc_GN120220509 (*jet);
3382+ pc = pcTaggerAcc_GN120220509 (*jet);
3383+ pu = puTaggerAcc_GN120220509 (*jet);
3384+ }
33573385 // FixMe: Retrieve the correct f_c value from the CDI file would be the best approach
33583386 score=log ( pb / (0.05 *pc+0.95 *pu) ); // GN1 uses a different f_c value than DL1d which is 0.05
33593387 m_GN1_pu->push_back (pu);
@@ -3362,9 +3390,16 @@ void JetContainer::FillJet( const xAOD::IParticle* particle, const xAOD::Vertex*
33623390 m_GN1->push_back ( score );
33633391
33643392 pu=0 ; pb=0 ; pc=0 ;
3365- myBTag->variable <float >(" GN2v00LegacyWP" , " pu" , pu);
3366- myBTag->variable <float >(" GN2v00LegacyWP" , " pc" , pc);
3367- myBTag->variable <float >(" GN2v00LegacyWP" , " pb" , pb);
3393+ actualTagger = " GN2v00LegacyWP" ;
3394+ SG ::ConstAccessor<float > pbTaggerAcc_GN2v00LegacyWP (actualTagger+" _pb" );
3395+ SG ::ConstAccessor<float > pcTaggerAcc_GN2v00LegacyWP (actualTagger+" _pc" );
3396+ SG ::ConstAccessor<float > puTaggerAcc_GN2v00LegacyWP (actualTagger+" _pu" );
3397+ if (pbTaggerAcc_GN2v00LegacyWP.isAvailable (*jet) && pcTaggerAcc_GN2v00LegacyWP.isAvailable (*jet)
3398+ && puTaggerAcc_GN2v00LegacyWP.isAvailable (*jet)) {
3399+ pb = pbTaggerAcc_GN2v00LegacyWP (*jet);
3400+ pc = pcTaggerAcc_GN2v00LegacyWP (*jet);
3401+ pu = puTaggerAcc_GN2v00LegacyWP (*jet);
3402+ }
33683403 // FixMe: Retrieve the correct f_c value from the CDI file would be the best approach
33693404 score=log ( pb / (0.10 *pc+0.90 *pu) ); // GN2 uses a different f_c value than DL1d which is 0.01
33703405 m_GN2v00LegacyWP_pu->push_back (pu);
@@ -3373,9 +3408,16 @@ void JetContainer::FillJet( const xAOD::IParticle* particle, const xAOD::Vertex*
33733408 m_GN2v00LegacyWP->push_back ( score );
33743409
33753410 pu=0 ; pb=0 ; pc=0 ;
3376- myBTag->variable <float >(" GN2v00NewAliasWP" , " pu" , pu);
3377- myBTag->variable <float >(" GN2v00NewAliasWP" , " pc" , pc);
3378- myBTag->variable <float >(" GN2v00NewAliasWP" , " pb" , pb);
3411+ actualTagger = " GN2v00NewAliasWP" ;
3412+ SG ::ConstAccessor<float > pbTaggerAcc_GN2v00NewAliasWP (actualTagger+" _pb" );
3413+ SG ::ConstAccessor<float > pcTaggerAcc_GN2v00NewAliasWP (actualTagger+" _pc" );
3414+ SG ::ConstAccessor<float > puTaggerAcc_GN2v00NewAliasWP (actualTagger+" _pu" );
3415+ if (pbTaggerAcc_GN2v00NewAliasWP.isAvailable (*jet) && pcTaggerAcc_GN2v00NewAliasWP.isAvailable (*jet)
3416+ && puTaggerAcc_GN2v00NewAliasWP.isAvailable (*jet)) {
3417+ pb = pbTaggerAcc_GN2v00NewAliasWP (*jet);
3418+ pc = pcTaggerAcc_GN2v00NewAliasWP (*jet);
3419+ pu = puTaggerAcc_GN2v00NewAliasWP (*jet);
3420+ }
33793421 // FixMe: Retrieve the correct f_c value from the CDI file would be the best approach
33803422 score=log ( pb / (0.10 *pc+0.90 *pu) ); // GN2 uses a different f_c value than DL1d which is 0.01
33813423 m_GN2v00NewAliasWP_pu->push_back (pu);
@@ -3384,18 +3426,25 @@ void JetContainer::FillJet( const xAOD::IParticle* particle, const xAOD::Vertex*
33843426 m_GN2v00NewAliasWP->push_back ( score );
33853427
33863428 pu=0 ; pb=0 ; pc=0 ; ptau=0 ;
3387- myBTag->variable <float >(" GN2v01" , " pu" , pu);
3388- myBTag->variable <float >(" GN2v01" , " pc" , pc);
3389- myBTag->variable <float >(" GN2v01" , " pb" , pb);
3390- myBTag->variable <float >(" GN2v01" , " ptau" , ptau);
3429+ actualTagger = " GN2v01" ;
3430+ SG ::ConstAccessor<float > pbTaggerAcc_GN2v01 (actualTagger+" _pb" );
3431+ SG ::ConstAccessor<float > pcTaggerAcc_GN2v01 (actualTagger+" _pc" );
3432+ SG ::ConstAccessor<float > puTaggerAcc_GN2v01 (actualTagger+" _pu" );
3433+ SG ::ConstAccessor<float > ptauTaggerAcc_GN2v01 (actualTagger+" _ptau" );
3434+ if (pbTaggerAcc_GN2v01.isAvailable (*jet) && pcTaggerAcc_GN2v01.isAvailable (*jet)
3435+ && puTaggerAcc_GN2v01.isAvailable (*jet) && ptauTaggerAcc_GN2v01.isAvailable (*jet)) {
3436+ pb = pbTaggerAcc_GN2v01 (*jet);
3437+ pc = pcTaggerAcc_GN2v01 (*jet);
3438+ pu = puTaggerAcc_GN2v01 (*jet);
3439+ ptau = ptauTaggerAcc_GN2v01 (*jet);
3440+ }
33913441 // FixMe: Retrieve the correct f_c value from the CDI file would be the best approach
33923442 score=log ( pb / (0.20 *pc+0.01 *ptau+0.79 *pu) ); // GN2v01 uses a different f_c value than DL1dv01 which is 0.018
33933443 m_GN2v01_pu->push_back (pu);
33943444 m_GN2v01_pc->push_back (pc);
33953445 m_GN2v01_pb->push_back (pb);
33963446 m_GN2v01_ptau->push_back (ptau);
33973447 m_GN2v01->push_back ( score );
3398-
33993448 if (m_infoSwitch.m_jetFitterDetails ) {
34003449
34013450 static SG ::AuxElement::ConstAccessor< int > jf_nVTXAcc (" JetFitter_nVTX" );
0 commit comments