![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <JetTagMonitorAlgorithm.h>
|
enum | Environment_t {
Environment_t::user = 0,
Environment_t::online,
Environment_t::tier0,
Environment_t::tier0Raw,
Environment_t::tier0ESD,
Environment_t::AOD,
Environment_t::altprod
} |
| Specifies the processing environment. More...
|
|
enum | DataType_t {
DataType_t::userDefined = 0,
DataType_t::monteCarlo,
DataType_t::collisions,
DataType_t::cosmics,
DataType_t::heavyIonCollisions
} |
| Specifies what type of input data is being monitored. More...
|
|
|
| JetTagMonitorAlgorithm (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~JetTagMonitorAlgorithm () |
|
virtual StatusCode | initialize () override |
| initialize More...
|
|
virtual StatusCode | fillHistograms (const EventContext &ctx) const override |
| adds event to the monitoring histograms More...
|
|
virtual StatusCode | execute (const EventContext &ctx) const override |
| Applies filters and trigger requirements. More...
|
|
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const |
| Fills a vector of variables to a group by reference. More...
|
|
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const |
| Fills a vector of variables to a group by reference. More...
|
|
template<typename... T> |
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, T &&... variables) const |
| Fills a variadic list of variables to a group by reference. More...
|
|
void | fill (const std::string &groupName, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const |
| Fills a vector of variables to a group by name. More...
|
|
void | fill (const std::string &groupName, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const |
| Fills a vector of variables to a group by name. More...
|
|
template<typename... T> |
void | fill (const std::string &groupName, T &&... variables) const |
| Fills a variadic list of variables to a group by name. More...
|
|
Environment_t | environment () const |
| Accessor functions for the environment. More...
|
|
Environment_t | envStringToEnum (const std::string &str) const |
| Convert the environment string from the python configuration to an enum object. More...
|
|
DataType_t | dataType () const |
| Accessor functions for the data type. More...
|
|
DataType_t | dataTypeStringToEnum (const std::string &str) const |
| Convert the data type string from the python configuration to an enum object. More...
|
|
const ToolHandle< GenericMonitoringTool > & | getGroup (const std::string &name) const |
| Get a specific monitoring tool from the tool handle array. More...
|
|
const ToolHandle< Trig::TrigDecisionTool > & | getTrigDecisionTool () const |
| Get the trigger decision tool member. More...
|
|
bool | trigChainsArePassed (const std::vector< std::string > &vTrigNames) const |
| Check whether triggers are passed. More...
|
|
SG::ReadHandle< xAOD::EventInfo > | GetEventInfo (const EventContext &) const |
| Return a ReadHandle for an EventInfo object (get run/event numbers, etc.) More...
|
|
virtual float | lbAverageInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average mu, i.e. More...
|
|
virtual float | lbInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate instantaneous number of interactions, i.e. More...
|
|
virtual float | lbAverageLuminosity (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1). More...
|
|
virtual float | lbLuminosityPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the instantaneous luminosity per bunch crossing. More...
|
|
virtual double | lbDuration (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the duration of the luminosity block (in seconds) More...
|
|
virtual float | lbAverageLivefraction (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average luminosity livefraction. More...
|
|
virtual float | livefractionPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the live fraction per bunch crossing ID. More...
|
|
virtual double | lbLumiWeight (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average integrated luminosity multiplied by the live fraction. More...
|
|
virtual StatusCode | parseList (const std::string &line, std::vector< std::string > &result) const |
| Parse a string into a vector. More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
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 | 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 |
|
|
ToolHandleArray< GenericMonitoringTool > | m_tools {this,"GMTools",{}} |
| Array of Generic Monitoring Tools. More...
|
|
PublicToolHandle< Trig::TrigDecisionTool > | m_trigDecTool {this, "TrigDecisionTool",""} |
| Tool to tell whether a specific trigger is passed. More...
|
|
ToolHandleArray< IDQFilterTool > | m_DQFilterTools {this,"FilterTools",{}} |
| Array of Data Quality filter tools. More...
|
|
SG::ReadCondHandleKey< LuminosityCondData > | m_lumiDataKey {this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"} |
|
SG::ReadCondHandleKey< LBDurationCondData > | m_lbDurationDataKey {this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"} |
|
SG::ReadCondHandleKey< TrigLiveFractionCondData > | m_trigLiveFractionDataKey {this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData", "SG Key of TrigLiveFractionCondData object"} |
|
AthMonitorAlgorithm::Environment_t | m_environment |
| Instance of the Environment_t enum. More...
|
|
AthMonitorAlgorithm::DataType_t | m_dataType |
| Instance of the DataType_t enum. More...
|
|
Gaudi::Property< std::string > | m_environmentStr {this,"Environment","user"} |
| Environment string pulled from the job option and converted to enum. More...
|
|
Gaudi::Property< std::string > | m_dataTypeStr {this,"DataType","userDefined"} |
| DataType string pulled from the job option and converted to enum. More...
|
|
Gaudi::Property< std::string > | m_triggerChainString {this,"TriggerChain",""} |
| Trigger chain string pulled from the job option and parsed into a vector. More...
|
|
std::vector< std::string > | m_vTrigChainNames |
| Vector of trigger chain names parsed from trigger chain string. More...
|
|
Gaudi::Property< std::string > | m_fileKey {this,"FileKey",""} |
| Internal Athena name for file. More...
|
|
Gaudi::Property< bool > | m_useLumi {this,"EnableLumi",false} |
| Allows use of various luminosity functions. More...
|
|
Gaudi::Property< float > | m_defaultLBDuration {this,"DefaultLBDuration",60.} |
| Default duration of one lumi block. More...
|
|
Gaudi::Property< int > | m_detailLevel {this,"DetailLevel",0} |
| Sets the level of detail used in the monitoring. More...
|
|
SG::ReadHandleKey< xAOD::EventInfo > | m_EventInfoKey {this,"EventInfoKey","EventInfo"} |
| Key for retrieving EventInfo from StoreGate. More...
|
|
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_VertContainerKey {this,"VerticesKey","PrimaryVertices","RHK for primary vertices"} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_TrackContainerKey {this,"TracksKey","InDetTrackParticles","RHK for ID tracks"} |
|
SG::ReadHandleKey< xAOD::JetContainer > | m_JetContainerKey |
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_MuonContainerKey |
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_ElectronContainerKey |
|
SG::ReadDecorHandleKey< xAOD::JetContainer > | m_btagLinkKey {this,"BTagLinkKey","","RDHK for btag links"} |
|
SG::ReadDecorHandleKey< xAOD::BTaggingContainer > | m_btagResultKey {this,"BTagResultKey","","RDHK for monitored BTag variables"} |
|
SG::ReadDecorHandleKey< xAOD::MuonContainer > | m_MuonEtIsoDecorKey {this,"MuonEtIsoDecorKey","Muons.topoetcone20"} |
|
SG::ReadDecorHandleKey< xAOD::MuonContainer > | m_MuonPtIsoDecorKey {this,"MuonPtIsoDecorKey","Muons.ptvarcone30"} |
|
SG::ReadDecorHandleKey< xAOD::ElectronContainer > | m_EleEtIsoDecorKey {this,"EleEtIsoDecorKey","Electrons.topoetcone20"} |
|
SG::ReadDecorHandleKey< xAOD::ElectronContainer > | m_ElePtIsoDecorKey {this,"ElePtIsoDecorKey","Electrons.ptvarcone20"} |
|
ToolHandle< InDet::IInDetTrackSelectionTool > | m_TrackSelectionTool {this, "TrackSelectionTool", "InDetTrackSelectionTool", "Tool for selecting tracks"} |
|
bool | m_SkipPreSelection |
|
bool | m_SkipJetFilter |
|
bool | m_DoExtraTaggerHistos |
|
int | m_MinGoodTrackCut |
|
float | m_TrackPtCut |
|
float | m_Trackd0Cut |
|
float | m_Trackz0sinCut |
|
int | m_TrackHitIBLCut |
|
float | m_JetPtCut |
|
float | m_JetEtaCut |
|
float | m_SoftMuonPtMin |
|
float | m_SoftMuonPtMax |
|
float | m_MuonPtCut |
|
float | m_MuonEtaCut |
|
float | m_ElectronPtCut |
|
float | m_ElectronEtaCut |
|
float | m_ElectronEtaCrackLowCut |
|
float | m_ElectronEtaCrackHighCut |
|
float | m_ElectronTopoEtCone20Cut |
|
float | m_ElectronPtVarCone20Cut |
|
float | m_MuonTopoEtCone20Cut |
|
float | m_MuonPtVarCone30Cut |
|
float | m_JVTCut |
|
float | m_JVTpTCut |
|
float | m_JVTetaCut |
|
std::string | m_TaggerName |
|
float | m_cFraction |
|
float | m_WP60Cut |
|
float | m_WP70Cut |
|
float | m_WP77Cut |
|
float | m_WP85Cut |
|
std::string | m_name |
|
std::unordered_map< std::string, size_t > | m_toolLookupMap |
|
const ToolHandle< GenericMonitoringTool > | m_dummy |
|
Gaudi::Property< bool > | m_enforceExpressTriggers |
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
|
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 |
|
Definition at line 55 of file JetTagMonitorAlgorithm.h.
◆ MonVarVec_t
◆ StoreGateSvc_t
◆ DataType_t
Specifies what type of input data is being monitored.
An enumeration of the different types of data the monitoring application may be running over. This can be used to select which histograms to produce, e.g. to prevent the production of colliding-beam histograms when running on cosmic-ray data. Strings of the same names may be given as jobOptions.
Enumerator |
---|
userDefined | |
monteCarlo | |
collisions | |
cosmics | |
heavyIonCollisions | |
Definition at line 191 of file AthMonitorAlgorithm.h.
◆ Environment_t
Specifies the processing environment.
The running environment may be used to select which histograms are produced, and where they are located in the output. For example, the output paths of the histograms are different for the "user", "online" and the various offline flags. Strings of the same names may be given as jobOptions.
Enumerator |
---|
user | |
online | |
tier0 | |
tier0Raw | |
tier0ESD | |
AOD | |
altprod | |
Definition at line 172 of file AthMonitorAlgorithm.h.
◆ Jet_t
◆ JetTagMonitorAlgorithm()
JetTagMonitorAlgorithm::JetTagMonitorAlgorithm |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~JetTagMonitorAlgorithm()
JetTagMonitorAlgorithm::~JetTagMonitorAlgorithm |
( |
| ) |
|
|
virtual |
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 55 of file AthReentrantAlgorithm.cxx.
◆ dataType()
DataType_t AthMonitorAlgorithm::dataType |
( |
| ) |
const |
|
inlineinherited |
Accessor functions for the data type.
- Returns
- the current value of the class's DataType_t instance.
Definition at line 221 of file AthMonitorAlgorithm.h.
◆ dataTypeStringToEnum()
Convert the data type string from the python configuration to an enum object.
- Returns
- a value in the DataType_t enumeration which matches the input string.
Definition at line 140 of file AthMonitorAlgorithm.cxx.
142 std::string lowerCaseStr =
str;
146 if( lowerCaseStr ==
"userdefined" ) {
148 }
else if( lowerCaseStr ==
"montecarlo" ) {
150 }
else if( lowerCaseStr ==
"collisions" ) {
152 }
else if( lowerCaseStr ==
"cosmics" ) {
154 }
else if( lowerCaseStr ==
"heavyioncollisions" ) {
157 ATH_MSG_WARNING(
"AthMonitorAlgorithm::dataTypeStringToEnum(): Unknown data type "
158 <<
str<<
", returning userDefined.");
◆ 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()
◆ environment()
Accessor functions for the environment.
- Returns
- the current value of the class's Environment_t instance.
Definition at line 205 of file AthMonitorAlgorithm.h.
◆ envStringToEnum()
Convert the environment string from the python configuration to an enum object.
- Returns
- a value in the Environment_t enumeration which matches the input string.
Definition at line 112 of file AthMonitorAlgorithm.cxx.
114 std::string lowerCaseStr =
str;
118 if( lowerCaseStr ==
"user" ) {
120 }
else if( lowerCaseStr ==
"online" ) {
122 }
else if( lowerCaseStr ==
"tier0" ) {
124 }
else if( lowerCaseStr ==
"tier0raw" ) {
126 }
else if( lowerCaseStr ==
"tier0esd" ) {
128 }
else if( lowerCaseStr ==
"aod" ) {
130 }
else if( lowerCaseStr ==
"altprod" ) {
133 ATH_MSG_WARNING(
"AthMonitorAlgorithm::envStringToEnum(): Unknown environment "
134 <<
str<<
", returning user.");
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode AthMonitorAlgorithm::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtualinherited |
Applies filters and trigger requirements.
Then, calls fillHistograms().
- Parameters
-
ctx | event context for reentrant Athena call |
- Returns
- StatusCode
Definition at line 73 of file AthMonitorAlgorithm.cxx.
78 if (!filterItr->accept()) {
80 return StatusCode::SUCCESS;
87 return StatusCode::SUCCESS;
◆ 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
◆ extraOutputDeps()
const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ fillExtraTaggerHistos()
void JetTagMonitorAlgorithm::fillExtraTaggerHistos |
( |
const xAOD::Jet * |
jet | ) |
const |
|
private |
Definition at line 1083 of file JetTagMonitorAlgorithm.cxx.
1086 if ( !bTaggingObject ) {
1087 ATH_MSG_DEBUG(
"Could not retrieve b-tagging object from selected jet." );
1097 double mv_pu = 0, mv_pb = 0, mv_pc = 0;
1102 jet_MV_pu_good = mv_pu;
1103 jet_MV_pc_good = mv_pc;
1104 jet_MV_pb_good = mv_pb;
1106 fill(
tool,jet_MV_pu_good,jet_MV_pc_good,jet_MV_pb_good);
◆ fillGoodJetHistos()
void JetTagMonitorAlgorithm::fillGoodJetHistos |
( |
const xAOD::Jet * |
jet | ) |
const |
|
private |
Definition at line 783 of file JetTagMonitorAlgorithm.cxx.
804 jet_MV_pt_200_1000=mv;
807 jet_MV_pt_150_200=mv;
810 jet_MV_pt_100_150=mv;
840 if ( std::abs(
jet->eta()) > 2.0 ) {
843 else if ( std::abs(
jet->eta()) > 1.5 ) {
846 else if ( std::abs(
jet->eta()) > 1.0 ) {
849 else if ( std::abs(
jet->eta()) > 0.5 ) {
852 else if ( std::abs(
jet->eta()) > 0.0 ) {
856 if ( std::abs(
jet->phi()) > 2.5 ) {
859 else if ( std::abs(
jet->phi()) > 2.0 ) {
862 else if ( std::abs(
jet->phi()) > 1.5 ) {
865 else if ( std::abs(
jet->phi()) > 1.0 ) {
868 else if ( std::abs(
jet->phi()) > 0.5 ) {
871 else if ( std::abs(
jet->phi()) > 0.0 ) {
886 jet_eta_85tag =
jet->eta();
887 jet_phi_85tag =
jet->phi();
888 fill(
tool,jet_eta_85tag,jet_phi_85tag);
890 jet_eta_77tag =
jet->eta();
891 jet_phi_77tag =
jet->phi();
892 fill(
tool,jet_eta_77tag,jet_phi_77tag);
894 jet_eta_70tag =
jet->eta();
895 jet_phi_70tag =
jet->phi();
896 fill(
tool,jet_eta_70tag,jet_phi_70tag);
898 jet_eta_60tag =
jet->eta();
899 jet_phi_60tag =
jet->phi();
900 fill(
tool,jet_eta_60tag,jet_phi_60tag);
907 jet_eta =
jet->eta();
927 fill(
tool,jet_eta,pass85e,pass77e,pass70e,pass60e,
jet_phi,pass85f,pass77f,pass70f,pass60f);
◆ fillHistograms()
StatusCode JetTagMonitorAlgorithm::fillHistograms |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
adds event to the monitoring histograms
User will overwrite this function. Histogram booking is no longer done in C++. This function is called in execute once the filters are all passed.
- Parameters
-
ctx | forwarded from execute |
- Returns
- StatusCode
Implements AthMonitorAlgorithm.
Definition at line 87 of file JetTagMonitorAlgorithm.cxx.
103 fill(
tool,Run_lb,Run_mu,Cutflow_Event);
109 return StatusCode::SUCCESS;
131 if (!vertices.isValid()) {
133 return StatusCode::SUCCESS;
136 PV_n = vertices->size();
138 PV_n_on_mu = PV_n/Run_mu;
142 if (vertices->size() < 2) {
144 return StatusCode::SUCCESS;
150 bool foundVxTypePriVtx =
false;
152 for (
const auto vertItr : *vertices) {
153 ATH_MSG_DEBUG(
"Simple vertex: x = " << PV_x <<
", y = " << PV_y <<
", z = " << PV_z);
156 foundVxTypePriVtx =
true;
162 ATH_MSG_DEBUG(
"Primary vertex: x = " << PV_x <<
", y = " << PV_y <<
", z = " << PV_z);
164 if (PV_x == 0 && PV_y == 0 && PV_z == 0)
167 if (vertItr->nTrackParticles()>0) {
168 PV_tracks_n = vertItr->nTrackParticles();
170 PV_tracks_n_on_mu = PV_tracks_n/Run_mu;
175 fill(
tool,PV_x,PV_y,PV_z,PV_tracks_n,PV_tracks_n_on_mu);
180 if ( ! foundVxTypePriVtx ) {
181 ATH_MSG_DEBUG(
"xAOD::Vertex of type xAOD::VxType::PriVtx was not found in vertex container.");
182 return StatusCode::SUCCESS;
185 if ( PV_tracks_n < 4 )
186 return StatusCode::SUCCESS;
202 if (! muons.isValid() ) {
204 return StatusCode::SUCCESS;
207 for (
const auto muonItr : *muons) {
209 Muon_pT = muonItr->pt();
215 bool inAcceptance = TMath::Abs(muonItr->eta()) <
m_MuonEtaCut;
216 if (!inAcceptance)
continue;
218 if (muonItr->quality() > 1)
continue;
220 float topoetcone20_value = -999.;
221 float ptvarcone30_value = -999.;
226 Muon_charge = muonItr->charge();
230 if(IsolatedMuons_n>0)
231 ATH_MSG_DEBUG(IsolatedMuons_n <<
" Muon(s) isolated in event "<< Run_event);
239 int Electron_charge = 0;
244 return StatusCode::SUCCESS;
247 for (
const auto electronItr : *
electrons) {
248 ATH_MSG_DEBUG(
"Electron kinematics: eta = " << electronItr->eta() <<
", phi= " << electronItr->phi() <<
", pT= " << electronItr->pt() /
Gaudi::Units::GeV);
249 Electron_pT = electronItr->pt();
258 if (!inAcceptance)
continue;
260 bool lhmedium =
false;
261 electronItr->passSelection(lhmedium,
"LHMedium");
262 if (!lhmedium)
continue;
264 float topoetcone20_value = -999.;
265 float ptvarcone20_value = -999.;
270 Electron_charge = electronItr->charge();
271 ++IsolatedElectrons_n;
274 if(IsolatedElectrons_n>0)
275 ATH_MSG_DEBUG(IsolatedElectrons_n <<
" Electron(s) isolated in event "<< Run_event);
277 fill(
tool,IsolatedMuons_n,IsolatedElectrons_n);
280 bool isTTbarEvent =
false;
281 if (IsolatedElectrons_n == 1 && IsolatedMuons_n == 1 && Electron_charge*Muon_charge == -1) isTTbarEvent =
true;
284 ATH_MSG_DEBUG(
"This is a candidate ttbar event "<< Run_event);
287 if (IsolatedElectrons_n>0 || IsolatedMuons_n>0){
291 if (IsolatedElectrons_n>0){
295 else if(IsolatedMuons_n>0){
306 ATH_MSG_DEBUG(
"Event not accepted by single lepton pre-selection");
307 return StatusCode::SUCCESS;
335 if (!tracks.isValid()) {
337 return StatusCode::SUCCESS;
340 Tracks_n = tracks->size();
342 Tracks_n_on_mu = Tracks_n/Run_mu;
346 for (
const auto trackItr : *tracks) {
348 Hits_IBL = (
int)nIBLHits;
354 Hits_TRT=(
int)nTRTHits;
357 fill(
tool,Hits_IBL,Hits_Pixel,Hits_SCT, Hits_TRT,Hits_Si,Hits_ID);
359 ATH_MSG_DEBUG(
"Track hits: IBL = " << Hits_IBL <<
", PIX = " << Hits_Pixel);
360 ATH_MSG_DEBUG(
"Track hits: SCT = " << Hits_SCT <<
", Si = " << Hits_Si);
361 ATH_MSG_DEBUG(
"Track hits: TRT = " << Hits_TRT <<
", ID = " << Hits_ID);
374 if (!
jets.isValid()) {
376 return StatusCode::SUCCESS;
410 const xAOD::Jet* firstTTbarJet =
nullptr;
421 TLorentzVector smt_jet, smt_mu;
424 jet_n_all =
jets->size();
427 for (
const auto jetItr : *
jets) {
430 jet_eta_all = jetItr->eta();
431 jet_phi_all = jetItr->phi();
432 ATH_MSG_DEBUG(
"Jet kinematics: eta = " << jet_eta_all <<
", phi= " << jet_phi_all <<
", pT= " << jet_pT_all);
440 jet_eta_all = jetItr->eta();
441 jet_phi_all = jetItr->phi();
442 fill(
tool,Cutflow_Jet,jet_pT_all,jet_MV_all,jet_eta_all,jet_phi_all);
448 jet_eta_filter = jetItr->eta();
449 jet_phi_filter = jetItr->phi();
450 fill(
tool,Cutflow_Jet,jet_eta_filter,jet_phi_filter);
456 jet_eta_kin = jetItr->eta();
457 jet_phi_kin = jetItr->phi();
458 fill(
tool,Cutflow_Jet,jet_eta_kin,jet_phi_kin);
460 jet_MV_2_beforeJVTCut = mv;
465 jet_MV_3_afterJVTCut = mv;
470 jet_eta_jvt = jetItr->eta();
471 jet_phi_jvt = jetItr->phi();
472 fill(
tool,Cutflow_Jet,jet_eta_jvt,jet_phi_jvt);
475 int n_isoMuons = 0, n_ptMuons = 0;
476 for (
const auto muonItr : *muons) {
479 bool inAcceptance = TMath::Abs(muonItr->eta()) <
m_MuonEtaCut;
480 if (!inAcceptance)
continue;
485 float topoetcone20_value = -999.;
486 float ptvarcone30_value = -999.;
491 if (jetItr->p4().DeltaR(muonItr->p4())<0.4) ++n_isoMuons;
494 if ( (muonItr->pt() > (0.9*jetItr->pt())) && (jetItr->p4().DeltaR(muonItr->p4())<0.4) ) ++n_ptMuons;
497 ATH_MSG_DEBUG(
"Number of isolated muons within this jet: \"" << n_isoMuons);
498 ATH_MSG_DEBUG(
"Number of muons with 90% pT within this jet: \"" << n_ptMuons);
500 if(n_isoMuons>0)
continue;
501 if(n_ptMuons>0)
continue;
505 jet_eta_overlap = jetItr->eta();
506 jet_phi_overlap = jetItr->phi();
507 fill(
tool,Cutflow_Jet,jet_eta_overlap,jet_phi_overlap);
518 jet_eta_good = jetItr->eta();
519 jet_phi_good = jetItr->phi();
520 fill(
tool,Cutflow_Jet,jet_eta_good,jet_phi_good,jet_pT_good);
533 if ( Run_mu > 0. && Run_mu < 30. ) {
536 else if ( Run_mu > 30. && Run_mu < 50. ) {
537 jet_MV_mu_30_50 = mv;
539 else if ( Run_mu > 50. && Run_mu < 100. ) {
540 jet_MV_mu_50_100 = mv;
546 if (nTTbarGoodJets == 1) firstTTbarJet = jetItr;
547 if(nTTbarGoodJets >= 2) {
549 if (nTTbarGoodJets == 2) {
558 if (!inAcceptance)
continue;
562 for (
const auto softMuonItr : *muons) {
565 bool inAcceptance = TMath::Abs(softMuonItr->eta()) <
m_MuonEtaCut;
566 if (!inAcceptance)
continue;
576 if (softMuonItr->primaryTrackParticle()->d0() > 0.4)
continue;
578 SMTJets_dr = (jetItr->p4()).
DeltaR(softMuonItr->p4());
579 if ( SMTJets_dr >= 0.4)
continue;
581 smt_mu.SetPtEtaPhiE(softMuonItr->pt(),softMuonItr->eta(),softMuonItr->phi(),softMuonItr->e());
585 ATH_MSG_DEBUG(
"Number of soft muons per jet is " << SoftMuons_n);
588 if( SoftMuons_n == 1){
590 jet_eta_smt = jetItr->eta();
591 jet_phi_smt = jetItr->phi();
592 smt_jet.SetPtEtaPhiE(jetItr->pt(),jetItr->eta(),jetItr->phi(),jetItr->e());
600 jet_eta_suspect = jetItr->eta();
601 jet_phi_suspect = jetItr->phi();
602 fill(
tool,Cutflow_Jet,jet_eta_suspect,jet_phi_suspect);
606 else if ( qualityLabel ==
badJet ) {
608 jet_eta_bad = jetItr->eta();
609 jet_phi_bad = jetItr->phi();
610 fill(
tool,Cutflow_Jet,jet_eta_bad,jet_phi_bad);
617 ATH_MSG_DEBUG(
"Number of jets in ttbar events " << nTTbarGoodJets);
621 ATH_MSG_DEBUG(
"Number of jets with == 1 soft muon per event is " << SMTJets_n);
625 SMTJets_pTratio = SoftMuons_pT/SMTJets_pT;
627 fill(
tool,SoftMuons_pT,SMTJets_pT,SMTJets_pTratio,SMTJets_pTrel,SMTJets_dr,SMTJets_MV,jet_eta_smt,jet_phi_smt);
630 return StatusCode::SUCCESS;
◆ fillSuspectJetHistos()
void JetTagMonitorAlgorithm::fillSuspectJetHistos |
( |
const xAOD::Jet * |
jet | ) |
const |
|
private |
Definition at line 932 of file JetTagMonitorAlgorithm.cxx.
943 fill(
tool,jet_MV_suspect,jet_pT_suspect);
955 sus_jet_MV_pt_200_1000=mv;
958 sus_jet_MV_pt_150_200=mv;
961 sus_jet_MV_pt_100_150=mv;
964 sus_jet_MV_pt_70_100=mv;
967 sus_jet_MV_pt_40_70=mv;
970 sus_jet_MV_pt_20_40=mv;
973 sus_jet_MV_pt_0_20=mv;
991 if ( std::abs(
jet->eta()) > 2.0 ) {
992 sus_jet_MV_eta_20_25=mv;
994 else if ( std::abs(
jet->eta()) > 1.5 ) {
995 sus_jet_MV_eta_15_20=mv;
997 else if ( std::abs(
jet->eta()) > 1.0 ) {
998 sus_jet_MV_eta_10_15=mv;
1000 else if ( std::abs(
jet->eta()) > 0.5 ) {
1001 sus_jet_MV_eta_05_10=mv;
1003 else if ( std::abs(
jet->eta()) > 0.0 ) {
1004 sus_jet_MV_eta_00_05=mv;
1007 if ( std::abs(
jet->phi()) > 2.5 ) {
1008 sus_jet_MV_phi_25_31=mv;
1010 else if ( std::abs(
jet->phi()) > 2.0 ) {
1011 sus_jet_MV_phi_20_25=mv;
1013 else if ( std::abs(
jet->phi()) > 1.5 ) {
1014 sus_jet_MV_phi_15_20=mv;
1016 else if ( std::abs(
jet->phi()) > 1.0 ) {
1017 sus_jet_MV_phi_10_15=mv;
1019 else if ( std::abs(
jet->phi()) > 0.5 ) {
1020 sus_jet_MV_phi_05_10=mv;
1022 else if ( std::abs(
jet->phi()) > 0.0 ) {
1023 sus_jet_MV_phi_00_05=mv;
1037 sus_jet_eta_85tag =
jet->eta();
1038 sus_jet_phi_85tag =
jet->phi();
1039 fill(
tool,sus_jet_eta_85tag,sus_jet_phi_85tag);
1041 sus_jet_eta_77tag =
jet->eta();
1042 sus_jet_phi_77tag =
jet->phi();
1043 fill(
tool,sus_jet_eta_77tag,sus_jet_phi_77tag);
1045 sus_jet_eta_70tag =
jet->eta();
1046 sus_jet_phi_70tag =
jet->phi();
1047 fill(
tool,sus_jet_eta_70tag,sus_jet_phi_70tag);
1049 sus_jet_eta_60tag =
jet->eta();
1050 sus_jet_phi_60tag =
jet->phi();
1051 fill(
tool,sus_jet_eta_60tag,sus_jet_phi_60tag);
1058 sus_jet_eta =
jet->eta();
1073 sus_jet_phi =
jet->phi();
1078 fill(
tool,sus_jet_eta,pass85e,pass77e,pass70e,pass60e,sus_jet_phi,pass85f,pass77f,pass70f,pass60f);
◆ fillTTbarEventJetHistos()
void JetTagMonitorAlgorithm::fillTTbarEventJetHistos |
( |
const xAOD::Jet * |
jet | ) |
const |
|
private |
Definition at line 715 of file JetTagMonitorAlgorithm.cxx.
777 fill(
tool,TTbarJets_n,pass85n,pass77n,pass70n,pass60n,TTbarJets_pT,pass85p,pass77p,pass70p,pass60p);
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ GetEventInfo()
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
- Parameters
-
ctx | EventContext for the event |
- Returns
- a SG::ReadHandle<xAOD::EventInfo>
Definition at line 107 of file AthMonitorAlgorithm.cxx.
◆ getGroup()
Get a specific monitoring tool from the tool handle array.
Finds a specific GenericMonitoringTool instance from the list of monitoring tools (a ToolHandleArray). Throws a FATAL warning if the object found is empty.
- Parameters
-
name | string name of the desired tool |
- Returns
- reference to the desired monitoring tool
Definition at line 164 of file AthMonitorAlgorithm.cxx.
171 if (!isInitialized()) {
173 "It seems that the AthMonitorAlgorithm::initialize was not called "
174 "in derived class initialize method");
178 [](
const std::string&
s,
auto h) { return s +
"," + h.first; });
179 ATH_MSG_FATAL(
"The tool " <<
name <<
" could not be found in the tool array of the "
180 <<
"monitoring algorithm " <<
m_name <<
". This probably reflects a discrepancy between "
181 <<
"your python configuration and c++ filling code. Note: your available groups are {"
182 << available <<
"}.");
◆ getQualityLabel()
Definition at line 1112 of file JetTagMonitorAlgorithm.cxx.
1115 if ( !bTaggingObject ) {
1116 ATH_MSG_DEBUG(
"Could not retrieve b-tagging object from selected jet." );
1122 float jetTrack_pT = 0;
1123 float jetTrack_eta = 0;
1124 float jetTrack_phi = 0;
1127 int nLooseTracks = 0;
1185 TLorentzVector jet_TLV;
1186 jet_TLV.SetPtEtaPhiE(
jet->pt(),
jet->eta(),
jet->phi(),
jet->e());
1189 BTagTrackToJetAssociatorAcc(
"BTagTrackToJetAssociator");
1190 std::vector<ElementLink<xAOD::TrackParticleContainer>> assocTracks =
1191 BTagTrackToJetAssociatorAcc(*bTaggingObject);
1193 nTracks = assocTracks.size();
1196 if ( not jetTracks.isValid() )
continue;
1200 jetTrack_eta = jetTrackItr->
eta();
1201 jetTrack_phi = jetTrackItr->
phi();
1203 JetTracks_pT_0_all = jetTrack_pT;
1204 JetTracks_eta_0_all = jetTrack_eta;
1205 JetTracks_phi_0_all = jetTrack_phi;
1207 TLorentzVector JetTrack_TLV;
1208 JetTrack_TLV.SetPtEtaPhiE(jetTrackItr->
pt(), jetTrackItr->
eta(), jetTrackItr->
phi(), jetTrackItr->
e());
1210 JetTracks_DR_0_all = jet_TLV.DeltaR(JetTrack_TLV);
1212 fill(
tool,JetTracks_eta_0_all,JetTracks_phi_0_all,JetTracks_pT_0_all,JetTracks_DR_0_all);
1219 JetTracks_pT_1_loose = jetTrack_pT;
1220 JetTracks_eta_1_loose = jetTrack_eta;
1221 JetTracks_phi_1_loose = jetTrack_phi;
1228 JetTracks_Hits_IBL = nHitIBL;
1229 if(expectHitIBL < 1)
1230 JetTracks_Hits_IBL_expect = -1;
1232 JetTracks_Hits_IBL_expect = nHitIBL;
1233 JetTracks_eta_loose_IBL = jetTrack_eta;
1234 JetTracks_phi_loose_IBL = jetTrack_phi;
1241 JetTracks_Hits_BL = nHitBL;
1243 JetTracks_Hits_BL_expect = -1;
1245 JetTracks_Hits_BL_expect = nHitBL;
1246 JetTracks_eta_loose_BL = jetTrack_eta;
1247 JetTracks_phi_loose_BL = jetTrack_phi;
1256 nHitPix +=
std::max((
int)nDeadPix, 0);
1257 JetTracks_Hits_PIX = nHitPix;
1258 JetTracks_Holes_PIX = nHolePix;
1266 nHitSCT +=
std::max((
int)nDeadSCT, 0);
1267 JetTracks_Hits_SCT = nHitSCT;
1268 JetTracks_Holes_SCT = nHoleSCT;
1272 JetTracks_Hits_TRT = nHitTRT;
1274 JetTracks_Hits_Si = nHitPix + nHitSCT;
1275 JetTracks_Holes_Si = nHolePix + nHoleSCT;
1278 JetTracks_IP_d0 = jetTrackItr->
d0();
1280 JetTracks_IP_d0si = JetTracks_IP_d0/JetTracks_IP_d0s;
1283 JetTracks_IP_z0 = jetTrackItr->
z0() + jetTrackItr->
vz() - PVZ;
1285 JetTracks_IP_z0si = JetTracks_IP_z0/JetTracks_IP_z0s;
1286 JetTracks_IP_z0sin = JetTracks_IP_z0*
sin(jetTrackItr->
theta());
1289 JetTracks_eta_1_loose,JetTracks_phi_1_loose,JetTracks_pT_1_loose,
1290 JetTracks_Hits_IBL,JetTracks_Hits_IBL_expect,JetTracks_eta_loose_IBL,JetTracks_phi_loose_IBL,
1291 JetTracks_Hits_BL, JetTracks_Hits_BL_expect, JetTracks_eta_loose_BL, JetTracks_phi_loose_BL,
1292 JetTracks_Hits_PIX,JetTracks_Holes_PIX,
1293 JetTracks_Hits_SCT,JetTracks_Holes_SCT,
1295 JetTracks_Hits_Si,JetTracks_Holes_Si,
1296 JetTracks_IP_d0,JetTracks_IP_d0s,JetTracks_IP_d0si,JetTracks_IP_z0,JetTracks_IP_z0s,JetTracks_IP_z0si,JetTracks_IP_z0sin
1305 JetTracks_eta_2_kin = jetTrack_eta;
1306 JetTracks_phi_2_kin = jetTrack_phi;
1308 fill(
tool,JetTracks_eta_2_kin,JetTracks_phi_2_kin);
1316 JetTracks_eta_3_IP = jetTrack_eta;
1317 JetTracks_phi_3_IP = jetTrack_phi;
1319 fill(
tool,JetTracks_eta_3_IP,JetTracks_phi_3_IP);
1322 if(
m_TrackHitIBLCut == 0 || (JetTracks_Hits_IBL_expect != 0 && JetTracks_Hits_BL_expect != 0) ){
1326 JetTracks_eta_4_IBL = jetTrack_eta;
1327 JetTracks_phi_4_IBL = jetTrack_phi;
1329 fill(
tool,JetTracks_eta_4_IBL,JetTracks_phi_4_IBL);
1337 JetTracks_n_0_all = nTracks;
1338 JetTracks_n_1_loose = nLooseTracks;
1339 JetTracks_n_2_kin = nKinTracks;
1340 JetTracks_n_3_IP = nIPTracks;
1341 JetTracks_n_4_IBL = nIBLTracks;
1342 fill(
tool,JetTracks_n_0_all,JetTracks_n_1_loose,JetTracks_n_2_kin,JetTracks_n_3_IP,JetTracks_n_4_IBL);
1350 if(nIBLTracks < nIPTracks)
return suspectJet;
◆ getTaggerWeight()
double JetTagMonitorAlgorithm::getTaggerWeight |
( |
const xAOD::Jet * |
jet | ) |
const |
|
private |
Definition at line 692 of file JetTagMonitorAlgorithm.cxx.
697 if ( !bTaggingObject ) {
698 ATH_MSG_DEBUG(
"Could not retrieve b-tagging object from selected jet." );
702 double mv = 0, mv_pu = 0, mv_pb = 0, mv_pc = 0;
708 if ( mv_pb != 0 && (mv_pu != 0 || mv_pc != 0)) {
◆ getTrigDecisionTool()
Get the trigger decision tool member.
The trigger decision tool is used to check whether a specific trigger is passed by an event.
- Returns
- m_trigDecTool
Definition at line 189 of file AthMonitorAlgorithm.cxx.
◆ initialize()
StatusCode JetTagMonitorAlgorithm::initialize |
( |
| ) |
|
|
overridevirtual |
initialize
- Returns
- StatusCode
Reimplemented from AthMonitorAlgorithm.
Definition at line 55 of file JetTagMonitorAlgorithm.cxx.
72 const size_t jetStringItr = rawJetContainerName.find(
"Jets");
73 if (jetStringItr != std::string::npos)
74 rawJetContainerName = rawJetContainerName.replace(jetStringItr, std::string::npos,
"");
83 return StatusCode::SUCCESS;
◆ 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.
◆ isClonable()
bool AthReentrantAlgorithm::isClonable |
( |
| ) |
const |
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, InDet::SiSPGNNTrackMaker, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
◆ 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.
◆ parseList()
StatusCode AthMonitorAlgorithm::parseList |
( |
const std::string & |
line, |
|
|
std::vector< std::string > & |
result |
|
) |
| const |
|
virtualinherited |
Parse a string into a vector.
The input string is a single long string of all of the trigger names. It parses this string and turns it into a vector, where each element is one trigger or trigger category.
- Parameters
-
line | The input string. |
result | The parsed output vector of strings. |
- Returns
- StatusCode
Definition at line 336 of file AthMonitorAlgorithm.cxx.
338 std::stringstream
ss(
line);
342 while ( std::getline(
ss,
item,
',') ) {
343 std::stringstream iss(
item);
348 return StatusCode::SUCCESS;
◆ passJetFilterCut()
bool JetTagMonitorAlgorithm::passJetFilterCut |
( |
const xAOD::Jet * |
jet | ) |
const |
|
private |
Definition at line 633 of file JetTagMonitorAlgorithm.cxx.
635 bool pass_cuts =
false;
641 std::vector<float> SumPtTrkPt1000;
643 float chf = SumPtTrkPt1000.size() > 0 ? SumPtTrkPt1000.at(0)/
jet->pt() : -1;
651 (emf>0.95 && std::abs(jetQuality)>0.8 && std::abs(
jet->eta()) < 2.8) ||
652 (std::abs(jetTime)>25) ||
653 (emf<0.05 && chf<0.05 && std::abs(
jet->eta())<2) ||
654 (emf<0.05 && std::abs(
jet->eta())>= 2) ||
655 (fracSamplingMax>0.99 && std::abs(
jet->eta())<2)
◆ passJVTCut()
bool JetTagMonitorAlgorithm::passJVTCut |
( |
const xAOD::Jet * |
jet | ) |
const |
|
private |
◆ passKinematicCut()
bool JetTagMonitorAlgorithm::passKinematicCut |
( |
const xAOD::Jet * |
jet | ) |
const |
|
private |
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ trigChainsArePassed()
bool AthMonitorAlgorithm::trigChainsArePassed |
( |
const std::vector< std::string > & |
vTrigNames | ) |
const |
|
inherited |
Check whether triggers are passed.
For the event, use the trigger decision tool to check that at least one of the triggers listed in the supplied vector is passed.
- Parameters
-
vTrigNames | List of trigger names. |
- Returns
- If empty input, default to true. If at least one trigger is specified, returns whether at least one trigger was passed.
Definition at line 194 of file AthMonitorAlgorithm.cxx.
198 if (vTrigNames.empty())
return true;
210 bool expressPass = passedBits & TrigDefs::Express_passed;
217 return group->isPassed();
◆ updateVHKA()
◆ cfg
JetTagMonitorAlgorithm.cfg = MainServicesCfg(flags) |
◆ Files
JetTagMonitorAlgorithm.Files |
◆ flags
JetTagMonitorAlgorithm.flags = initConfigFlags() |
◆ HISTFileName
JetTagMonitorAlgorithm.HISTFileName |
◆ isMC
JetTagMonitorAlgorithm.isMC |
◆ jetTagMonitorAcc
◆ m_btagLinkKey
◆ m_btagResultKey
◆ m_cFraction
float JetTagMonitorAlgorithm::m_cFraction |
|
private |
◆ m_dataType
◆ m_dataTypeStr
Gaudi::Property<std::string> AthMonitorAlgorithm::m_dataTypeStr {this,"DataType","userDefined"} |
|
protectedinherited |
◆ m_defaultLBDuration
Gaudi::Property<float> AthMonitorAlgorithm::m_defaultLBDuration {this,"DefaultLBDuration",60.} |
|
protectedinherited |
◆ m_detailLevel
Gaudi::Property<int> AthMonitorAlgorithm::m_detailLevel {this,"DetailLevel",0} |
|
protectedinherited |
◆ m_detStore
◆ m_DoExtraTaggerHistos
bool JetTagMonitorAlgorithm::m_DoExtraTaggerHistos |
|
private |
◆ m_DQFilterTools
ToolHandleArray<IDQFilterTool> AthMonitorAlgorithm::m_DQFilterTools {this,"FilterTools",{}} |
|
protectedinherited |
◆ m_dummy
◆ m_ElectronContainerKey
◆ m_ElectronEtaCrackHighCut
float JetTagMonitorAlgorithm::m_ElectronEtaCrackHighCut |
|
private |
◆ m_ElectronEtaCrackLowCut
float JetTagMonitorAlgorithm::m_ElectronEtaCrackLowCut |
|
private |
◆ m_ElectronEtaCut
float JetTagMonitorAlgorithm::m_ElectronEtaCut |
|
private |
◆ m_ElectronPtCut
float JetTagMonitorAlgorithm::m_ElectronPtCut |
|
private |
◆ m_ElectronPtVarCone20Cut
float JetTagMonitorAlgorithm::m_ElectronPtVarCone20Cut |
|
private |
◆ m_ElectronTopoEtCone20Cut
float JetTagMonitorAlgorithm::m_ElectronTopoEtCone20Cut |
|
private |
◆ m_EleEtIsoDecorKey
◆ m_ElePtIsoDecorKey
◆ m_enforceExpressTriggers
Gaudi::Property<bool> AthMonitorAlgorithm::m_enforceExpressTriggers |
|
privateinherited |
Initial value:{this,
"EnforceExpressTriggers", false,
"Requires that matched triggers made the event enter the express stream"}
Definition at line 372 of file AthMonitorAlgorithm.h.
◆ m_environment
◆ m_environmentStr
Gaudi::Property<std::string> AthMonitorAlgorithm::m_environmentStr {this,"Environment","user"} |
|
protectedinherited |
Environment string pulled from the job option and converted to enum.
Definition at line 352 of file AthMonitorAlgorithm.h.
◆ m_EventInfoKey
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_fileKey
Gaudi::Property<std::string> AthMonitorAlgorithm::m_fileKey {this,"FileKey",""} |
|
protectedinherited |
◆ m_JetContainerKey
◆ m_JetEtaCut
float JetTagMonitorAlgorithm::m_JetEtaCut |
|
private |
◆ m_JetPtCut
float JetTagMonitorAlgorithm::m_JetPtCut |
|
private |
◆ m_JVTCut
float JetTagMonitorAlgorithm::m_JVTCut |
|
private |
◆ m_JVTetaCut
float JetTagMonitorAlgorithm::m_JVTetaCut |
|
private |
◆ m_JVTpTCut
float JetTagMonitorAlgorithm::m_JVTpTCut |
|
private |
◆ m_lbDurationDataKey
◆ m_lumiDataKey
◆ m_MinGoodTrackCut
int JetTagMonitorAlgorithm::m_MinGoodTrackCut |
|
private |
◆ m_MuonContainerKey
◆ m_MuonEtaCut
float JetTagMonitorAlgorithm::m_MuonEtaCut |
|
private |
◆ m_MuonEtIsoDecorKey
◆ m_MuonPtCut
float JetTagMonitorAlgorithm::m_MuonPtCut |
|
private |
◆ m_MuonPtIsoDecorKey
◆ m_MuonPtVarCone30Cut
float JetTagMonitorAlgorithm::m_MuonPtVarCone30Cut |
|
private |
◆ m_MuonTopoEtCone20Cut
float JetTagMonitorAlgorithm::m_MuonTopoEtCone20Cut |
|
private |
◆ m_name
std::string AthMonitorAlgorithm::m_name |
|
privateinherited |
◆ m_SkipJetFilter
bool JetTagMonitorAlgorithm::m_SkipJetFilter |
|
private |
◆ m_SkipPreSelection
bool JetTagMonitorAlgorithm::m_SkipPreSelection |
|
private |
◆ m_SoftMuonPtMax
float JetTagMonitorAlgorithm::m_SoftMuonPtMax |
|
private |
◆ m_SoftMuonPtMin
float JetTagMonitorAlgorithm::m_SoftMuonPtMin |
|
private |
◆ m_TaggerName
std::string JetTagMonitorAlgorithm::m_TaggerName |
|
private |
◆ m_toolLookupMap
std::unordered_map<std::string, size_t> AthMonitorAlgorithm::m_toolLookupMap |
|
privateinherited |
◆ m_tools
◆ m_TrackContainerKey
◆ m_Trackd0Cut
float JetTagMonitorAlgorithm::m_Trackd0Cut |
|
private |
◆ m_TrackHitIBLCut
int JetTagMonitorAlgorithm::m_TrackHitIBLCut |
|
private |
◆ m_TrackPtCut
float JetTagMonitorAlgorithm::m_TrackPtCut |
|
private |
◆ m_TrackSelectionTool
◆ m_Trackz0sinCut
float JetTagMonitorAlgorithm::m_Trackz0sinCut |
|
private |
◆ m_trigDecTool
◆ m_triggerChainString
Gaudi::Property<std::string> AthMonitorAlgorithm::m_triggerChainString {this,"TriggerChain",""} |
|
protectedinherited |
Trigger chain string pulled from the job option and parsed into a vector.
Definition at line 355 of file AthMonitorAlgorithm.h.
◆ m_trigLiveFractionDataKey
◆ m_useLumi
Gaudi::Property<bool> AthMonitorAlgorithm::m_useLumi {this,"EnableLumi",false} |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_VertContainerKey
◆ m_vhka
◆ m_vTrigChainNames
std::vector<std::string> AthMonitorAlgorithm::m_vTrigChainNames |
|
protectedinherited |
◆ m_WP60Cut
float JetTagMonitorAlgorithm::m_WP60Cut |
|
private |
◆ m_WP70Cut
float JetTagMonitorAlgorithm::m_WP70Cut |
|
private |
◆ m_WP77Cut
float JetTagMonitorAlgorithm::m_WP77Cut |
|
private |
◆ m_WP85Cut
float JetTagMonitorAlgorithm::m_WP85Cut |
|
private |
◆ withDetails
JetTagMonitorAlgorithm.withDetails |
The documentation for this class was generated from the following files:
virtual double pt() const override final
The transverse momentum ( ) of the particle.
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainerKey
virtual float lbInteractionsPerCrossing(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate instantaneous number of interactions, i.e.
@ topoetcone20
Topo-cluster ET-sum.
@ ptvarcone20
Mini-Isolation http://arxiv.org/abs/1007.2221.
void fillExtraTaggerHistos(const xAOD::Jet *jet) const
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
Helper class to provide type-safe access to aux data.
bool nPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Scalar eta() const
pseudorapidity method
bool passJVTCut(const xAOD::Jet *jet) const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
float vz() const
The z origin for the parameters.
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainerKey
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
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)
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
float z0() const
Returns the parameter.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
std::unordered_map< std::string, size_t > m_toolLookupMap
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
void fillSuspectJetHistos(const xAOD::Jet *jet) const
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfTRTHits
number of TRT hits [unit8_t].
Helper class to provide constant type-safe access to aux data.
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_MuonEtIsoDecorKey
bool isValid() const
Test to see if the link can be dereferenced.
bool trigChainsArePassed(const std::vector< std::string > &vTrigNames) const
Check whether triggers are passed.
float d0() const
Returns the parameter.
virtual void setOwner(IDataHandleHolder *o)=0
const ToolHandle< GenericMonitoringTool > m_dummy
@ Error
The sub-detector issued an error.
bool passKinematicCut(const xAOD::Jet *jet) const
SG::ReadDecorHandleKey< xAOD::BTaggingContainer > m_btagResultKey
ToolHandle< InDet::IInDetTrackSelectionTool > m_TrackSelectionTool
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
bool pc(const std::string &taggername, double &value) const
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Generic monitoring tool for athena components.
SG::ReadDecorHandleKey< xAOD::JetContainer > m_btagLinkKey
bool m_DoExtraTaggerHistos
::StatusCode StatusCode
StatusCode definition for legacy code.
void tolower(std::string &s)
virtual StatusCode fillHistograms(const EventContext &ctx) const =0
adds event to the monitoring histograms
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
void fillTTbarEventJetHistos(const xAOD::Jet *jet) const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
AthConfigFlags cosmics(AthConfigFlags flags, str instanceName, str recoMode)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
@ numberOfSCTHoles
number of SCT holes [unit8_t].
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
AthMonitorAlgorithm::DataType_t m_dataType
Instance of the DataType_t enum.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
bool pu(const std::string &taggername, double &value) const
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
const ParametersCovMatrix_t definingParametersCovMatrix() const
Returns the 5x5 symmetric matrix containing the defining parameters covariance matrix.
float m_MuonPtVarCone30Cut
double getTaggerWeight(const xAOD::Jet *jet) const
virtual StatusCode sysInitialize() override
Override sysInitialize.
Gaudi::Property< bool > m_enforceExpressTriggers
bool nSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_ElePtIsoDecorKey
virtual double e() const override final
The total energy of the particle.
SG::ReadHandleKey< xAOD::JetContainer > m_JetContainerKey
Jet_t getQualityLabel(const xAOD::Jet *jet, float PV_Z) const
virtual StatusCode initialize() override
initialize
const BTagging * getBTagging(const SG::AuxElement &part)
Access the default xAOD::BTagging object associated to an object.
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_MuonPtIsoDecorKey
#define ATH_MSG_WARNING(x)
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
float m_ElectronTopoEtCone20Cut
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_EleEtIsoDecorKey
float m_ElectronPtVarCone20Cut
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
void fillGoodJetHistos(const xAOD::Jet *jet) const
Class describing a TrackParticle.
SG::ReadHandleKey< xAOD::VertexContainer > m_VertContainerKey
float m_ElectronEtaCrackLowCut
Declare a monitored scalar variable.
bool passJetFilterCut(const xAOD::Jet *jet) const
float theta() const
Returns the parameter, which has range 0 to .
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
float m_ElectronEtaCrackHighCut
@ Core
Core flags describing the event.
float m_MuonTopoEtCone20Cut
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
constexpr std::initializer_list< int > Tile
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackContainerKey
const uint16_t AuthorElectron
Object Reconstructed by standard cluster-based algorithm.
bool pb(const std::string &taggername, double &value) const