ATLAS Offline Software
RHadronPythiaDecayer.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Header for my class
6 #include "RHadronPythiaDecayer.h"
7 
8 // The actual decayers. Singleton classes, not toolhandles
9 
10 
11 // For passing things around
12 #include "CLHEP/Vector/LorentzVector.h"
13 #include "G4Track.hh"
14 #include "G4DynamicParticle.hh"
15 #include "G4DecayProducts.hh"
16 
18  : G4VExtDecayer(s)
19 {
20 }
21 
22 G4DecayProducts* RHadronPythiaDecayer::ImportDecayProducts(const G4Track& aTrack){
23  G4DecayProducts * dp = new G4DecayProducts();
24  dp->SetParentParticle( *(aTrack.GetDynamicParticle()) );
25 
26  // get properties for later print outs
27  G4double etot = aTrack.GetDynamicParticle()->GetTotalEnergy();
28  G4int pdgEncoding = aTrack.GetDefinition()->GetPDGEncoding();
29 
30  // Outgoing particle
31  std::vector<G4DynamicParticle*> particles;
32 
33  // Pythia8 decay the particle and import the decay products
34  m_pythia.Py1ent(aTrack, particles);
35 
36  G4cout << "Decayed an RHadron with ID " << pdgEncoding << " and momentum " << aTrack.GetMomentum() << " in Pythia. Decay products are:" << G4endl;
37  double totalE=0.0;
38  for (unsigned int i=0; i<particles.size(); ++i){
39  if (particles[i]) {
40  dp->PushProducts(particles[i]);
41  totalE += particles[i]->GetTotalEnergy();
42  }
43  else {
44  G4cout << i << " null pointer!" << G4endl;
45  }
46  }
47 
48  G4cout << "Total energy in was "<<etot << G4endl;
49  G4cout << "Total energy out is "<<totalE << G4endl;
50 
51  dp->DumpInfo();
52 
53  return dp;
54 }
TileDCSDataPlotter.dp
dp
Definition: TileDCSDataPlotter.py:840
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
RHadronPythiaDecayer.h
RHadronPythiaDecayer::m_pythia
Pythia8ForDecays m_pythia
Definition: RHadronPythiaDecayer.h:22
lumiFormat.i
int i
Definition: lumiFormat.py:92
Pythia8ForDecays::Py1ent
void Py1ent(const G4Track &, std::vector< G4DynamicParticle * > &)
Function that decays the RHadron; returns products in G4 format.
Definition: Pythia8ForDecays.cxx:185
RHadronPythiaDecayer::RHadronPythiaDecayer
RHadronPythiaDecayer(const std::string &s)
Definition: RHadronPythiaDecayer.cxx:17
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
RHadronPythiaDecayer::ImportDecayProducts
virtual G4DecayProducts * ImportDecayProducts(const G4Track &)
Definition: RHadronPythiaDecayer.cxx:22