-
Notifications
You must be signed in to change notification settings - Fork 1
/
remolltypes.hh
135 lines (121 loc) · 2.49 KB
/
remolltypes.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#ifndef __REMOLL_TYPES_HH
#define __REMOLL_TYPES_HH
/*
remolltypes.hh
Generic data types which are classes. Used for passing IO
data around and useful enumerations
*/
//#if !defined(__CINT__) && !defined(__CLING__)
//#include <G4Types.hh>
//#endif
#define __RUNSTR_LEN 255
#define __MAXFILE_LEN 1048576 // MB file size limit
#include "TTimeStamp.h"
enum SampType_t { kNoTargetVolume, kActiveTargetVolume, kAllTargetVolumes };
struct filedata_t {
char filename[__RUNSTR_LEN];
char hashsum[__RUNSTR_LEN];
TTimeStamp timestamp;
};
// Event structure
struct remollEvent_t {
double A, Am;
double xs;
double Q2, W2;
double thcom;
double beamp;
};
// Beam and target structure
struct remollBeamTarget_t {
double x, y, z;
double dx, dy, dz;
double th, ph;
};
// Primary particle structure
struct remollEventParticle_t {
int pid;
double vx, vy, vz;
double px, py, pz;
double sx, sy, sz;
double th, ph, p;
double tpx, tpy, tpz;
int trid;
std::vector<double> tjx, tjy, tjz; //Trajectory information
};
// Generic detector hit and sum structure
struct remollGenericDetectorHit_t {
int det;
int id;
int trid;
int pid;
int gen;
int mtrid;
double t;
double x, y, z;
double xl, yl, zl;
double r, ph;
double px, py, pz;
double pxl, pyl, pzl;
double sx, sy, sz;
double p, e, m;
double vx, vy, vz;
double edep;
};
struct remollGenericDetectorSumByPID_t {
double x,y,z;
double edep;
int pid;
};
struct remollGenericDetectorSum_t {
std::vector<remollGenericDetectorSumByPID_t> by_pid;
double edep;
int det;
int vid;
};
// System of units structure
struct remollUnits_t
{
remollUnits_t();
// constructor impl in remollSystemOfUnits.cc due to conflicts between
// rootcint and required G4/CLHEP headers
// Asymmetry
const double ppm;
const double ppb;
// Distance
const double nm;
const double um;
const double mm;
const double cm;
const double m;
// Area
const double mm2;
const double cm2;
const double m2;
// Volume
const double mm3;
const double cm3;
const double m3;
// Energy
const double eV;
const double keV;
const double MeV;
const double GeV;
// Angle
const double rad;
const double deg;
const double sr;
// Cross Section
const double barn;
const double mbarn;
const double ubarn;
// Time
const double nsec;
const double msec;
const double sec;
// Frequency
const double Hz;
const double kHz;
const double MHz;
const double GHz;
};
#endif // __REMOLL_TYPES_HH