![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <KinkTrkSingleJetMetFilterTool.h>
|
| KinkTrkSingleJetMetFilterTool (const std::string &t, const std::string &n, const IInterface *p) |
| Constructor with parameters. More...
|
|
| ~KinkTrkSingleJetMetFilterTool () |
| Destructor. More...
|
|
StatusCode | initialize () |
|
StatusCode | finalize () |
|
virtual bool | eventPassesFilter () const |
| Check that the current event passes this filter. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
std::atomic< unsigned int > | m_ntot |
|
std::atomic< unsigned int > | m_npass |
|
bool | m_passAll |
|
bool | m_LeptonVeto |
|
bool | m_isolatedTrack |
|
float | m_metHtCut |
|
std::string | m_metTerm |
|
ToolHandle< CP::IMuonSelectionTool > | m_muonSelectionTool |
|
std::string | m_muonIDKey |
|
std::string | m_electronIDKey |
|
SG::ReadHandleKey< xAOD::JetContainer > | m_jetSGKey { this, "JetContainerKey", "AntiKt4LCTopoJets", ""} |
|
SG::ReadHandleKey< xAOD::MissingETContainer > | m_metSGKey { this, "MetContainerKey", "MET_RefFinal", ""} |
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_muonSGKey { this, "MuonContainerKey", "Muons", ""} |
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_electronSGKey { this, "ElectronContainerKey", "ElectronCollection", ""} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_pixelTrackletKey {this, "PixelTrackletKey", "InDetDisappearingTrackParticles", ""} |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_primaryVerticesKey {this, "PrimaryVerticesKey", "PrimaryVertices", ""} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_standardTrackKey {this, "StandardTrackKey", "InDetTrackParticles", ""} |
|
float | m_metCut |
|
std::vector< float > | m_jetPtCuts |
|
float | m_jetEtaMax |
|
int | m_jetNumCut |
|
float | m_jetMetDphiMin |
|
float | m_jetMetPtMin |
|
float | m_leptonPtCut |
|
float | m_leptonEtaMax |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
◆ StoreGateSvc_t
◆ KinkTrkSingleJetMetFilterTool()
DerivationFramework::KinkTrkSingleJetMetFilterTool::KinkTrkSingleJetMetFilterTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
Constructor with parameters.
Service Constructor.
Definition at line 18 of file KinkTrkSingleJetMetFilterTool.cxx.
41 declareInterface<DerivationFramework::ISkimmingTool>(
this);
◆ ~KinkTrkSingleJetMetFilterTool()
DerivationFramework::KinkTrkSingleJetMetFilterTool::~KinkTrkSingleJetMetFilterTool |
( |
| ) |
|
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ eventPassesFilter()
bool DerivationFramework::KinkTrkSingleJetMetFilterTool::eventPassesFilter |
( |
| ) |
const |
|
virtual |
Check that the current event passes this filter.
Implements DerivationFramework::ISkimmingTool.
Definition at line 89 of file KinkTrkSingleJetMetFilterTool.cxx.
92 bool acceptEvent(
false);
104 if( !metContainer.isValid() ) {
105 msg(MSG::WARNING) <<
"No MET container found, will skip this event" <<
endmsg;
119 msg(MSG::WARNING) <<
"No jet container found, will skip this event" <<
endmsg;
124 std::vector<const xAOD::Jet *> sortedJetContainer;
126 sortedJetContainer.push_back(*
jet);
134 int nJetRequired = 0;
135 std::vector<const xAOD::Jet*> goodJets;
136 int nJet = sortedJetContainer.size();
138 for(
int i=0;
i<nJet;
i++){
141 goodJets.push_back(sortedJetContainer.at(
i));
142 valHt += sortedJetContainer.at(
i)->pt();
147 if (sortedJetContainer.at(
i)->pt() >
m_jetPtCuts[nJetRequired] && std::abs(sortedJetContainer.at(
i)->eta()) <
m_jetEtaMax){
155 if((
met->met()/1000.0)/sqrt(valHt/1000.0) <
m_metHtCut)
return acceptEvent;
158 float minDphi = 9999;
159 for (
unsigned int i=0;
i<goodJets.size();
i++) {
171 if( !muons.isValid() ) {
172 msg(MSG::WARNING) <<
"No muons container found, will skip this event" <<
endmsg;
189 for (
auto muon: *muons) {
202 msg(MSG::WARNING) <<
"No electron container found, will skip this event" <<
endmsg;
221 if( !pixelTrackletContainer.isValid() ) {
222 msg(MSG::WARNING) <<
"No pixel tracklet container found, will skip this event" <<
endmsg;
227 if( !vertices.isValid() ) {
228 msg(MSG::WARNING) <<
"No primary vertices container found, will skip this event" <<
endmsg;
232 for(
const auto v: *vertices ){
243 bool passIsolatedTracklet =
false;
244 for(
const auto Tracklet : *pixelTrackletContainer){
245 passIsolatedTracklet =
true;
246 for(
unsigned int i=0;
i<goodJets.size();
i++){
253 passIsolatedTracklet =
false;
257 if(passIsolatedTracklet==
false)
261 passIsolatedTracklet =
false;
266 passIsolatedTracklet =
false;
271 passIsolatedTracklet =
false;
276 if(numberOfContribPixelLayersAcc(*
Tracklet)<3){
277 passIsolatedTracklet =
false;
282 if(numberOfPixelSpoiltHitsAcc(*
Tracklet)>0){
283 passIsolatedTracklet =
false;
289 passIsolatedTracklet =
false;
293 if(passIsolatedTracklet)
break;
297 if(passIsolatedTracklet==
false){
300 bool passIsolatedStdTrack =
false;
302 if( !standardTrackContainer.isValid() ) {
303 msg(MSG::WARNING) <<
"No Standard Track container found, will skip this event" <<
endmsg;
308 for(
const auto StdTrack : *standardTrackContainer){
309 if(StdTrack->pt()/1000.0 < 20.0)
312 passIsolatedStdTrack =
true;
314 for(
unsigned int i=0;
i<goodJets.size();
i++){
315 double deltaPhi = (std::abs(StdTrack->phi() - goodJets.at(
i)->phi()) >
M_PI) ? 2.0*
M_PI-std::abs(StdTrack->phi()-goodJets.at(
i)->phi()) : std::abs(StdTrack->phi()-goodJets.at(
i)->phi());
316 double deltaEta = std::abs(StdTrack->eta() - goodJets.at(
i)->eta());
320 passIsolatedStdTrack =
false;
324 if(passIsolatedStdTrack){
326 for(
auto Track : *standardTrackContainer){
327 if(
Track->pt()/1000.0 < 0.4)
330 double deltaPhi = (std::abs(StdTrack->phi() -
Track->phi()) >
M_PI) ? 2.0*
M_PI-std::abs(StdTrack->phi()-
Track->phi()) : std::abs(StdTrack->phi()-
Track->phi());
342 passIsolatedStdTrack =
false;
347 if(passIsolatedStdTrack==
false)
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ finalize()
StatusCode DerivationFramework::KinkTrkSingleJetMetFilterTool::finalize |
( |
| ) |
|
◆ initialize()
StatusCode DerivationFramework::KinkTrkSingleJetMetFilterTool::initialize |
( |
| ) |
|
◆ inputHandles()
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.
◆ interfaceID()
static const InterfaceID& DerivationFramework::ISkimmingTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
AlgTool interface methods.
Definition at line 32 of file ISkimmingTool.h.
32 {
return IID_ISkimmingTool; }
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_detStore
◆ m_electronIDKey
std::string DerivationFramework::KinkTrkSingleJetMetFilterTool::m_electronIDKey |
|
private |
◆ m_electronSGKey
◆ m_evtStore
◆ m_isolatedTrack
bool DerivationFramework::KinkTrkSingleJetMetFilterTool::m_isolatedTrack |
|
private |
◆ m_jetEtaMax
float DerivationFramework::KinkTrkSingleJetMetFilterTool::m_jetEtaMax |
|
private |
◆ m_jetMetDphiMin
float DerivationFramework::KinkTrkSingleJetMetFilterTool::m_jetMetDphiMin |
|
private |
◆ m_jetMetPtMin
float DerivationFramework::KinkTrkSingleJetMetFilterTool::m_jetMetPtMin |
|
private |
◆ m_jetNumCut
int DerivationFramework::KinkTrkSingleJetMetFilterTool::m_jetNumCut |
|
private |
◆ m_jetPtCuts
std::vector<float> DerivationFramework::KinkTrkSingleJetMetFilterTool::m_jetPtCuts |
|
private |
◆ m_jetSGKey
◆ m_leptonEtaMax
float DerivationFramework::KinkTrkSingleJetMetFilterTool::m_leptonEtaMax |
|
private |
◆ m_leptonPtCut
float DerivationFramework::KinkTrkSingleJetMetFilterTool::m_leptonPtCut |
|
private |
◆ m_LeptonVeto
bool DerivationFramework::KinkTrkSingleJetMetFilterTool::m_LeptonVeto |
|
private |
◆ m_metCut
float DerivationFramework::KinkTrkSingleJetMetFilterTool::m_metCut |
|
private |
◆ m_metHtCut
float DerivationFramework::KinkTrkSingleJetMetFilterTool::m_metHtCut |
|
private |
◆ m_metSGKey
◆ m_metTerm
std::string DerivationFramework::KinkTrkSingleJetMetFilterTool::m_metTerm |
|
private |
◆ m_muonIDKey
std::string DerivationFramework::KinkTrkSingleJetMetFilterTool::m_muonIDKey |
|
private |
◆ m_muonSelectionTool
◆ m_muonSGKey
◆ m_npass
std::atomic<unsigned int> DerivationFramework::KinkTrkSingleJetMetFilterTool::m_npass |
|
mutableprivate |
◆ m_ntot
std::atomic<unsigned int> DerivationFramework::KinkTrkSingleJetMetFilterTool::m_ntot |
|
mutableprivate |
◆ m_passAll
bool DerivationFramework::KinkTrkSingleJetMetFilterTool::m_passAll |
|
private |
◆ m_pixelTrackletKey
◆ m_primaryVerticesKey
◆ m_standardTrackKey
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
Const iterator class for DataVector/DataList.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
@ ptcone20
Track isolation.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
Helper class to provide constant type-safe access to aux data.
#define ATH_MSG_VERBOSE(x)
virtual void setOwner(IDataHandleHolder *o)=0
float z0SinTheta(const U &p)
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
double deltaEta(const I4Momentum &p1, const I4Momentum &p2)
Computes efficiently .
Principal data object for Missing ET.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Class describing a Vertex.
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>