Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <DQTGlobalWZFinderAlg.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...
|
|
|
| DQTGlobalWZFinderAlg (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~DQTGlobalWZFinderAlg ()=default |
|
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...
|
|
|
bool | kinematicCuts (const xAOD::Egamma *particle) const |
|
bool | goodElectrons (const xAOD::Electron *electron_itr, const xAOD::Vertex *pVtx, const EventContext &ctx) const |
|
bool | antiGoodElectrons (const xAOD::Electron *electron_itr, const xAOD::Vertex *pVtx, const EventContext &ctx) const |
|
void | fillEleEffHistos (bool tag_good, bool probe_good, bool probe_anti_good, bool os, double el_mass) const |
|
void | doEleTriggerTP (const xAOD::Electron *el1, const xAOD::Electron *el2, const EventContext &ctx, bool writeTTrees, const float evtWeight, bool osel, bool ssel) const |
|
void | doEleTP (const xAOD::Electron *leadingAllEle, const xAOD::Electron *subleadingAllEle, const xAOD::Vertex *pVtx, const EventContext &ctx, bool writeTTrees, bool isSimulation, const float evtWeight) const |
|
void | doEleContainerTP (std::vector< const xAOD::Electron * > &allElectrons, std::vector< const xAOD::Electron * > &goodelectrons, const EventContext &ctx) const |
|
void | doMuonTriggerTP (const xAOD::Muon *mu1, const xAOD::Muon *mu2, const EventContext &ctx, bool isSimulation, bool writeTTrees, const float evtWeight) const |
|
void | doMuonTruthEff (std::vector< const xAOD::Muon * > &goodmuonsZ, const EventContext &ctx) const |
|
void | doMuonLooseTP (std::vector< const xAOD::Muon * > &goodmuonsZ, const xAOD::Vertex *pVtx, const EventContext &ctx, bool isSimulation, bool writeTTrees, const float evtWeight) const |
|
void | doMuonInDetTP (std::vector< const xAOD::Muon * > &goodmuonsZ, const xAOD::Vertex *pVtx, const EventContext &ctx, bool isSimulation, bool writeTTrees, const float evtWeight) const |
|
bool | checkTruthElectron (const xAOD::Electron *electron) const |
|
bool | checkTruthMuon (const xAOD::Muon *muon) const |
|
bool | checkTruthTrack (const xAOD::TrackParticle *trk) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
Gaudi::Property< float_t > | m_electronEtCut {this, "electronEtCut", 27} |
|
Gaudi::Property< float_t > | m_muonPtCut {this, "muonPtCut", 27} |
|
Gaudi::Property< float_t > | m_zCutLow {this, "zCutLow", 66.0} |
|
Gaudi::Property< float_t > | m_zCutHigh {this, "zCutHigh", 116.0} |
|
Gaudi::Property< float_t > | m_muonMaxEta {this, "muonMaxEta", 2.4} |
|
Gaudi::Property< std::vector< std::string > > | m_Z_ee_trigger {this, "Z_ee_trigger", {"HLT_e26_lhtight_ivarloose_L1EM22VHI", "HLT_e60_lhmedium_L1EM22VHI"}} |
|
Gaudi::Property< std::vector< std::string > > | m_Z_mm_trigger {this, "Z_mm_trigger", {"HLT_mu24_ivarmedium_L1MU14FCH", "HLT_mu50_L1MU14FCH"}} |
|
BooleanProperty | m_doRunBeam {this, "doRunBeam", true} |
|
BooleanProperty | m_doTrigger {this, "doTrigger", false} |
|
BooleanProperty | m_do_BCID {this, "do_BCID", false} |
|
ToolHandle< CP::IMuonSelectionTool > | m_muonSelectionTool {this,"MuonSelectionTool","CP::MuonSelectionTool/MuonSelectionTool","MuonSelectionTool"} |
|
ToolHandle< Trig::R3MatchingTool > | m_r3MatchingTool {this, "R3MatchingTool", "Trig::R3MatchingTool", "R3MatchingTool"} |
|
ToolHandle< IMCTruthClassifier > | m_truthClassifier {this, "MCTruthClassifier", "MCTruthClassifier/MCTruthClassifier", "MCTruthClassifier"} |
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_ElectronContainerKey { this, "ElectronContainerName", "Electrons", "" } |
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_MuonContainerKey { this, "MuonContainerName", "Muons", "" } |
|
SG::ReadHandleKey< xAOD::PhotonContainer > | m_PhotonContainerKey { this, "PhotonContainerName", "Photons", ""} |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_VertexContainerKey { this, "PrimaryVertexContainerName", "PrimaryVertices" } |
|
SG::ReadHandleKey< xAOD::TruthParticleContainer > | m_TruthParticleContainerKey {this, "TruthParticleContainerName", "TruthParticles", "" } |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_idTrackParticleContainerKey {this, "MuonInDetTrackParticleContainerName", "InDetTrackParticles", ""} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_msTrackParticleContainerKey {this, "MuonExtrapolatedTrackParticleContainerName", "ExtrapolatedMuonTrackParticles", ""} |
|
SG::ReadDecorHandleKeyArray< xAOD::MuonContainer > | m_isoMuonContainerKey {this, "IsoMuonVariableNames", {"Muons.ptcone20"}, "Isolation decoration for muon container"} |
|
SG::ReadDecorHandleKeyArray< xAOD::ElectronContainer > | m_isoElectronContainerKey {this, "IsoElectronVariableNames", {"Electrons.ptcone20"}, "Isolation decoration for electron container"} |
|
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 39 of file DQTGlobalWZFinderAlg.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.
◆ DQTGlobalWZFinderAlg()
DQTGlobalWZFinderAlg::DQTGlobalWZFinderAlg |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~DQTGlobalWZFinderAlg()
virtual DQTGlobalWZFinderAlg::~DQTGlobalWZFinderAlg |
( |
| ) |
|
|
virtualdefault |
◆ antiGoodElectrons()
Definition at line 729 of file DQTGlobalWZFinderAlg.cxx.
735 bool antiGood =
false;
739 if (! aptc20.isAvailable(*electron_itr)) {
746 if ((electron_itr)->
pt() != 0.0){
751 bool passIso =
false;
752 if(eleIso < 0.1) passIso =
true;
753 auto elTrk = (electron_itr)->trackParticle();
774 std::abs(d0sig) < 5 &&
776 std::abs((elTrk->z0()+elTrk->vz()-pVtx->
z())*
std::sin(elTrk->theta())) < 0.5*
mm)
778 if(std::abs((electron_itr)->caloCluster()->
etaBE(2)) > 1.37 && std::abs((electron_itr)->caloCluster()->
etaBE(2)) < 1.52){
782 if(!passID && !passIso) antiGood =
true;
◆ cardinality()
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 75 of file AthCommonReentrantAlgorithm.cxx.
◆ checkTruthElectron()
Definition at line 1126 of file DQTGlobalWZFinderAlg.cxx.
1131 bool truthMatched =
false;
1133 std::pair<unsigned int, unsigned int>
res;
1139 unsigned int iTypeOfPart =
res.first;
1140 unsigned int iPartOrig =
res.second;
1143 truthMatched =
true;
1147 return truthMatched;
◆ checkTruthMuon()
Definition at line 1151 of file DQTGlobalWZFinderAlg.cxx.
1156 bool truthMatched =
false;
1158 std::pair<unsigned int, unsigned int>
res;
1163 unsigned int iTypeOfPart =
res.first;
1164 unsigned int iPartOrig =
res.second;
1166 auto muTrk =
muon->primaryTrackParticle();
1172 truthMatched =
true;
1176 return truthMatched;
◆ checkTruthTrack()
Definition at line 1180 of file DQTGlobalWZFinderAlg.cxx.
1185 bool truthMatched =
false;
1187 std::pair<unsigned int, unsigned int>
res;
1192 unsigned int iTypeOfPart =
res.first;
1193 unsigned int iPartOrig =
res.second;
1199 truthMatched =
true;
1203 return truthMatched;
◆ 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()
◆ doEleContainerTP()
Definition at line 588 of file DQTGlobalWZFinderAlg.cxx.
592 auto group_EleContainerTP =
getGroup(
"EleContainerTP");
594 auto container_nomatch =
Scalar<bool>(
"container_nomatch",
false);
597 if ( ! photons.isValid() ) {
604 for (
const auto& tagEl : goodelectrons) {
614 auto tagElp4(tagEl->p4());
616 if (tagEl->passSelection(
"LHTight")){
617 for (
const auto& el2 : allElectrons){
619 auto probeElp4(el2->p4());
620 auto mass =
Scalar(
"mass", (tagElp4+probeElp4).M());
622 fill(group_EleContainerTP,
mass, pass_kine);
629 auto photonp4(
photon->p4());
630 auto mass =
Scalar(
"mass", (tagElp4+photonp4).M());
635 for (
const auto& el2 : allElectrons){
637 bool passKinematics =
true;
639 passKinematics =
false;
640 if (std::abs(el2->caloCluster()->etaBE(2)) > 2.4)
641 passKinematics =
false;
642 if (std::abs(el2->caloCluster()->etaBE(2)) > 1.37 && std::abs(el2->caloCluster()->etaBE(2)) < 1.52)
643 passKinematics =
false;
646 if (!passKinematics || tagEl == el2 ||
deltaR < 0.1)
649 container_nomatch =
true;
650 fill(group_EleContainerTP,
mass, container_nomatch);
◆ doEleTP()
Definition at line 466 of file DQTGlobalWZFinderAlg.cxx.
472 auto group_EleTP =
getGroup(
"EleTP");
475 if(leadingAllEle && subleadingAllEle){
483 auto Zeecharge =
Scalar(
"Zeecharge", (leadingAllEle->
charge() + subleadingAllEle->
charge()));
484 auto p1(leadingAllEle->
p4());
485 auto p2(subleadingAllEle->
p4());
489 bool subleadPassKinematics =
kinematicCuts(subleadingAllEle);
491 if(!leadingPassKinematics || !subleadPassKinematics)
return;
494 bool subleading_good =
goodElectrons(subleadingAllEle, pVtx, ctx);
500 bool leading_trig =
false;
508 bool subleading_trig =
false;
511 subleading_trig =
true;
516 bool opp_sign = (Zeecharge==0);
518 bool tag_good1 = (leadingAllEle->
passSelection(
"LHTight") && leading_trig && leading_good);
519 bool tag_good2 = (subleadingAllEle->
passSelection(
"LHTight") && subleading_trig && subleading_good);
534 auto mtype =
Scalar(
"mtype", -1000);
538 pT = subleadingAllEle->
pt();
539 phi = subleadingAllEle->
phi();
544 LB = thisEventInfo->lumiBlock();
547 mtype = subleading_good ? 0 : 2;
548 if(subleading_antigood)
551 mtype = subleading_good ? 1 : 3;
552 if(subleading_antigood)
560 pT = leadingAllEle->
pt();
561 phi = leadingAllEle->
phi();
566 LB = thisEventInfo->lumiBlock();
◆ doEleTriggerTP()
Definition at line 387 of file DQTGlobalWZFinderAlg.cxx.
393 auto group_EleTrigTP =
getGroup(
"EleTrigTP");
399 std::vector<const xAOD::Electron*>
electrons{el1, el2};
417 bool matched_tag =
false;
426 auto tagelp4(tagel->p4());
427 if (!matched_tag)
continue;
429 if (tagel == probeel) {
432 auto probeelp4(probeel->p4());
433 auto mass =
Scalar(
"mass", (tagelp4+probeelp4).M());
434 bool matched_probe =
false;
437 auto pT =
Scalar(
"pT", probeel->pt());
438 auto phi =
Scalar(
"phi", probeel->phi());
439 auto eta =
Scalar(
"eta", probeel->caloCluster()->etaBE(2));
442 auto LB =
Scalar(
"LB", thisEventInfo->lumiBlock());
443 auto mtype =
Scalar(
"mtype", -1000);
447 matched_probe =
true;
453 mtype = osel ? 0 : 1;
455 else if (!matched_probe) {
456 mtype = osel ? 2 : 3;
◆ doMuonInDetTP()
void DQTGlobalWZFinderAlg::doMuonInDetTP |
( |
std::vector< const xAOD::Muon * > & |
goodmuonsZ, |
|
|
const xAOD::Vertex * |
pVtx, |
|
|
const EventContext & |
ctx, |
|
|
bool |
isSimulation, |
|
|
bool |
writeTTrees, |
|
|
const float |
evtWeight |
|
) |
| const |
|
private |
Definition at line 1024 of file DQTGlobalWZFinderAlg.cxx.
1029 int truthMatched = 0;
1030 for (
const auto mu: goodmuonsZ) {
1035 if (truthMatched < 2)
return;
1038 auto group_MuonInDetTP =
getGroup(
"MuonInDetTP");
1053 ATH_MSG_FATAL(
"Unable to retrieve ID tracks to do muon T&P");
1056 ATH_MSG_FATAL(
"Unable to retrieve MS tracks to do muon T&P");
1059 for (
const auto& tagmu : goodmuonsZ) {
1069 auto tagmup4(tagmu->p4());
1074 if (std::abs((trk->z0()+trk->vz()-pVtx->
z())*
std::sin(trk->theta())) > 2*
mm)
1076 auto trkp4(trk->p4());
1077 auto mass =
Scalar(
"mass", (tagmup4+trkp4).M());
1080 if (mass < m_zCutLow*GeV || mass >
m_zCutHigh*
GeV)
continue;
1086 auto mtype =
Scalar(
"mtype", -1000);
1090 auto LB =
Scalar(
"LB", thisEventInfo->lumiBlock());
1094 auto idtrkp4(mu2->p4());
1095 auto mstrkp4(trk->p4());
1097 auto dR =
Scalar(
"dR", idtrkp4.DeltaR(mstrkp4));
1098 auto dPT =
Scalar(
"dPT", mstrkp4.Pt() - idtrkp4.Pt());
1101 if (std::abs(dPT) < 10000 && dR < 0.05){
1108 (trk->charge() != tagmu->charge()) ? osmatch =
true : ssmatch =
true;
1109 mtype = (trk->charge() != tagmu->charge()) ? 0 : 1;
1111 fill(group_MuonInDetTP,
pT,
eta,
phi,
mass, mtype, isTruth,
runNumber,
LB,
eventNumber,
weight);
1113 fill(group_MuonInDetTP,
mass, osmatch, ssmatch);
1115 (trk->charge() != tagmu->charge()) ? osnomatch =
true : ssnomatch =
true;
1116 mtype = (trk->charge() != tagmu->charge()) ? 2 : 3;
1118 fill(group_MuonInDetTP,
pT,
eta,
phi,
mass, mtype, isTruth,
runNumber,
LB,
eventNumber,
weight);
1120 fill(group_MuonInDetTP,
mass, osnomatch, ssnomatch);
◆ doMuonLooseTP()
void DQTGlobalWZFinderAlg::doMuonLooseTP |
( |
std::vector< const xAOD::Muon * > & |
goodmuonsZ, |
|
|
const xAOD::Vertex * |
pVtx, |
|
|
const EventContext & |
ctx, |
|
|
bool |
isSimulation, |
|
|
bool |
writeTTrees, |
|
|
const float |
evtWeight |
|
) |
| const |
|
private |
Definition at line 920 of file DQTGlobalWZFinderAlg.cxx.
924 auto group_MuonLooseTP =
getGroup(
"MuonLooseTP");
941 for (
const auto& tagmu : goodmuonsTP) {
957 auto tagmup4(tagmu->p4());
958 for (
const auto* trk : *idTracks) {
967 if (std::abs((trk->z0()+trk->vz()-pVtx->
z())*
std::sin(trk->theta())) > 2*
mm)
continue;
969 auto trkp4(trk->p4());
970 auto mass =
Scalar(
"mass", (tagmup4+trkp4).M());
978 auto mtype =
Scalar(
"mtype", -1000);
979 auto LB =
Scalar(
"LB", thisEventInfo->lumiBlock());
982 bool opp_sign = (trk->charge() != tagmu->charge());
984 for (
const auto& mu2: goodmuonsTP) {
985 if (tagmu == mu2)
continue;
986 auto dR =
Scalar(
"dR", trkp4.DeltaR(mu2->p4()));
987 auto dPT =
Scalar(
"dPT", ((mu2->p4()).Pt() - trkp4.Pt()));
989 if (std::abs(dPT) < 10000 && dR < 0.05) {
1001 mtype = (trk->charge() != tagmu->charge()) ? 0 : 1;
1009 mtype = (trk->charge() != tagmu->charge()) ? 2 : 3;
1017 fill(group_MuonLooseTP,
pT,
phi,
eta,
mass, isTruth,
runNumber,
LB,
eventNumber, mtype,
weight);
1019 fill(group_MuonLooseTP,
mass, osmatch, ssmatch, osnomatch, ssnomatch);
◆ doMuonTriggerTP()
Definition at line 791 of file DQTGlobalWZFinderAlg.cxx.
799 auto group_MuonTriggerTP =
getGroup(
"MuonTriggerTP");
800 auto do_BCID =
Scalar(
"do_BCID",
false);
801 auto isOS =
Scalar(
"isOS",
false);
804 std::vector<const xAOD::Muon*> muons{mu1, mu2};
808 int truthMatching = 0;
809 for (
const auto mu: muons) {
814 if (truthMatching < 2)
return;
817 for (
const auto mu: muons) {
827 for (
const auto& tagmu : muons) {
828 bool matched_tag =
false;
835 auto tagmup4(tagmu->p4());
836 if (!matched_tag)
continue;
838 for (
const auto& probemu : muons) {
839 if (tagmu == probemu) {
842 auto probemup4(probemu->p4());
843 auto mass =
Scalar(
"mass", (tagmup4+probemup4).M());
844 bool matched_probe =
false;
847 auto pT =
Scalar(
"pT", probemu->pt());
848 auto eta =
Scalar(
"eta", probemu->eta());
849 auto phi =
Scalar(
"phi", probemu->phi());
851 auto mtype =
Scalar(
"mtype", -1000);
854 auto LB =
Scalar(
"LB", thisEventInfo->lumiBlock());
868 if (probemu->charge() != tagmu->charge()) {
878 else if (!matched_probe) {
879 if (probemu->charge() != tagmu->charge()) {
887 fill(group_MuonTriggerTP,
pT,
eta,
phi,
mass, isTruth,
runNumber,
LB,
eventNumber, mtype,
weight);
◆ doMuonTruthEff()
void DQTGlobalWZFinderAlg::doMuonTruthEff |
( |
std::vector< const xAOD::Muon * > & |
goodmuonsZ, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
private |
Definition at line 893 of file DQTGlobalWZFinderAlg.cxx.
895 auto group_MuonTruthEff =
getGroup(
"MuonTruthEff");
896 if (! vtruth.isValid() ) {
905 TLorentzVector truthp4(truthmu->p4());
907 for (
const auto& foundmu : goodmuonsZ) {
908 if (foundmu->p4().DeltaR(truthp4) < 0.05) {
◆ 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()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ fillEleEffHistos()
void DQTGlobalWZFinderAlg::fillEleEffHistos |
( |
bool |
tag_good, |
|
|
bool |
probe_good, |
|
|
bool |
probe_anti_good, |
|
|
bool |
os, |
|
|
double |
el_mass |
|
) |
| const |
|
private |
Definition at line 1208 of file DQTGlobalWZFinderAlg.cxx.
1215 auto group_EleTP =
getGroup(
"EleTP");
1217 auto good_os =
Scalar(
"good_os",
false);
1218 auto good_ss =
Scalar(
"good_ss",
false);
1219 auto bad_os =
Scalar(
"bad_os",
false);
1220 auto bad_ss =
Scalar(
"bad_ss",
false);
1221 auto template_os =
Scalar(
"template_os",
false);
1222 auto template_ss =
Scalar(
"template_ss",
false);
1225 if(probe_good) good_os =
true;
1227 if(probe_anti_good) template_os =
true;
1228 fill(group_EleTP,
mass, good_os, bad_os, template_os);
1230 if(probe_good) good_ss =
true;
1232 if(probe_anti_good) template_ss =
true;
1233 fill(group_EleTP,
mass, good_ss, bad_ss, template_ss);
◆ fillHistograms()
StatusCode DQTGlobalWZFinderAlg::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 68 of file DQTGlobalWZFinderAlg.cxx.
81 if(! thisEventInfo.isValid()) {
83 return StatusCode::FAILURE;
87 auto writeTTrees =
Scalar(
"writeTTrees", isSimulation);
102 auto evtWeight =
Scalar(
"evtWeight", 1.0);
104 evtWeight = thisEventInfo->mcEventWeight();
110 if ( ! elecTES.isValid() ) {
112 return StatusCode::FAILURE;
121 if (! muons.isValid() ) {
123 return StatusCode::FAILURE;
128 std::vector<const xAOD::Electron*> goodelectrons;
129 std::vector<const xAOD::Muon*> goodmuonsZ;
130 std::vector<const xAOD::Muon*> goodmuonsTP;
135 if (vertices.isValid()) {
137 for(
const auto vtx : * vertices) {
149 std::vector<const xAOD::Electron*> allElectrons;
155 auto elegroup =
getGroup(
"electron");
157 for(
const auto electron : *elecTES) {
166 fill(elegroup, ele_Et, ele_Eta, ele_Phi, evtWeight);
178 auto muTrk = (
muon)->primaryTrackParticle();
181 ATH_MSG_WARNING(
"No muon track! " << thisEventInfo->runNumber() <<
" " << thisEventInfo->eventNumber());
197 if (! aptc20.isAvailable(*
muon)) {
213 if (pVtx)
ATH_MSG_DEBUG(
"Muon z0sinth: " << std::abs((muTrk->z0()+muTrk->vz()-pVtx->z())*
std::sin(muTrk->theta())) <<
" " << 0.5*
mm);
218 std::abs(d0sig) < 3 &&
220 std::abs((muTrk->z0()+muTrk->vz()-pVtx->z())*
std::sin(muTrk->theta())) < 0.5*
mm)
223 goodmuonsTP.push_back(
muon);
229 fill(muongroup, muon_Pt, muon_Eta, muon_Phi, evtWeight);
230 goodmuonsZ.push_back(
muon);
240 for (
const auto iEle : allElectrons) {
241 Float_t
pt = iEle->pt();
243 if (!leadingAllEle ||
pt > leadingAllEle->pt()){
244 subleadingAllEle = leadingAllEle;
245 leadingAllEle = iEle;
247 else if (!subleadingAllEle ||
pt > subleadingAllEle->pt()){
248 subleadingAllEle = iEle;
254 doMuonLooseTP(goodmuonsTP, pVtx, ctx, isSimulation, writeTTrees, evtWeight);
255 doMuonInDetTP(goodmuonsTP, pVtx, ctx, isSimulation, writeTTrees, evtWeight);
256 doEleTP(leadingAllEle, subleadingAllEle, pVtx, ctx, writeTTrees, isSimulation, evtWeight);
266 for (
const auto iEle : goodelectrons) {
267 Float_t
pt = iEle->pt();
269 if (! leadingEle ||
pt > leadingEle->pt()) {
270 subleadingEle = leadingEle;
273 else if (! subleadingEle ||
pt > subleadingEle->pt()) {
274 subleadingEle = iEle;
280 for (
const auto iMu : goodmuonsZ) {
281 Float_t
pt = iMu->pt();
282 if (! leadingMuZ ||
pt > leadingMuZ->pt()) {
283 subleadingMuZ = leadingMuZ;
286 else if (! subleadingMuZ ||
pt > subleadingMuZ->pt()) {
293 bool isZee = (goodelectrons.size() > 1);
294 bool isZmumu = (goodmuonsZ.size() > 1);
297 auto ZmumuGroup =
getGroup(
"Zmumu");
301 TLorentzVector Zee = (leadingEle->p4() + subleadingEle->p4());
303 auto Zeecharge =
Scalar(
"Zeecharge", leadingEle->charge() + subleadingEle->charge());
304 bool passTrig =
true;
311 (Zeecharge == 0) ? (osel =
true) : (ssel =
true);
313 fill(ZeeGroup, Zeecharge, evtWeight);
314 ATH_MSG_DEBUG(
"Found a Z to ee candidate! Mass = " <<
mass <<
", and charge = " << Zeecharge );
315 if(osel && passTrig){
316 auto eta1 =
Scalar(
"eta1", leadingEle->caloCluster()->etaBE(2));
317 auto eta2 =
Scalar(
"eta2", subleadingEle->caloCluster()->etaBE(2));
318 auto phi1 =
Scalar(
"phi1", leadingEle->phi());
319 auto phi2 =
Scalar(
"phi2", subleadingEle->phi());
320 auto pT1 =
Scalar(
"pT1", leadingEle->pt());
321 auto pT2 =
Scalar(
"pT2", subleadingEle->pt());
322 auto isTruth =
Scalar(
"isTruth",
false);
327 fill(ZeeGroup,
mass,
eta1,
eta2, phi1, phi2, pT1, pT2, evtWeight,
LB,
runNumber,
eventNumber, isTruth, writeTTrees, osel);
329 if(ssel && passTrig){
335 doEleTriggerTP(leadingEle, subleadingEle, ctx, writeTTrees, evtWeight, osel, ssel);
341 TLorentzVector Zmumu = leadingMuZ->p4() + subleadingMuZ->p4();
343 auto Zmumucharge =
Scalar(
"Zmumucharge", leadingMuZ->charge() + subleadingMuZ->charge());
352 (Zmumucharge == 0) ? (osmu =
true) : (ssmu =
true);
354 fill(ZmumuGroup, Zmumucharge, evtWeight);
355 ATH_MSG_DEBUG(
"Found a Z to mumu candidate! Mass = " <<
mass <<
", and charge = " << Zmumucharge);
357 auto eta1 =
Scalar(
"eta1", leadingMuZ->eta());
358 auto eta2 =
Scalar(
"eta2", subleadingMuZ->eta());
359 auto phi1 =
Scalar(
"phi1", leadingMuZ->phi());
360 auto phi2 =
Scalar(
"phi2", subleadingMuZ->phi());
361 auto pT1 =
Scalar(
"pT1", leadingMuZ->pt());
362 auto pT2 =
Scalar(
"pT2", subleadingMuZ->pt());
363 auto isTruth =
Scalar(
"isTruth",
false);
367 fill(ZmumuGroup,
eta1,
eta2, phi1, phi2, pT1, pT2, isTruth, evtWeight,
LB,
runNumber,
eventNumber,
mass, writeTTrees, osmu);
373 doMuonTriggerTP(leadingMuZ, subleadingMuZ, ctx, isSimulation, writeTTrees, evtWeight);
384 return StatusCode::SUCCESS;
◆ filterPassed()
◆ 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.
176 if (!isInitialized()) {
178 "It seems that the AthMonitorAlgorithm::initialize was not called "
179 "in derived class initialize method");
183 [](
const std::string&
s,
auto h) { return s +
"," + h.first; });
184 ATH_MSG_FATAL(
"The tool " <<
name <<
" could not be found in the tool array of the "
185 <<
"monitoring algorithm " <<
m_name <<
". This probably reflects a discrepancy between "
186 <<
"your python configuration and c++ filling code. Note: your available groups are {"
187 << available <<
"}.");
◆ 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 194 of file AthMonitorAlgorithm.cxx.
◆ goodElectrons()
Definition at line 671 of file DQTGlobalWZFinderAlg.cxx.
681 if (! aptc20.isAvailable(*electron_itr)) {
688 if ((electron_itr)->
pt() != 0.0){
693 auto elTrk = (electron_itr)->trackParticle();
715 std::abs(d0sig) < 5 &&
717 std::abs((elTrk->z0()+elTrk->vz()-pVtx->
z())*
std::sin(elTrk->theta())) < 0.5*
mm)
719 if (std::abs((electron_itr)->caloCluster()->
etaBE(2)) > 1.37 && std::abs((electron_itr)->caloCluster()->
etaBE(2)) < 1.52 ){
◆ initialize()
StatusCode DQTGlobalWZFinderAlg::initialize |
( |
| ) |
|
|
overridevirtual |
◆ 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()
◆ kinematicCuts()
Definition at line 657 of file DQTGlobalWZFinderAlg.cxx.
662 if(std::abs(
particle->caloCluster()->etaBE(2)) > 2.4) isGood =
false;
664 if(std::abs(
particle->caloCluster()->etaBE(2)) > 1.37 &&
665 std::abs(
particle->caloCluster()->etaBE(2)) < 1.52) isGood =
false;
◆ 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 341 of file AthMonitorAlgorithm.cxx.
343 std::stringstream
ss(
line);
347 while ( std::getline(
ss,
item,
',') ) {
348 std::stringstream iss(
item);
353 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
◆ sysExecute()
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 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
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 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 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 199 of file AthMonitorAlgorithm.cxx.
203 if (vTrigNames.empty())
return true;
215 bool expressPass = passedBits & TrigDefs::Express_passed;
222 return group->isPassed();
◆ updateVHKA()
◆ 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_do_BCID
BooleanProperty DQTGlobalWZFinderAlg::m_do_BCID {this, "do_BCID", false} |
|
private |
◆ m_doRunBeam
BooleanProperty DQTGlobalWZFinderAlg::m_doRunBeam {this, "doRunBeam", true} |
|
private |
◆ m_doTrigger
BooleanProperty DQTGlobalWZFinderAlg::m_doTrigger {this, "doTrigger", false} |
|
private |
◆ m_DQFilterTools
ToolHandleArray<IDQFilterTool> AthMonitorAlgorithm::m_DQFilterTools {this,"FilterTools",{}} |
|
protectedinherited |
◆ m_dummy
◆ m_ElectronContainerKey
◆ m_electronEtCut
Gaudi::Property<float_t> DQTGlobalWZFinderAlg::m_electronEtCut {this, "electronEtCut", 27} |
|
private |
◆ 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
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_fileKey
Gaudi::Property<std::string> AthMonitorAlgorithm::m_fileKey {this,"FileKey",""} |
|
protectedinherited |
◆ m_idTrackParticleContainerKey
◆ m_isoElectronContainerKey
◆ m_isoMuonContainerKey
◆ m_lbDurationDataKey
◆ m_lumiDataKey
◆ m_msTrackParticleContainerKey
◆ m_MuonContainerKey
◆ m_muonMaxEta
Gaudi::Property<float_t> DQTGlobalWZFinderAlg::m_muonMaxEta {this, "muonMaxEta", 2.4} |
|
private |
◆ m_muonPtCut
Gaudi::Property<float_t> DQTGlobalWZFinderAlg::m_muonPtCut {this, "muonPtCut", 27} |
|
private |
◆ m_muonSelectionTool
◆ m_name
std::string AthMonitorAlgorithm::m_name |
|
privateinherited |
◆ m_PhotonContainerKey
◆ m_r3MatchingTool
◆ m_toolLookupMap
std::unordered_map<std::string, size_t> AthMonitorAlgorithm::m_toolLookupMap |
|
privateinherited |
◆ m_tools
◆ 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_truthClassifier
◆ m_TruthParticleContainerKey
◆ m_useLumi
Gaudi::Property<bool> AthMonitorAlgorithm::m_useLumi {this,"EnableLumi",false} |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_VertexContainerKey
◆ m_vhka
◆ m_vTrigChainNames
std::vector<std::string> AthMonitorAlgorithm::m_vTrigChainNames |
|
protectedinherited |
◆ m_Z_ee_trigger
Gaudi::Property<std::vector<std::string> > DQTGlobalWZFinderAlg::m_Z_ee_trigger {this, "Z_ee_trigger", {"HLT_e26_lhtight_ivarloose_L1EM22VHI", "HLT_e60_lhmedium_L1EM22VHI"}} |
|
private |
◆ m_Z_mm_trigger
Gaudi::Property<std::vector<std::string> > DQTGlobalWZFinderAlg::m_Z_mm_trigger {this, "Z_mm_trigger", {"HLT_mu24_ivarmedium_L1MU14FCH", "HLT_mu50_L1MU14FCH"}} |
|
private |
◆ m_zCutHigh
Gaudi::Property<float_t> DQTGlobalWZFinderAlg::m_zCutHigh {this, "zCutHigh", 116.0} |
|
private |
◆ m_zCutLow
Gaudi::Property<float_t> DQTGlobalWZFinderAlg::m_zCutLow {this, "zCutLow", 66.0} |
|
private |
The documentation for this class was generated from the following files:
void doMuonTruthEff(std::vector< const xAOD::Muon * > &goodmuonsZ, const EventContext &ctx) const
DataType_t dataType() const
Accessor functions for the data type.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
float charge() const
Obtain the charge of the object.
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainerKey
void fillEleEffHistos(bool tag_good, bool probe_good, bool probe_anti_good, bool os, double el_mass) const
float etaBE(const unsigned sample, const std::uint32_t samplingPattern, const std::span< const float > e_sampl, const std::span< const float > eta_sampl)
Get the eta in one layer of the EM Calo.
Scalar phi() const
phi method
void doMuonLooseTP(std::vector< const xAOD::Muon * > &goodmuonsZ, const xAOD::Vertex *pVtx, const EventContext &ctx, bool isSimulation, bool writeTTrees, const float evtWeight) 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.
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Gaudi::Property< float_t > m_zCutLow
Gaudi::Property< std::vector< std::string > > m_Z_mm_trigger
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
void doMuonTriggerTP(const xAOD::Muon *mu1, const xAOD::Muon *mu2, const EventContext &ctx, bool isSimulation, bool writeTTrees, const float evtWeight) const
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)
double d0significance(const xAOD::TrackParticle *tp, double d0_uncert_beam_spot_2)
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
bool checkTruthElectron(const xAOD::Electron *electron) const
@ ptcone20
Track isolation.
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
Gaudi::Property< std::vector< std::string > > m_Z_ee_trigger
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.
bool kinematicCuts(const xAOD::Egamma *particle) const
setEt setPhi setE277 setWeta2 eta1
virtual FourMom_t p4() const override final
The full 4-momentum of the particle as a TLoretzVector.
Gaudi::Property< float_t > m_electronEtCut
BooleanProperty m_doRunBeam
@ IS_SIMULATION
true: simulation, false: data
SG::ReadDecorHandleKeyArray< xAOD::MuonContainer > m_isoMuonContainerKey
bool trigChainsArePassed(const std::vector< std::string > &vTrigNames) const
Check whether triggers are passed.
const xAOD::TruthParticle * getBkgElectronMother(const xAOD::Electron *el, const bool allTheWayBack=true)
Helper wrapper function for calling the function above extracting the truth from a reco electron.
virtual void setOwner(IDataHandleHolder *o)=0
const ToolHandle< GenericMonitoringTool > m_dummy
float etaBE(const unsigned layer) const
Get the eta in one layer of the EM Calo.
void doEleTP(const xAOD::Electron *leadingAllEle, const xAOD::Electron *subleadingAllEle, const xAOD::Vertex *pVtx, const EventContext &ctx, bool writeTTrees, bool isSimulation, const float evtWeight) const
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_TruthParticleContainerKey
bool checkTruthMuon(const xAOD::Muon *muon) const
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
void doMuonInDetTP(std::vector< const xAOD::Muon * > &goodmuonsZ, const xAOD::Vertex *pVtx, const EventContext &ctx, bool isSimulation, bool writeTTrees, const float evtWeight) const
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.
ToolHandle< IMCTruthClassifier > m_truthClassifier
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
bool antiGoodElectrons(const xAOD::Electron *electron_itr, const xAOD::Vertex *pVtx, const EventContext &ctx) const
Generic monitoring tool for athena components.
void doEleContainerTP(std::vector< const xAOD::Electron * > &allElectrons, std::vector< const xAOD::Electron * > &goodelectrons, const EventContext &ctx) const
::StatusCode StatusCode
StatusCode definition for legacy code.
Class describing a truth particle in the MC record.
void tolower(std::string &s)
virtual StatusCode fillHistograms(const EventContext &ctx) const =0
adds event to the monitoring histograms
ToolHandle< CP::IMuonSelectionTool > m_muonSelectionTool
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
void doEleTriggerTP(const xAOD::Electron *el1, const xAOD::Electron *el2, const EventContext &ctx, bool writeTTrees, const float evtWeight, bool osel, bool ssel) const
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
std::pair< std::vector< unsigned int >, bool > res
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Gaudi::Property< float_t > m_zCutHigh
SG::ReadHandleKey< xAOD::PhotonContainer > m_PhotonContainerKey
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
float z() const
Returns the z position.
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.
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainerKey
AthConfigFlags cosmics(AthConfigFlags flags, str instanceName, str recoMode)
ToolHandle< Trig::R3MatchingTool > m_r3MatchingTool
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
AthConfigFlags muonIso(AthConfigFlags flags, str instanceName, str recoMode)
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_idTrackParticleContainerKey
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.
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.
virtual float lbAverageLivefraction(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the average luminosity livefraction.
Gaudi::Property< bool > m_enforceExpressTriggers
Gaudi::Property< float_t > m_muonPtCut
virtual float lbAverageInteractionsPerCrossing(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the average mu, i.e.
virtual StatusCode initialize() override
initialize
bool checkTruthTrack(const xAOD::TrackParticle *trk) const
accumulate
Update flags based on parser line args.
SG::ReadDecorHandleKeyArray< xAOD::ElectronContainer > m_isoElectronContainerKey
Class describing a Vertex.
#define ATH_MSG_WARNING(x)
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
virtual StatusCode sysInitialize() override
Override sysInitialize.
BooleanProperty m_doTrigger
Gaudi::Property< float_t > m_muonMaxEta
Class describing a TrackParticle.
Declare a monitored scalar variable.
virtual double lbDuration(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the duration of the luminosity block (in seconds)
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
bool goodElectrons(const xAOD::Electron *electron_itr, const xAOD::Vertex *pVtx, const EventContext &ctx) const
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_msTrackParticleContainerKey
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
SG::ReadHandleKey< xAOD::VertexContainer > m_VertexContainerKey
bool match(std::string s1, std::string s2)
match the individual directories of two strings
bool passSelection(bool &value, const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the menu decision is stored in t...