StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
starlightconstants.h
1 //
3 // Copyright 2010
4 //
5 // This file is part of starlight.
6 //
7 // starlight is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // starlight is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with starlight. If not, see <http://www.gnu.org/licenses/>.
19 //
21 //
22 // File and Version Information:
23 // $Rev:: $: revision of last commit
24 // $Author: jwebb $: author of last commit
25 // $Date: 2012/11/27 22:27:33 $: date of last commit
26 //
27 // Description:
28 //
29 //
30 //
32 
33 
34 #ifndef STARLIGHTCONSTANTS_H_INCLUDE
35 #define STARLIGHTCONSTANTS_H_INCLUDE
36 
37 
38 /*
39  * Constants are set here
40  */
41 namespace starlightConstants
42 {
43 
44 
45  // constants
46  static const double hbarc = 0.197327053;
47  static const double hbarcmev = hbarc*1000.;
48  static const double pi = 3.141592654;
49  static const double twoPi = 2 * pi;
50  static const double alpha = 1/137.0359895;
51 
52  // particle masses
53  static const double protonMass = 0.93827231; // [GeV/c^2]
54  static const double pionChargedMass = 0.13956995; // [GeV/c^2]
55  static const double kaonChargedMass = 0.493677; // [GeV/c^2]
56  static const double mel = 0.00051099907; // [GeV/c^2]
57  static const double muonMass = 0.105658389; // [GeV/c^2]
58  static const double tauMass = 1.777; // [GeV/c^2]
59 
60  enum particleTypeEnum {
61  UNKNOWN = 0,
62  ELECTRON = 11,
63  MUON = 13,
64  TAUON = 15,
65  PROTON = 212,
66  PION = 211,
67  KAONCHARGE = 321,
68  KAONNEUTRAL = 310,
69  A2 = 115,
70  ETA = 221,
71  F2 = 225,
72  ETAPRIME = 331,
73  F2PRIME = 335,
74  ETAC = 441,
75  F0 = 9010221,
76  ZOVERZ03 = 33,
77  RHO = 113,
78  RHOZEUS = 913,
79  FOURPRONG = 999,
80  OMEGA = 223,
81  PHI = 333,
82  JPSI = 443,
83  JPSI_ee = 443011,
84  JPSI_mumu = 443013,
85  JPSI2S = 444,
86  JPSI2S_ee = 444011,
87  JPSI2S_mumu = 444013,
88  UPSILON = 553,
89  UPSILON_ee = 553011,
90  UPSILON_mumu = 553013,
91  UPSILON2S = 554,
92  UPSILON2S_ee = 554011,
93  UPSILON2S_mumu = 554013,
94  UPSILON3S = 555,
95  UPSILON3S_ee = 555011,
96  UPSILON3S_mumu = 555013
97  };
98 
99  enum decayTypeEnum {
100  NOTKNOWN = 0,
101  NARROWVMDEFAULT = 1,
102  WIDEVMDEFAULT = 2,
103  PSIFAMILY = 3,
104  LEPTONPAIR = 4,
105  SINGLEMESON = 5
106  };
107 
108  enum interactionTypeEnum {
109  UNSPECIFIED = 0,
110  PHOTONPHOTON = 1,
111  PHOTONPOMERONNARROW = 2,
112  PHOTONPOMERONWIDE = 3
113  };
114 
115  //Structure for each event's set of tracks.
116  struct event{
117 
118  public:
119 
120  int _numberOfTracks;
121  //Right now this is set up for a maximum of 4 tracks,if we want more, just increase the arrays
122  //Moved it to 30, this way when pythia returns, it wont complain too much...hedging bets...not sure how many
123  double px[30],py[30],pz[30];
124  //starlightConstants::particleTypeEnum _fsParticle[30];
125  int _fsParticle[30];
126  int _charge[30];
127  //To help track mothers and daughters produced through pythia.
128  int _mother1[30];
129  int _mother2[30];
130  int _daughter1[30];
131  int _daughter2[30];
132  //Normally we just set vertices to 0
133  //But for pythia, we decay additional states
134  int _numberOfVertices;
135  double _vertx[10],_verty[10],_vertz[10];
136  };
137 
138 
139 } // starlightConstants
140 
141 
142 #endif // STARLIGHTCONSTANTS_H_INCLUDE
143