|
ATLAS Offline Software
|
#include <xAODBSignalFilter.h>
|
| xAODBSignalFilter (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual StatusCode | filterFinalize () |
|
virtual StatusCode | filterEvent () |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | 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 |
|
|
void | FindAllChildren (const xAOD::TruthParticle *mother, std::string treeIDStr, bool fromFinalB, bool &foundSignal, bool &passedAllCuts, TLorentzVector &p1, TLorentzVector &p2, bool fromSelectedB, TLorentzVector &total_4mom) const |
|
bool | FinalStatePassedCuts (const xAOD::TruthParticle *child) const |
|
bool | test_cuts (const double myPT, const double testPT, const double myEta, const double testEta) const |
|
bool | LVL1_Mu_Trigger (const xAOD::TruthParticle *child) const |
|
bool | LVL2_eMu_Trigger (const xAOD::TruthParticle *child) const |
|
void | PrintChild (const xAOD::TruthParticle *child, const std::string &treeIDStr, const bool fromFinalB) 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...
|
|
Definition at line 32 of file xAODBSignalFilter.h.
◆ StoreGateSvc_t
◆ xAODBSignalFilter()
xAODBSignalFilter::xAODBSignalFilter |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ATLAS_NOT_CONST_THREAD_SAFE() [1/2]
HepMC::GenEvent* event GenBase::ATLAS_NOT_CONST_THREAD_SAFE |
( |
| ) |
|
|
inlineinherited |
Access the current signal event (first in the McEventCollection)
- Note
- This function will make a new McEventCollection if there is not already a valid one and MakeMcEvent=True.
Definition at line 76 of file GenBase.h.
78 ATH_MSG_ERROR(
"McEventCollection is empty during first event access");
79 return *(
events()->begin());
◆ ATLAS_NOT_CONST_THREAD_SAFE() [2/2]
◆ cmTomm()
void GenBase::cmTomm |
( |
HepMC::GenEvent * |
evt | ) |
|
|
protectedinherited |
Scale event lengths by x 10.
Definition at line 78 of file GenBase.cxx.
79 for (HepMC::GenEvent::vertex_iterator vtx =
evt->vertices_begin(); vtx !=
evt->vertices_end(); ++vtx) {
80 const HepMC::FourVector fv((*vtx)->position().x() * 10,
81 (*vtx)->position().y() * 10,
82 (*vtx)->position().z() * 10,
83 (*vtx)->position().t() * 10);
84 (*vtx)->set_position(fv);
◆ 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);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ 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()
◆ event_const()
const HepMC::GenEvent* GenBase::event_const |
( |
| ) |
const |
|
inlineinherited |
Access the current signal event (const)
Definition at line 83 of file GenBase.h.
85 ATH_MSG_ERROR(
"Const McEventCollection is empty during first event access");
◆ events_const() [1/2]
◆ events_const() [2/2]
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode GenFilter::execute |
( |
| ) |
|
|
virtualinherited |
- Todo:
- Probably the filter should only look at the first event... right?
Reimplemented from GenBase.
Definition at line 29 of file GenFilter.cxx.
32 return StatusCode::FAILURE;
35 ATH_MSG_WARNING(
"More than one event in current McEventCollection -- which is valid?");
51 sc = StatusCode::FAILURE;
◆ 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 & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ filterEvent()
StatusCode xAODBSignalFilter::filterEvent |
( |
| ) |
|
|
virtual |
Implements GenFilter.
Definition at line 83 of file xAODBSignalFilter.cxx.
87 ATH_MSG_INFO(
" >>> xAODBSignalFilter::FilterEvent <<< ");
96 ATH_MSG_ERROR(
" ==>> 'B_PDGCode = 0'! Please define the PDGid of the B-meson/hadron signal!");
98 return StatusCode::FAILURE;
103 if (
evtStore()->
retrieve(xTruthParticleContainer,
"TruthGen").isFailure()) {
104 ATH_MSG_ERROR(
"No TruthParticle collection with name " <<
"TruthGen" <<
" found in StoreGate!");
105 return StatusCode::FAILURE;
108 bool acceptEvent =
true;
109 unsigned int nPart = xTruthParticleContainer->
size();
112 bool LVL1Passed =
false;
120 for (
unsigned int iPart = 0; iPart < nPart; ++iPart) {
135 bool LVL2Passed =
false;
139 for (
unsigned int iPart = 0; iPart < nPart; ++iPart) {
144 if (
part != LVL1Muon)
179 for (
unsigned int iPart = 0; iPart < nPart; ++iPart) {
190 bool SignalPassedCuts =
false;
191 if (LVL1Passed && LVL2Passed)
194 for (
unsigned int iPart = 0; iPart < nPart; ++iPart) {
196 const int particleID =
part->pdgId();
198 bool motherIsB =
false;
199 bool newBChain =
false;
209 for(
size_t thisParent_id=0; thisParent_id <
part->prodVtx()->nIncomingParticles(); thisParent_id++)
211 auto parent =
part->prodVtx()->incomingParticle(thisParent_id);
212 int parentID =
parent->pdgId();
233 const HepPDT::ParticleData *HadronData =
particleData(particleID);
234 std::string HadronName =
"unknown particle";
237 HadronName = HadronData->name();
239 HadronName =
"anti - " + HadronName;
242 ATH_MSG_DEBUG(
" ------------------------------------------ ");
243 ATH_MSG_DEBUG(
" *** xAODBSignalFilter.cxx: B-signal found *** ");
244 ATH_MSG_DEBUG(
" ------------------------------------------ ");
252 ATH_MSG_DEBUG(
" *** KINEMATIC CUTS ON PARTICLES ACTIVATED *** ");
259 bool isSignal =
false;
260 bool havePassedCuts =
true;
261 TLorentzVector CandPart1, CandPart2, total_4mom;
263 FindAllChildren(
part,
"",
false, isSignal, havePassedCuts, CandPart1, CandPart2,
false, total_4mom);
271 SignalPassedCuts = (isSignal && havePassedCuts);
277 if (SignalPassedCuts)
279 bool accept_mass =
false;
280 bool accept_total_mass =
false;
282 ATH_MSG_DEBUG(
" *** INVARIANT MASS CUTS ON PARTICLES ACTIVATED! *** ");
287 double invMass = (CandPart1 + CandPart2).M();
288 double invMass_total = total_4mom.M();
302 ATH_MSG_DEBUG(
" ==>> Event has NOT passed the mass filter!");
305 SignalPassedCuts = SignalPassedCuts && accept_mass;
309 ATH_MSG_DEBUG(
" -- Total invariant mass of the final-state particles = " << invMass_total <<
" MeV");
312 ATH_MSG_DEBUG(
" ==>> Event has passed the total mass filter!");
314 accept_total_mass =
true;
318 ATH_MSG_DEBUG(
" ==>> Event has NOT passed the total mass filter!");
321 SignalPassedCuts = SignalPassedCuts && accept_total_mass;
327 ATH_MSG_DEBUG(
" *** INVARIANT MASS CUTS ON PARTICLES NOT APPLIED (since the event is not a signal that passed cuts)! *** ");
333 ATH_MSG_DEBUG(
" *** INVARIANT MASS CUTS ON PARTICLES NOT ACTIVATED *** ");
339 SignalPassedCuts =
true;
341 ATH_MSG_DEBUG(
" *** KINEMATIC CUTS ON PARTICLES NOT ACTIVATED ==>> ACCEPT ALL EVENTS! *** ");
345 if (SignalPassedCuts)
349 if (SignalPassedCuts)
351 ATH_MSG_DEBUG(
" -->> All signal children have passed cuts on particles!");
355 ATH_MSG_DEBUG(
" -->> Signal children have NOT passed cuts on particles!");
366 if ((!LVL1Passed) || (!LVL2Passed))
374 acceptEvent = acceptEvent && SignalPassedCuts;
381 setFilterPassed(
false);
389 setFilterPassed(
true);
397 return StatusCode::SUCCESS;
◆ filterFinalize()
StatusCode xAODBSignalFilter::filterFinalize |
( |
| ) |
|
|
virtual |
Reimplemented from GenFilter.
Definition at line 683 of file xAODBSignalFilter.cxx.
686 ATH_MSG_ALWAYS(
" I===============================================================================================");
688 ATH_MSG_ALWAYS(
" I===============================================================================================");
692 ATH_MSG_ALWAYS(
" I Muon pT cut " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I" <<
'\t'
694 ATH_MSG_ALWAYS(
" I Muon pseudo-rapidity cut" <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I" <<
'\t'
696 ATH_MSG_ALWAYS(
" I No of events containing at least " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I");
697 ATH_MSG_ALWAYS(
" I one particle satisfying these cuts " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I" <<
'\t'
702 ATH_MSG_ALWAYS(
" I Muon pT cut " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I" <<
'\t'
704 ATH_MSG_ALWAYS(
" I Muon pseudo-rapidity cut " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I" <<
'\t'
711 ATH_MSG_ALWAYS(
" I Electron pseudo-rapidity cut " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I"
716 ATH_MSG_ALWAYS(
" I No of events containing at least one muon satisfying LVL1 cut" <<
'\t' <<
"I");
717 ATH_MSG_ALWAYS(
" I and at least one separate particle passing these LVL2 cuts " <<
'\t' <<
'\t' <<
"I" <<
'\t'
721 ATH_MSG_ALWAYS(
" I Total no of input events " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I" <<
'\t'
723 ATH_MSG_ALWAYS(
" I No of events rejected by trigger " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I" <<
'\t'
725 ATH_MSG_ALWAYS(
" I No of events rejected in total " <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
'\t' <<
"I" <<
'\t'
728 ATH_MSG_ALWAYS(
" I To obtain correct cross section, multiply BX in PythiaB report by " <<
'\t' <<
'\t' <<
"I" <<
'\t'
731 ATH_MSG_ALWAYS(
" I To obtain correct cross section, multiply BX in PythiaB report by " <<
'\t' <<
'\t' <<
"I" <<
'\t'
736 ATH_MSG_ALWAYS(
" I=========================================== End of report =====================================");
738 return StatusCode::SUCCESS;
◆ filterInitialize()
virtual StatusCode GenFilter::filterInitialize |
( |
| ) |
|
|
inlinevirtualinherited |
Reimplemented in xAODM4MuIntervalFilter, xAODFourLeptonMassFilter, xAODParticleDecayFilter, xAODJetFilter, xAODParticleFilter, xAODMuDstarFilter, MuDstarFilter, TrimuMassRangeFilter, xAODLeptonPairFilter, BoostedHadTopAndTopPair, xAODDecaysFinalStateFilter, xAODLeptonFilter, LeptonFilter, LeptonPairFilter, DecaysFinalStateFilter, xAODHTFilter, MultiParticleFilter, xAODHeavyFlavorHadronFilter, DiBjetFilter, FourLeptonInvMassFilter, MassRangeFilter, ParentChildwStatusFilter, xAODDecayTimeFilter, xAODTauFilter, xAODXtoVVDecayFilterExtended, VBFHbbEtaSortingFilter, xAODTTbarWithJpsimumuFilter, xAODVBFMjjIntervalFilter, ParticleDecayFilter, xAODDiLeptonMassFilter, xAODMultiBjetFilter, xAODMultiCjetFilter, HeavyFlavorHadronFilter, TauFilter, TTbarPlusHeavyFlavorFilter, xAODChargedTracksWeightFilter, MultiBjetFilter, VBFMjjIntervalFilter, xAODVBFForwardJetsFilter, XtoVVDecayFilterExtended, FourLeptonMassFilter, TTbarWithJpsimumuFilter, xAODDirectPhotonFilter, xAODParentTwoChildrenFilter, ChargedTracksWeightFilter, DiLeptonMassFilter, HTFilter, QCDTruthJetFilter, QCDTruthMultiJetFilter, M4MuIntervalFilter, MultiCjetFilter, VBFForwardJetsFilter, xAODParentChildFilter, xAODSameParticleHardScatteringFilter, JetFilter, ParticleFilter, TruthJetFilter, DiPhotonFilter, ParentTwoChildrenFilter, SameParticleHardScatteringFilter, DecayTimeFilter, DirectPhotonFilter, and ParentChildFilter.
Definition at line 45 of file GenFilter.h.
45 {
return StatusCode::SUCCESS; }
◆ finalize()
StatusCode GenFilter::finalize |
( |
| ) |
|
|
inherited |
Definition at line 56 of file GenFilter.cxx.
59 return StatusCode::SUCCESS;
◆ FinalStatePassedCuts()
Definition at line 527 of file xAODBSignalFilter.cxx.
533 int pID = child->
pdgId();
534 double myPT = child->
pt();
535 double myEta = child->
eta();
546 if (std::abs(pID) == 11)
552 ATH_MSG_DEBUG(
" ==>> Found an electron which passed the pT and eta cuts!");
562 ATH_MSG_DEBUG(
" ==>> The electron has NOT passed the pT and eta cuts!");
569 if (std::abs(pID) == 13)
575 ATH_MSG_DEBUG(
" ==>> Found a muon which passed the pT and eta cuts!");
585 ATH_MSG_DEBUG(
" ==>> The muon has NOT passed the pT and eta cuts!");
598 ATH_MSG_DEBUG(
" ==>> Found a charged hadron which passed the pT and eta cuts!");
608 ATH_MSG_DEBUG(
" ==>> The charged hadron has NOT passed the pT and eta cuts!");
615 if (std::abs(pID) == 22)
621 ATH_MSG_DEBUG(
" ==>> Found a gamma which passed the pT and eta cuts!");
631 ATH_MSG_DEBUG(
" ==>> The gamma has NOT passed the pT and eta cuts!");
638 if (std::abs(pID) == 311)
644 ATH_MSG_DEBUG(
" ==>> Found a K0 which passed the pT and eta cuts!");
654 ATH_MSG_DEBUG(
" ==>> The K0 has NOT passed the pT and eta cuts!");
◆ FindAllChildren()
void xAODBSignalFilter::FindAllChildren |
( |
const xAOD::TruthParticle * |
mother, |
|
|
std::string |
treeIDStr, |
|
|
bool |
fromFinalB, |
|
|
bool & |
foundSignal, |
|
|
bool & |
passedAllCuts, |
|
|
TLorentzVector & |
p1, |
|
|
TLorentzVector & |
p2, |
|
|
bool |
fromSelectedB, |
|
|
TLorentzVector & |
total_4mom |
|
) |
| const |
|
private |
Definition at line 433 of file xAODBSignalFilter.cxx.
437 int pID = mother->
pdgId();
441 bool hasChildGoodParent = fromFinalB && (fromSelectedB ||
m_B_pdgid == 0);
443 if (fromFinalB && hasChildGoodParent)
448 passedAllCuts = passedAllCuts && passedCut;
450 passedAllCuts = passedAllCuts && passedCut;
452 passedAllCuts = passedAllCuts && passedCut;
454 passedAllCuts = passedAllCuts && passedCut;
456 passedAllCuts = passedAllCuts && passedCut;
461 p1.SetPxPyPzE(mother->
px(), mother->
py(), mother->
pz(), mother->
e());
464 total_4mom = total_4mom +
p1;
469 p2.SetPxPyPzE(mother->
px(), mother->
py(), mother->
pz(), mother->
e());
472 total_4mom = total_4mom +
p2;
476 TLorentzVector current_4p;
477 current_4p.SetPxPyPzE(mother->
px(), mother->
py(), mother->
pz(), mother->
e());
478 total_4mom = total_4mom + current_4p;
488 ATH_MSG_DEBUG(
" Inconsistent entry in HepMC (status 2 particle not decayed), chain rejected!");
494 std::string childIDStr;
495 if (!(treeIDStr ==
""))
496 treeIDStr = treeIDStr +
".";
503 for(
size_t thisChild_id=0; thisChild_id < mother->
decayVtx()->nOutgoingParticles(); thisChild_id++)
506 pID = child->
pdgId();
513 for(
size_t thisChild_id=0; thisChild_id < mother->
decayVtx()->nOutgoingParticles(); thisChild_id++)
517 std::stringstream childCntSS;
518 childCntSS << childCnt;
519 childIDStr = treeIDStr + childCntSS.str();
◆ GeVToMeV()
void GenBase::GeVToMeV |
( |
HepMC::GenEvent * |
evt | ) |
|
|
protectedinherited |
Scale event energies/momenta by x 1000.
- Todo:
- Add HepMC units awareness and do it differently when HepMC provides this functionality directly (and reference-based FourVector accessors)
Definition at line 58 of file GenBase.cxx.
59 for (HepMC::GenEvent::particle_iterator
p =
evt->particles_begin();
p !=
evt->particles_end(); ++
p) {
60 const HepMC::FourVector fv((*p)->momentum().px() * 1000,
61 (*p)->momentum().py() * 1000,
62 (*p)->momentum().pz() * 1000,
63 (*p)->momentum().e() * 1000);
64 (*p)->set_momentum(fv);
65 (*p)->set_generated_mass(1000 * (*p)->generated_mass());
◆ initialize()
StatusCode GenFilter::initialize |
( |
| ) |
|
|
virtualinherited |
◆ 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.
◆ LVL1_Mu_Trigger()
◆ LVL2_eMu_Trigger()
◆ MeVToGeV()
void GenBase::MeVToGeV |
( |
HepMC::GenEvent * |
evt | ) |
|
|
protectedinherited |
Scale event energies/momenta by x 1/1000.
Definition at line 68 of file GenBase.cxx.
69 for (HepMC::GenEvent::particle_iterator
p =
evt->particles_begin();
p !=
evt->particles_end(); ++
p) {
70 const HepMC::FourVector fv((*p)->momentum().px() / 1000,
71 (*p)->momentum().py() / 1000,
72 (*p)->momentum().pz() / 1000,
73 (*p)->momentum().e() / 1000);
74 (*p)->set_momentum(fv);
75 (*p)->set_generated_mass((*p)->generated_mass() / 1000);
◆ mmTocm()
void GenBase::mmTocm |
( |
HepMC::GenEvent * |
evt | ) |
|
|
protectedinherited |
Scale event lengths by x 1/10.
Definition at line 87 of file GenBase.cxx.
88 for (HepMC::GenEvent::vertex_iterator vtx =
evt->vertices_begin(); vtx !=
evt->vertices_end(); ++vtx) {
89 const HepMC::FourVector fv((*vtx)->position().x() / 10,
90 (*vtx)->position().y() / 10,
91 (*vtx)->position().z() / 10,
92 (*vtx)->position().t() / 10);
93 (*vtx)->set_position(fv);
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ nFailed()
int GenFilter::nFailed |
( |
| ) |
const |
|
inlineinherited |
◆ nNeeded()
int GenFilter::nNeeded |
( |
| ) |
const |
|
inlineinherited |
◆ nPassed()
int GenFilter::nPassed |
( |
| ) |
const |
|
inlineinherited |
◆ 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.
◆ particleData()
const HepPDT::ParticleData* GenBase::particleData |
( |
int |
pid | ) |
const |
|
inlineinherited |
Access an element in the particle data table.
Definition at line 126 of file GenBase.h.
◆ particleTable()
const HepPDT::ParticleDataTable& GenBase::particleTable |
( |
| ) |
const |
|
inlineinherited |
Get a particle data table.
Definition at line 118 of file GenBase.h.
◆ partPropSvc()
Access the particle property service.
Definition at line 113 of file GenBase.h.
◆ pdt()
const HepPDT::ParticleDataTable& GenBase::pdt |
( |
| ) |
const |
|
inlineinherited |
Shorter alias to get a particle data table.
Definition at line 123 of file GenBase.h.
◆ PrintChild()
Definition at line 663 of file xAODBSignalFilter.cxx.
666 int pID = child->
pdgId();
668 const HepPDT::ParticleData *pData =
particleData(std::abs(pID));
669 std::string pName =
"unknown particle";
672 pName = pData->name();
674 pName =
"anti - " + pName;
677 <<
"Child (" << pName
678 <<
") " << child <<
" , from final B = " << fromFinalB);
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ test_cuts()
bool xAODBSignalFilter::test_cuts |
( |
const double |
myPT, |
|
|
const double |
testPT, |
|
|
const double |
myEta, |
|
|
const double |
testEta |
|
) |
| const |
|
private |
◆ updateVHKA()
◆ m_B_pdgid
int xAODBSignalFilter::m_B_pdgid |
|
private |
◆ m_cuts_f_e_eta
double xAODBSignalFilter::m_cuts_f_e_eta |
|
private |
◆ m_cuts_f_e_on
bool xAODBSignalFilter::m_cuts_f_e_on |
|
private |
◆ m_cuts_f_e_pT
double xAODBSignalFilter::m_cuts_f_e_pT |
|
private |
◆ m_cuts_f_gam_eta
double xAODBSignalFilter::m_cuts_f_gam_eta |
|
private |
◆ m_cuts_f_gam_on
bool xAODBSignalFilter::m_cuts_f_gam_on |
|
private |
◆ m_cuts_f_gam_pT
double xAODBSignalFilter::m_cuts_f_gam_pT |
|
private |
◆ m_cuts_f_had_eta
double xAODBSignalFilter::m_cuts_f_had_eta |
|
private |
◆ m_cuts_f_had_on
bool xAODBSignalFilter::m_cuts_f_had_on |
|
private |
◆ m_cuts_f_had_pT
double xAODBSignalFilter::m_cuts_f_had_pT |
|
private |
◆ m_cuts_f_K0_eta
double xAODBSignalFilter::m_cuts_f_K0_eta |
|
private |
◆ m_cuts_f_K0_on
bool xAODBSignalFilter::m_cuts_f_K0_on |
|
private |
◆ m_cuts_f_K0_pT
double xAODBSignalFilter::m_cuts_f_K0_pT |
|
private |
◆ m_cuts_f_mu_eta
double xAODBSignalFilter::m_cuts_f_mu_eta |
|
private |
◆ m_cuts_f_mu_on
bool xAODBSignalFilter::m_cuts_f_mu_on |
|
private |
◆ m_cuts_f_mu_pT
double xAODBSignalFilter::m_cuts_f_mu_pT |
|
private |
◆ m_detStore
◆ m_EventCnt
int xAODBSignalFilter::m_EventCnt |
|
private |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_InvMass_PartFakeMass1
double xAODBSignalFilter::m_InvMass_PartFakeMass1 |
|
private |
◆ m_InvMass_PartFakeMass2
double xAODBSignalFilter::m_InvMass_PartFakeMass2 |
|
private |
◆ m_InvMass_PartId1
int xAODBSignalFilter::m_InvMass_PartId1 |
|
private |
◆ m_InvMass_PartId2
int xAODBSignalFilter::m_InvMass_PartId2 |
|
private |
◆ m_InvMass_switch
bool xAODBSignalFilter::m_InvMass_switch |
|
private |
◆ m_InvMassMax
double xAODBSignalFilter::m_InvMassMax |
|
private |
◆ m_InvMassMin
double xAODBSignalFilter::m_InvMassMin |
|
private |
◆ m_localLVL1MuonCutEta
double xAODBSignalFilter::m_localLVL1MuonCutEta |
|
private |
◆ m_localLVL1MuonCutOn
bool xAODBSignalFilter::m_localLVL1MuonCutOn |
|
private |
◆ m_localLVL1MuonCutPT
double xAODBSignalFilter::m_localLVL1MuonCutPT |
|
private |
◆ m_localLVL2ElectronCutEta
double xAODBSignalFilter::m_localLVL2ElectronCutEta |
|
private |
◆ m_localLVL2ElectronCutOn
bool xAODBSignalFilter::m_localLVL2ElectronCutOn |
|
private |
◆ m_localLVL2ElectronCutPT
double xAODBSignalFilter::m_localLVL2ElectronCutPT |
|
private |
◆ m_localLVL2MuonCutEta
double xAODBSignalFilter::m_localLVL2MuonCutEta |
|
private |
◆ m_localLVL2MuonCutOn
bool xAODBSignalFilter::m_localLVL2MuonCutOn |
|
private |
◆ m_localLVL2MuonCutPT
double xAODBSignalFilter::m_localLVL2MuonCutPT |
|
private |
◆ m_LVL1Counter
double xAODBSignalFilter::m_LVL1Counter |
|
private |
◆ m_LVL2Counter
double xAODBSignalFilter::m_LVL2Counter |
|
private |
◆ m_mcEventKey
std::string GenBase::m_mcEventKey {} |
|
protectedinherited |
StoreGate key for the MC event collection (defaults to GEN_EVENT)
Definition at line 137 of file GenBase.h.
◆ m_mcevents_const
Const handle to the MC event collection.
Definition at line 163 of file GenBase.h.
◆ m_mkMcEvent
BooleanProperty GenBase::m_mkMcEvent {this, "MakeMcEvent", false, "Create a new MC event collection if it doesn't exist"} |
|
protectedinherited |
Flag to determine if a new MC event collection should be made if it doesn't exist.
Definition at line 139 of file GenBase.h.
◆ m_nFail
◆ m_nNeeded
◆ m_nPass
◆ m_ppSvc
ServiceHandle<IPartPropSvc> GenBase::m_ppSvc {this, "PartPropSvc", "PartPropSvc"} |
|
privateinherited |
Handle on the particle property service.
Definition at line 160 of file GenBase.h.
◆ m_rejectedAll
double xAODBSignalFilter::m_rejectedAll |
|
private |
◆ m_rejectedTrigger
double xAODBSignalFilter::m_rejectedTrigger |
|
private |
◆ m_TotalInvMass_switch
bool xAODBSignalFilter::m_TotalInvMass_switch |
|
private |
◆ m_TotalInvMassMax
double xAODBSignalFilter::m_TotalInvMassMax |
|
private |
◆ m_TotalInvMassMin
double xAODBSignalFilter::m_TotalInvMassMin |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
bool test_cuts(const double myPT, const double testPT, const double myEta, const double testEta) const
double m_localLVL2MuonCutPT
bool isBottomMeson(const T &p)
double m_InvMass_PartFakeMass1
double invMass(const I4Momentum &pA, const I4Momentum &pB)
invariant mass from two I4momentum references
bool isBottomBaryon(const T &p)
const_pointer_type cptr()
Dereference the pointer.
float pz() const
The z component of the particle's momentum.
const McEventCollection * events_const() const
Access the current event's McEventCollection (const)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
StatusCode accept(const xAOD::Muon *mu)
float px() const
The x component of the particle's momentum.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual StatusCode filterEvent()=0
bool LVL1_Mu_Trigger(const xAOD::TruthParticle *child) const
float py() const
The y component of the particle's momentum.
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool m_localLVL1MuonCutOn
virtual StatusCode filterInitialize()
double m_localLVL1MuonCutPT
virtual void setOwner(IDataHandleHolder *o)=0
bool m_TotalInvMass_switch
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
void FindAllChildren(const xAOD::TruthParticle *mother, std::string treeIDStr, bool fromFinalB, bool &foundSignal, bool &passedAllCuts, TLorentzVector &p1, TLorentzVector &p2, bool fromSelectedB, TLorentzVector &total_4mom) const
bool isPhysical(const T &p)
Identify if the particle is physical, i.e. is stable or decayed.
ServiceHandle< IPartPropSvc > m_ppSvc
Handle on the particle property service.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
bool FinalStatePassedCuts(const xAOD::TruthParticle *child) const
virtual StatusCode sysInitialize() override
Override sysInitialize.
virtual double e() const override final
The total energy of the particle.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::ReadHandleKey< McEventCollection > m_mcevents_const
Const handle to the MC event collection.
Class describing a truth particle in the MC record.
#define ATH_MSG_ALWAYS(x)
#define CHECK(...)
Evaluate an expression and check for errors.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
double m_localLVL1MuonCutEta
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual void renounce()=0
const HepPDT::ParticleDataTable & particleTable() const
Get a particle data table.
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
double m_localLVL2MuonCutEta
const TruthVertex_v1 * decayVtx() const
The decay vertex of this particle.
double m_InvMass_PartFakeMass2
bool isHadron(const T &p)
double m_localLVL2ElectronCutPT
bool m_localLVL2MuonCutOn
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
double m_localLVL2ElectronCutEta
void PrintChild(const xAOD::TruthParticle *child, const std::string &treeIDStr, const bool fromFinalB) const
virtual StatusCode filterFinalize()
DataObjIDColl m_extendedExtraObjects
bool isStable(const T &p)
Identify if the particle is stable, i.e. has not decayed.
bool LVL2_eMu_Trigger(const xAOD::TruthParticle *child) const
bool isCharged(const T &p)
#define ATH_MSG_WARNING(x)
bool isDecayed(const T &p)
Identify if the particle decayed.
const HepPDT::ParticleDataTable & pdt() const
Shorter alias to get a particle data table.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
filterPassed
now, add a sequencer: it will only execute seqalg1 and 2 and never 3
GenFilter(const std::string &name, ISvcLocator *pSvcLocator)
bool m_localLVL2ElectronCutOn
int pdgId() const
PDG ID code.
const HepPDT::ParticleData * particleData(int pid) const
Access an element in the particle data table.
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
const TruthParticle_v1 * outgoingParticle(size_t index) const
Get one of the outgoing particles.
virtual StatusCode initialize() override
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.