CMS 3D CMS Logo

G4TrackToParticleID.cc
Go to the documentation of this file.
2 
3 #include "G4Track.hh"
4 #include "G4PrimaryParticle.hh"
5 
7 
8 int G4TrackToParticleID::particleID(const G4Track* g4trk) {
9  int pdg = g4trk->GetDefinition()->GetPDGEncoding();
10  if (0 == pdg) {
11  edm::LogWarning("SimG4CoreNotification")
12  << "G4TrackToParticleID: unknown code 0 for trackId=" << g4trk->GetTrackID();
13  pdg = -99;
14  }
15  return pdg;
16 }
17 
18 int G4TrackToParticleID::particleID(const G4PrimaryParticle* ptr, const int id) {
19  int pdg = ptr->GetPDGcode();
20  if (0 == pdg) {
21  edm::LogWarning("SimG4CoreNotification") << "G4TrackToParticleID: unknown code 0 for trackId=" << id;
22  pdg = -99;
23  }
24  return pdg;
25 }
26 
28  int pdg = std::abs(pdgCode);
29  return (pdg == 11 || pdg == 22);
30 }
31 
33  int pdg = std::abs(g4trk->GetDefinition()->GetPDGEncoding());
34  return (pdg == 11 || pdg == 22);
35 }
36 
37 bool G4TrackToParticleID::isMuon(int pdgCode) { return (std::abs(pdgCode) == 13); }
38 
39 bool G4TrackToParticleID::isMuon(const G4Track* g4trk) {
40  return (std::abs(g4trk->GetDefinition()->GetPDGEncoding()) == 13);
41 }
42 
44  // pi+-, p, pbar, n, nbar, KL, K+-, light ions and anti-ions
45  int pdg = std::abs(pdgCode);
46  return (pdg == 211 || pdg == 2212 || pdg == 2112 || pdg == 130 || pdg == 321 || pdg == 1000010020 ||
47  pdg == 1000010030 || pdg == 1000020030 || pdg == 1000020040);
48 }
49 
50 bool G4TrackToParticleID::isStableHadronIon(const G4Track* g4trk) {
51  // pi+-, p, pbar, n, nbar, KL, K+-, light ion and anti-ion, generic ion
52  int pdg = std::abs(g4trk->GetDefinition()->GetPDGEncoding());
53  return (pdg == 211 || pdg == 2212 || pdg == 2112 || pdg == 130 || pdg == 321 || pdg == 1000010020 ||
54  pdg == 1000010030 || pdg == 1000020030 || pdg == 1000020040 || g4trk->GetDefinition()->IsGeneralIon());
55 }
static bool isMuon(int pdgCode)
static bool isStableHadron(int pdgCode)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static int particleID(const G4Track *)
static bool isStableHadronIon(const G4Track *)
static bool isGammaElectronPositron(int pdgCode)
Log< level::Warning, false > LogWarning