![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <CalcTthPartonHistory.h>
|
| CalcTthPartonHistory (const std::string &name) |
|
virtual | ~CalcTthPartonHistory ()=default |
|
| CalcTthPartonHistory (const CalcTthPartonHistory &rhs)=delete |
|
| CalcTthPartonHistory (CalcTthPartonHistory &&rhs)=delete |
|
CalcTthPartonHistory & | operator= (const CalcTthPartonHistory &rhs)=delete |
|
void | tthHistorySaver (const xAOD::TruthParticleContainer *truthParticles, xAOD::PartonHistory *tthPartonHistory) |
|
bool | HiggsAndDecay (const xAOD::TruthParticleContainer *truthParticles) |
| Store the four-momentum of several particles in the Higgs decay chain. More...
|
|
virtual StatusCode | execute () |
|
bool | topAfterFSR_SC (const xAOD::TruthParticleContainer *truthParticles, int start, TLorentzVector &top_afterFSR_SC_p4) |
| Store the four-momentum of the post-FSR top or anti-top found using statusCodes This would only work if there is at most one "true" top of each charge (i.e. More...
|
|
bool | topWb (const xAOD::TruthParticleContainer *truthParticles, int start, TLorentzVector &t_beforeFSR_p4, TLorentzVector &t_afterFSR_p4, TLorentzVector &W_p4, TLorentzVector &b_p4, TLorentzVector &Wdecay1_p4, int &Wdecay1_pdgId, TLorentzVector &Wdecay2_p4, int &Wdecay2_pdgId) |
| Store the four-momentum of several particles in the top decay chain. More...
|
|
bool | topWq (const xAOD::TruthParticleContainer *truthParticles, int start, TLorentzVector &t_beforeFSR_p4, TLorentzVector &t_afterFSR_p4, TLorentzVector &W_p4, TLorentzVector &q_p4, int &q_pdgId, TLorentzVector &Wdecay1_p4, int &Wdecay1_pdgId, TLorentzVector &Wdecay2_p4, int &Wdecay2_pdgId) |
|
bool | b (const xAOD::TruthParticleContainer *truthParticles, TLorentzVector &b_beforeFSR, TLorentzVector &b_afterFSR) |
| Store the four-momentum of b (not from tops_ before and after FSR. More...
|
|
bool | Wlv (const xAOD::TruthParticleContainer *truthParticles, TLorentzVector &W_p4, TLorentzVector &Wdecay1_p4, int &Wdecay1_pdgId, TLorentzVector &Wdecay2_p4, int &Wdecay2_pdgId) |
| Store the four-momentum of several particles in the W decay chain. More...
|
|
bool | Wt_W (const xAOD::TruthParticleContainer *truthParticles, TLorentzVector &W_p4, int &W_pdgId, TLorentzVector &Wdecay1_p4, int &Wdecay1_pdgId, TLorentzVector &Wdecay2_p4, int &Wdecay2_pdgId) |
| Store the four-momentum of several particles in W decay chain for W that is NOT from top in Wt ST events. More...
|
|
bool | Wt_b (const xAOD::TruthParticleContainer *truthParticles, TLorentzVector &b_beforeFSR, TLorentzVector &b_afterFSR, int &b_pdgId) |
| Store the four-momentum of b quark that is NOT from top in Wt(b) ST events. More...
|
|
bool | topPhWb (const xAOD::TruthParticleContainer *truthParticles, int topId, TLorentzVector &t_beforeFSR_p4, TLorentzVector &t_afterFSR_p4, TLorentzVector &Ph_p4, TLorentzVector &W_p4, TLorentzVector &b_p4, TLorentzVector &Wdecay1_p4, int &Wdecay1_pdgId, TLorentzVector &Wdecay2_p4, int &Wdecay2_pdgId, bool &has_ph, int &BranchType, int &IniPartonType, bool &missingTop) |
| Store the four-momentum of photon coming from virtual top in ttgamma events. More...
|
|
virtual StatusCode | initialize () |
| Dummy implementation of the initialisation function. More...
|
|
virtual void | print () const |
| Print the state of the tool. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
void | fillEtaBranch (xAOD::PartonHistory *partonHistory, std::string branchName, TLorentzVector &tlv) |
|
StatusCode | buildContainerFromMultipleCollections (const std::vector< std::string > &collections, const std::string &out_contName) |
| used to build container from multiple collections in DAOD_PHYS we don't have the TruthParticles collection, so we have to build a TruthParticleContainer (named out_contName) by merging several collections; this is stored in the evtStore this method has to use some tricks, like the helper m_tempParticles ConstDataVector, due to the desing of DataVector, see https://twiki.cern.ch/twiki/bin/view/AtlasComputing/DataVector More...
|
|
StatusCode | linkBosonCollections () |
| currently in DAOD_PHYS TruthTop have links to Ws from the TruthBoson collection, which have no link to their decay products; we have therefore to associate the W from the TruthBoson collections to those in the TruthBosonsWithDecayParticles collection. More...
|
|
const xAOD::TruthParticle * | getTruthParticleLinkedFromDecoration (const xAOD::TruthParticle *part, const std::string &decorationName) |
| helper method to handle retriveing the truth particle linked in the decoration of another particle More...
|
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
Definition at line 19 of file CalcTthPartonHistory.h.
◆ StoreGateSvc_t
◆ CalcTthPartonHistory() [1/3]
top::CalcTthPartonHistory::CalcTthPartonHistory |
( |
const std::string & |
name | ) |
|
|
explicit |
◆ ~CalcTthPartonHistory()
virtual top::CalcTthPartonHistory::~CalcTthPartonHistory |
( |
| ) |
|
|
virtualdefault |
◆ CalcTthPartonHistory() [2/3]
◆ CalcTthPartonHistory() [3/3]
◆ b()
Store the four-momentum of b (not from tops_ before and after FSR.
Definition at line 156 of file CalcTopPartonHistory.cxx.
159 if (abs(
particle->pdgId()) != 5)
continue;
162 for (
size_t i = 0;
i <
particle->nParents();
i++) {
170 if (skipit)
continue;
◆ buildContainerFromMultipleCollections()
StatusCode top::CalcTopPartonHistory::buildContainerFromMultipleCollections |
( |
const std::vector< std::string > & |
collections, |
|
|
const std::string & |
out_contName |
|
) |
| |
|
protectedinherited |
◆ 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]
◆ decorateCollectionWithLinksToAnotherCollection()
StatusCode top::CalcTopPartonHistory::decorateCollectionWithLinksToAnotherCollection |
( |
const std::string & |
collectionToDecorate, |
|
|
const std::string & |
collectionToLink, |
|
|
const std::string & |
nameOfDecoration |
|
) |
| |
|
privateinherited |
helper method currently used in DAOD_PHYS to link particles from a given collection to the same particles included in another collection; needed because particles may be duplicated in different collections, but their navigation links may only be there in some of them...
Definition at line 44 of file CalcTopPartonHistory.cxx.
66 return StatusCode::SUCCESS;
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode top::CalcTthPartonHistory::execute |
( |
| ) |
|
|
virtual |
Reimplemented from top::CalcTopPartonHistory.
Definition at line 195 of file CalcTthPartonHistory.cxx.
200 if(
m_config->getDerivationStream() ==
"PHYS")
203 std::vector<std::string> collections = {
"TruthTop",
"TruthBoson"};
221 partonCont->setStore(partonAuxCont);
230 std::string outputSGKey =
m_config->sgKeyTopPartonHistory();
231 std::string outputSGKeyAux = outputSGKey +
"Aux.";
235 if (!
save || !saveAux) {
236 return StatusCode::FAILURE;
239 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
◆ fillEtaBranch()
void top::CalcTopPartonHistory::fillEtaBranch |
( |
xAOD::PartonHistory * |
partonHistory, |
|
|
std::string |
branchName, |
|
|
TLorentzVector & |
tlv |
|
) |
| |
|
protectedinherited |
Definition at line 692 of file CalcTopPartonHistory.cxx.
694 if (tlv.CosTheta() == 1.) partonHistory->
auxdecor<
float >(branchName) = 1000.;
695 else if (tlv.CosTheta() == -1.) partonHistory->
auxdecor<
float >(branchName) = 1000.;
696 else partonHistory->
auxdecor<
float >(branchName) = tlv.Eta();
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
124 return evtStore()->event()->getKey( ptr );
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getName()
const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
111 return evtStore()->event()->getName( ptr );
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ getTruthParticleLinkedFromDecoration()
helper method to handle retriveing the truth particle linked in the decoration of another particle
Definition at line 69 of file CalcTopPartonHistory.cxx.
◆ HiggsAndDecay()
◆ initialize()
virtual StatusCode asg::AsgTool::initialize |
( |
| ) |
|
|
inlinevirtualinherited |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Reimplemented in SimpleMuonTriggerScaleFactors, Trig::TrigMuonMatching, CP::MuonTriggerScaleFactors, Trig::TrigTauMatchingTool, IHIEventShapeMapTool, ST::SUSYObjDef_xAOD, InDetSecVtxTruthMatchTool, JetGrooming::RecSoftDrop, met::METMaker, AsgForwardElectronIsEMSelector, JetGrooming::JetTrimming, ORUtils::BaseOverlapTool, PMGTools::PMGSherpa22VJetsWeightTool, AsgElectronEfficiencyCorrectionTool, CP::ElectronChargeEfficiencyCorrectionTool, AsgForwardElectronLikelihoodTool, CorrectPFOTool, CP::IsolationCorrectionTool, TauAnalysisTools::TauTruthMatchingTool, EGammaAmbiguityTool, InDetVertexTruthMatchTool, AthOnnx::OnnxRuntimeSessionToolCPU, AthOnnx::OnnxRuntimeSessionToolCUDA, PuppiWeightTool, JetIsolationTool, CP::EgammaCalibrationAndSmearingTool, JetBalancePFlowJvtTool, CP::FFJetSmearingTool, JetForwardPFlowJvtTool, MCTruthClassifier, InDet::InDetHardScatterSelectionTool, dRMatchingTool, xAOD::BPhysBlindingTool, JetVertexTaggerTool, tauRecTools::TrackRNN, LVL1::L1CaloOfflineTriggerTowerTools, TauAnalysisTools::TauSelectionTool, JetRecTool, met::METAssociationTool, CP::TrackVertexAssociationTool, met::METRebuilder, met::METAssociator, xAOD::TrackIsolationTool, InDet::InDetTrackSelectionTool, egammaMVACalibTool, TrigConf::xAODConfigTool, JetCleaningTool, met::METCaloRegionsTool, ZDC::ZdcLEDAnalysisTool, CP::MuonCalibTool, LVL1::L1CaloCells2TriggerTowers, JetVertexFractionTool, LVL1BS::PpmByteStreamReadV1V2Tool, JetClusterer, JetForwardJvtToolBDT, CP::AsgFlagSelectionTool, TauTrackFinder, TauAnalysisTools::DiTauSelectionTool, JetClustererByVertex, JetBadChanCorrTool, xAOD::BPhysTrackVertexMapTool, JetModifiedMassDrop, xAOD::CaloIsolationTool, EnhancedBiasWeighter, BookkeeperTool, ZDC::RpdSubtractCentroidTool, InDet::InDetUsedInFitTrackDecoratorTool, CP::AsgPtEtaSelectionTool, TauAnalysisTools::BuildTruthTaus, top::EventSaverFlatNtuple, tauRecTools::TauTrackRNNClassifier, InDet::InDetSecVtxTrackSelectionTool, JetForwardJvtTool, JetPileupTag::JetVertexNNTagger, CP::EgammaIsGoodOQSelectionTool, CP::IsolationCloseByCorrectionTool, CP::MuonCalibIntScaleSmearTool, DiTauRecTools::DiTauIDVarCalculator, JetFinder, AsgElectronIsEMSelector, CP::MuonCalibIntHighpTSmearTool, CP::MuonCalibIntSagittaTool, DiTauRecTools::DiTauDiscriminantTool, met::METBuilderTool, CP::AsgMaskSelectionTool, ElectronPhotonVariableCorrectionBase, ECUtils::EventCleaningTool, TauAnalysisTools::TauTruthTrackMatchingTool, met::METSoftTermsTool, LVL1::L1CaloLArTowerEnergy, HiggsTruthCategoryTool, IDTPM::TrackRoiSelectionTool, TauAnalysisTools::CommonDiTauEfficiencyTool, HIJetConstituentSubtractionTool, JetTrackSumMomentsTool, JetGrooming::SoftDrop, JetQGTaggerVariableTool, JetTrackMomentsTool, met::METTruthTool, CP::BaseLinearFakeBkgTool, PMGTools::PMGSherpaVjetsSysTool, ClusterMatching::CaloClusterMatchingTool, AsgPhotonEfficiencyCorrectionTool, InDet::JetTrackFilterTool, asg::DataHandleTestTool, xAODMaker::FileMetaDataTool, CP::BaseFakeBkgTool, InDet::InclusiveTrackFilterTool, InDet::InDetTrackTruthFilterTool, HIJetClusterSubtractorTool, CP::MVATrackVertexAssociationTool, IDTPM::RoiSelectionTool, ElectronPhotonVariableCorrectionTool, JetCalibrationTool, JetCaloQualityTool, JetOriginCorrectionTool, InDet::InDetTrackBiasingTool, HIJetClusterIndexAssociationTool, TauWPDecorator, TrigGlobalEfficiencyCorrectionTool, ZdcRecChannelToolV2, IDTPM::TrackObjectSelectionTool, CP::LhoodMM_tools, FlavorTagDiscriminants::GNNTool, FlavorTagDiscriminants::MultifoldGNNTool, CP::MuonSelectionTool, TauAnalysisTools::CommonDiTauSmearingTool, JSSTaggerBase, ZDC::ZdcAnalysisTool, IDTPM::TrackQualitySelectionTool, AsgElectronLikelihoodTool, CP::JetQGTagger, CP::JetJvtEfficiency, LVL1::L1CaloFcal23Cells2RxMappingTool, ORUtils::OverlapRemovalTool, Analysis::JetQuarkLabel, Ringer::AsgRingerSelectorTool, InDet::InDetTrackSmearingTool, JetCopier, JetGrooming::JetGroomer, met::METPhotonAssociator, JetECPSFractionTool, JetPtAssociationTool, met::METElectronAssociator, met::METTauAssociator, PMGTools::PMGDecayProductsSelectionTool, WeightToolBase, HIJetDRAssociationTool, JetClusterMomentsTool, met::METJetAssocTool, TauVertexFinder, IDTPM::JsonPlotsDefReadTool, TauAnalysisTools::DiTauSmearingTool, JetDRTrackAssocTool, JetReclusterer, TauDecayModeNNClassifier, BDTVertexWeightCalculator, asg::UnitTestTool1, IDTPM::DeltaRMatchingToolBase< T, R >, AsgElectronSelectorTool, JetReclusteringTool, met::METMuonAssociator, TauPi0CreateROI, TauShotFinder, IDTPM::DeltaRMatchingToolBase< xAOD::TrackParticle, xAOD::TruthParticle >, IDTPM::DeltaRMatchingToolBase< xAOD::TruthParticle, xAOD::TrackParticle >, IDTPM::DeltaRMatchingToolBase< xAOD::TrackParticle >, ZdcRecChannelToolLucrod, PMGTools::PMGTruthWeightTool, JetVoronoiMomentsTool, Trig::MatchFromCompositeTool, asg::UnitTestTool3, IDTPM::TruthTrackMatchingTool, CP::ApplyFakeFactor, AsgElectronChargeIDSelectorTool, HIJetMaxOverMeanTool, PanTau::Tool_FeatureExtractor, TauElectronVetoVariables, CP::IsolationSelectionTool, WeightsAgregator, EL::UnitTestTool, FlavorTagDiscriminants::TrackClassifier, JetLArHVTool, ZDC::ZdcTrigValidTool, IDTPM::TrackTruthMatchingTool, HI::HIPileupTool, InDet::InDetTrackTruthOriginTool, JetHelper::VarTool, FlavorTagDiscriminants::DL2Tool, BTaggingSelectionTool, EnergyCorrelatorGeneralizedRatiosTool, EnergyCorrelatorGeneralizedTool, EnergyCorrelatorRatiosTool, EnergyCorrelatorTool, TauEleOverlapChecker, TauJetRNNEvaluator, asg::UnitTestTool2, JetTruthLabelingTool, ZDC::ZdcRecTool, HIJetConstituentModifierTool, TauCalibrateLC, TauGNNEvaluator, TauPi0ScoreCalculator, TauRecToolBase, Trig::TrigEgammaEmulationPrecisionElectronHypoTool, asg::UnitTestTool1A, PDFWeight, HIEventShapeJetIteration, HIJetSignificanceTool, CP::JetQGTaggerBDT, JetWidthTool, TauVertexVariables, Trig::TrigEgammaEmulationPrecisionPhotonHypoTool, Trig::TrigEgammaMatchingTool, Trig::R3IParticleRetrievalTool, IDTPM::TruthTrackQualitySelectionTool, JetPileupLabelingTool, JetFromPseudojet, JetTruthParticleSelectorTool, Trig::TrigEgammaEmulationBaseHypoTool, CP::ApplyE2YFakeRate, ParticleScaleFactorTool, InDet::InDetTrackSystematicsTool, JetCaloQualityToolFE, Trig::MatchingTool, Trig::R3MatchingTool, IDTPM::OfflineTrackQualitySelectionTool, JetParticleAssociation, Trig::TrigEgammaEmulationChain, Trig::TrigEgammaEmulationFastCaloHypoTool, AthOnnx::OnnxRuntimeInferenceTool, xAODtoHepMCTool, HIEventShapeMapTool, HI::HIVertexSelectionTool, JetHelper::HistoInput2D, TauVertexedClusterDecorator, Trig::IParticleRetrievalTool, CP::AsymptMatrixTool, HI::HIEventSelectionTool, FlavorTagDiscriminants::HbbTagTool, JetConstituentFrac, JetGroomMRatio, JetHelper::HistoInput1D, JetHelper::TextInputMCJES, ExtendTrackToLayerTool, Trig::TypedScoringTool, TrackTruthSelectionTool, HIUEModulatorTool, JSSWTopTaggerANN, CP::JvtEfficiencyToolBase, JetEMScaleMomTool, MvaTESVariableDecorator, TauAODLeptonRemovalTool, TauCombinedTES, ParticleJetDeltaRLabelTool, HIEventShapeSummaryTool, FlavorTagDiscriminants::BTagAugmenterTool, FlavorTagDiscriminants::VRJetOverlapDecoratorTool, JetCaloEnergies, ParticleJetGhostLabelTool, FlavorTagDiscriminants::BTagMuonAugmenterTool, MBTSTimeFilterTool, JSSWTopTaggerDNN, SmoothedTopTagger, MvaTESEvaluator, CP::IsolationLowPtPLVTool, Trig::DRScoringTool, Trig::EgammaDRScoringTool, SmoothedWZTagger, CP::FJvtEfficiencyTool, CP::JvtSelectionToolBase, CP::NNJvtSelectionTool, AthAsgExUnittestTool, CP::JvtSelectionTool, BTaggingSelectionJsonTool, CP::FJvtSelectionTool, CP::JvtEfficiencyTool, CP::NNJvtEfficiencyTool, BookkeeperDumperTool, TrigFastCalibWithRings, top::ScaleFactorRetriever, BTaggingEfficiencyTool, BTaggingTruthTaggingTool, MissingCellListTool, JetVoronoiDiagramHelpers::Diagram, FastJetInterfaceTool, met::METSystematicsTool, Trig::TrigEgammaEmulationToolMT, JetAttributeRatioSelector, top::GhostTrackSystematicsMaker, top::TopObjectSelection, BTaggingEigenVectorRecompositionTool, LVL1::TrigT1CaloLWHistogramToolV1, LVL1::TrigT1CaloLWHistogramTool, Trig::TrigDecisionTool, CP::PhotonPointingTool, met::METRecoTool, CP::PhotonVertexSelectionTool, top::KLFitterTool, ZdcByteStreamReadV1V2Tool, CP::PileupReweightingTool, top::JetObjectCollectionMaker, LVL1::L1CaloxAODOfflineTriggerTowerTools, RCJet, LVL1::TrigT1CaloMonErrorToolV1, met::METTrackFilterTool, LVL1::TrigT1CaloMonErrorTool, SoftKillerWeightTool, EventDensityTool, met::METSignificance, ParticleLevelRCJetObjectLoader, JetUncertaintiesTool, top::TopToolStore, CP::JetTileCorrectionTool, xAODMaker::TriggerMenuMetaDataTool, D3PD::D3PDMCTruthClassifier, top::ElectronInJetSubtractionCollectionMaker, top::MuonObjectCollectionMaker, JetConstituentModSequence, top::EgammaObjectCollectionMaker, HistoGroupBase, AsgPhotonIsEMSelector, JetAttributeSelector, top::ObjectCollectionMaker, TrackVertexAssociationTool, met::METRefinerTool, TauAnalysisTools::CommonSmearingTool, top::GlobalLeptonTriggerCalculator, top::ScaleFactorCalculator, top::TrackSystematicsMaker, top::ElectronScaleFactorCalculator, top::JetScaleFactorCalculator, top::MuonScaleFactorCalculator, PanTau::Tool_DetailsArranger, LVL1::L1CaloMonitoringCaloTool, top::EventSaverxAOD, LVL1::L1CaloTTIdTools, top::SoftMuonObjectCollectionMaker, top::TauObjectCollectionMaker, JetInputElRemovalTool, TauAnalysisTools::CommonEfficiencyTool, top::BTagScaleFactorCalculator, top::MissingETObjectCollectionMaker, PanTau::PanTauProcessor, xAODMaker::TruthMetaDataTool, top::PDFScaleFactorCalculator, top::PhotonScaleFactorCalculator, top::PseudoTopReco, EventShapeCopier, met::METJetTool, GoodRunsListSelectionTool, top::EventSaverxAODNext, top::FwdElectronScaleFactorCalculator, FSR::FsrPhotonTool, Trig::StaticBunchCrossingTool, ZMassConstraint::ConstraintFit, TauAnalysisTools::TauEfficiencyCorrectionsTool, PanTau::Tool_DecayModeDeterminator, PanTau::Tool_ModeDiscriminator, CP::ElectronLRTOverlapRemovalTool, HIClusterSubtraction, JetAttributeHisto, JetPseudojetCopier, met::METEgammaAssociator, Trig::xAODBunchCrossingTool, TauAnalysisTools::DiTauEfficiencyCorrectionsTool, TauAnalysisTools::DiTauTruthMatchingTool, TauAnalysisTools::TauSmearingTool, top::JetMETCPTools, met::METTruthAssociator, PanTau::Tool_InformationStore, HistoDefinitionTool, PanTau::Tool_InputConverter, JetBottomUpSoftDrop, JetRecursiveSoftDrop, PMGTools::PMGCrossSectionTool, JetSoftDrop, TrigEgammaMatchingToolMT, DiTauMassTools::MissingMassToolV2, top::TauScaleFactorCalculator, top::TriggerCPTools, JetConstituentsRetriever, VoronoiWeightTool, top::GhostTrackCPTools, JetCaloCellQualityTool, JetContainerHistoFiller, ChargedHadronSubtractionTool, JetTrackSelectionTool, met::METRegionsTool, met::METSoftAssociator, PanTau::Tool_TauConstituentGetter, top::EventCleaningSelection, ConstituentSubtractorTool, top::EgammaCPTools, top::OtherCPTools, top::TopEventMaker, JetHistoBase, JetSelectorAttributeRunII, JetSplitter, CaloClusterConstituentsOrigin, JetTrackSelectionTool2, SimpleJetTrackSelectionTool, CP::MuonLRTOverlapRemovalTool, top::FlavorTaggingCPTools, top::TauCPTools, HistosForJetSelection, JetPruner, JetToolRunner, JetUsedInFitTrackDecoratorTool, top::TrackCPTools, JetTrimmer, NSubjettinessRatiosTool, CP::MuonEfficiencyScaleFactors, top::PileupScaleFactorCalculator, top::MuonCPTools, JetConstitFourMomTool, NSubjettinessTool, ZdcDataAccessV2, JetPseudojetRetriever, LVL1BS::TrigT1CaloDataAccessV2, PanTau::Tool_TauConstituentSelector, CopyTruthParticles, top::IsolationCPTools, top::OverlapRemovalCPTools, ClusterAtEMScaleTool, CP::IsolationHelper, top::BoostedTaggingCPTools, AsgDeadHVCellRemovalTool, ConstitTimeCutTool, Analysis::JetConeLabeling, JetSelectorAttribute, HIJetUEMonitoring, HIEfficiencyResponseHistos, JetSubStructureMomentToolsBase, AsgHelloTool, CopyTruthJetParticles, LeadingJetsRelations, EfficiencyResponseHistos, and JetEventSelector.
Definition at line 133 of file AsgTool.h.
133 {
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.
◆ linkBosonCollections()
StatusCode top::CalcTopPartonHistory::linkBosonCollections |
( |
| ) |
|
|
protectedinherited |
currently in DAOD_PHYS TruthTop have links to Ws from the TruthBoson collection, which have no link to their decay products; we have therefore to associate the W from the TruthBoson collections to those in the TruthBosonsWithDecayParticles collection.
This method will use the helper method decorateCollectionWithLinksToAnotherCollection to decorate bosons in the TruthBoson collection with "AT_linkToTruthBosonsWithDecayParticles", which is a link to the same bosons in the TruthBosonsWithDecayParticles collection
Definition at line 39 of file CalcTopPartonHistory.cxx.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ msgLvl()
◆ operator=()
◆ 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.
◆ print()
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, top::TopObjectSelection, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ topAfterFSR_SC()
Store the four-momentum of the post-FSR top or anti-top found using statusCodes This would only work if there is at most one "true" top of each charge (i.e.
won't work for SS tops or 4 tops) This code was adapted from the 7TeV parton-level differential ttbar routine: https://svnweb.cern.ch/trac/atlasphys-top/browser/Physics/Top/Software/MCvalidation/Rivet/Rivet2.X/trunk/routines/ATLAS_2014_I1304289/ATLAS_2014_I1304289.cc
won't work for SS tops or 4 tops) This code was adapted from the 7TeV parton-level differential ttbar routine:
Step1: create vectors of particles of each status codes
Step2: loop on the container of particles and fill the above created vectors
Step3: for some of the statuscodes, keep only the last of the vector
Step4: chose which statuscode to take according to what is found in the event
Step5: if everything worked, set the 4-vector to its value and return true
Definition at line 83 of file CalcTopPartonHistory.cxx.
87 std::vector<const xAOD::TruthParticle*> v_status3_top;
89 std::vector<const xAOD::TruthParticle*> v_status155_top;
91 std::vector<const xAOD::TruthParticle*> v_status11_top;
93 std::vector<const xAOD::TruthParticle*> v_statusOther_top;
101 }
else if (
particle->status() == 155) {
102 v_status155_top.push_back(
particle);
103 }
else if (
particle->status() == 11) {
104 if (!
particle->hasDecayVtx())
continue;
106 if (
vertex ==
nullptr)
continue;
107 if (
vertex->nOutgoingParticles() == 2) v_status11_top.push_back(
particle);
109 v_statusOther_top.push_back(
particle);
115 if (v_status3_top.size() > 1) {
116 v_status3_top = std::vector<const xAOD::TruthParticle*>(v_status3_top.end() - 1, v_status3_top.end());
119 if (v_status11_top.size() > 1) {
120 v_status11_top = std::vector<const xAOD::TruthParticle*>(v_status11_top.end() - 1, v_status11_top.end());
124 if (v_statusOther_top.size() > 1) {
125 v_statusOther_top = std::vector<const xAOD::TruthParticle*>(v_statusOther_top.end() - 1, v_statusOther_top.end());
131 if (v_status3_top.size() == 1 && v_status155_top.size() == 0) {
132 top = v_status3_top[0];
135 if (v_status155_top.size() == 1 && v_status3_top.size() == 0) {
136 top = v_status155_top[0];
139 if (v_statusOther_top.size() == 1 && v_status155_top.size() == 0 && v_status3_top.size() == 0) {
140 top = v_statusOther_top[0];
143 if (v_status11_top.size() == 1 && v_status3_top.size() == 0) {
144 top = v_status11_top[0];
148 if (
top !=
nullptr) {
149 top_afterFSR_SC_p4 =
top->p4();
◆ topPhWb()
bool top::CalcTopPartonHistory::topPhWb |
( |
const xAOD::TruthParticleContainer * |
truthParticles, |
|
|
int |
topId, |
|
|
TLorentzVector & |
t_beforeFSR_p4, |
|
|
TLorentzVector & |
t_afterFSR_p4, |
|
|
TLorentzVector & |
Ph_p4, |
|
|
TLorentzVector & |
W_p4, |
|
|
TLorentzVector & |
b_p4, |
|
|
TLorentzVector & |
Wdecay1_p4, |
|
|
int & |
Wdecay1_pdgId, |
|
|
TLorentzVector & |
Wdecay2_p4, |
|
|
int & |
Wdecay2_pdgId, |
|
|
bool & |
has_ph, |
|
|
int & |
BranchType, |
|
|
int & |
IniPartonType, |
|
|
bool & |
missingTop |
|
) |
| |
|
inherited |
Store the four-momentum of photon coming from virtual top in ttgamma events.
Definition at line 448 of file CalcTopPartonHistory.cxx.
456 bool hasAbsentW =
false;
464 bool hasWdecayProd1 =
false;
465 bool hasWdecayProd2 =
false;
469 if (
particle->pdgId() != topId)
continue;
476 for (
size_t iparent = 0; iparent <
particle->nParents(); iparent++) {
477 if (abs(
particle->parent(iparent)->pdgId()) == 21) {
480 else if (abs(
particle->parent(iparent)->pdgId()) < 6) {
484 for (
size_t ichild = 0; ichild <
particle->parent(iparent)->nChildren(); ichild++) {
485 if (
particle->parent(iparent)->child(ichild)->pdgId() == 22) {
492 (abs(
particle->parent(iparent)->child(ichild)->pdgId()) == 5 ||
493 abs(
particle->parent(iparent)->child(ichild)->pdgId()) == 24)) {
505 for (
size_t k = 0;
k <
particle->nChildren();
k++) {
508 if (abs(topChildren->
pdgId()) == 24) {
509 W_p4 = topChildren->
p4();
517 if (abs(WChildren->
pdgId()) > 0 && abs(WChildren->
pdgId()) < 17) {
518 if (abs(WChildren->
pdgId()) < 7) {
521 else if (abs(WChildren->
pdgId()) > 10 && abs(WChildren->
pdgId()) < 17) {
524 if (WChildren->
pdgId() > 0) {
526 Wdecay1_p4 = WChildren->
p4();
527 Wdecay1_pdgId = WChildren->
pdgId();
528 hasWdecayProd1 =
true;
531 Wdecay2_p4 = WChildren->
p4();
532 Wdecay2_pdgId = WChildren->
pdgId();
533 hasWdecayProd2 =
true;
535 }
else if (abs(WChildren->
pdgId()) == 22) {
541 if (WChildren->
p4().Pt() > Ph_p4.Pt()) {
547 Ph_p4 = WChildren->
p4();
553 Ph_p4 = WChildren->
p4();
557 }
else if (abs(topChildren->
pdgId()) == 5) {
560 b_p4 = topChildren->
p4();
567 if (bChildren->
p4().Pt() > Ph_p4.Pt()) {
573 Ph_p4 = bChildren->
p4();
579 Ph_p4 = bChildren->
p4();
586 if (topChildren->
p4().Pt() > Ph_p4.Pt()) {
588 Ph_p4 = topChildren->
p4();
593 Ph_p4 = topChildren->
p4();
602 else if (abs(topChildren->
pdgId()) <= 4 || (abs(topChildren->
pdgId()) > 10 && abs(topChildren->
pdgId()) < 17)) {
605 if (abs(topChildren->
pdgId()) < 7) {
608 else if (abs(topChildren->
pdgId()) > 10 && abs(topChildren->
pdgId()) < 17) {
611 if (topChildren->
pdgId() > 0) {
613 Wdecay1_p4 = topChildren->
p4();
614 Wdecay1_pdgId = topChildren->
pdgId();
615 hasWdecayProd1 =
true;
618 Wdecay2_p4 = topChildren->
p4();
619 Wdecay2_pdgId = topChildren->
pdgId();
620 hasWdecayProd2 =
true;
622 W_p4 = W_p4 + topChildren->
p4();
627 if (hasAbsentW && (ph_Top || ph_W)) {
631 if (has_ph && ph_Top) {
632 BranchType = BranchType + 2;
634 if (has_ph && ph_W) {
635 BranchType = BranchType + 4;
637 if (has_ph && ph_ISR) {
638 BranchType = BranchType + 5;
640 if (has_ph && ph_b) {
641 BranchType = BranchType + 8;
644 if (hasT && hasW && hasB && hasWdecayProd1 && hasWdecayProd2 && BranchType != -1)
return true;
◆ topWb()
bool top::CalcTopPartonHistory::topWb |
( |
const xAOD::TruthParticleContainer * |
truthParticles, |
|
|
int |
start, |
|
|
TLorentzVector & |
t_beforeFSR_p4, |
|
|
TLorentzVector & |
t_afterFSR_p4, |
|
|
TLorentzVector & |
W_p4, |
|
|
TLorentzVector & |
b_p4, |
|
|
TLorentzVector & |
Wdecay1_p4, |
|
|
int & |
Wdecay1_pdgId, |
|
|
TLorentzVector & |
Wdecay2_p4, |
|
|
int & |
Wdecay2_pdgId |
|
) |
| |
|
inherited |
Store the four-momentum of several particles in the top decay chain.
Definition at line 182 of file CalcTopPartonHistory.cxx.
190 bool hasWdecayProd1 =
false;
191 bool hasWdecayProd2 =
false;
205 for (
size_t k = 0;
k <
particle->nChildren();
k++) {
208 if (abs(topChildren->
pdgId()) == 24) {
209 W_p4 = topChildren->
p4();
221 if (abs(WChildren->
pdgId()) < 17) {
222 if (WChildren->
pdgId() > 0) {
223 Wdecay1_p4 = WChildren->
p4();
224 Wdecay1_pdgId = WChildren->
pdgId();
225 hasWdecayProd1 =
true;
227 Wdecay2_p4 = WChildren->
p4();
228 Wdecay2_pdgId = WChildren->
pdgId();
229 hasWdecayProd2 =
true;
233 }
else if (abs(topChildren->
pdgId()) == 5) {
234 b_p4 = topChildren->
p4();
239 if (hasT && hasW && hasB && hasWdecayProd1 && hasWdecayProd2)
return true;
◆ topWq()
bool top::CalcTopPartonHistory::topWq |
( |
const xAOD::TruthParticleContainer * |
truthParticles, |
|
|
int |
start, |
|
|
TLorentzVector & |
t_beforeFSR_p4, |
|
|
TLorentzVector & |
t_afterFSR_p4, |
|
|
TLorentzVector & |
W_p4, |
|
|
TLorentzVector & |
q_p4, |
|
|
int & |
q_pdgId, |
|
|
TLorentzVector & |
Wdecay1_p4, |
|
|
int & |
Wdecay1_pdgId, |
|
|
TLorentzVector & |
Wdecay2_p4, |
|
|
int & |
Wdecay2_pdgId |
|
) |
| |
|
inherited |
Definition at line 246 of file CalcTopPartonHistory.cxx.
254 bool hasWdecayProd1 =
false;
255 bool hasWdecayProd2 =
false;
269 for (
size_t k = 0;
k <
particle->nChildren();
k++) {
272 if (abs(topChildren->
pdgId()) == 24) {
273 W_p4 = topChildren->
p4();
281 if (abs(WChildren->
pdgId()) < 17) {
282 if (WChildren->
pdgId() > 0) {
283 Wdecay1_p4 = WChildren->
p4();
284 Wdecay1_pdgId = WChildren->
pdgId();
285 hasWdecayProd1 =
true;
287 Wdecay2_p4 = WChildren->
p4();
288 Wdecay2_pdgId = WChildren->
pdgId();
289 hasWdecayProd2 =
true;
293 }
else if (abs(topChildren->
pdgId()) == 5 || abs(topChildren->
pdgId()) == 3 || abs(topChildren->
pdgId()) == 1) {
294 q_p4 = topChildren->
p4();
295 q_pdgId = topChildren->
pdgId();
299 if (hasT && hasW && hasQ && hasWdecayProd1 && hasWdecayProd2)
return true;
◆ tthHistorySaver()
Definition at line 47 of file CalcTthPartonHistory.cxx.
51 TLorentzVector t_before, t_after, t_after_SC;
54 TLorentzVector WpDecay1;
55 TLorentzVector WpDecay2;
60 WpDecay2, WpDecay2_pdgId);
63 TLorentzVector tbar_before, tbar_after, tbar_after_SC;
66 TLorentzVector WmDecay1;
67 TLorentzVector WmDecay2;
72 WmDecay1_pdgId, WmDecay2, WmDecay2_pdgId);
81 if (event_top && event_topbar) {
83 TLorentzVector temp = t_before + tbar_before;
85 fillEtaBranch(tthPartonHistory,
"MC_ttbar_beforeFSR_eta", temp);
87 temp = t_after + tbar_after;
89 fillEtaBranch(tthPartonHistory,
"MC_ttbar_afterFSR_beforeDecay_eta", temp);
91 temp = WmDecay1 + WmDecay2 +
b + WpDecay1 + WpDecay2 + bbar;
93 fillEtaBranch(tthPartonHistory,
"MC_ttbar_afterFSR_eta", temp);
139 fillEtaBranch(tthPartonHistory,
"MC_t_beforeFSR_eta", t_before);
142 fillEtaBranch(tthPartonHistory,
"MC_t_afterFSR_eta", t_after);
146 fillEtaBranch(tthPartonHistory,
"MC_t_afterFSR_SC_eta", t_after_SC);
156 tthPartonHistory->
auxdecor<
int >(
"MC_Wdecay1_from_t_pdgId") = WpDecay1_pdgId;
157 fillEtaBranch(tthPartonHistory,
"MC_Wdecay1_from_t_eta", WpDecay1);
160 tthPartonHistory->
auxdecor<
int >(
"MC_Wdecay2_from_t_pdgId") = WpDecay2_pdgId;
161 fillEtaBranch(tthPartonHistory,
"MC_Wdecay2_from_t_eta", WpDecay2);
167 fillEtaBranch(tthPartonHistory,
"MC_tbar_beforeFSR_eta", tbar_before);
170 fillEtaBranch(tthPartonHistory,
"MC_tbar_afterFSR_eta", tbar_after);
173 if (event_topbar_SC) {
175 fillEtaBranch(tthPartonHistory,
"MC_tbar_afterFSR_SC_eta", tbar_after_SC);
185 tthPartonHistory->
auxdecor<
int >(
"MC_Wdecay1_from_tbar_pdgId") = WmDecay1_pdgId;
186 fillEtaBranch(tthPartonHistory,
"MC_Wdecay1_from_tbar_eta", WmDecay1);
189 tthPartonHistory->
auxdecor<
int >(
"MC_Wdecay2_from_tbar_pdgId") = WmDecay2_pdgId;
190 fillEtaBranch(tthPartonHistory,
"MC_Wdecay2_from_tbar_eta", WmDecay2);
◆ updateVHKA()
◆ Wlv()
bool top::CalcTopPartonHistory::Wlv |
( |
const xAOD::TruthParticleContainer * |
truthParticles, |
|
|
TLorentzVector & |
W_p4, |
|
|
TLorentzVector & |
Wdecay1_p4, |
|
|
int & |
Wdecay1_pdgId, |
|
|
TLorentzVector & |
Wdecay2_p4, |
|
|
int & |
Wdecay2_pdgId |
|
) |
| |
|
inherited |
Store the four-momentum of several particles in the W decay chain.
Definition at line 305 of file CalcTopPartonHistory.cxx.
310 bool hasWdecayProd1 =
false;
311 bool hasWdecayProd2 =
false;
314 if (abs(
particle->pdgId()) != 24)
continue;
322 for (
size_t k = 0;
k <
particle->nChildren();
k++) {
324 if (abs(WChildren->
pdgId()) < 17) {
325 if (WChildren->
pdgId() % 2 == 1) {
326 Wdecay1_p4 = WChildren->
p4();
327 Wdecay1_pdgId = WChildren->
pdgId();
328 hasWdecayProd1 =
true;
330 Wdecay2_p4 = WChildren->
p4();
331 Wdecay2_pdgId = WChildren->
pdgId();
332 hasWdecayProd2 =
true;
337 if (hasW && hasWdecayProd1 && hasWdecayProd2)
return true;
◆ Wt_b()
bool top::CalcTopPartonHistory::Wt_b |
( |
const xAOD::TruthParticleContainer * |
truthParticles, |
|
|
TLorentzVector & |
b_beforeFSR, |
|
|
TLorentzVector & |
b_afterFSR, |
|
|
int & |
b_pdgId |
|
) |
| |
|
inherited |
Store the four-momentum of b quark that is NOT from top in Wt(b) ST events.
Definition at line 403 of file CalcTopPartonHistory.cxx.
414 if (abs(
particle->pdgId()) != 5)
continue;
416 for (
size_t iparent = 0; iparent <
particle->nParents(); ++iparent) {
417 if (
particle->parent(iparent) ==
nullptr)
continue;
420 if (abs(
particle->parent(iparent)->pdgId()) == 5)
continue;
423 if (abs(
particle->parent(iparent)->pdgId()) == 6)
continue;
426 if (abs(
particle->parent(iparent)->pdgId()) == 24)
continue;
429 if (abs(
particle->parent(iparent)->pdgId()) == 2212)
continue;
442 if (hasB)
return true;
◆ Wt_W()
bool top::CalcTopPartonHistory::Wt_W |
( |
const xAOD::TruthParticleContainer * |
truthParticles, |
|
|
TLorentzVector & |
W_p4, |
|
|
int & |
W_pdgId, |
|
|
TLorentzVector & |
Wdecay1_p4, |
|
|
int & |
Wdecay1_pdgId, |
|
|
TLorentzVector & |
Wdecay2_p4, |
|
|
int & |
Wdecay2_pdgId |
|
) |
| |
|
inherited |
Store the four-momentum of several particles in W decay chain for W that is NOT from top in Wt ST events.
Definition at line 345 of file CalcTopPartonHistory.cxx.
349 bool hasWdecayProd1 =
false;
350 bool hasWdecayProd2 =
false;
354 if (abs(
particle->pdgId()) != 24)
continue;
361 bool isFromTop =
false;
363 for (
size_t iparent = 0; iparent <
particle->nParents(); ++iparent) {
364 if (
particle->parent(iparent) ==
nullptr)
continue;
365 if (abs(
particle->parent(iparent)->pdgId()) == 6) {
371 if (isFromTop)
continue;
380 for (
size_t q = 0;
q <
particle->nChildren(); ++
q) {
382 if (WChildren ==
nullptr)
continue;
383 if (abs(WChildren->
pdgId()) < 17) {
384 if (WChildren->
pdgId() > 0) {
385 Wdecay1_p4 = WChildren->
p4();
386 Wdecay1_pdgId = WChildren->
pdgId();
387 hasWdecayProd1 =
true;
389 Wdecay2_p4 = WChildren->
p4();
390 Wdecay2_pdgId = WChildren->
pdgId();
391 hasWdecayProd2 =
true;
396 if (hasW && hasWdecayProd1 && hasWdecayProd2)
return true;
◆ m_config
◆ m_detStore
◆ m_evtStore
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ ttH
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
int tau_decay2_isHadronic
int tau_decay1_isHadronic
int decay1_from_decay2_pdgId
StatusCode buildContainerFromMultipleCollections(const std::vector< std::string > &collections, const std::string &out_contName)
used to build container from multiple collections in DAOD_PHYS we don't have the TruthParticles colle...
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
TopConfig A simple configuration that is NOT a singleton.
StatusCode linkBosonCollections()
currently in DAOD_PHYS TruthTop have links to Ws from the TruthBoson collection, which have no link t...
int decay2_from_decay1_pdgId
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
TLorentzVector decay2_from_decay1_p4
int tau_decay1_from_decay2_isHadronic
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const xAOD::TruthParticle * getTruthParticleLinkedFromDecoration(const xAOD::TruthParticle *part, const std::string &decorationName)
helper method to handle retriveing the truth particle linked in the decoration of another particle
int tau_decay2_from_decay1_isHadronic
TLorentzVector decay1_from_decay1_vector
subsequent decays of W/Z
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
TLorentzVector decay1_from_decay2_vector
int decay2_from_decay2_pdgId
Decorator< T, ALLOC >::reference_type auxdecor(const std::string &name) const
Fetch an aux decoration, as a non-const reference.
std::shared_ptr< top::TopConfig > m_config
virtual void setOwner(IDataHandleHolder *o)=0
struct top::CalcTthPartonHistory::ttH_values ttH
int tau_decay1_isHadronic
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
void tthHistorySaver(const xAOD::TruthParticleContainer *truthParticles, xAOD::PartonHistory *tthPartonHistory)
def save(self, fileName="./columbo.out")
bool b(const xAOD::TruthParticleContainer *truthParticles, TLorentzVector &b_beforeFSR, TLorentzVector &b_afterFSR)
Store the four-momentum of b (not from tops_ before and after FSR.
const xAOD::TruthParticle * findAfterFSR(const xAOD::TruthParticle *particle)
Return particle after FSR (before the decay vertex)
int decay2_from_decay1_pdgId
TLorentzVector decay2_from_decay2_vector
TLorentzVector decay1_from_decay1_p4
::StatusCode StatusCode
StatusCode definition for legacy code.
Class describing a truth particle in the MC record.
int tau_decay1_from_decay1_isHadronic
int tau_decay1_from_decay1_isHadronic
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
bool topAfterFSR_SC(const xAOD::TruthParticleContainer *truthParticles, int start, TLorentzVector &top_afterFSR_SC_p4)
Store the four-momentum of the post-FSR top or anti-top found using statusCodes This would only work ...
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
int decay2_from_decay2_pdgId
TLorentzVector decay2_from_decay2_p4
TLorentzVector decay2_from_decay1_vector
int decay1_from_decay1_pdgId
HiggsDecay AnalyzeHiggsDecay(const xAOD::TruthParticle *higgs)
Store higgs decay information.
int tau_decay1_from_decay2_isHadronic
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Class describing a truth vertex in the MC record.
size_t nChildren() const
Number of children of this particle.
int tau_decay2_from_decay2_isHadronic
value_type push_back(value_type pElem)
Add an element to the end of the collection.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
bool HiggsAndDecay(const xAOD::TruthParticleContainer *truthParticles)
Store the four-momentum of several particles in the Higgs decay chain.
TLorentzVector decay2_vector
int decay1_from_decay1_pdgId
CalcTopPartonHistory(const std::string &name)
int decay1_from_decay2_pdgId
DataVector adapter that acts like it holds const pointers.
int tau_decay2_isHadronic
bool isPhoton(const xAOD::Egamma *eg)
is the object a photon
const TruthParticle_v1 * child(size_t i=0) const
Retrieve the i-th mother (TruthParticle) of this TruthParticle.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
StatusCode decorateCollectionWithLinksToAnotherCollection(const std::string &collectionToDecorate, const std::string &collectionToLink, const std::string &nameOfDecoration)
helper method currently used in DAOD_PHYS to link particles from a given collection to the same parti...
bool topWb(const xAOD::TruthParticleContainer *truthParticles, int start, TLorentzVector &t_beforeFSR_p4, TLorentzVector &t_afterFSR_p4, TLorentzVector &W_p4, TLorentzVector &b_p4, TLorentzVector &Wdecay1_p4, int &Wdecay1_pdgId, TLorentzVector &Wdecay2_p4, int &Wdecay2_pdgId)
Store the four-momentum of several particles in the top decay chain.
int tau_decay2_from_decay1_isHadronic
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
void fillEtaBranch(xAOD::PartonHistory *partonHistory, std::string branchName, TLorentzVector &tlv)
TLorentzVector decay1_from_decay2_p4
int pdgId() const
PDG ID code.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
TLorentzVector decay1_vector
direct higgs decay
bool hasParticleIdenticalParent(const xAOD::TruthParticle *particle)
Return true when particle is a top before FSR.
void decorateWithMPtPhi(xAOD::PartonHistory *pHistory, const std::string &prefix, const TLorentzVector &vec)
Perform decoration M, Pt, Phi of the history from a TLorentzVector.
int tau_decay2_from_decay2_isHadronic