31 if(
inTrigger())
return StatusCode::SUCCESS;
41 static const SG::Accessor<float> acc_etHotShotWinOverPtLeadTrk(
"etHotShotWinOverPtLeadTrk");
47 std::vector<CaloSampling::CaloSample> EMSamps = {
48 CaloSampling::PreSamplerB, CaloSampling::PreSamplerE,
49 CaloSampling::EMB1, CaloSampling::EME1,
50 CaloSampling::EMB2, CaloSampling::EME2 };
52 std::vector<CaloSampling::CaloSample> HadSamps = {
53 CaloSampling::HEC0, CaloSampling::HEC1, CaloSampling::HEC2, CaloSampling::HEC3,
54 CaloSampling::TileBar0, CaloSampling::TileBar1, CaloSampling::TileBar2,
55 CaloSampling::TileGap1, CaloSampling::TileGap2, CaloSampling::TileGap3,
56 CaloSampling::TileExt0, CaloSampling::TileExt1, CaloSampling::TileExt2};
58 std::vector<CaloSampling::CaloSample> Had1Samps = {
59 CaloSampling::HEC0, CaloSampling::TileBar0, CaloSampling::TileGap1, CaloSampling::TileExt0};
61 float eEMAtEMScaleFixed = 0.;
62 float eHadAtEMScaleFixed = 0.;
63 float eHad1AtEMScaleFixed = 0.;
67 std::vector<xAOD::CaloVertexedTopoCluster> vertexedClusterList = tau.
vertexedClusters();
69 TLorentzVector clusterP4 = vertexedCluster.p4();
71 if( clusterP4.DeltaR(tauAxis) > 0.2 )
continue;
74 for(
auto samp : EMSamps )
75 eEMAtEMScaleFixed += cluster.
eSample(samp);
76 for(
auto samp : HadSamps )
77 eHadAtEMScaleFixed += cluster.
eSample(samp);
78 for(
auto samp : Had1Samps )
79 eHad1AtEMScaleFixed += cluster.
eSample(samp);
81 acc_EMFracFixed(tau) = ( eEMAtEMScaleFixed + eHadAtEMScaleFixed ) != 0. ?
82 eEMAtEMScaleFixed / ( eEMAtEMScaleFixed + eHadAtEMScaleFixed ) :
LOW_NUMBER;
86 acc_absEtaLead(tau) = std::abs( track->eta() );
89 acc_hadLeakFracFixed(tau) = (track->p4().
P() != 0.) ? eHad1AtEMScaleFixed / track->p4().P() :
LOW_NUMBER;
95 float etaCalo = -10.0;
96 float phiCalo = -10.0;
101 ATH_MSG_DEBUG(
"track EM " <<
", eta: " << etaCalo <<
", phi: " << phiCalo );
104 float etHotShotWin = 0.;
106 if( not shotLink.isValid() ){
115 if(std::abs(shot->
eta() - etaCalo) > 0.012 )
continue;
117 if(etShot > etHotShotWin) etHotShotWin = etShot;
119 acc_etHotShotWin(tau) = etHotShotWin;
120 acc_etHotShotWinOverPtLeadTrk(tau) = (track->pt() != 0.) ? etHotShotWin / track->pt() :
LOW_NUMBER;
127 acc_etHotShotWinOverPtLeadTrk(tau) =
LOW_NUMBER;
130 return StatusCode::SUCCESS;
const TauTrack * track(size_t i, TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged, int *container_index=0) const
Get the pointer to a given tauTrack associated with this tau /*container index needed by trackNonCons...