|
ATLAS Offline Software
|
Go to the documentation of this file.
20 #include "fastjet/ClusterSequence.hh"
21 #include "fastjet/ClusterSequenceArea.hh"
22 #include <fastjet/AreaDefinition.hh>
55 ATH_MSG_ERROR(
"JetBalancePFlowJvtTool needs to have its input jet container configured!");
56 return StatusCode::FAILURE;
101 return StatusCode::SUCCESS;
105 std::vector<TVector2> pileupMomenta;
109 if(pileupMomenta.empty()) {
110 ATH_MSG_DEBUG(
"pileupMomenta is empty, this can happen for events with no PU vertices."
111 <<
" bJVT won't be computed for this event and will be set to 0 instead." );
113 bjvtHandle(*jetC) = 1;
114 bjvtRawHandle(*jetC) = 0;
116 return StatusCode::SUCCESS;
120 bjvtHandle(*jetC) = 1;
121 bjvtRawHandle(*jetC) = 0;
124 double bjvt =
getFJVT(jetC,pileupMomenta);
126 bjvtRawHandle(*jetC) = bjvt;
129 return StatusCode::SUCCESS;
134 int pvind,
int vertices)
const {
135 std::vector<TVector2> pileupMomenta;
137 const std::size_t pv_index = (pvind==-1) ?
getPV() : std::size_t(pvind);
143 if(vx->index()==(
size_t)pv_index)
continue;
146 jname += vx->index();
150 ATH_MSG_WARNING(
" Some issue appeared while building the pflow pileup jets for vertex "
151 << vx->index() <<
" (vxType = " << vx->vertexType()<<
" )!" );
152 return pileupMomenta;
172 pileupMomenta.push_back(vertex_met);
173 if(vertices!=-1 &&
int(vx->index())==vertices)
break;
175 return pileupMomenta;
198 bool isqcdpu =
false;
199 bool isstochpu =
true;
201 for(
const xAOD::Jet *tjet : *truthJets) {
202 if (tjet->p4().DeltaR(
jet->p4())<0.3 && tjet->pt()>10
e3) ishs =
true;
203 if (tjet->p4().DeltaR(
jet->p4())<0.6 && tjet->pt()>4
e3) ispu =
false;
208 for(
const xAOD::Jet *itpujet : *itpujets){
209 if (itpujet->p4().DeltaR(
jet->p4())<0.3 && itpujet->pt()>10
e3) isqcdpu =
true;
210 if (itpujet->p4().DeltaR(
jet->p4())<0.6 && itpujet->pt()>10
e3) isstochpu =
false;
212 for(
const xAOD::Jet *ootpujet : *ootpujets){
213 if (ootpujet->p4().DeltaR(
jet->p4())<0.3 && ootpujet->pt()>10
e3) isqcdpu =
true;
214 if (ootpujet->p4().DeltaR(
jet->p4())<0.6 && ootpujet->pt()>10
e3) isstochpu =
false;
222 isHSHandle(*
jet)=ishs;
223 isQCDPUHandle(*
jet)=isqcdpu;
224 isStochPUHandle(*
jet)=isstochpu;
227 return StatusCode::SUCCESS;
std::shared_ptr< xAOD::JetAuxContainer > jetAuxCont
std::shared_ptr< xAOD::JetContainer > jetCont
::StatusCode StatusCode
StatusCode definition for legacy code.
Handle class for adding a decoration to an object.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Class describing a Vertex.
#define ATH_MSG_WARNING(x)