ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CexmcChargeExchangeReconstructor.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file CexmcChargeExchangeReconstructor.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
/*
27
* =============================================================================
28
*
29
* Filename: CexmcChargeExchangeReconstructor.hh
30
*
31
* Description: charge exchange reconstructor
32
*
33
* Version: 1.0
34
* Created: 02.12.2009 15:07:16
35
* Revision: none
36
* Compiler: gcc
37
*
38
* Author: Alexey Radkov (),
39
* Company: PNPI
40
*
41
* =============================================================================
42
*/
43
44
#ifndef CEXMC_CHARGE_EXCHANGE_RECONSTRUCTOR_HH
45
#define CEXMC_CHARGE_EXCHANGE_RECONSTRUCTOR_HH
46
47
#include "
CexmcReconstructor.hh
"
48
#include "
CexmcProductionModelData.hh
"
49
#include "
CexmcCommon.hh
"
50
51
class
CexmcChargeExchangeReconstructorMessenger
;
52
struct
CexmcEnergyDepositStore
;
53
class
CexmcProductionModel
;
54
class
CexmcParticleGun
;
55
56
57
class
CexmcChargeExchangeReconstructor
:
public
CexmcReconstructor
58
{
59
public
:
60
CexmcChargeExchangeReconstructor
(
61
const
CexmcProductionModel
* productionModel );
62
63
~CexmcChargeExchangeReconstructor
();
64
65
public
:
66
void
Reconstruct
(
const
CexmcEnergyDepositStore
* edStore );
67
68
public
:
69
G4double
GetOutputParticleMass
(
void
)
const
;
70
71
G4double
GetNucleusOutputParticleMass
(
void
)
const
;
72
73
const
CexmcProductionModelData
&
GetProductionModelData
(
void
)
const
;
74
75
void
UseTableMass
(
G4bool
on );
76
77
void
UseMassCut
(
G4bool
on );
78
79
void
SetMassCutOPCenter
(
G4double
value
);
80
81
void
SetMassCutNOPCenter
(
G4double
value );
82
83
void
SetMassCutOPWidth
(
G4double
value );
84
85
void
SetMassCutNOPWidth
(
G4double
value );
86
87
void
SetMassCutEllipseAngle
(
G4double
value );
88
89
void
UseAbsorbedEnergyCut
(
G4bool
on );
90
91
void
SetAbsorbedEnergyCutCLCenter
(
G4double
value );
92
93
void
SetAbsorbedEnergyCutCRCenter
(
G4double
value );
94
95
void
SetAbsorbedEnergyCutCLWidth
(
G4double
value );
96
97
void
SetAbsorbedEnergyCutCRWidth
(
G4double
value );
98
99
void
SetAbsorbedEnergyCutEllipseAngle
(
G4double
value );
100
101
void
SetExpectedMomentumAmp
(
G4double
);
102
103
void
SetExpectedMomentumAmpDiff
(
G4double
);
104
105
void
SetEDCollectionAlgorithm
(
CexmcEDCollectionAlgoritm
value );
106
107
void
SetupBeamParticle
(
void
);
108
109
G4bool
IsTableMassUsed
(
void
)
const
;
110
111
G4bool
IsMassCutUsed
(
void
)
const
;
112
113
G4double
GetMassCutOPCenter
(
void
)
const
;
114
115
G4double
GetMassCutNOPCenter
(
void
)
const
;
116
117
G4double
GetMassCutOPWidth
(
void
)
const
;
118
119
G4double
GetMassCutNOPWidth
(
void
)
const
;
120
121
G4double
GetMassCutEllipseAngle
(
void
)
const
;
122
123
G4bool
HasMassCutTriggered
(
void
)
const
;
124
125
G4bool
IsAbsorbedEnergyCutUsed
(
void
)
const
;
126
127
G4double
GetAbsorbedEnergyCutCLCenter
(
void
)
const
;
128
129
G4double
GetAbsorbedEnergyCutCRCenter
(
void
)
const
;
130
131
G4double
GetAbsorbedEnergyCutCLWidth
(
void
)
const
;
132
133
G4double
GetAbsorbedEnergyCutCRWidth
(
void
)
const
;
134
135
G4double
GetAbsorbedEnergyCutEllipseAngle
(
void
)
const
;
136
137
G4double
GetExpectedMomentumAmp
(
void
)
const
;
138
139
CexmcEDCollectionAlgoritm
GetEDCollectionAlgorithm
(
void
)
const
;
140
141
G4bool
HasAbsorbedEnergyCutTriggered
(
void
)
const
;
142
143
G4bool
HasFullTrigger
(
void
)
const
;
144
145
private
:
146
G4double
outputParticleMass
;
147
148
G4double
nucleusOutputParticleMass
;
149
150
private
:
151
CexmcProductionModelData
productionModelData
;
152
153
private
:
154
G4bool
useTableMass
;
155
156
G4bool
useMassCut
;
157
158
G4double
massCutOPCenter
;
159
160
G4double
massCutNOPCenter
;
161
162
G4double
massCutOPWidth
;
163
164
G4double
massCutNOPWidth
;
165
166
G4double
massCutEllipseAngle
;
167
168
G4bool
useAbsorbedEnergyCut
;
169
170
G4double
absorbedEnergyCutCLCenter
;
171
172
G4double
absorbedEnergyCutCRCenter
;
173
174
G4double
absorbedEnergyCutCLWidth
;
175
176
G4double
absorbedEnergyCutCRWidth
;
177
178
G4double
absorbedEnergyCutEllipseAngle
;
179
180
G4double
expectedMomentumAmp
;
181
182
CexmcEDCollectionAlgoritm
edCollectionAlgorithm
;
183
184
private
:
185
G4bool
hasMassCutTriggered
;
186
187
G4bool
hasAbsorbedEnergyCutTriggered
;
188
189
private
:
190
G4bool
beamParticleIsInitialized
;
191
192
CexmcParticleGun
*
particleGun
;
193
194
CexmcChargeExchangeReconstructorMessenger
*
messenger
;
195
};
196
197
198
inline
G4double
CexmcChargeExchangeReconstructor::GetOutputParticleMass
(
199
void
)
const
200
{
201
return
outputParticleMass
;
202
}
203
204
205
inline
G4double
CexmcChargeExchangeReconstructor::GetNucleusOutputParticleMass
(
206
void
)
const
207
{
208
return
nucleusOutputParticleMass
;
209
}
210
211
212
inline
const
CexmcProductionModelData
&
213
CexmcChargeExchangeReconstructor::GetProductionModelData
(
void
)
const
214
{
215
return
productionModelData
;
216
}
217
218
219
inline
void
CexmcChargeExchangeReconstructor::UseTableMass
(
G4bool
on )
220
{
221
useTableMass
= on;
222
}
223
224
225
inline
void
CexmcChargeExchangeReconstructor::UseMassCut
(
G4bool
on )
226
{
227
useMassCut
= on;
228
}
229
230
231
inline
void
CexmcChargeExchangeReconstructor::SetMassCutOPCenter
(
232
G4double
value
)
233
{
234
massCutOPCenter
=
value
;
235
}
236
237
238
inline
void
CexmcChargeExchangeReconstructor::SetMassCutNOPCenter
(
239
G4double
value
)
240
{
241
massCutNOPCenter
=
value
;
242
}
243
244
245
inline
void
CexmcChargeExchangeReconstructor::SetMassCutOPWidth
(
246
G4double
value
)
247
{
248
massCutOPWidth
=
value
;
249
}
250
251
252
inline
void
CexmcChargeExchangeReconstructor::SetMassCutNOPWidth
(
253
G4double
value
)
254
{
255
massCutNOPWidth
=
value
;
256
}
257
258
259
inline
void
CexmcChargeExchangeReconstructor::SetMassCutEllipseAngle
(
260
G4double
value
)
261
{
262
massCutEllipseAngle
=
value
;
263
}
264
265
266
inline
void
CexmcChargeExchangeReconstructor::UseAbsorbedEnergyCut
(
267
G4bool
on )
268
{
269
useAbsorbedEnergyCut
= on;
270
}
271
272
273
inline
void
CexmcChargeExchangeReconstructor::SetAbsorbedEnergyCutCLCenter
(
274
G4double
value
)
275
{
276
absorbedEnergyCutCLCenter
=
value
;
277
}
278
279
280
inline
void
CexmcChargeExchangeReconstructor::SetAbsorbedEnergyCutCRCenter
(
281
G4double
value
)
282
{
283
absorbedEnergyCutCRCenter
=
value
;
284
}
285
286
287
inline
void
CexmcChargeExchangeReconstructor::SetAbsorbedEnergyCutCLWidth
(
288
G4double
value
)
289
{
290
absorbedEnergyCutCLWidth
=
value
;
291
}
292
293
294
inline
void
CexmcChargeExchangeReconstructor::SetAbsorbedEnergyCutCRWidth
(
295
G4double
value
)
296
{
297
absorbedEnergyCutCRWidth
=
value
;
298
}
299
300
301
inline
void
CexmcChargeExchangeReconstructor::SetAbsorbedEnergyCutEllipseAngle
(
302
G4double
value
)
303
{
304
absorbedEnergyCutEllipseAngle
=
value
;
305
}
306
307
308
inline
void
CexmcChargeExchangeReconstructor::SetExpectedMomentumAmp
(
309
G4double
value
)
310
{
311
expectedMomentumAmp
=
value
;
312
}
313
314
315
inline
void
CexmcChargeExchangeReconstructor::SetEDCollectionAlgorithm
(
316
CexmcEDCollectionAlgoritm
value
)
317
{
318
edCollectionAlgorithm
=
value
;
319
}
320
321
322
inline
G4bool
CexmcChargeExchangeReconstructor::IsTableMassUsed
(
void
)
const
323
{
324
return
useTableMass
;
325
}
326
327
328
inline
G4bool
CexmcChargeExchangeReconstructor::IsMassCutUsed
(
void
)
const
329
{
330
return
useMassCut
;
331
}
332
333
334
inline
G4double
CexmcChargeExchangeReconstructor::GetMassCutOPCenter
(
void
)
335
const
336
{
337
return
massCutOPCenter
;
338
}
339
340
341
inline
G4double
CexmcChargeExchangeReconstructor::GetMassCutNOPCenter
(
void
)
342
const
343
{
344
return
massCutNOPCenter
;
345
}
346
347
348
inline
G4double
CexmcChargeExchangeReconstructor::GetMassCutOPWidth
(
void
)
349
const
350
{
351
return
massCutOPWidth
;
352
}
353
354
355
inline
G4double
CexmcChargeExchangeReconstructor::GetMassCutNOPWidth
(
void
)
356
const
357
{
358
return
massCutNOPWidth
;
359
}
360
361
362
inline
G4double
CexmcChargeExchangeReconstructor::GetMassCutEllipseAngle
(
363
void
)
const
364
{
365
return
massCutEllipseAngle
;
366
}
367
368
369
inline
G4bool
CexmcChargeExchangeReconstructor::HasMassCutTriggered
(
void
)
370
const
371
{
372
return
hasMassCutTriggered
;
373
}
374
375
376
inline
G4bool
CexmcChargeExchangeReconstructor::IsAbsorbedEnergyCutUsed
(
void
)
377
const
378
{
379
return
useAbsorbedEnergyCut
;
380
}
381
382
383
inline
G4double
CexmcChargeExchangeReconstructor::GetAbsorbedEnergyCutCLCenter
(
384
void
)
const
385
{
386
return
absorbedEnergyCutCLCenter
;
387
}
388
389
390
inline
G4double
CexmcChargeExchangeReconstructor::GetAbsorbedEnergyCutCRCenter
(
391
void
)
const
392
{
393
return
absorbedEnergyCutCRCenter
;
394
}
395
396
397
inline
G4double
CexmcChargeExchangeReconstructor::GetAbsorbedEnergyCutCLWidth
(
398
void
)
const
399
{
400
return
absorbedEnergyCutCLWidth
;
401
}
402
403
404
inline
G4double
CexmcChargeExchangeReconstructor::GetAbsorbedEnergyCutCRWidth
(
405
void
)
const
406
{
407
return
absorbedEnergyCutCRWidth
;
408
}
409
410
411
inline
G4double
CexmcChargeExchangeReconstructor::
412
GetAbsorbedEnergyCutEllipseAngle
(
void
)
const
413
{
414
return
absorbedEnergyCutEllipseAngle
;
415
}
416
417
418
inline
G4double
CexmcChargeExchangeReconstructor::GetExpectedMomentumAmp
(
419
void
)
const
420
{
421
return
expectedMomentumAmp
;
422
}
423
424
425
inline
CexmcEDCollectionAlgoritm
CexmcChargeExchangeReconstructor::
426
GetEDCollectionAlgorithm
(
void
)
const
427
{
428
return
edCollectionAlgorithm
;
429
}
430
431
432
inline
G4bool
CexmcChargeExchangeReconstructor::HasAbsorbedEnergyCutTriggered
(
433
void
)
const
434
{
435
return
hasAbsorbedEnergyCutTriggered
;
436
}
437
438
439
#endif
440
geant4
tree
geant4-10.6-release
examples
advanced
ChargeExchangeMC
include
CexmcChargeExchangeReconstructor.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:55
using
1.8.2 with
ECCE GitHub integration