|
ATLAS Offline Software
|
Go to the documentation of this file.
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);
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;
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
CalcTthPartonHistory(const std::string &name)
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
TLorentzVector decay2_from_decay1_p4
int tau_decay1_from_decay2_isHadronic
int tau_decay2_from_decay1_isHadronic
TLorentzVector decay1_from_decay1_vector
subsequent decays of W/Z
virtual StatusCode execute()
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
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.
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
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 ...
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
int tau_decay2_from_decay2_isHadronic
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
int decay1_from_decay2_pdgId
int tau_decay2_isHadronic
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
void fillEtaBranch(xAOD::PartonHistory *partonHistory, std::string branchName, TLorentzVector &tlv)
TLorentzVector decay1_from_decay2_p4
TLorentzVector decay1_vector
direct higgs decay
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