ATLAS Offline Software
SimBarCode.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
7 // //
8 // Header file for class SimBarCode //
9 // //
10 // Description: Identifier for truth particle //
11 // //
12 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
13 // Initial version: April 2008 //
14 // //
16 
17 #ifndef SIMBARCODE_H
18 #define SIMBARCODE_H
19 
21 
22 class SimBarCode {
23 public:
24 
25  static const int unknownPDG = -999;//Fixme: Better choice? 0?
26 
30 
31  inline int barCode() const;//For non-unique secondaries, this will return a negative number, which should not be presented to the user.
32  inline int actualBarCode() const;//The original present in the simhit
34  inline int pdgCode() const;
35  inline bool unknownPdgCode() const { return m_pdgCode==unknownPDG; }
36 
37  inline bool isNonUniqueSecondary() const;
38 
39  //For sorting (Does consider pdgCodes, even when one is unknown):
40  inline bool operator<(const SimBarCode&) const;
41 
42  typedef std::pair<int,HepMcParticleLink::index_type> ExtBarCode;
43  ExtBarCode extBarCode() const { return ExtBarCode(barCode(),evtIndex()); }
44 
45 
46 private:
47  int m_barCode;
49  int m_pdgCode;
50 };
51 
52 
54 
55 #endif
SimBarCode::isNonUniqueSecondary
bool isNonUniqueSecondary() const
SimBarCode::m_evtIndex
HepMcParticleLink::index_type m_evtIndex
Definition: SimBarCode.h:48
SimBarCode::barCode
int barCode() const
SimBarCode::unknownPdgCode
bool unknownPdgCode() const
Definition: SimBarCode.h:35
SimBarCode::extBarCode
ExtBarCode extBarCode() const
Definition: SimBarCode.h:43
SimBarCode::pdgCode
int pdgCode() const
SimBarCode::m_barCode
int m_barCode
Definition: SimBarCode.h:47
SimBarCode
Definition: SimBarCode.h:22
SimBarCode.icc
SimBarCode::SimBarCode
SimBarCode(int barCode, HepMcParticleLink::index_type evtIndex, int pdgCode)
SimBarCode::unknownPDG
static const int unknownPDG
Definition: SimBarCode.h:25
SimBarCode::~SimBarCode
~SimBarCode()
Definition: SimBarCode.h:29
SimBarCode::SimBarCode
SimBarCode(const HepMcParticleLink &, int pdgCode)
SimBarCode::operator<
bool operator<(const SimBarCode &) const
SimBarCode::actualBarCode
int actualBarCode() const
SimBarCode::evtIndex
HepMcParticleLink::index_type evtIndex() const
SimBarCode::m_pdgCode
int m_pdgCode
Definition: SimBarCode.h:49
SimBarCode::ExtBarCode
std::pair< int, HepMcParticleLink::index_type > ExtBarCode
Definition: SimBarCode.h:42