Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Attributes | List of all members
DerivationFramework::TruthDressingTool Class Reference

#include <TruthDressingTool.h>

Inheritance diagram for DerivationFramework::TruthDressingTool:
Collaboration diagram for DerivationFramework::TruthDressingTool:

Public Member Functions

 TruthDressingTool (const std::string &t, const std::string &n, const IInterface *p)
 
 ~TruthDressingTool ()
 
StatusCode initialize ()
 
virtual StatusCode addBranches () const
 

Private Attributes

SG::ReadHandleKey< xAOD::TruthParticleContainerm_particlesKey {this, "particlesKey", "TruthParticles", "ReadHandleKey for TruthParticles for photon list input"}
 ReadHandleKey input collection key. More...
 
SG::ReadHandleKey< xAOD::TruthParticleContainerm_dressParticlesKey {this, "dressParticlesKey", "TruthParticles", "ReadHandleKey for input particles to be dressed. If taus are selected, everything in this input key will be used"}
 ReadHandleKey for particles to be dressed. More...
 
SG::ReadDecorHandleKey< xAOD::TruthParticleContainerm_truthClassKey {this, "truthClassifierKey", "", "Will be over written during initialize"}
 Ensure that the algorithm is scheduled after the truth classifier. More...
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_eKey {this, "e_dressed", "TruthParticles.e_dressed", "e_dressed decoration"}
 WriteDecorHandleKeys for decorations. More...
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_ptKey {this, "pt_dressed", "TruthParticles.pt_dressed", "pt_dressed decoration"}
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_etaKey {this, "eta_dressed", "TruthParticles.eta_dressed", "eta_dressed decoration"}
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_phiKey {this, "phi_dressed", "TruthParticles.phi_dressed", "phi_dressed decoration"}
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_pt_visKey {this, "pt_vis_dressed", "TruthParticles.pt_vis_dressed", "pt_vis_dressed decoration"}
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_eta_visKey {this, "eta_vis_dressed", "TruthParticles.eta_vis_dressed", "eta_vis_dressed decoration"}
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_phi_visKey {this, "phi_vis_dressed", "TruthParticles.phi_vis_dressed", "phi_vis_dressed decoration"}
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_m_visKey {this, "m_vis_dressed", "TruthParticles.m_vis_dressed", "m_vis_dressed decoration"}
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorator_nphotonKey {this, "nPhotons_dressed", "TruthParticles.nPhotons_dressed", "nPhotons_dressed decoration"}
 
SG::WriteDecorHandleKey< xAOD::TruthParticleContainerm_decorationKey {this, "DressingKey", "TruthParticles.dressedPhoton", "Dressed photon decoration"}
 
Gaudi::Property< bool > m_usePhotonsFromHadrons {this, "usePhotonsFromHadrons", false, "Add photons coming from hadron decays while dressing"}
 Parameter: Use photons from hadron decays? More...
 
Gaudi::Property< bool > m_useLeptonsFromHadrons {this, "useLeptonsFromHadrons", false, "Consider leptons coming from hadron decays?"}
 Parameter: Use leptons from hadron decays? More...
 
Gaudi::Property< float > m_coneSize {this, "dressingConeSize", 0.1, "Size of dR cone in which to include FSR photons in dressing"}
 Parameter: Cone size for dressing. More...
 
Gaudi::Property< std::vector< int > > m_listOfPIDs {this, "particleIDsToDress", {11,13}, "List of the pdgID's of particles to be dressed (usually 11,13). Special treatment for taus (15)"}
 Parameter: List of pdgIDs of particles to dress. More...
 
Gaudi::Property< bool > m_useAntiKt {this, "useAntiKt", false, "use anti-k_T instead of fixed-cone dressing"}
 Parameter: Use antikT algorithm for dressing? More...
 
Gaudi::Property< std::string > m_decorationName {this, "decorationName", "", "Name of the decoration for photons that were used in dressing"}
 Parameter: Name of the decoration to apply. More...
 

Detailed Description

Definition at line 22 of file TruthDressingTool.h.

Constructor & Destructor Documentation

◆ TruthDressingTool()

DerivationFramework::TruthDressingTool::TruthDressingTool ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 30 of file TruthDressingTool.cxx.

33  : base_class(t,n,p)
34 {
35 }

◆ ~TruthDressingTool()

DerivationFramework::TruthDressingTool::~TruthDressingTool ( )

Definition at line 38 of file TruthDressingTool.cxx.

38  {
39 }

Member Function Documentation

◆ addBranches()

StatusCode DerivationFramework::TruthDressingTool::addBranches ( ) const
virtual

Definition at line 74 of file TruthDressingTool.cxx.

75 {
76  // Get the event context
77  const EventContext& ctx = Gaudi::Hive::currentContext();
78 
79  // Retrieve the truth collections
81  if (!truthParticles.isValid()) {
82  ATH_MSG_ERROR("Couldn't retrieve TruthParticle collection with name " << m_particlesKey);
83  return StatusCode::FAILURE;
84  }
85 
87  if (!dressTruthParticles.isValid()) {
88  ATH_MSG_ERROR("Couldn't retrieve TruthParticle collection with name " << m_dressParticlesKey);
89  return StatusCode::FAILURE;
90  }
91 
92  // Decorators
97  // for truth taus, use 'vis' in the decoration name to avoid prompt/visible tau momentum ambiguity
98  // use (pt,eta,phi,m) for taus, for consistency with other TauAnalysisTools decorations
104  // One for the photons as well
105  // Can't use a handle here, as this decoration gets touched by
106  // multiple algorithms. Need to explicitly schedule a LockDecorations
107  // algorithm to lock it after all modifications.
108  // FIXME: This is not MT-safe.
110  // If we want to decorate, then we need to decorate everything with false to begin with
111  if (!m_decorationName.empty()){
112  if (!dressDec.isAvailable(*truthParticles)) {
113  for (const auto * particle : *truthParticles){
114  dressDec(*particle);
115  }
116  } // Loop over particles
117  } // We are using the decoration
118 
119  //get struct of helper functions
121 
122  std::vector<const xAOD::TruthParticle*> listOfParticlesToDress;
123  std::vector<xAOD::TruthParticle::FourMom_t> listOfDressedParticles;
124  std::vector<int> dressedParticlesNPhot;
125 
126  if(m_listOfPIDs.size()==1 && abs(m_listOfPIDs[0])==15) {
127  // when dressing only truth taus, it is assumed that the truth tau container has
128  // been built beforehand and is used as input
129  for (auto *pItr : *dressTruthParticles) {
130  listOfParticlesToDress.push_back(pItr);
131  }
132  }
133  else {
134  // non-prompt particles are still included here to ensure all particles
135  // will get the decoration; however further down only the prompt particles
136  // are actually dressed depending on the value of m_useLeptonsFromHadrons
137  decayHelper.constructListOfFinalParticles(dressTruthParticles.ptr(), listOfParticlesToDress, m_listOfPIDs, true);
138  }
139 
140  //initialize list of dressed particles
141  for (const auto& part : listOfParticlesToDress) {
142  listOfDressedParticles.push_back(part->p4());
143  dressedParticlesNPhot.push_back(0);
144  }
145 
146  //fill the photon list
147  std::vector<const xAOD::TruthParticle*> photonsFSRList;
148  std::vector<int> photonPID{22};
149  const bool pass = decayHelper.constructListOfFinalParticles(truthParticles.ptr(), photonsFSRList,
150  photonPID, m_usePhotonsFromHadrons);
151  if (!pass) {
152  ATH_MSG_WARNING("Cannot construct the list of final state particles "<<m_truthClassKey.fullKey());
153  }
154 
155  static const SG::ConstAccessor<double> pt_visAcc("pt_vis");
156  static const SG::ConstAccessor<double> eta_visAcc("eta_vis");
157  static const SG::ConstAccessor<double> phi_visAcc("phi_vis");
158  static const SG::ConstAccessor<double> mvisAcc("m_vis");
159 
160  // Do dR-based photon dressing (default)
161  if (!m_useAntiKt){
162  //loop over photons, uniquely associate each to nearest bare particle
163  for (const auto& phot : photonsFSRList ) {
164  double dRmin = m_coneSize;
165  int idx = -1;
166 
167  for (size_t i = 0; i < listOfParticlesToDress.size(); ++i) {
169  if (!acc_origin.isAvailable(*listOfParticlesToDress[i])) {
170  ATH_MSG_WARNING("MCTruthClassifier "<<m_truthClassKey.fullKey() <<" not available, cannot apply notFromHadron veto!");
171  }
172  unsigned int result = acc_origin(*listOfParticlesToDress[i]);
173  const bool isPrompt = MCTruthPartClassifier::isPrompt(result, true);
174  if (!isPrompt) continue;
175  }
177  if(listOfParticlesToDress[i]->isTau()) {
178 
179  if( !pt_visAcc.isAvailable(*listOfParticlesToDress[i]) ||
180  !eta_visAcc.isAvailable(*listOfParticlesToDress[i]) ||
181  !phi_visAcc.isAvailable(*listOfParticlesToDress[i]) ||
182  !mvisAcc.isAvailable(*listOfParticlesToDress[i])) {
183  ATH_MSG_ERROR("Visible momentum not available for truth taus, cannot perform dressing!");
184  return StatusCode::FAILURE;
185  }
186 
187  bare_part.SetPtEtaPhiM(pt_visAcc(*listOfParticlesToDress[i]),
188  eta_visAcc(*listOfParticlesToDress[i]),
189  phi_visAcc(*listOfParticlesToDress[i]),
190  mvisAcc(*listOfParticlesToDress[i]));
191  }
192  else {
193  bare_part = listOfParticlesToDress[i]->p4();
194  }
195 
196  double dR = bare_part.DeltaR(phot->p4());
197  if (dR < dRmin) {
198  dRmin = dR;
199  idx = i;
200  }
201  }
202 
203  if(idx > -1) {
204  listOfDressedParticles[idx] += phot->p4();
205  dressedParticlesNPhot[idx]++;
206  if (!m_decorationName.empty()){
207  dressDec(*phot) = 1;
208  }
209  }
210  }
211 
212  //loop over particles and add decorators
213  //for (const auto& part : listOfDressedParticles) {
214  for (size_t i = 0; i < listOfParticlesToDress.size(); ++i) {
215  const xAOD::TruthParticle* part = listOfParticlesToDress[i];
216  xAOD::TruthParticle::FourMom_t& dressedVec = listOfDressedParticles[i];
217 
218  if(part->isTau()) {
219  decorator_pt_vis(*part) = dressedVec.Pt();
220  decorator_eta_vis(*part) = dressedVec.Eta();
221  decorator_phi_vis(*part) = dressedVec.Phi();
222  decorator_m_vis(*part) = dressedVec.M();
223  }
224  else {
225  decorator_e(*part) = dressedVec.E();
226  decorator_pt(*part) = dressedVec.Pt();
227  decorator_eta(*part) = dressedVec.Eta();
228  decorator_phi(*part) = dressedVec.Phi();
229  }
230  decorator_nphoton(*part) = dressedParticlesNPhot[i];
231  }
232  } // end of the dR matching part
233 
234  //build the anti-kt jet list
235  if (m_useAntiKt) {
236  std::vector<fastjet::PseudoJet> sorted_jets;
237  std::vector<fastjet::PseudoJet> fj_particles;
238  for (const auto& part : listOfParticlesToDress) {
239 
240  if(part->isTau()) {
241  if(!pt_visAcc.isAvailable(*part) || !eta_visAcc.isAvailable(*part)
242  || !phi_visAcc.isAvailable(*part) || !mvisAcc.isAvailable(*part)) {
243  ATH_MSG_ERROR("Visible momentum not available for truth taus, cannot perform dressing!");
244  return StatusCode::FAILURE;
245  }
246 
247  TLorentzVector tauvis;
248  tauvis.SetPtEtaPhiM(pt_visAcc(*part),
249  eta_visAcc(*part),
250  phi_visAcc(*part),
251  mvisAcc(*part));
252  fj_particles.emplace_back(tauvis.Px(), tauvis.Py(), tauvis.Pz(), tauvis.E());
253  }
254  else {
255  fj_particles.emplace_back(part->px(), part->py(), part->pz(), part->e());
256  }
257 
258  fj_particles.back().set_user_index(HepMC::uniqueID(part));
259  }
260  for (const auto& part : photonsFSRList) {
261  fj_particles.emplace_back(part->px(), part->py(), part->pz(), part->e());
262  fj_particles.back().set_user_index(HepMC::uniqueID(part));
263  }
264 
265  //run the clustering
266  fastjet::JetAlgorithm alg=fastjet::antikt_algorithm;
267  const fastjet::JetDefinition jet_def(alg, m_coneSize);
268  fastjet::ClusterSequence cseq(fj_particles, jet_def);
269  sorted_jets = sorted_by_pt(cseq.inclusive_jets(0));
270  //associate clustered jets back to bare particles
271  std::vector<int> photon_uniqueIDs(50);
272  photon_uniqueIDs.clear();
273  for (const auto& part : listOfParticlesToDress) {
274  //loop over fastjet pseudojets and associate one with this particle
275  bool found=false;
276  auto pjItr=sorted_jets.begin();
277  while(!found && pjItr!=sorted_jets.end()) {
278  std::vector<fastjet::PseudoJet> constituents = pjItr->constituents();
279  for(const auto& constit : constituents) {
280  if (HepMC::uniqueID(part)==constit.user_index()) {
281 
282  // shall we count the number of photons among the pseudojet constituents
283  // to decorate leptons with the number of dressing photons found by the anti-kt algorithm?
284 
285  if(part->isTau()) {
286  decorator_pt_vis(*part) = pjItr->pt();
287  decorator_eta_vis(*part) = pjItr->pseudorapidity();
288  decorator_phi_vis(*part) = pjItr->phi_std(); //returns phi in [-pi,pi]
289  decorator_m_vis(*part) = pjItr->m();
290  }
291  else {
292  decorator_e(*part) = pjItr->e();
293  decorator_pt(*part) = pjItr->pt();
294  decorator_eta(*part) = pjItr->pseudorapidity();
295  decorator_phi(*part) = pjItr->phi_std(); //returns phi in [-pi,pi]
296  }
297  found=true;
298  break;
299  } // Found the matching unique ID
300  } // Loop over the jet constituents
301  if (found){
302  for(const auto& constit : constituents) {
303  photon_uniqueIDs.push_back(constit.user_index());
304  } // Loop over the constituents
305  } // Found one of the key leptons in this jet
306  ++pjItr;
307  }
308  if (!found) {
309  if(part->isTau()) {
310  decorator_pt_vis(*part) = 0.;
311  decorator_eta_vis(*part) = 0.;
312  decorator_phi_vis(*part) = 0.;
313  decorator_m_vis(*part) = 0.;
314  }
315  else {
316  decorator_e(*part) = 0;
317  decorator_pt(*part) = 0;
318  decorator_eta(*part) = 0;
319  decorator_phi(*part) = 0;
320  }
321  ATH_MSG_WARNING("Bare particle not found in constituents ");
322  }
323  }
324  // Check if we wanted to decorate photons used for dressing
325  if (!m_decorationName.empty()){
326  //loop over photons, uniquely associate each to nearest bare particle
327  for (const auto& phot : photonsFSRList ) {
328  bool found = std::find(photon_uniqueIDs.begin(), photon_uniqueIDs.end(), HepMC::uniqueID(phot)) != photon_uniqueIDs.end();
329  if (found) {
330  dressDec(*phot) = 1;
331  }
332  } // End of loop over photons
333  } // End of decoration of photons used in dressing
334  } // End of anti-kT dressing
335 
336  return StatusCode::SUCCESS;
337 }

◆ initialize()

StatusCode DerivationFramework::TruthDressingTool::initialize ( )

Definition at line 42 of file TruthDressingTool.cxx.

43 {
44  // Initialise handle keys
47  m_decorator_eKey = m_dressParticlesKey.key() + ".e_dressed";
49  m_decorator_ptKey = m_dressParticlesKey.key() + ".pt_dressed";
51  m_decorator_etaKey= m_dressParticlesKey.key() + ".eta_dressed";
53  m_decorator_phiKey= m_dressParticlesKey.key() + ".phi_dressed";
55  m_decorator_pt_visKey = m_dressParticlesKey.key() + ".pt_vis_dressed";
57  m_decorator_eta_visKey= m_dressParticlesKey.key() + ".eta_vis_dressed";
59  m_decorator_phi_visKey= m_dressParticlesKey.key() + ".phi_vis_dressed";
61  m_decorator_m_visKey= m_dressParticlesKey.key() + ".m_vis_dressed";
63  m_decorator_nphotonKey = m_dressParticlesKey.key() + ".nPhotons_dressed";
66  else {m_decorationKey = m_particlesKey.key()+".unusedPhotonDecoration";}
70  return StatusCode::SUCCESS;
71 }

Member Data Documentation

◆ m_coneSize

Gaudi::Property<float> DerivationFramework::TruthDressingTool::m_coneSize {this, "dressingConeSize", 0.1, "Size of dR cone in which to include FSR photons in dressing"}
private

Parameter: Cone size for dressing.

Definition at line 67 of file TruthDressingTool.h.

◆ m_decorationKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorationKey {this, "DressingKey", "TruthParticles.dressedPhoton", "Dressed photon decoration"}
private

Definition at line 57 of file TruthDressingTool.h.

◆ m_decorationName

Gaudi::Property<std::string> DerivationFramework::TruthDressingTool::m_decorationName {this, "decorationName", "", "Name of the decoration for photons that were used in dressing"}
private

Parameter: Name of the decoration to apply.

Definition at line 76 of file TruthDressingTool.h.

◆ m_decorator_eKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_eKey {this, "e_dressed", "TruthParticles.e_dressed", "e_dressed decoration"}
private

WriteDecorHandleKeys for decorations.

Definition at line 39 of file TruthDressingTool.h.

◆ m_decorator_eta_visKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_eta_visKey {this, "eta_vis_dressed", "TruthParticles.eta_vis_dressed", "eta_vis_dressed decoration"}
private

Definition at line 49 of file TruthDressingTool.h.

◆ m_decorator_etaKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_etaKey {this, "eta_dressed", "TruthParticles.eta_dressed", "eta_dressed decoration"}
private

Definition at line 43 of file TruthDressingTool.h.

◆ m_decorator_m_visKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_m_visKey {this, "m_vis_dressed", "TruthParticles.m_vis_dressed", "m_vis_dressed decoration"}
private

Definition at line 53 of file TruthDressingTool.h.

◆ m_decorator_nphotonKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_nphotonKey {this, "nPhotons_dressed", "TruthParticles.nPhotons_dressed", "nPhotons_dressed decoration"}
private

Definition at line 55 of file TruthDressingTool.h.

◆ m_decorator_phi_visKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_phi_visKey {this, "phi_vis_dressed", "TruthParticles.phi_vis_dressed", "phi_vis_dressed decoration"}
private

Definition at line 51 of file TruthDressingTool.h.

◆ m_decorator_phiKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_phiKey {this, "phi_dressed", "TruthParticles.phi_dressed", "phi_dressed decoration"}
private

Definition at line 45 of file TruthDressingTool.h.

◆ m_decorator_pt_visKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_pt_visKey {this, "pt_vis_dressed", "TruthParticles.pt_vis_dressed", "pt_vis_dressed decoration"}
private

Definition at line 47 of file TruthDressingTool.h.

◆ m_decorator_ptKey

SG::WriteDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_decorator_ptKey {this, "pt_dressed", "TruthParticles.pt_dressed", "pt_dressed decoration"}
private

Definition at line 41 of file TruthDressingTool.h.

◆ m_dressParticlesKey

SG::ReadHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_dressParticlesKey {this, "dressParticlesKey", "TruthParticles", "ReadHandleKey for input particles to be dressed. If taus are selected, everything in this input key will be used"}
private

ReadHandleKey for particles to be dressed.

Definition at line 34 of file TruthDressingTool.h.

◆ m_listOfPIDs

Gaudi::Property< std::vector<int> > DerivationFramework::TruthDressingTool::m_listOfPIDs {this, "particleIDsToDress", {11,13}, "List of the pdgID's of particles to be dressed (usually 11,13). Special treatment for taus (15)"}
private

Parameter: List of pdgIDs of particles to dress.

Definition at line 70 of file TruthDressingTool.h.

◆ m_particlesKey

SG::ReadHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_particlesKey {this, "particlesKey", "TruthParticles", "ReadHandleKey for TruthParticles for photon list input"}
private

ReadHandleKey input collection key.

Definition at line 31 of file TruthDressingTool.h.

◆ m_truthClassKey

SG::ReadDecorHandleKey<xAOD::TruthParticleContainer> DerivationFramework::TruthDressingTool::m_truthClassKey {this, "truthClassifierKey", "", "Will be over written during initialize"}
private

Ensure that the algorithm is scheduled after the truth classifier.

Definition at line 37 of file TruthDressingTool.h.

◆ m_useAntiKt

Gaudi::Property<bool> DerivationFramework::TruthDressingTool::m_useAntiKt {this, "useAntiKt", false, "use anti-k_T instead of fixed-cone dressing"}
private

Parameter: Use antikT algorithm for dressing?

Definition at line 73 of file TruthDressingTool.h.

◆ m_useLeptonsFromHadrons

Gaudi::Property<bool> DerivationFramework::TruthDressingTool::m_useLeptonsFromHadrons {this, "useLeptonsFromHadrons", false, "Consider leptons coming from hadron decays?"}
private

Parameter: Use leptons from hadron decays?

Definition at line 64 of file TruthDressingTool.h.

◆ m_usePhotonsFromHadrons

Gaudi::Property<bool> DerivationFramework::TruthDressingTool::m_usePhotonsFromHadrons {this, "usePhotonsFromHadrons", false, "Add photons coming from hadron decays while dressing"}
private

Parameter: Use photons from hadron decays?

Definition at line 61 of file TruthDressingTool.h.


The documentation for this class was generated from the following files:
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
DerivationFramework::TruthDressingTool::m_particlesKey
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_particlesKey
ReadHandleKey input collection key.
Definition: TruthDressingTool.h:32
get_generator_info.result
result
Definition: get_generator_info.py:21
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
SG::AuxTypeRegistry::instance
static AuxTypeRegistry & instance()
Return the singleton registry instance.
Definition: AuxTypeRegistry.cxx:639
SG::ReadHandle< xAOD::TruthParticleContainer >
DerivationFramework::TruthDressingTool::m_useLeptonsFromHadrons
Gaudi::Property< bool > m_useLeptonsFromHadrons
Parameter: Use leptons from hadron decays?
Definition: TruthDressingTool.h:65
SG::AuxTypeRegistry::getName
std::string getName(SG::auxid_t auxid) const
Return the name of an aux data item.
Definition: AuxTypeRegistry.cxx:881
DerivationFramework::TruthDressingTool::m_listOfPIDs
Gaudi::Property< std::vector< int > > m_listOfPIDs
Parameter: List of pdgIDs of particles to dress.
Definition: TruthDressingTool.h:71
DerivationFramework::TruthDressingTool::m_decorator_nphotonKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_nphotonKey
Definition: TruthDressingTool.h:56
DerivationFramework::TruthDressingTool::m_dressParticlesKey
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_dressParticlesKey
ReadHandleKey for particles to be dressed.
Definition: TruthDressingTool.h:35
DerivationFramework::TruthDressingTool::m_coneSize
Gaudi::Property< float > m_coneSize
Parameter: Cone size for dressing.
Definition: TruthDressingTool.h:68
SG::ConstAccessor< double >
DerivationFramework::DecayGraphHelper::constructListOfFinalParticles
bool constructListOfFinalParticles(const xAOD::TruthParticleContainer *allParticles, std::vector< const xAOD::TruthParticle * > &selectedlist, const std::vector< int > &pdgId, bool allowFromHadron=false, bool chargedOnly=false) const
Definition: DecayGraphHelper.h:218
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
DerivationFramework::TruthDressingTool::m_decorationName
Gaudi::Property< std::string > m_decorationName
Parameter: Name of the decoration to apply.
Definition: TruthDressingTool.h:77
DerivationFramework::TruthDressingTool::m_decorator_m_visKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_m_visKey
Definition: TruthDressingTool.h:54
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::Decorator< char >
DerivationFramework::TruthDressingTool::m_usePhotonsFromHadrons
Gaudi::Property< bool > m_usePhotonsFromHadrons
Parameter: Use photons from hadron decays?
Definition: TruthDressingTool.h:62
DerivationFramework::TruthDressingTool::m_decorator_phi_visKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_phi_visKey
Definition: TruthDressingTool.h:52
jet::ClusterSequence
fastjet::ClusterSequence ClusterSequence
Definition: ClusterSequence.h:21
lumiFormat.i
int i
Definition: lumiFormat.py:85
SG::ReadDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
DerivationFramework::TruthDressingTool::m_decorator_phiKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_phiKey
Definition: TruthDressingTool.h:46
beamspotman.n
n
Definition: beamspotman.py:731
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
HepMC::uniqueID
int uniqueID(const T &p)
Definition: MagicNumbers.h:116
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DerivationFramework::TruthDressingTool::m_truthClassKey
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > m_truthClassKey
Ensure that the algorithm is scheduled after the truth classifier.
Definition: TruthDressingTool.h:37
DerivationFramework::TruthDressingTool::m_useAntiKt
Gaudi::Property< bool > m_useAntiKt
Parameter: Use antikT algorithm for dressing?
Definition: TruthDressingTool.h:74
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
SG::decorKeyFromKey
std::string decorKeyFromKey(const std::string &key, const std::string &deflt)
Extract the decoration part of key.
Definition: DecorKeyHelpers.cxx:42
isTau
bool isTau(const T &p)
Definition: AtlasPID.h:197
DerivationFramework::TruthDressingTool::m_decorator_eta_visKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_eta_visKey
Definition: TruthDressingTool.h:50
DerivationFramework::TruthDressingTool::m_decorator_etaKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_etaKey
Definition: TruthDressingTool.h:44
DerivationFramework::DecayGraphHelper
Definition: DecayGraphHelper.h:26
RegSelToolConfig.alg
alg
Definition: RegSelToolConfig.py:332
checkTriggerxAOD.found
found
Definition: checkTriggerxAOD.py:328
xAOD::JetAlgorithmType::antikt_algorithm
@ antikt_algorithm
Definition: JetContainerInfo.h:33
DerivationFramework::TruthDressingTool::m_decorationKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorationKey
Definition: TruthDressingTool.h:58
DerivationFramework::TruthDressingTool::m_decorator_ptKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_ptKey
Definition: TruthDressingTool.h:42
DerivationFramework::TruthDressingTool::m_decorator_eKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_eKey
WriteDecorHandleKeys for decorations.
Definition: TruthDressingTool.h:40
SG::WriteDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
MCTruthPartClassifier::isPrompt
int isPrompt(const unsigned int classify, bool allow_prompt_tau_decays=true)
Definition: TruthClassifiers.h:180
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
DerivationFramework::TruthDressingTool::m_decorator_pt_visKey
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_decorator_pt_visKey
Definition: TruthDressingTool.h:48
xAOD::TruthParticle_v1::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: TruthParticle_v1.h:147