ATLAS Offline Software
Loading...
Searching...
No Matches
JetBalancePFlowJvtTool Class Reference

#include <JetBalancePFlowJvtTool.h>

Inheritance diagram for JetBalancePFlowJvtTool:
Collaboration diagram for JetBalancePFlowJvtTool:

Public Member Functions

 JetBalancePFlowJvtTool (const std::string &name)
 Constructor with parameters:
virtual ~JetBalancePFlowJvtTool ()
 Destructor:
virtual StatusCode initialize () override
 Dummy implementation of the initialisation function.
virtual StatusCode decorate (const xAOD::JetContainer &jetCont) const override
 Decorate a jet collection without otherwise modifying it.
bool isQCDPUJet (const xAOD::Jet *jet) const
virtual std::vector< TVector2 > calculateVertexMomenta (const xAOD::JetContainer *jets, int pvind, int vertices) const override
StatusCode tagTruth (const xAOD::JetContainer *jets, const xAOD::JetContainer *truthJets, const xAOD::JetContainer *itpujets, const xAOD::JetContainer *ootpujets)
float getFJVT (const xAOD::Jet *jet, const std::vector< TVector2 > &pileupMomenta) const
bool isForwardJet (const xAOD::Jet *jet) const
bool isCentralJet (const xAOD::Jet *jet) const
StatusCode tagTruth (const xAOD::JetContainer *jets, const xAOD::JetContainer *truthJets)
pflow::puJets buildPFlowPUjets (const xAOD::Vertex &vx) const
bool hasCloseByHSjet (const xAOD::Jet *jet, const xAOD::JetContainer *pjets) const
double getRpt (const xAOD::Jet *jet) const
fastjet::PseudoJet pfoToPseudoJet (const xAOD::PFO *pfo, const CP::PFO_JetMETConfig_charge &theCharge, const xAOD::Vertex *vx) const
fastjet::PseudoJet feToPseudoJet (const xAOD::FlowElement *fe, const CP::PFO_JetMETConfig_charge &theCharge, const xAOD::Vertex *vx) const
std::size_t getPV () const
virtual void print () const
 Print the state of the tool.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
virtual StatusCode modify (xAOD::JetContainer &jets) const override final
 Concrete implementation of the function inherited from IJetModifier.
Additional helper functions, not directly mimicking Athena
template<class T>
const T * getProperty (const std::string &name) const
 Get one of the tool's properties.
const std::string & msg_level_name () const __attribute__((deprecated))
 A deprecated function for getting the message level's name.
const std::string & getName (const void *ptr) const
 Get the name of an object that is / should be in the event store.
SG::sgkey_t getKey (const void *ptr) const
 Get the (hashed) key of an object that is in the event store.

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Protected Attributes

Gaudi::Property< float > m_QCDPUMinPt {this, "QCDPUMinPt", 20e3, "Minimum pt cut value for central PU jets contributing in the missing momentum calculation"}
Gaudi::Property< float > m_QCDPUMaxPt {this, "QCDPUMaxPt", -1, "Maximum pt cut value for central PU jets contributing in the missing momentum calculation. If -1 no threshold is applied"}
SG::WriteDecorHandleKey< xAOD::JetContainerm_bjvtKey {this, "BjvtName", "passOnlyBJVT", "Decorator for passing bJVT threshold (tight or loose)"}
SG::WriteDecorHandleKey< xAOD::JetContainerm_bjvtRawKey {this, "BjvtRawName", "bJvt", "Decorator for raw bJVT variable"}
SG::WriteDecorHandleKey< xAOD::JetContainerm_isQCDPUKey {this, "isQCDPUName", "isJvtQCDPU", "SG key for output isJVTQCDPU decoration"}
SG::WriteDecorHandleKey< xAOD::JetContainerm_isStochPUKey {this, "isStochPUName", "isJvtStochPU", "SG key for output isJVTStochPU decoration"}
float m_bjvtThresh
SG::ReadHandleKey< jet::TrackVertexAssociationm_tvaKey {this, "TrackVertexAssociation", "", "Input track-vertex association"}
Gaudi::Property< std::string > m_jetContainerName {this, "JetContainer", "", "SG key for the input jet container"}
Gaudi::Property< std::string > m_jetsName {this, "jetsName", "AntiKt4PUPFlowJets", "Container name for the output reconstructed PU jets"}
Gaudi::Property< std::string > m_jetchargedp4 {this, "jetchargedp4", "JetChargedScaleMomentum", "Name of the jet charged momentum 4-vector"}
Gaudi::Property< bool > m_isdata {this, "isdata", false, "True if data"}
Gaudi::Property< int > m_pvind {this, "pvind", -1, "Hard-Scatter primary vertex index of the event. If -1 it will be automatically retrieved from the event"}
Gaudi::Property< int > m_vertices {this, "vertices", 10, "Number of vertices for which the missing momentum is calculated"}
Gaudi::Property< bool > m_includePV {this, "includePV", false, "Flag to include jets and tracks associated to PV in the calculation"}
Gaudi::Property< double > m_etaThresh {this, "etaThresh", 2.5, "Maximum eta value for considering a jet as central"}
Gaudi::Property< double > m_forwardMinPt {this, "forwardMinPt", 18e3, "Minimum forward jet pt"}
Gaudi::Property< double > m_forwardMaxPt {this, "forwardMaxPt", -1, "Maximum forward jet pt. If -1 no threshold is applied"}
Gaudi::Property< double > m_centerMinPt {this, "centralMinPt", 20e3, "Minimum central jet pt"}
Gaudi::Property< double > m_centerMaxPt {this, "centralMaxPt", -1, "Maximum central jet pt. If -1 no threshold is applied"}
Gaudi::Property< double > m_fjvtThresh {this, "fjvtThresh", 15e3, "fjvt threshold value"}
Gaudi::Property< double > m_rptCut {this, "rptCut", 0.1, "Rpt cut value for central PU jets contributing in the missing momentum calculation"}
Gaudi::Property< double > m_jvtCut {this, "jvtCut", 0.2, "JVT threshold value for considering a central PU jet as HS"}
Gaudi::Property< double > m_dzCut {this, "dzCut", 2.0, "Dz=z=-z0 cut for pfo objects participating in the HS vertex jet reco"}
Gaudi::Property< double > m_maxRap {this, "maxRap", 2.5, "Maximum rapidity value in fastjet::AreaDefinition"}
Gaudi::Property< double > m_neutMaxRap {this, "neutMaxRap", 2.5, "Maximum rapidity value for neutral pfos participating in jet reco"}
Gaudi::Property< float > m_weight {this, "weight", 0, "PFO weight value"}
Gaudi::Property< bool > m_tightOP {this, "tightOP", false, "If true a tight fjvt threshold value is applied"}
SG::ReadHandleKey< xAOD::VertexContainerm_vxContKey {this, "verticesName", "PrimaryVertices", "Container name of vertices to be retrieved"}
SG::ReadHandleKey< xAOD::PFOContainerm_PFOKey {this, "PFOName", "CHSParticleFlowObjects", "SG Key for CHS PFO Container"}
SG::ReadHandleKey< xAOD::FlowElementContainerm_FEKey {this, "FEName", "", "SG Key for CHS FlowElement Container (overrides PFO if not empty)"}
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey {"EventInfo"}
SG::ReadDecorHandleKey< xAOD::JetContainerm_passJvtKey {this, "passJvtName", "NNJvtPass", "SG key for output pass-JVT decoration"}
SG::ReadDecorHandleKey< xAOD::PFOm_orKey {this, "ORName", "", "OR label"}
SG::ReadDecorHandleKey< xAOD::FlowElementm_orFEKey {this, "ORNameFE", "", "OR label"}
SG::WriteDecorHandleKey< xAOD::JetContainerm_fjvtKey {this, "FjvtName", "passOnlyFJVT", "Decorator for passing fJVT threshold (tight or loose)"}
SG::WriteDecorHandleKey< xAOD::JetContainerm_fjvtRawKey {this, "FjvtRawName", "fJvt", "Decorator for raw fJVT variable"}
SG::WriteDecorHandleKey< xAOD::JetContainerm_isHSKey {this, "isHSName", "isJVTHS", "SG key for output isJVTHS decoration"}
SG::WriteDecorHandleKey< xAOD::JetContainerm_isPUKey {this, "isPUName", "isJvtPU", "SG key for output isJVTPU decoration"}
ToolHandle< CP::WeightPFOToolm_wpfotool {this,"WeightPFOTool", "", "Weight PFO tool name"}
ToolHandle< IJetCalibrationToolm_pfoJES {this,"JetCalibrationTool", "", "Jet calibration tool name"}
Gaudi::Property< bool > m_suppressInputDependence {this, "SuppressInputDependence", false}

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 94 of file JetBalancePFlowJvtTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ JetBalancePFlowJvtTool()

JetBalancePFlowJvtTool::JetBalancePFlowJvtTool ( const std::string & name)

Constructor with parameters:

Definition at line 33 of file JetBalancePFlowJvtTool.cxx.

33 :
35 m_bjvtThresh = 0;
36 }
JetForwardPFlowJvtTool(const std::string &name)
Constructor with parameters:

◆ ~JetBalancePFlowJvtTool()

JetBalancePFlowJvtTool::~JetBalancePFlowJvtTool ( )
virtualdefault

Destructor:

Member Function Documentation

◆ buildPFlowPUjets()

pflow::puJets JetForwardPFlowJvtTool::buildPFlowPUjets ( const xAOD::Vertex & vx) const
inherited

Definition at line 192 of file JetForwardPFlowJvtTool.cxx.

192 {
193 pflow::puJets pu_jets;
194 const std::size_t pv_index = (m_pvind==-1) ? getPV() : std::size_t (m_pvind);
195
196 std::vector<fastjet::PseudoJet> input_pfo;
197 std::set<int> charged_pfo;
198
199 SG::ReadHandle<jet::TrackVertexAssociation> tvaHandle(m_tvaKey);
200
201 if (!tvaHandle.isValid()){
202 ATH_MSG_ERROR("Could not retrieve the TrackVertexAssociation: "
203 << m_tvaKey.key());
204 return pu_jets;
205 }
206
207 if(!m_FEKey.empty()){
208 SG::ReadHandle<xAOD::FlowElementContainer> FlowElementHandle(m_FEKey);
209
210 for(const xAOD::FlowElement* fe : *FlowElementHandle){
211 if (!m_orFEKey.key().empty()){
212 SG::ReadDecorHandle<xAOD::FlowElement, char> orHandle(m_orFEKey);
213 if (!orHandle(*fe)) continue;
214 }
215 if (fe->isCharged()) {
216 const xAOD::TrackParticle* track = dynamic_cast<const xAOD::TrackParticle*>(fe->chargedObject(0));
217
218 if (vx.index()==pv_index && std::abs((vx.z()-track->z0())*sin(track->theta()))>m_dzCut)
219 continue;
220 if (vx.index()!=pv_index
221 && (!tvaHandle->associatedVertex(track)
222 || vx.index()!=tvaHandle->associatedVertex(track)->index())
223 ) continue;
224 input_pfo.push_back(feToPseudoJet(fe, CP::charged, &vx) );
225 charged_pfo.insert(fe->index());
226 }
227 else if (std::abs(fe->eta())<m_neutMaxRap && !fe->isCharged() && fe->e()>0)
228 {
229 input_pfo.push_back(feToPseudoJet(fe, CP::neutral, &vx) );
230 }
231 }
232 }
233 else{
234 SG::ReadHandle<xAOD::PFOContainer> PFOHandle(m_PFOKey);
235
236 for(const xAOD::PFO* pfo : *PFOHandle){
237 if (!m_orKey.key().empty()){
238 SG::ReadDecorHandle<xAOD::PFO, char> orHandle(m_orKey);
239 if (!orHandle(*pfo)) continue;
240 }
241 if (pfo->isCharged()) {
242 if (vx.index()==pv_index && std::abs((vx.z()-pfo->track(0)->z0())*sin(pfo->track(0)->theta()))>m_dzCut)
243 continue;
244 if (vx.index()!=pv_index
245 && (!tvaHandle->associatedVertex(pfo->track(0))
246 || vx.index()!=tvaHandle->associatedVertex(pfo->track(0))->index())
247 ) continue;
248 input_pfo.push_back(pfoToPseudoJet(pfo, CP::charged, &vx) );
249 charged_pfo.insert(pfo->index());
250 }
251 else if (std::abs(pfo->eta())<m_neutMaxRap && !pfo->isCharged() && pfo->eEM()>0)
252 {
253 input_pfo.push_back(pfoToPseudoJet(pfo, CP::neutral, &vx) );
254 }
255 }
256 }
257
258 std::shared_ptr<xAOD::JetContainer> vertjets = std::make_shared<xAOD::JetContainer>();
259 std::shared_ptr<xAOD::JetAuxContainer> vertjetsAux = std::make_shared<xAOD::JetAuxContainer>();
260
261 vertjets->setStore(vertjetsAux.get());
262 TString newname = m_jetsName.value();
263 newname += vx.index();
264
265 // Use run/event number as random number seeds.
266 std::vector<int> seeds;
267 auto evtInfoHandle = SG::makeHandle(m_eventInfoKey);
268 if (!evtInfoHandle.isValid())
269 {
270 ATH_MSG_ERROR("Unable to retrieve event info");
271 return pu_jets;
272 }
273 JetClustererHelper::seedsFromEventInfo(evtInfoHandle.cptr(), seeds);
274
275 fastjet::JetDefinition jet_def(fastjet::antikt_algorithm,0.4);
276 fastjet::AreaDefinition area_def(fastjet::active_area_explicit_ghosts,
277 fastjet::GhostedAreaSpec(fastjet::SelectorAbsRapMax(m_maxRap)));
278 area_def = area_def.with_fixed_seed(seeds);
279 fastjet::ClusterSequenceArea clust_pfo(input_pfo,jet_def,area_def);
280 std::vector<fastjet::PseudoJet> inclusive_jets = sorted_by_pt(clust_pfo.inclusive_jets(5000.));
281
282 for (size_t i = 0; i < inclusive_jets.size(); i++) {
283 xAOD::Jet* jet= new xAOD::Jet();
284 xAOD::JetFourMom_t tempjetp4(inclusive_jets[i].pt(),
285 inclusive_jets[i].eta(),
286 inclusive_jets[i].phi(),
287 inclusive_jets[i].m());
288 xAOD::JetFourMom_t newArea(inclusive_jets[i].area_4vector().perp(),
289 inclusive_jets[i].area_4vector().eta(),
290 inclusive_jets[i].area_4vector().phi(),
291 inclusive_jets[i].area_4vector().m());
292 vertjets->push_back(jet);
293 jet->setJetP4(tempjetp4);
294 jet->setJetP4("JetConstitScaleMomentum",tempjetp4);
295 jet->setJetP4("JetPileupScaleMomentum",tempjetp4);
296 jet->setAttribute("ActiveArea4vec",newArea);
297 jet->setAttribute("DetectorEta",jet->eta());
298 std::vector<fastjet::PseudoJet> constituents = inclusive_jets[i].constituents();
299 float chargedpart = 0;
300 for (size_t j = 0; j < constituents.size(); j++) {
301 if (charged_pfo.count(constituents[j].user_index())>=1) {
302 chargedpart += constituents[j].perp();
303 }
304 }
305 xAOD::JetFourMom_t chargejetp4(chargedpart,inclusive_jets[i].eta(),inclusive_jets[i].phi(),inclusive_jets[i].m());
306 jet->setJetP4(m_jetchargedp4,chargejetp4);
307 }
308
309 if((m_pfoJES->modify(*vertjets)).isFailure()){
310 ATH_MSG_ERROR(" Failed to calibrate PU jet container ");
311 return pu_jets;
312 }
313
314 pu_jets.jetCont = vertjets;
315 pu_jets.jetAuxCont = vertjetsAux;
316 return pu_jets;
317 }
Scalar eta() const
pseudorapidity method
Scalar perp() const
perp method - perpendicular length
Scalar phi() const
phi method
#define ATH_MSG_ERROR(x)
SG::ReadDecorHandleKey< xAOD::PFO > m_orKey
fastjet::PseudoJet feToPseudoJet(const xAOD::FlowElement *fe, const CP::PFO_JetMETConfig_charge &theCharge, const xAOD::Vertex *vx) const
SG::ReadHandleKey< xAOD::FlowElementContainer > m_FEKey
Gaudi::Property< std::string > m_jetchargedp4
SG::ReadDecorHandleKey< xAOD::FlowElement > m_orFEKey
Gaudi::Property< double > m_dzCut
ToolHandle< IJetCalibrationTool > m_pfoJES
Gaudi::Property< double > m_maxRap
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Gaudi::Property< int > m_pvind
SG::ReadHandleKey< xAOD::PFOContainer > m_PFOKey
Gaudi::Property< std::string > m_jetsName
fastjet::PseudoJet pfoToPseudoJet(const xAOD::PFO *pfo, const CP::PFO_JetMETConfig_charge &theCharge, const xAOD::Vertex *vx) const
Gaudi::Property< double > m_neutMaxRap
SG::ReadHandleKey< jet::TrackVertexAssociation > m_tvaKey
size_t index() const
Return the index of this element within its container.
void setAttribute(const std::string &name, const T &v)
void setJetP4(const JetFourMom_t &p4)
Definition Jet_v1.cxx:171
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition Jet_v1.cxx:49
float z() const
Returns the z position.
void seedsFromEventInfo(const xAOD::EventInfo *ei, std::vector< int > &seeds)
Fill seeds vector from run & event number. This functio is separated from the class so it's easier to...
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Jet_v1 Jet
Definition of the current "jet version".
PFO_v1 PFO
Definition of the current "pfo version".
Definition PFO.h:17
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Definition FlowElement.h:16
TrackParticle_v1 TrackParticle
Reference the current persistent version:
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
Definition JetTypes.h:17
std::shared_ptr< xAOD::JetAuxContainer > jetAuxCont
std::shared_ptr< xAOD::JetContainer > jetCont

◆ calculateVertexMomenta()

std::vector< TVector2 > JetBalancePFlowJvtTool::calculateVertexMomenta ( const xAOD::JetContainer * jets,
int pvind,
int vertices ) const
overridevirtual

Reimplemented from JetForwardPFlowJvtTool.

Definition at line 98 of file JetBalancePFlowJvtTool.cxx.

99 {
100 std::vector<TVector2> pileupMomenta;
101 // -- Retrieve PV index if not provided by user
102 const std::size_t pv_index = (pvind==-1) ? getPV() : std::size_t(pvind);
103
104 SG::ReadHandle<xAOD::VertexContainer> vxContHandle(m_vxContKey);
105
106 for(const xAOD::Vertex* vx: *vxContHandle) {
107 if(vx->vertexType()!=xAOD::VxType::PriVtx && vx->vertexType()!=xAOD::VxType::PileUp) continue;
108 if(vx->index()==(size_t)pv_index) continue;
109
110 TString jname = m_jetsName.value();
111 jname += vx->index();
112
113 pflow::puJets vertjets = buildPFlowPUjets(*vx);
114 if( !vertjets.jetCont || !vertjets.jetAuxCont ){
115 ATH_MSG_WARNING(" Some issue appeared while building the pflow pileup jets for vertex "
116 << vx->index() << " (vxType = " << vx->vertexType()<<" )!" );
117 return pileupMomenta;
118 }
119
120 TVector2 vertex_met;
121 for( const xAOD::Jet *jet : *(vertjets.jetCont) ) {
122
123 // Remove jets which are close to hs
124 if (!m_includePV && hasCloseByHSjet(jet,pjets)) continue;
125
126 // Calculate vertex missing momentum
127 if (isQCDPUJet(jet) && getRpt(jet)> m_rptCut)
128 {
129 vertex_met += TVector2(jet->pt()*cos(jet->phi()),jet->pt()*sin(jet->phi()) ) ;
130 }
131 else{
132 vertex_met += TVector2(jet->jetP4(m_jetchargedp4).Pt()*cos(jet->jetP4(m_jetchargedp4).Phi()),
133 jet->jetP4(m_jetchargedp4).Pt()*sin(jet->jetP4(m_jetchargedp4).Phi()) );
134 }
135 }
136
137 pileupMomenta.push_back(vertex_met);
138 if(vertices!=-1 && int(vx->index())==vertices) break;
139 }
140 return pileupMomenta;
141 }
#define ATH_MSG_WARNING(x)
bool isQCDPUJet(const xAOD::Jet *jet) const
bool hasCloseByHSjet(const xAOD::Jet *jet, const xAOD::JetContainer *pjets) const
Gaudi::Property< double > m_rptCut
SG::ReadHandleKey< xAOD::VertexContainer > m_vxContKey
pflow::puJets buildPFlowPUjets(const xAOD::Vertex &vx) const
Gaudi::Property< bool > m_includePV
double getRpt(const xAOD::Jet *jet) const
@ PileUp
Pile-up vertex.
@ PriVtx
Primary vertex.
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ decorate()

StatusCode JetBalancePFlowJvtTool::decorate ( const xAOD::JetContainer & jets) const
overridevirtual

Decorate a jet collection without otherwise modifying it.

Reimplemented from JetForwardPFlowJvtTool.

Definition at line 69 of file JetBalancePFlowJvtTool.cxx.

69 {
70 std::vector<TVector2> pileupMomenta;
71 pileupMomenta=calculateVertexMomenta(&jetCont,m_pvind, m_vertices);
72 SG::WriteDecorHandle<xAOD::JetContainer, char> bjvtHandle(m_bjvtKey);
73 SG::WriteDecorHandle<xAOD::JetContainer, float> bjvtRawHandle(m_bjvtRawKey);
74 if(pileupMomenta.empty()) {
75 ATH_MSG_DEBUG( "pileupMomenta is empty, this can happen for events with no PU vertices."
76 <<" bJVT won't be computed for this event and will be set to 0 instead." );
77 for(const xAOD::Jet* jetC : jetCont) {
78 bjvtHandle(*jetC) = 1;
79 bjvtRawHandle(*jetC) = 0;
80 }
81 return StatusCode::SUCCESS;
82 }
83
84 for(const xAOD::Jet* jetC : jetCont) {
85 bjvtHandle(*jetC) = 1;
86 bjvtRawHandle(*jetC) = 0;
87
88 if (isCentralJet(jetC)){
89 double bjvt = getFJVT(jetC,pileupMomenta); //Same projection function as fJVT
90 if (bjvt>m_bjvtThresh) bjvtHandle(*jetC) = 0;
91 bjvtRawHandle(*jetC) = bjvt;
92 }
93 }
94 return StatusCode::SUCCESS;
95 }
#define ATH_MSG_DEBUG(x)
SG::WriteDecorHandleKey< xAOD::JetContainer > m_bjvtRawKey
virtual std::vector< TVector2 > calculateVertexMomenta(const xAOD::JetContainer *jets, int pvind, int vertices) const override
SG::WriteDecorHandleKey< xAOD::JetContainer > m_bjvtKey
float getFJVT(const xAOD::Jet *jet, const std::vector< TVector2 > &pileupMomenta) const
bool isCentralJet(const xAOD::Jet *jet) const
Gaudi::Property< int > m_vertices

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ feToPseudoJet()

fastjet::PseudoJet JetForwardPFlowJvtTool::feToPseudoJet ( const xAOD::FlowElement * fe,
const CP::PFO_JetMETConfig_charge & theCharge,
const xAOD::Vertex * vx ) const
inherited

Definition at line 341 of file JetForwardPFlowJvtTool.cxx.

341 {
342 TLorentzVector fe_p4;
343 if (CP::charged == theCharge){
344 float pweight = m_weight;
345 if( (m_wpfotool->fillWeight(*fe,pweight)).isSuccess() ){
346 // Create a Peeudojet with the momentum of the selected IParticle
347 fe_p4= TLorentzVector(fe->p4().Px()*pweight,fe->p4().Py()*pweight,fe->p4().Pz()*pweight,fe->e()*pweight);
348 }
349 } else if (CP::neutral == theCharge){
351 }
352 fastjet::PseudoJet psj(fe_p4);
353 // User index is used to identify the xAOD object used for the PseudoJet
354 if (CP::charged == theCharge){
355 psj.set_user_index(fe->index());
356 }else{
357 psj.set_user_index(-1);
358 }
359
360 return psj;
361 }
Gaudi::Property< float > m_weight
ToolHandle< CP::WeightPFOTool > m_wpfotool
virtual double e() const override
The total energy of the particle.
virtual FourMom_t p4() const override
The full 4-momentum of the particle.
TLorentzVector getVertexCorrectedFourVec(const xAOD::FlowElement &fe, const xAOD::Vertex &vertexToCorrectTo)
Definition FEHelpers.cxx:13

◆ getFJVT()

float JetForwardPFlowJvtTool::getFJVT ( const xAOD::Jet * jet,
const std::vector< TVector2 > & pileupMomenta ) const
inherited

Definition at line 127 of file JetForwardPFlowJvtTool.cxx.

127 {
128 TVector2 fjet(jet->pt()*cos(jet->phi()),jet->pt()*sin(jet->phi()));
129 double fjvt = 0;
130 for (const TVector2& pu : pileupMomenta) {
131 double projection = pu*fjet/fjet.Mod();
132 if (projection<fjvt) fjvt = projection;
133 }
134 return -1*fjvt/fjet.Mod();
135 }
virtual double phi() const
The azimuthal angle ( ) of the particle.
Definition Jet_v1.cxx:54
virtual double pt() const
The transverse momentum ( ) of the particle.
Definition Jet_v1.cxx:44

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void * ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119 {
120
121#ifdef XAOD_STANDALONE
122 // In case we use @c xAOD::TEvent, we have a direct function call
123 // for this.
124 return evtStore()->event()->getKey( ptr );
125#else
126 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127 return ( proxy == nullptr ? 0 : proxy->sgkey() );
128#endif // XAOD_STANDALONE
129 }
ServiceHandle< StoreGateSvc > & evtStore()

◆ getName()

const std::string & asg::AsgTool::getName ( const void * ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106 {
107
108#ifdef XAOD_STANDALONE
109 // In case we use @c xAOD::TEvent, we have a direct function call
110 // for this.
111 return evtStore()->event()->getName( ptr );
112#else
113 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114 static const std::string dummy = "";
115 return ( proxy == nullptr ? dummy : proxy->name() );
116#endif // XAOD_STANDALONE
117 }

◆ getProperty()

template<class T>
const T * asg::AsgTool::getProperty ( const std::string & name) const
inherited

Get one of the tool's properties.

◆ getPV()

std::size_t JetForwardPFlowJvtTool::getPV ( ) const
inherited

Definition at line 381 of file JetForwardPFlowJvtTool.cxx.

381 {
382 if (m_includePV) return -1;
383
384 //const xAOD::VertexContainer *vxCont = 0;
385 SG::ReadHandle<xAOD::VertexContainer> vxContHandle(m_vxContKey);
386 ATH_MSG_DEBUG("Successfully retrieved primary vertex container");
387 for(const xAOD::Vertex *vx : *vxContHandle) {
388 if(vx->vertexType()==xAOD::VxType::PriVtx) return vx->index();
389 }
390 // If no verticies are found in the event the Primary Vertex container will just contain a dummy vertex and no primary vertex
391 if(vxContHandle->empty() ){
392 ATH_MSG_ERROR("Primary vertex container is empty ");
393 } else if(vxContHandle->size() != 1 ){
394 ATH_MSG_WARNING("Couldn't identify the hard-scatter primary vertex (no vertex with \"vx->vertexType()==xAOD::VxType::PriVtx\" in the container)! ");
395 }
396 // this almost certainly isn't what we should do here, the
397 // caller doesn't check this for errors
398 return 0;
399 }

◆ getRpt()

double JetForwardPFlowJvtTool::getRpt ( const xAOD::Jet * jet) const
inherited

Definition at line 375 of file JetForwardPFlowJvtTool.cxx.

375 {
376 double Rpt;
377 Rpt= jet->jetP4(m_jetchargedp4).Pt()/ jet->pt();
378 return Rpt;
379 }
JetFourMom_t jetP4() const
The full 4-momentum of the particle : internal jet type.
Definition Jet_v1.cxx:76

◆ hasCloseByHSjet()

bool JetForwardPFlowJvtTool::hasCloseByHSjet ( const xAOD::Jet * jet,
const xAOD::JetContainer * pjets ) const
inherited

Definition at line 182 of file JetForwardPFlowJvtTool.cxx.

182 {
183 for (const xAOD::Jet* pjet : *pjets) {
184 char jet_nnjvtpass=false;
185 SG::ReadDecorHandle<xAOD::JetContainer, char> passJvtHandle(m_passJvtKey);
186 jet_nnjvtpass = passJvtHandle(*pjet);
187 if (pjet->p4().DeltaR(jet->p4())<0.3 && jet_nnjvtpass && isCentralJet(pjet) ) return true;
188 }
189 return false;
190 }
SG::ReadDecorHandleKey< xAOD::JetContainer > m_passJvtKey
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition Jet_v1.cxx:71

◆ initialize()

StatusCode JetBalancePFlowJvtTool::initialize ( void )
overridevirtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from JetForwardPFlowJvtTool.

Definition at line 45 of file JetBalancePFlowJvtTool.cxx.

46 {
47 ATH_MSG_INFO ("Initializing " << name() << "...");
48
49 if(m_FEKey.empty()){
50 ATH_MSG_ERROR("Flow Element container is empty");
51 return StatusCode::FAILURE;
52 }
53
55
60
61 ATH_CHECK(m_bjvtKey.initialize());
62 ATH_CHECK(m_bjvtRawKey.initialize());
63 ATH_CHECK(m_isQCDPUKey.initialize());
64 ATH_CHECK(m_isStochPUKey.initialize());
65
66 return StatusCode::SUCCESS;
67 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
SG::WriteDecorHandleKey< xAOD::JetContainer > m_isStochPUKey
SG::WriteDecorHandleKey< xAOD::JetContainer > m_isQCDPUKey
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Gaudi::Property< std::string > m_jetContainerName

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isCentralJet()

bool JetForwardPFlowJvtTool::isCentralJet ( const xAOD::Jet * jet) const
inherited

Definition at line 369 of file JetForwardPFlowJvtTool.cxx.

369 {
370 if (std::abs(jet->eta())>m_etaThresh) return false;
371 if (jet->pt()<m_centerMinPt || (m_centerMaxPt>0 && jet->pt()>m_centerMaxPt)) return false;
372 return true;
373 }
Gaudi::Property< double > m_etaThresh
Gaudi::Property< double > m_centerMaxPt
Gaudi::Property< double > m_centerMinPt

◆ isForwardJet()

bool JetForwardPFlowJvtTool::isForwardJet ( const xAOD::Jet * jet) const
inherited

Definition at line 363 of file JetForwardPFlowJvtTool.cxx.

363 {
364 if (std::abs(jet->eta())<m_etaThresh) return false;
365 if (jet->pt()<m_forwardMinPt || (m_forwardMaxPt>0 && jet->pt()>m_forwardMaxPt) ) return false;
366 return true;
367 }
Gaudi::Property< double > m_forwardMinPt
Gaudi::Property< double > m_forwardMaxPt

◆ isQCDPUJet()

bool JetBalancePFlowJvtTool::isQCDPUJet ( const xAOD::Jet * jet) const

Definition at line 143 of file JetBalancePFlowJvtTool.cxx.

143 {
144 if (std::abs(jet->eta())>m_etaThresh) return false; //Must be central
145 if (jet->pt()<m_QCDPUMinPt || (m_QCDPUMaxPt>0 && jet->pt()>m_QCDPUMaxPt) ) return false;
146 //Other selections? EMPTopo studies included cuts on JVT and JVF
147 return true;
148 }
Gaudi::Property< float > m_QCDPUMinPt
Gaudi::Property< float > m_QCDPUMaxPt

◆ modify()

virtual StatusCode IJetDecorator::modify ( xAOD::JetContainer & jets) const
inlinefinaloverridevirtualinherited

Concrete implementation of the function inherited from IJetModifier.

Implements IJetModifier.

Definition at line 32 of file IJetDecorator.h.

32{return decorate(jets);};
virtual StatusCode decorate(const xAOD::JetContainer &jets) const =0
Decorate a jet collection without otherwise modifying it.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101 {
102
103 return MSG::name( msg().level() );
104 }
MsgStream & msg() const
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition MsgLevel.cxx:19

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ pfoToPseudoJet()

fastjet::PseudoJet JetForwardPFlowJvtTool::pfoToPseudoJet ( const xAOD::PFO * pfo,
const CP::PFO_JetMETConfig_charge & theCharge,
const xAOD::Vertex * vx ) const
inherited

Definition at line 319 of file JetForwardPFlowJvtTool.cxx.

319 {
320 TLorentzVector pfo_p4;
321 if (CP::charged == theCharge){
322 float pweight = m_weight;
323 if( (m_wpfotool->fillWeight(*pfo,pweight)).isSuccess() ){
324 // Create a PSeudojet with the momentum of the selected IParticle
325 pfo_p4= TLorentzVector(pfo->p4().Px()*pweight,pfo->p4().Py()*pweight,pfo->p4().Pz()*pweight,pfo->e()*pweight);
326 }
327 } else if (CP::neutral == theCharge){
328 pfo_p4= pfo->GetVertexCorrectedEMFourVec(*vx);
329 }
330 fastjet::PseudoJet psj(pfo_p4);
331 // User index is used to identify the xAOD object used for the PSeudoJet
332 if (CP::charged == theCharge){
333 psj.set_user_index(pfo->index());
334 }else{
335 psj.set_user_index(-1);
336 }
337
338 return psj;
339 }
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition PFO_v1.cxx:95
TLorentzVector GetVertexCorrectedEMFourVec(const xAOD::Vertex &vertexToCorrectTo) const
Correct EM scale 4-vector to point at a vertex.
Definition PFO_v1.cxx:737
virtual double e() const
The total energy of the particle.
Definition PFO_v1.cxx:81

◆ print()

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ tagTruth() [1/2]

StatusCode JetBalancePFlowJvtTool::tagTruth ( const xAOD::JetContainer * jets,
const xAOD::JetContainer * truthJets,
const xAOD::JetContainer * itpujets,
const xAOD::JetContainer * ootpujets )

Definition at line 151 of file JetBalancePFlowJvtTool.cxx.

152 {
153 //truthJets container taken to be truth HS - @to-Do double check this
154 //In-time and out-of-time PU truth jets given in AODs as separate containers
155 SG::WriteDecorHandle<xAOD::JetContainer, bool> isHSHandle(m_isHSKey);
156 SG::WriteDecorHandle<xAOD::JetContainer, bool> isQCDPUHandle(m_isQCDPUKey);
157 SG::WriteDecorHandle<xAOD::JetContainer, bool> isStochPUHandle(m_isStochPUKey);
158
159 for(const xAOD::Jet *jet : *jets) {
160 bool ishs = false;
161 bool ispu = true;
162
163 bool isqcdpu = false;
164 bool isstochpu = true; //Default value to make logic work - changed below
165
166 for(const xAOD::Jet *tjet : *truthJets) {
167 if (tjet->p4().DeltaR(jet->p4())<0.3 && tjet->pt()>10e3) ishs = true;
168 if (tjet->p4().DeltaR(jet->p4())<0.6 && tjet->pt()>4e3) ispu = false;
169 }
170
171 if (ispu){
172 //Need to check both containers
173 for(const xAOD::Jet *itpujet : *itpujets){
174 if (itpujet->p4().DeltaR(jet->p4())<0.3 && itpujet->pt()>10e3) isqcdpu = true;
175 if (itpujet->p4().DeltaR(jet->p4())<0.6 && itpujet->pt()>10e3) isstochpu = false;
176 }
177 for(const xAOD::Jet *ootpujet : *ootpujets){
178 if (ootpujet->p4().DeltaR(jet->p4())<0.3 && ootpujet->pt()>10e3) isqcdpu = true;
179 if (ootpujet->p4().DeltaR(jet->p4())<0.6 && ootpujet->pt()>10e3) isstochpu = false;
180 }
181 }
182
183 else {
184 isstochpu = false; //Can't be labelled stochastic PU if jet is not determined to be PU
185 }
186
187 isHSHandle(*jet)=ishs;
188 isQCDPUHandle(*jet)=isqcdpu;
189 isStochPUHandle(*jet)=isstochpu;
190 }
191
192 return StatusCode::SUCCESS;
193 }
SG::WriteDecorHandleKey< xAOD::JetContainer > m_isHSKey

◆ tagTruth() [2/2]

StatusCode JetForwardPFlowJvtTool::tagTruth ( const xAOD::JetContainer * jets,
const xAOD::JetContainer * truthJets )
inherited

Definition at line 401 of file JetForwardPFlowJvtTool.cxx.

401 {
402 SG::WriteDecorHandle<xAOD::JetContainer, bool> isHSHandle(m_isHSKey);
403 SG::WriteDecorHandle<xAOD::JetContainer, bool> isPUHandle(m_isPUKey);
404
405 for(const xAOD::Jet *jet : *jets) {
406 bool ishs = false;
407 bool ispu = true;
408 for(const xAOD::Jet *tjet : *truthJets) {
409 if (tjet->p4().DeltaR(jet->p4())<0.3 && tjet->pt()>10e3) ishs = true;
410 if (tjet->p4().DeltaR(jet->p4())<0.6) ispu = false;
411 }
412 isHSHandle(*jet)=ishs;
413 isPUHandle(*jet)=ispu;
414 }
415 return StatusCode::SUCCESS;
416 }
SG::WriteDecorHandleKey< xAOD::JetContainer > m_isPUKey

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_bjvtKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetBalancePFlowJvtTool::m_bjvtKey {this, "BjvtName", "passOnlyBJVT", "Decorator for passing bJVT threshold (tight or loose)"}
protected

Definition at line 126 of file JetBalancePFlowJvtTool.h.

126{this, "BjvtName", "passOnlyBJVT", "Decorator for passing bJVT threshold (tight or loose)"};

◆ m_bjvtRawKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetBalancePFlowJvtTool::m_bjvtRawKey {this, "BjvtRawName", "bJvt", "Decorator for raw bJVT variable"}
protected

Definition at line 127 of file JetBalancePFlowJvtTool.h.

127{this, "BjvtRawName", "bJvt", "Decorator for raw bJVT variable"};

◆ m_bjvtThresh

float JetBalancePFlowJvtTool::m_bjvtThresh
protected

Definition at line 131 of file JetBalancePFlowJvtTool.h.

◆ m_centerMaxPt

Gaudi::Property<double> JetForwardPFlowJvtTool::m_centerMaxPt {this, "centralMaxPt", -1, "Maximum central jet pt. If -1 no threshold is applied"}
protectedinherited

Definition at line 138 of file JetForwardPFlowJvtTool.h.

138{this, "centralMaxPt", -1, "Maximum central jet pt. If -1 no threshold is applied"};

◆ m_centerMinPt

Gaudi::Property<double> JetForwardPFlowJvtTool::m_centerMinPt {this, "centralMinPt", 20e3, "Minimum central jet pt"}
protectedinherited

Definition at line 137 of file JetForwardPFlowJvtTool.h.

137{this, "centralMinPt", 20e3, "Minimum central jet pt"};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_dzCut

Gaudi::Property<double> JetForwardPFlowJvtTool::m_dzCut {this, "dzCut", 2.0, "Dz=z=-z0 cut for pfo objects participating in the HS vertex jet reco"}
protectedinherited

Definition at line 142 of file JetForwardPFlowJvtTool.h.

142{this, "dzCut", 2.0, "Dz=z=-z0 cut for pfo objects participating in the HS vertex jet reco"};

◆ m_etaThresh

Gaudi::Property<double> JetForwardPFlowJvtTool::m_etaThresh {this, "etaThresh", 2.5, "Maximum eta value for considering a jet as central"}
protectedinherited

Definition at line 134 of file JetForwardPFlowJvtTool.h.

134{this, "etaThresh", 2.5, "Maximum eta value for considering a jet as central"};

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> JetForwardPFlowJvtTool::m_eventInfoKey {"EventInfo"}
protectedinherited

Definition at line 155 of file JetForwardPFlowJvtTool.h.

155{"EventInfo"};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_FEKey

SG::ReadHandleKey<xAOD::FlowElementContainer> JetForwardPFlowJvtTool::m_FEKey {this, "FEName", "", "SG Key for CHS FlowElement Container (overrides PFO if not empty)"}
protectedinherited

Definition at line 154 of file JetForwardPFlowJvtTool.h.

154{this, "FEName", "", "SG Key for CHS FlowElement Container (overrides PFO if not empty)"};

◆ m_fjvtKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetForwardPFlowJvtTool::m_fjvtKey {this, "FjvtName", "passOnlyFJVT", "Decorator for passing fJVT threshold (tight or loose)"}
protectedinherited

Definition at line 161 of file JetForwardPFlowJvtTool.h.

161{this, "FjvtName", "passOnlyFJVT", "Decorator for passing fJVT threshold (tight or loose)"};

◆ m_fjvtRawKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetForwardPFlowJvtTool::m_fjvtRawKey {this, "FjvtRawName", "fJvt", "Decorator for raw fJVT variable"}
protectedinherited

Definition at line 162 of file JetForwardPFlowJvtTool.h.

162{this, "FjvtRawName", "fJvt", "Decorator for raw fJVT variable"};

◆ m_fjvtThresh

Gaudi::Property<double> JetForwardPFlowJvtTool::m_fjvtThresh {this, "fjvtThresh", 15e3, "fjvt threshold value"}
protectedinherited

Definition at line 139 of file JetForwardPFlowJvtTool.h.

139{this, "fjvtThresh", 15e3, "fjvt threshold value"};

◆ m_forwardMaxPt

Gaudi::Property<double> JetForwardPFlowJvtTool::m_forwardMaxPt {this, "forwardMaxPt", -1, "Maximum forward jet pt. If -1 no threshold is applied"}
protectedinherited

Definition at line 136 of file JetForwardPFlowJvtTool.h.

136{this, "forwardMaxPt", -1, "Maximum forward jet pt. If -1 no threshold is applied"};

◆ m_forwardMinPt

Gaudi::Property<double> JetForwardPFlowJvtTool::m_forwardMinPt {this, "forwardMinPt", 18e3, "Minimum forward jet pt"}
protectedinherited

Definition at line 135 of file JetForwardPFlowJvtTool.h.

135{this, "forwardMinPt", 18e3, "Minimum forward jet pt"};

◆ m_includePV

Gaudi::Property<bool> JetForwardPFlowJvtTool::m_includePV {this, "includePV", false, "Flag to include jets and tracks associated to PV in the calculation"}
protectedinherited

Definition at line 133 of file JetForwardPFlowJvtTool.h.

133{this, "includePV", false, "Flag to include jets and tracks associated to PV in the calculation"};

◆ m_isdata

Gaudi::Property<bool> JetForwardPFlowJvtTool::m_isdata {this, "isdata", false, "True if data"}
protectedinherited

Definition at line 130 of file JetForwardPFlowJvtTool.h.

130{this, "isdata", false, "True if data"};

◆ m_isHSKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetForwardPFlowJvtTool::m_isHSKey {this, "isHSName", "isJVTHS", "SG key for output isJVTHS decoration"}
protectedinherited

Definition at line 163 of file JetForwardPFlowJvtTool.h.

163{this, "isHSName", "isJVTHS", "SG key for output isJVTHS decoration"};

◆ m_isPUKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetForwardPFlowJvtTool::m_isPUKey {this, "isPUName", "isJvtPU", "SG key for output isJVTPU decoration"}
protectedinherited

Definition at line 164 of file JetForwardPFlowJvtTool.h.

164{this, "isPUName", "isJvtPU", "SG key for output isJVTPU decoration"};

◆ m_isQCDPUKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetBalancePFlowJvtTool::m_isQCDPUKey {this, "isQCDPUName", "isJvtQCDPU", "SG key for output isJVTQCDPU decoration"}
protected

Definition at line 128 of file JetBalancePFlowJvtTool.h.

128{this, "isQCDPUName", "isJvtQCDPU", "SG key for output isJVTQCDPU decoration"};

◆ m_isStochPUKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetBalancePFlowJvtTool::m_isStochPUKey {this, "isStochPUName", "isJvtStochPU", "SG key for output isJVTStochPU decoration"}
protected

Definition at line 129 of file JetBalancePFlowJvtTool.h.

129{this, "isStochPUName", "isJvtStochPU", "SG key for output isJVTStochPU decoration"};

◆ m_jetchargedp4

Gaudi::Property<std::string> JetForwardPFlowJvtTool::m_jetchargedp4 {this, "jetchargedp4", "JetChargedScaleMomentum", "Name of the jet charged momentum 4-vector"}
protectedinherited

Definition at line 128 of file JetForwardPFlowJvtTool.h.

128{this, "jetchargedp4", "JetChargedScaleMomentum", "Name of the jet charged momentum 4-vector"};

◆ m_jetContainerName

Gaudi::Property<std::string> JetForwardPFlowJvtTool::m_jetContainerName {this, "JetContainer", "", "SG key for the input jet container"}
protectedinherited

Definition at line 126 of file JetForwardPFlowJvtTool.h.

126{this, "JetContainer", "", "SG key for the input jet container"};

◆ m_jetsName

Gaudi::Property<std::string> JetForwardPFlowJvtTool::m_jetsName {this, "jetsName", "AntiKt4PUPFlowJets", "Container name for the output reconstructed PU jets"}
protectedinherited

Definition at line 127 of file JetForwardPFlowJvtTool.h.

127{this, "jetsName", "AntiKt4PUPFlowJets", "Container name for the output reconstructed PU jets"};

◆ m_jvtCut

Gaudi::Property<double> JetForwardPFlowJvtTool::m_jvtCut {this, "jvtCut", 0.2, "JVT threshold value for considering a central PU jet as HS"}
protectedinherited

Definition at line 141 of file JetForwardPFlowJvtTool.h.

141{this, "jvtCut", 0.2, "JVT threshold value for considering a central PU jet as HS"};

◆ m_maxRap

Gaudi::Property<double> JetForwardPFlowJvtTool::m_maxRap {this, "maxRap", 2.5, "Maximum rapidity value in fastjet::AreaDefinition"}
protectedinherited

Definition at line 143 of file JetForwardPFlowJvtTool.h.

143{this, "maxRap", 2.5, "Maximum rapidity value in fastjet::AreaDefinition"};

◆ m_neutMaxRap

Gaudi::Property<double> JetForwardPFlowJvtTool::m_neutMaxRap {this, "neutMaxRap", 2.5, "Maximum rapidity value for neutral pfos participating in jet reco"}
protectedinherited

Definition at line 144 of file JetForwardPFlowJvtTool.h.

144{this, "neutMaxRap", 2.5, "Maximum rapidity value for neutral pfos participating in jet reco"};

◆ m_orFEKey

SG::ReadDecorHandleKey<xAOD::FlowElement> JetForwardPFlowJvtTool::m_orFEKey {this, "ORNameFE", "", "OR label"}
protectedinherited

Definition at line 159 of file JetForwardPFlowJvtTool.h.

159{this, "ORNameFE", "", "OR label"};

◆ m_orKey

SG::ReadDecorHandleKey<xAOD::PFO> JetForwardPFlowJvtTool::m_orKey {this, "ORName", "", "OR label"}
protectedinherited

Definition at line 158 of file JetForwardPFlowJvtTool.h.

158{this, "ORName", "", "OR label"};

◆ m_passJvtKey

SG::ReadDecorHandleKey<xAOD::JetContainer> JetForwardPFlowJvtTool::m_passJvtKey {this, "passJvtName", "NNJvtPass", "SG key for output pass-JVT decoration"}
protectedinherited

Definition at line 157 of file JetForwardPFlowJvtTool.h.

157{this, "passJvtName", "NNJvtPass", "SG key for output pass-JVT decoration"};

◆ m_pfoJES

ToolHandle<IJetCalibrationTool> JetForwardPFlowJvtTool::m_pfoJES {this,"JetCalibrationTool", "", "Jet calibration tool name"}
protectedinherited

Definition at line 167 of file JetForwardPFlowJvtTool.h.

167{this,"JetCalibrationTool", "", "Jet calibration tool name"};

◆ m_PFOKey

SG::ReadHandleKey<xAOD::PFOContainer> JetForwardPFlowJvtTool::m_PFOKey {this, "PFOName", "CHSParticleFlowObjects", "SG Key for CHS PFO Container"}
protectedinherited

Definition at line 153 of file JetForwardPFlowJvtTool.h.

153{this, "PFOName", "CHSParticleFlowObjects", "SG Key for CHS PFO Container"};

◆ m_pvind

Gaudi::Property<int> JetForwardPFlowJvtTool::m_pvind {this, "pvind", -1, "Hard-Scatter primary vertex index of the event. If -1 it will be automatically retrieved from the event"}
protectedinherited

Definition at line 131 of file JetForwardPFlowJvtTool.h.

131{this, "pvind", -1, "Hard-Scatter primary vertex index of the event. If -1 it will be automatically retrieved from the event"};

◆ m_QCDPUMaxPt

Gaudi::Property<float> JetBalancePFlowJvtTool::m_QCDPUMaxPt {this, "QCDPUMaxPt", -1, "Maximum pt cut value for central PU jets contributing in the missing momentum calculation. If -1 no threshold is applied"}
protected

Definition at line 123 of file JetBalancePFlowJvtTool.h.

123{this, "QCDPUMaxPt", -1, "Maximum pt cut value for central PU jets contributing in the missing momentum calculation. If -1 no threshold is applied"};

◆ m_QCDPUMinPt

Gaudi::Property<float> JetBalancePFlowJvtTool::m_QCDPUMinPt {this, "QCDPUMinPt", 20e3, "Minimum pt cut value for central PU jets contributing in the missing momentum calculation"}
protected

Definition at line 122 of file JetBalancePFlowJvtTool.h.

122{this, "QCDPUMinPt", 20e3, "Minimum pt cut value for central PU jets contributing in the missing momentum calculation"};

◆ m_rptCut

Gaudi::Property<double> JetForwardPFlowJvtTool::m_rptCut {this, "rptCut", 0.1, "Rpt cut value for central PU jets contributing in the missing momentum calculation"}
protectedinherited

Definition at line 140 of file JetForwardPFlowJvtTool.h.

140{this, "rptCut", 0.1, "Rpt cut value for central PU jets contributing in the missing momentum calculation"};

◆ m_suppressInputDependence

Gaudi::Property<bool> JetForwardPFlowJvtTool::m_suppressInputDependence {this, "SuppressInputDependence", false}
protectedinherited

Definition at line 169 of file JetForwardPFlowJvtTool.h.

169{this, "SuppressInputDependence", false};

◆ m_tightOP

Gaudi::Property<bool> JetForwardPFlowJvtTool::m_tightOP {this, "tightOP", false, "If true a tight fjvt threshold value is applied"}
protectedinherited

Definition at line 146 of file JetForwardPFlowJvtTool.h.

146{this, "tightOP", false, "If true a tight fjvt threshold value is applied"};

◆ m_tvaKey

SG::ReadHandleKey<jet::TrackVertexAssociation> JetForwardPFlowJvtTool::m_tvaKey {this, "TrackVertexAssociation", "", "Input track-vertex association"}
protectedinherited

Definition at line 125 of file JetForwardPFlowJvtTool.h.

125{this, "TrackVertexAssociation", "", "Input track-vertex association"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertices

Gaudi::Property<int> JetForwardPFlowJvtTool::m_vertices {this, "vertices", 10, "Number of vertices for which the missing momentum is calculated"}
protectedinherited

Definition at line 132 of file JetForwardPFlowJvtTool.h.

132{this, "vertices", 10, "Number of vertices for which the missing momentum is calculated"};

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vxContKey

SG::ReadHandleKey<xAOD::VertexContainer> JetForwardPFlowJvtTool::m_vxContKey {this, "verticesName", "PrimaryVertices", "Container name of vertices to be retrieved"}
protectedinherited

Definition at line 152 of file JetForwardPFlowJvtTool.h.

152{this, "verticesName", "PrimaryVertices", "Container name of vertices to be retrieved"};

◆ m_weight

Gaudi::Property<float> JetForwardPFlowJvtTool::m_weight {this, "weight", 0, "PFO weight value"}
protectedinherited

Definition at line 145 of file JetForwardPFlowJvtTool.h.

145{this, "weight", 0, "PFO weight value"};

◆ m_wpfotool

ToolHandle<CP::WeightPFOTool> JetForwardPFlowJvtTool::m_wpfotool {this,"WeightPFOTool", "", "Weight PFO tool name"}
protectedinherited

Definition at line 166 of file JetForwardPFlowJvtTool.h.

166{this,"WeightPFOTool", "", "Weight PFO tool name"};

The documentation for this class was generated from the following files: