GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PDGUtils.cxx
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*
3  Copyright (c) 2003-2024, The GENIE Collaboration
4  For the full text of the license visit http://copyright.genie-mc.org
5 
6  Costas Andreopoulos <c.andreopoulos \at cern.ch>
7  University of Liverpool
8 
9  Changes required to implement the GENIE Boosted Dark Matter module
10  were installed by Josh Berger (Univ. of Wisconsin)
11 
12  Changes required to implement the GENIE BeamHNL module
13  were installed by John Plows (Univ. of Oxford)
14 */
15 //____________________________________________________________________________
16 
17 #include <cassert>
18 
23 
24 using namespace genie;
25 
26 //____________________________________________________________________________
28 {
29 // ROOT's rootino has PDG code=0
30 // GENIE pseudoparticles are in the 2000000000-2000100000 range
31 // Include PYTHIA's pseudoparticles
32 
33  bool is_fake =
34  ( (pdgc == 0) ||
35  (pdgc > 2000000000 && pdgc < 2000100000) ||
36  (pdgc == kPdgCluster || pdgc == kPdgString || pdgc == kPdgIndep)
37  );
38 
39  return is_fake;
40 }
41 //____________________________________________________________________________
42 bool genie::pdg::IsIon(int pdgc)
43 {
44  return (pdgc > 1000000000 && pdgc < 1999999999);
45 }
46 //____________________________________________________________________________
47 bool genie::pdg::IsParticle(int pdgc)
48 {
49  if( genie::pdg::IsPseudoParticle (pdgc) ) return false;
50  if( genie::pdg::IsIon (pdgc) ) return false;
51 
52  return true;
53 }
54 //____________________________________________________________________________
55 int genie::pdg::IonPdgCodeToZ(int ion_pdgc)
56 {
57 // Decoding Z from the PDG code (PDG ion code convention: 10LZZZAAAI)
58 
59  int Z = (ion_pdgc/10000) - 1000*(ion_pdgc/10000000); // don't factor out!
60  return Z;
61 }
62 //____________________________________________________________________________
63 int genie::pdg::IonPdgCodeToA(int ion_pdgc)
64 {
65 // Decoding A from the PDG code (PDG ion code convention: 10LZZZAAAI)
66 
67  int A = (ion_pdgc/10) - 1000*(ion_pdgc/10000); // don't factor out!
68  return A;
69 }
70 //____________________________________________________________________________
71 int genie::pdg::IonPdgCode(int A, int Z)
72 {
73 // Build ion PDG code from A,Z
74 
75  return IonPdgCode(A,Z,0,0);
76 }
77 //____________________________________________________________________________
78 int genie::pdg::IonPdgCode(int A, int Z, int L, int I)
79 {
80 // Build ion PDG code from A,Z,L,I
81 
82  int ion_pdgc = 1000000000 + L*100000000 + Z*10000 + A*10 + I;
83  return ion_pdgc;
84 }
85 //____________________________________________________________________________
86 bool genie::pdg::IsLepton(int pdgc)
87 {
88  bool is_neutral_lepton = genie::pdg::IsNeutralLepton(pdgc);
89  bool is_charged_lepton = genie::pdg::IsChargedLepton(pdgc);
90 
91  bool is_lepton = (is_neutral_lepton || is_charged_lepton);
92  return is_lepton;
93 }
94 //____________________________________________________________________________
96 {
97  bool is_neutral_lepton = IsNeutrino(pdgc) || IsAntiNeutrino(pdgc);
98  return is_neutral_lepton;
99 }
100 //____________________________________________________________________________
102 {
103  bool is_neg_lepton = genie::pdg::IsNegChargedLepton(pdgc);
104  bool is_pos_lepton = genie::pdg::IsPosChargedLepton(pdgc);
105 
106  bool is_charged_lepton = is_neg_lepton || is_pos_lepton;
107  return is_charged_lepton;
108 }
109 //____________________________________________________________________________
111 {
112  bool is_nu = (pdgc == kPdgNuE) ||
113  (pdgc == kPdgNuMu) ||
114  (pdgc == kPdgNuTau);
115  return is_nu;
116 }
117 //____________________________________________________________________________
119 {
120  bool is_nubar = (pdgc == kPdgAntiNuE) ||
121  (pdgc == kPdgAntiNuMu) ||
122  (pdgc == kPdgAntiNuTau);
123 
124  return is_nubar;
125 }
126 //____________________________________________________________________________
128 {
129  bool is_dm = (pdgc == kPdgDarkMatter);
130  return is_dm;
131 }
132 //____________________________________________________________________________
134 {
135  bool is_dmbar = (pdgc == kPdgAntiDarkMatter);
136  return is_dmbar;
137 }
138 //____________________________________________________________________________
140 {
141  bool is_neg_lepton = (pdgc == kPdgElectron) ||
142  (pdgc == kPdgMuon) ||
143  (pdgc == kPdgTau);
144 
145  return is_neg_lepton;
146 }
147 //____________________________________________________________________________
149 {
150  bool is_pos_lepton = (pdgc == kPdgPositron) ||
151  (pdgc == kPdgAntiMuon) ||
152  (pdgc == kPdgAntiTau);
153 
154  return is_pos_lepton;
155 }
156 //____________________________________________________________________________
157 
158 bool genie::pdg::IsNuE(int pdgc)
159 {
160  return (pdgc == kPdgNuE);
161 }
162 //____________________________________________________________________________
163 bool genie::pdg::IsNuMu(int pdgc)
164 {
165  return (pdgc == kPdgNuMu);
166 }
167 //____________________________________________________________________________
168 bool genie::pdg::IsNuTau(int pdgc)
169 {
170  return (pdgc == kPdgNuTau);
171 }
172 //____________________________________________________________________________
173 bool genie::pdg::IsAntiNuE(int pdgc)
174 {
175  return (pdgc == kPdgAntiNuE);
176 }
177 //____________________________________________________________________________
179 {
180  return (pdgc == kPdgAntiNuMu);
181 }
182 //____________________________________________________________________________
184 {
185  return (pdgc == kPdgAntiNuTau);
186 }
187 //____________________________________________________________________________
189 {
190  return (pdgc == kPdgElectron);
191 }
192 //____________________________________________________________________________
194 {
195  return (pdgc == kPdgPositron);
196 }
197 //____________________________________________________________________________
198 bool genie::pdg::IsMuon(int pdgc)
199 {
200  return (pdgc == kPdgMuon);
201 }
202 //____________________________________________________________________________
204 {
205  return (pdgc == kPdgAntiMuon);
206 }
207 //____________________________________________________________________________
208 bool genie::pdg::IsTau(int pdgc)
209 {
210  return (pdgc == kPdgTau);
211 }
212 //____________________________________________________________________________
213 bool genie::pdg::IsAntiTau(int pdgc)
214 {
215  return (pdgc == kPdgAntiTau);
216 }
217 //____________________________________________________________________________
219 {
220  switch(pdgc) {
221  case (kPdgNuE) : return kPdgElectron; break;
222  case (kPdgAntiNuE) : return kPdgPositron; break;
223  case (kPdgNuMu) : return kPdgMuon; break;
224  case (kPdgAntiNuMu) : return kPdgAntiMuon; break;
225  case (kPdgNuTau) : return kPdgTau; break;
226  case (kPdgAntiNuTau): return kPdgAntiTau; break;
227  }
228  return -1;
229 }
230 //____________________________________________________________________________
231 bool genie::pdg::IsDiQuark(int pdgc)
232 {
233  return ( pdgc == kPdgDDDiquarkS1 || pdgc == kPdgUDDiquarkS0 ||
234  pdgc == kPdgUDDiquarkS1 || pdgc == kPdgUUDiquarkS1 ||
235  pdgc == kPdgSDDiquarkS0 || pdgc == kPdgSDDiquarkS1 ||
236  pdgc == kPdgSUDiquarkS0 || pdgc == kPdgSUDiquarkS1 ||
237  pdgc == kPdgSSDiquarkS1 ||
238  pdgc == kPdgCDDiquarkS0 || pdgc == kPdgCDDiquarkS1 ||
239  pdgc == kPdgCUDiquarkS0 || pdgc == kPdgCUDiquarkS1 ||
240  pdgc == kPdgCSDiquarkS0 || pdgc == kPdgCSDiquarkS1 ||
241  pdgc == kPdgCCDiquarkS1 ||
242  pdgc == kPdgBDDiquarkS0 || pdgc == kPdgBDDiquarkS1 ||
243  pdgc == kPdgBUDiquarkS0 || pdgc == kPdgBUDiquarkS1 ||
244  pdgc == kPdgBSDiquarkS0 || pdgc == kPdgBSDiquarkS1 ||
245  pdgc == kPdgBCDiquarkS0 || pdgc == kPdgBCDiquarkS1 ||
246  pdgc == kPdgBBDiquarkS1
247  );
248 }
249 //____________________________________________________________________________
250 bool genie::pdg::IsQuark(int pdgc)
251 {
252  return ( pdgc == kPdgDQuark || pdgc == kPdgUQuark ||
253  pdgc == kPdgSQuark || pdgc == kPdgCQuark ||
254  pdgc == kPdgBQuark || pdgc == kPdgTQuark
255  );
256 }
257 //____________________________________________________________________________
259 {
260  return ( pdgc == kPdgAntiDQuark || pdgc == kPdgAntiUQuark ||
261  pdgc == kPdgAntiSQuark || pdgc == kPdgAntiCQuark ||
262  pdgc == kPdgAntiBQuark || pdgc == kPdgAntiTQuark
263  );
264 }
265 //____________________________________________________________________________
266 bool genie::pdg::IsUQuark(int pdgc)
267 {
268  return (pdgc == kPdgUQuark);
269 }
270 //____________________________________________________________________________
271 bool genie::pdg::IsDQuark(int pdgc)
272 {
273  return (pdgc == kPdgDQuark);
274 }
275 //____________________________________________________________________________
276 bool genie::pdg::IsSQuark(int pdgc)
277 {
278  return (pdgc == kPdgSQuark);
279 }
280 //____________________________________________________________________________
281 bool genie::pdg::IsCQuark(int pdgc)
282 {
283  return (pdgc == kPdgCQuark);
284 }
285 //____________________________________________________________________________
286 bool genie::pdg::IsBQuark(int pdgc)
287 {
288  return (pdgc == kPdgBQuark);
289 }
290 //____________________________________________________________________________
291 bool genie::pdg::IsTQuark(int pdgc)
292 {
293  return (pdgc == kPdgTQuark);
294 }
295 //____________________________________________________________________________
297 {
298  return (pdgc == kPdgAntiUQuark);
299 }
300 //____________________________________________________________________________
302 {
303  return (pdgc == kPdgAntiDQuark);
304 }
305 //____________________________________________________________________________
307 {
308  return (pdgc == kPdgAntiSQuark);
309 }
310 //____________________________________________________________________________
312 {
313  return (pdgc == kPdgAntiCQuark);
314 }
315 //____________________________________________________________________________
317 {
318  return (pdgc == kPdgAntiBQuark);
319 }
320 //____________________________________________________________________________
322 {
323  return (pdgc == kPdgAntiTQuark);
324 }
325 //____________________________________________________________________________
326 bool genie::pdg::IsPion(int pdgc)
327 {
328  return (pdgc == kPdgPiP || pdgc == kPdgPi0 || pdgc == kPdgPiM);
329 }
330 //____________________________________________________________________________
331 bool genie::pdg::IsKaon(int pdgc)
332 {
333  return (pdgc == kPdgKP || pdgc == kPdgK0 || pdgc == kPdgKM);
334 }
335 //____________________________________________________________________________
336 bool genie::pdg::IsProton(int pdgc)
337 {
338  return (pdgc == kPdgProton);
339 }
340 //____________________________________________________________________________
341 bool genie::pdg::IsNeutron(int pdgc)
342 {
343  return (pdgc == kPdgNeutron);
344 }
345 //____________________________________________________________________________
346 bool genie::pdg::IsNucleon(int pdgc)
347 {
348  return (pdgc == kPdgNeutron || pdgc == kPdgProton);
349 }
350 //____________________________________________________________________________
352 {
353  return (pdgc == kPdgNeutron || pdgc == kPdgProton);
354 }
355 //____________________________________________________________________________
357 {
358  assert(IsProton(pdgc) || IsNeutron(pdgc));
359 
360  if (IsProton(pdgc)) return kPdgNeutron;
361  else return kPdgProton;
362 }
363 //____________________________________________________________________________
364 int genie::pdg::ModifyNucleonCluster(int pdgc, int dQ)
365 {
366  assert(pdg::Is2NucleonCluster(pdgc));
367 
368  if(pdgc == kPdgClusterNN) {
369  if (dQ == 0) { return kPdgClusterNN; }
370  else if (dQ == +1) { return kPdgClusterNP; }
371  else if (dQ == +2) { return kPdgClusterPP; }
372  else { return 0; }
373  }
374  else
375  if(pdgc == kPdgClusterNP) {
376  if (dQ == -1) { return kPdgClusterNN; }
377  else if (dQ == 0) { return kPdgClusterNP; }
378  else if (dQ == +1) { return kPdgClusterPP; }
379  else { return 0; }
380  }
381  else
382  if(pdgc == kPdgClusterPP) {
383  if (dQ == -2) { return kPdgClusterNN; }
384  else if (dQ == -1) { return kPdgClusterNP; }
385  else if (dQ == 0) { return kPdgClusterPP; }
386  else { return 0; }
387  }
388 
389  return 0;
390 }
391 //____________________________________________________________________________
392 bool genie::pdg::IsHadron(int pdgc)
393 {
394  return ((pdgc>=100 && pdgc<=9999) || (pdgc>=-9999 && pdgc<=-100));
395 }
396 //____________________________________________________________________________
398 {
399  return utils::res::IsBaryonResonance(pdgc);
400 }
401 //____________________________________________________________________________
403 {
404  return (
405  pdgc == kPdgClusterNN ||
406  pdgc == kPdgClusterNP ||
407  pdgc == kPdgClusterPP
408  );
409 }
410 //____________________________________________________________________________
412 {
413  return (
414  pdgc == kPdgDarkNeutrino ||
415  pdgc == kPdgDNuMediator
416  );
417 }
418 //____________________________________________________________________________
419 bool genie::pdg::IsHNL(int pdgc)
420 {
421  return ( std::abs( pdgc ) == kPdgHNL );
422 }
423 //____________________________________________________________________________
424 int genie::pdg::GeantToPdg(int geant_code)
425 {
426  if(geant_code == 3) return kPdgElectron; // 11 / e-
427  if(geant_code == 2) return kPdgPositron; // -11 / e+
428  if(geant_code == 6) return kPdgMuon; // 13 / mu-
429  if(geant_code == 5) return kPdgAntiMuon; // -13 / mu+
430  if(geant_code == 34) return kPdgTau; // 15 / tau-
431  if(geant_code == 33) return kPdgAntiTau; // -15 / tau+
432  if(geant_code == 8) return kPdgPiP; // 211 / pi+
433  if(geant_code == 9) return kPdgPiM; // -211 / pi-
434  if(geant_code == 7) return kPdgPi0; // 111 / pi0
435  if(geant_code == 17) return kPdgEta; // 221 / eta
436  if(geant_code == 11) return kPdgKP; // 321 / K+
437  if(geant_code == 12) return kPdgKM; // -321 / K-
438  if(geant_code == 10) return kPdgK0L; // 130 / K0_{long}
439  if(geant_code == 16) return kPdgK0S; // 310 / K0_{short}
440  if(geant_code == 35) return kPdgDP; // 411 / D+
441  if(geant_code == 36) return kPdgDM; // -411 / D-
442  if(geant_code == 37) return kPdgD0; // 421 / D0
443  if(geant_code == 38) return kPdgAntiD0; // -421 / \bar{D0}
444  if(geant_code == 39) return kPdgDPs; // 431 / D+_{s}
445  if(geant_code == 40) return kPdgDMs; // -431 / D-_{s}
446  if(geant_code == 1) return kPdgGamma; // 22 / photon
447  if(geant_code == 44) return kPdgZ0; // 23 / Z
448  if(geant_code == 42) return kPdgWP; // 24 / W+
449  if(geant_code == 43) return kPdgWM; // -24 / W-
450  if(geant_code == 14) return kPdgProton; // 2212
451  if(geant_code == 15) return kPdgAntiProton; // -2212
452  if(geant_code == 13) return kPdgNeutron; // 2112
453  if(geant_code == 25) return kPdgAntiNeutron; // -2112
454  if(geant_code == 18) return kPdgLambda; // 3122 / Lambda
455  if(geant_code == 26) return kPdgAntiLambda; // -3122 / \bar{Lambda}
456  if(geant_code == 19) return kPdgSigmaP; // 3222 / Sigma+
457  if(geant_code == 20) return kPdgSigma0; // 3212 / Sigma0
458  if(geant_code == 21) return kPdgSigmaM; // 3112 / Sigma-
459  if(geant_code == 29) return kPdgAntiSigmaP; // -3112 / \bar{Sigma+}
460  if(geant_code == 28) return kPdgAntiSigma0; // -3212 / \bar{Sigma0}
461  if(geant_code == 27) return kPdgAntiSigmaM; // -3112 / \bar{Sigma-}
462  if(geant_code == 22) return kPdgXi0; // 3322 / Xi0
463  if(geant_code == 23) return kPdgXiM; // 3312 / Xi-
464  if(geant_code == 30) return kPdgAntiXi0; // -3322 / \bar{Xi0}
465  if(geant_code == 31) return kPdgAntiXiP; // -3312 / \bar{Xi+}
466  if(geant_code == 24) return kPdgOmegaM; // 3334 / Omega-
467  if(geant_code == 32) return kPdgAntiOmegaP; // -3334 / \bar{Omega+}
468 
469  // some rare Geant3 codes that don't really need definitions in PDGCodes.h
470  const int kPdgDeuteron = 1000010020; // pdg::IonPdgCode(2,1);
471  const int kPdgTritium = 1000010030; // pdg::IonPdgCode(3,1);
472  const int kPdgAlpha = 1000020040; // pdg::IonPdgCode(4,2);
473  const int kPdgHe3 = 1000020030; // pdg::IonPdgCode(3,2);
474  if(geant_code == 45) return kPdgDeuteron;
475  if(geant_code == 46) return kPdgTritium;
476  if(geant_code == 47) return kPdgAlpha;
477  if(geant_code == 49) return kPdgHe3;
478 
479  LOG("PDG", pWARN)
480  << "Can not convert geant code: " << geant_code << " to PDG";
481  return 0;
482 }
483 //____________________________________________________________________________
const int kPdgAntiD0
Definition: PDGCodes.h:184
bool IsBQuark(int pdgc)
Definition: PDGUtils.cxx:286
const int kPdgBUDiquarkS0
Definition: PDGCodes.h:73
const int kPdgDPs
Definition: PDGCodes.h:185
const int kPdgUUDiquarkS1
Definition: PDGCodes.h:58
bool IsPion(int pdgc)
Definition: PDGUtils.cxx:326
bool IsNuTau(int pdgc)
Definition: PDGUtils.cxx:168
const int kPdgAntiXi0
Definition: PDGCodes.h:95
bool IsParticle(int pdgc)
not ion or pseudo-particle
Definition: PDGUtils.cxx:47
const int kPdgXi0
Definition: PDGCodes.h:93
const int kPdgNuE
Definition: PDGCodes.h:28
bool IsNeutrino(int pdgc)
Definition: PDGUtils.cxx:110
const int kPdgSDDiquarkS1
Definition: PDGCodes.h:60
const int kPdgLambda
Definition: PDGCodes.h:85
bool IsUQuark(int pdgc)
Definition: PDGUtils.cxx:266
const int kPdgBCDiquarkS0
Definition: PDGCodes.h:77
const int kPdgBQuark
Definition: PDGCodes.h:50
const int kPdgAntiSigma0
Definition: PDGCodes.h:91
bool IsNucleon(int pdgc)
Definition: PDGUtils.cxx:346
const int kPdgClusterNP
Definition: PDGCodes.h:215
const int kPdgBCDiquarkS1
Definition: PDGCodes.h:78
const int kPdgAntiNuE
Definition: PDGCodes.h:29
const int kPdgWM
Definition: PDGCodes.h:192
const int kPdgBUDiquarkS1
Definition: PDGCodes.h:74
const int kPdgSUDiquarkS1
Definition: PDGCodes.h:62
const int kPdgDarkMatter
Definition: PDGCodes.h:218
const int kPdgUQuark
Definition: PDGCodes.h:42
const int kPdgNuMu
Definition: PDGCodes.h:30
int IonPdgCodeToA(int pdgc)
Definition: PDGUtils.cxx:63
const int kPdgSUDiquarkS0
Definition: PDGCodes.h:61
bool IsAntiNuTau(int pdgc)
Definition: PDGUtils.cxx:183
bool IsNuE(int pdgc)
Definition: PDGUtils.cxx:158
int SwitchProtonNeutron(int pdgc)
Definition: PDGUtils.cxx:356
bool IsAntiQuark(int pdgc)
Definition: PDGUtils.cxx:258
const int kPdgAntiMuon
Definition: PDGCodes.h:38
const int kPdgSSDiquarkS1
Definition: PDGCodes.h:63
bool IsDarkMatter(int pdgc)
Definition: PDGUtils.cxx:127
const int kPdgSigma0
Definition: PDGCodes.h:88
bool IsChargedLepton(int pdgc)
Definition: PDGUtils.cxx:101
bool IsHNL(int pdgc)
Definition: PDGUtils.cxx:419
bool IsTQuark(int pdgc)
Definition: PDGUtils.cxx:291
bool IsSQuark(int pdgc)
Definition: PDGUtils.cxx:276
bool IsKaon(int pdgc)
Definition: PDGUtils.cxx:331
bool IsAntiSQuark(int pdgc)
Definition: PDGUtils.cxx:306
const int kPdgElectron
Definition: PDGCodes.h:35
const int kPdgCSDiquarkS1
Definition: PDGCodes.h:69
bool IsAntiDQuark(int pdgc)
Definition: PDGUtils.cxx:301
const int kPdgZ0
Definition: PDGCodes.h:190
const int kPdgSQuark
Definition: PDGCodes.h:46
const int kPdgClusterNN
Definition: PDGCodes.h:214
const int kPdgCDDiquarkS1
Definition: PDGCodes.h:65
const int kPdgK0
Definition: PDGCodes.h:174
int ModifyNucleonCluster(int pdgc, int dQ)
Definition: PDGUtils.cxx:364
const int kPdgCSDiquarkS0
Definition: PDGCodes.h:68
const int kPdgSDDiquarkS0
Definition: PDGCodes.h:59
const int kPdgCQuark
Definition: PDGCodes.h:48
bool IsHadron(int pdgc)
Definition: PDGUtils.cxx:392
bool IsNeutron(int pdgc)
Definition: PDGUtils.cxx:341
bool IsPosChargedLepton(int pdgc)
Definition: PDGUtils.cxx:148
bool IsNuMu(int pdgc)
Definition: PDGUtils.cxx:163
const int kPdgBBDiquarkS1
Definition: PDGCodes.h:79
const int kPdgAntiUQuark
Definition: PDGCodes.h:43
int GeantToPdg(int geant_code)
Definition: PDGUtils.cxx:424
const int kPdgCDDiquarkS0
Definition: PDGCodes.h:64
bool IsProton(int pdgc)
Definition: PDGUtils.cxx:336
const int kPdgAntiOmegaP
Definition: PDGCodes.h:98
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
const int kPdgTau
Definition: PDGCodes.h:39
const int kPdgBDDiquarkS0
Definition: PDGCodes.h:71
bool IsAntiDarkMatter(int pdgc)
Definition: PDGUtils.cxx:133
const int kPdgUDDiquarkS1
Definition: PDGCodes.h:57
const int kPdgAntiDarkMatter
Definition: PDGCodes.h:219
static constexpr double A
Definition: Units.h:74
const int kPdgKM
Definition: PDGCodes.h:173
const int kPdgGamma
Definition: PDGCodes.h:189
bool IsAntiNeutrino(int pdgc)
Definition: PDGUtils.cxx:118
const int kPdgAntiDQuark
Definition: PDGCodes.h:45
bool IsDiQuark(int pdgc)
Definition: PDGUtils.cxx:231
bool IsAntiTQuark(int pdgc)
Definition: PDGUtils.cxx:321
const int kPdgIndep
Definition: PDGCodes.h:232
bool IsAntiMuon(int pdgc)
Definition: PDGUtils.cxx:203
const int kPdgKP
Definition: PDGCodes.h:172
const int kPdgBSDiquarkS0
Definition: PDGCodes.h:75
bool IsTau(int pdgc)
Definition: PDGUtils.cxx:208
const int kPdgEta
Definition: PDGCodes.h:161
const int kPdgHNL
Definition: PDGCodes.h:224
const int kPdgPiP
Definition: PDGCodes.h:158
const int kPdgPi0
Definition: PDGCodes.h:160
const int kPdgString
Definition: PDGCodes.h:231
bool IsAntiBQuark(int pdgc)
Definition: PDGUtils.cxx:316
const int kPdgDQuark
Definition: PDGCodes.h:44
const int kPdgBSDiquarkS1
Definition: PDGCodes.h:76
const int kPdgTQuark
Definition: PDGCodes.h:52
bool IsPositron(int pdgc)
Definition: PDGUtils.cxx:193
bool IsMuon(int pdgc)
Definition: PDGUtils.cxx:198
const int kPdgK0L
Definition: PDGCodes.h:176
const int kPdgOmegaM
Definition: PDGCodes.h:97
const int kPdgAntiTQuark
Definition: PDGCodes.h:53
const int kPdgUDDiquarkS0
Definition: PDGCodes.h:56
const int kPdgAntiNuTau
Definition: PDGCodes.h:33
const int kPdgAntiNuMu
Definition: PDGCodes.h:31
bool IsAntiNuMu(int pdgc)
Definition: PDGUtils.cxx:178
#define pWARN
Definition: Messenger.h:60
const int kPdgCUDiquarkS1
Definition: PDGCodes.h:67
const int kPdgSigmaM
Definition: PDGCodes.h:89
bool IsNeutralLepton(int pdgc)
Definition: PDGUtils.cxx:95
const int kPdgAntiSQuark
Definition: PDGCodes.h:47
const int kPdgDP
Definition: PDGCodes.h:181
const int kPdgAntiSigmaM
Definition: PDGCodes.h:92
bool Is2NucleonCluster(int pdgc)
Definition: PDGUtils.cxx:402
const int kPdgNuTau
Definition: PDGCodes.h:32
const int kPdgDNuMediator
Definition: PDGCodes.h:223
const int kPdgXiM
Definition: PDGCodes.h:94
bool IsIon(int pdgc)
Definition: PDGUtils.cxx:42
bool IsCQuark(int pdgc)
Definition: PDGUtils.cxx:281
const int kPdgAntiNeutron
Definition: PDGCodes.h:84
bool IsQuark(int pdgc)
Definition: PDGUtils.cxx:250
const int kPdgDMs
Definition: PDGCodes.h:186
bool IsAntiCQuark(int pdgc)
Definition: PDGUtils.cxx:311
bool IsPseudoParticle(int pdgc)
Definition: PDGUtils.cxx:27
bool IsNeutronOrProton(int pdgc)
Definition: PDGUtils.cxx:351
const int kPdgAntiCQuark
Definition: PDGCodes.h:49
bool IsDQuark(int pdgc)
Definition: PDGUtils.cxx:271
const int kPdgDM
Definition: PDGCodes.h:182
int IonPdgCode(int A, int Z)
Definition: PDGUtils.cxx:71
bool IsDarkSectorParticle(int pdgc)
Definition: PDGUtils.cxx:411
const int kPdgAntiBQuark
Definition: PDGCodes.h:51
const int kPdgCCDiquarkS1
Definition: PDGCodes.h:70
const int kPdgAntiProton
Definition: PDGCodes.h:82
int Neutrino2ChargedLepton(int pdgc)
Definition: PDGUtils.cxx:218
const int kPdgPiM
Definition: PDGCodes.h:159
const int kPdgAntiTau
Definition: PDGCodes.h:40
const int kPdgSigmaP
Definition: PDGCodes.h:87
bool IsBaryonResonance(int pdgc)
is input a baryon resonance?
const int kPdgAntiXiP
Definition: PDGCodes.h:96
int IonPdgCodeToZ(int pdgc)
Definition: PDGUtils.cxx:55
bool IsBaryonResonance(int pdgc)
Definition: PDGUtils.cxx:397
const int kPdgProton
Definition: PDGCodes.h:81
const int kPdgCluster
Definition: PDGCodes.h:230
const int kPdgAntiLambda
Definition: PDGCodes.h:86
const int kPdgMuon
Definition: PDGCodes.h:37
const int kPdgK0S
Definition: PDGCodes.h:177
const int kPdgAntiSigmaP
Definition: PDGCodes.h:90
const int kPdgPositron
Definition: PDGCodes.h:36
const int kPdgNeutron
Definition: PDGCodes.h:83
const int kPdgDarkNeutrino
Definition: PDGCodes.h:221
const int kPdgWP
Definition: PDGCodes.h:191
const int kPdgD0
Definition: PDGCodes.h:183
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
const int kPdgBDDiquarkS1
Definition: PDGCodes.h:72
bool IsAntiNuE(int pdgc)
Definition: PDGUtils.cxx:173
bool IsAntiTau(int pdgc)
Definition: PDGUtils.cxx:213
bool IsLepton(int pdgc)
Definition: PDGUtils.cxx:86
bool IsNegChargedLepton(int pdgc)
Definition: PDGUtils.cxx:139
bool IsElectron(int pdgc)
Definition: PDGUtils.cxx:188
const int kPdgCUDiquarkS0
Definition: PDGCodes.h:66
bool IsAntiUQuark(int pdgc)
Definition: PDGUtils.cxx:296
const int kPdgDDDiquarkS1
Definition: PDGCodes.h:55
const int kPdgClusterPP
Definition: PDGCodes.h:216