CMS 3D CMS Logo

G4TrackToParticleID.cc
Go to the documentation of this file.
2 
3 #include "G4Track.hh"
4 
6 
7 int G4TrackToParticleID::particleID(const G4Track* g4trk) {
8  int particleID_ = g4trk->GetDefinition()->GetPDGEncoding();
9  if (0 == particleID_) {
10  edm::LogWarning("SimG4CoreNotification")
11  << "G4TrackToParticleID: unknown code 0 for track Id = " << g4trk->GetTrackID();
12  particleID_ = -99;
13  }
14  return particleID_;
15 }
16 
18  int pdg = std::abs(pdgCode);
19  return (pdg == 11 || pdg == 22);
20 }
21 
23  int pdg = std::abs(g4trk->GetDefinition()->GetPDGEncoding());
24  return (pdg == 11 || pdg == 22);
25 }
26 
27 bool G4TrackToParticleID::isMuon(int pdgCode) { return (std::abs(pdgCode) == 13); }
28 
29 bool G4TrackToParticleID::isMuon(const G4Track* g4trk) {
30  return (std::abs(g4trk->GetDefinition()->GetPDGEncoding()) == 13);
31 }
32 
34  // pi+-, p, pbar, n, nbar, KL, K+-, light ions and anti-ions
35  int pdg = std::abs(pdgCode);
36  return (pdg == 211 || pdg == 2212 || pdg == 2112 || pdg == 130 || pdg == 321 || pdg == 1000010020 ||
37  pdg == 1000010030 || pdg == 1000020030 || pdg == 1000020040);
38 }
39 
40 bool G4TrackToParticleID::isStableHadronIon(const G4Track* g4trk) {
41  // pi+-, p, pbar, n, nbar, KL, K+-, light ion and anti-ion, generic ion
42  int pdg = std::abs(g4trk->GetDefinition()->GetPDGEncoding());
43  return (pdg == 211 || pdg == 2212 || pdg == 2112 || pdg == 130 || pdg == 321 || pdg == 1000010020 ||
44  pdg == 1000010030 || pdg == 1000020030 || pdg == 1000020040 || g4trk->GetDefinition()->IsGeneralIon());
45 }
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