31 if(
inTrigger())
return StatusCode::SUCCESS;
38 static const SG::Accessor<float> acc_etHotShotWinOverPtLeadTrk(
"etHotShotWinOverPtLeadTrk");
44 std::vector<CaloSampling::CaloSample> EMSamps = {
45 CaloSampling::PreSamplerB, CaloSampling::PreSamplerE,
46 CaloSampling::EMB1, CaloSampling::EME1,
47 CaloSampling::EMB2, CaloSampling::EME2 };
49 std::vector<CaloSampling::CaloSample> HadSamps = {
50 CaloSampling::HEC0, CaloSampling::HEC1, CaloSampling::HEC2, CaloSampling::HEC3,
51 CaloSampling::TileBar0, CaloSampling::TileBar1, CaloSampling::TileBar2,
52 CaloSampling::TileGap1, CaloSampling::TileGap2, CaloSampling::TileGap3,
53 CaloSampling::TileExt0, CaloSampling::TileExt1, CaloSampling::TileExt2};
55 std::vector<CaloSampling::CaloSample> Had1Samps = {
56 CaloSampling::HEC0, CaloSampling::TileBar0, CaloSampling::TileGap1, CaloSampling::TileExt0};
58 float eEMAtEMScaleFixed = 0.;
59 float eHadAtEMScaleFixed = 0.;
60 float eHad1AtEMScaleFixed = 0.;
64 std::vector<xAOD::CaloVertexedTopoCluster> vertexedClusterList = tau.
vertexedClusters();
66 TLorentzVector clusterP4 = vertexedCluster.p4();
68 if( clusterP4.DeltaR(tauAxis) > 0.2 )
continue;
71 for(
auto samp : EMSamps )
72 eEMAtEMScaleFixed += cluster.
eSample(samp);
73 for(
auto samp : HadSamps )
74 eHadAtEMScaleFixed += cluster.
eSample(samp);
75 for(
auto samp : Had1Samps )
76 eHad1AtEMScaleFixed += cluster.
eSample(samp);
78 acc_EMFracFixed(tau) = ( eEMAtEMScaleFixed + eHadAtEMScaleFixed ) != 0. ?
79 eEMAtEMScaleFixed / ( eEMAtEMScaleFixed + eHadAtEMScaleFixed ) :
LOW_NUMBER;
83 acc_absEtaLead(tau) = std::abs( track->eta() );
86 acc_hadLeakFracFixed(tau) = (track->p4().
P() != 0.) ? eHad1AtEMScaleFixed / track->p4().P() :
LOW_NUMBER;
92 float etaCalo = -10.0;
93 float phiCalo = -10.0;
98 ATH_MSG_DEBUG(
"track EM " <<
", eta: " << etaCalo <<
", phi: " << phiCalo );
101 float etHotShotWin = 0.;
103 if( not shotLink.isValid() ){
112 if(std::abs(shot->
eta() - etaCalo) > 0.012 )
continue;
114 if(etShot > etHotShotWin) etHotShotWin = etShot;
116 acc_etHotShotWin(tau) = etHotShotWin;
117 acc_etHotShotWinOverPtLeadTrk(tau) = (track->pt() != 0.) ? etHotShotWin / track->pt() :
LOW_NUMBER;
124 acc_etHotShotWinOverPtLeadTrk(tau) =
LOW_NUMBER;
127 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...