~mwinter4/maus/ckov-update

« back to all changes in this revision

Viewing changes to src/common_cpp/DataStructure/Global/ReconEnums.hh

  • Committer: Chris Rogers
  • Date: 2013-03-19 14:21:55 UTC
  • mfrom: (659.1.63 release-candidate)
  • Revision ID: chris.rogers@stfc.ac.uk-20130319142155-65vwtifralro5ukv
Tags: MAUS-v0.5.1
MAUS-v0.5.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* This file is part of MAUS: http://micewww.pp.rl.ac.uk:8080/projects/maus
 
2
 *
 
3
 * MAUS is free software: you can redistribute it and/or modify
 
4
 * it under the terms of the GNU General Public License as published by
 
5
 * the Free Software Foundation, either version 3 of the License, or
 
6
 * (at your option) any later version.
 
7
 *
 
8
 * MAUS is distributed in the hope that it will be useful,
 
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 * GNU General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License
 
14
 * along with MAUS.  If not, see <http://www.gnu.org/licenses/>.
 
15
 *
 
16
 */
 
17
 
 
18
 
 
19
/** @file GlobalReconEnums.hh
 
20
 *  @author Ian Taylor, University of Warwick
 
21
 *  @date 2013/03/01
 
22
 * 
 
23
 *  This file provides enumerators for: a) keeping track of the
 
24
 *  locations of space- and track_points within the global
 
25
 *  reconstruction and b) the particle ID hypotheses of reconstructed
 
26
 *  objects.
 
27
 */
 
28
 
 
29
#ifndef _SRC_COMMON_CPP_DATASTRUCTURE_GLOBALRECONENUMS_HH_
 
30
#define _SRC_COMMON_CPP_DATASTRUCTURE_GLOBALRECONENUMS_HH_
 
31
 
 
32
namespace MAUS {
 
33
namespace DataStructure {
 
34
namespace Global {
 
35
 
 
36
/** @defgroup globalrecon Global Reconstruction
 
37
 *  The global reconstruction software, including both the associated
 
38
 *  data structures used for storage and the mappers containing
 
39
 *  reconstruction algorithms.
 
40
 *  @{
 
41
 */
 
42
 
 
43
/*! \public
 
44
 *  \brief Defines detector element, or kVirtual for non-detector
 
45
 *  point.
 
46
 
 
47
 * An enum to define the detector or geometry element for the
 
48
 * SpacePoint.  The kVirtual entry allows for the definition of
 
49
 * arbitrary space- or track_points, by filling a separate member
 
50
 * variable with a geometry path string.  For the code to work, we
 
51
 * need to keep the values consecutive and constant.  I hope no new
 
52
 * values will be needed, but if so they should be added at the end,
 
53
 * with an incremental step and the `kDetectorPointSize' constant
 
54
 * updated.
 
55
 */
 
56
enum DetectorPoint {
 
57
  kUndefined   =  0, /**< enum Undefined, used for initialization only */
 
58
  kVirtual     =  1, /**< enum For a Virtual point with a geometry path */
 
59
  kTOF0_1      =  2,
 
60
  kTOF0_2      =  3,
 
61
  kCherenkov1  =  4,
 
62
  kTOF1_1      =  5,
 
63
  kTOF1_2      =  6,
 
64
  kTracker1    =  7,
 
65
  kTracker1_1  =  8,
 
66
  kTracker1_2  =  9,
 
67
  kTracker1_3  = 10,
 
68
  kTracker1_4  = 11,
 
69
  kTracker1_5  = 12,
 
70
  kTracker2    = 13,
 
71
  kTracker2_1  = 14,
 
72
  kTracker2_2  = 15,
 
73
  kTracker2_3  = 16,
 
74
  kTracker2_4  = 17,
 
75
  kTracker2_5  = 18,
 
76
  kTOF2_1      = 19,
 
77
  kTOF2_2      = 20,
 
78
  kCherenkov2  = 21,
 
79
  kCalorimeter = 22,
 
80
  kEMR         = 23
 
81
  // If you add an entry, remember to update kDetectorPointSize below.
 
82
};
 
83
 
 
84
/// A constant defining the upper limit of the DetectorPoint enum
 
85
/// (i.e. one more than the highest value above).
 
86
const int kDetectorPointSize = 24;
 
87
 
 
88
//////////////////////////////////////////////////////////////////////
 
89
///  @brief Defines the PID hypothesis for reconstruction objects,
 
90
///  matches the PDG codes.
 
91
///
 
92
///  An enum to define the particle hypotheses used for track fitting or
 
93
///  particle ID.  The values match the PDG codes, allowing for
 
94
///  consistent expansion as necessary.  The full possible list is
 
95
///  available at:
 
96
///  http://pdg.lbl.gov/2012/reviews/rpp2012-rev-monte-carlo-numbering.pdf
 
97
///  Particles and antiparticles are considered identically here.
 
98
enum PID {
 
99
  kNoPID                =  0,
 
100
  kEMinus               =  11,
 
101
  kEPlus                = -11,
 
102
  kElectronNeutrino     =  12,
 
103
  kElectronAntineutrino = -12,
 
104
  kMuMinus              =  13,
 
105
  kMuPlus               = -13,
 
106
  kMuonNeutrino         =  14,
 
107
  kMuonAntineutrino     = -14,
 
108
  kPhoton               =  22,
 
109
  kPiMinus              = -211,
 
110
  kPi0                  =  111,
 
111
  kPiPlus               =  211,
 
112
  kKMinus               = -321,
 
113
  kK0                   =  311,
 
114
  kKLong                =  130,
 
115
  kKShort               =  310,
 
116
  kKPlus                =  321,
 
117
  kNeutron              =  2112,
 
118
  kAntineutron          = -2112,
 
119
  kProton               =  2212,
 
120
  kAntiproton           = -2212,
 
121
  kLambda               =  3122,
 
122
  kAntilambda           = -3122,
 
123
  kDeuterium            =  1000010020,
 
124
  kTritium              =  1000010030,
 
125
  kHelium3              =  1000020030,
 
126
  kHelium4              =  1000020040
 
127
};
 
128
/** @} */ // end of globalrecon
 
129
 
 
130
} // ~namespace Global
 
131
} // ~namespace DataStructure
 
132
} // ~namespace MAUS
 
133
 
 
134
#endif