ECCE @ EIC Software
 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"
49 #include "CexmcCommon.hh"
50 
54 class CexmcParticleGun;
55 
56 
58 {
59  public:
61  const CexmcProductionModel * productionModel );
62 
64 
65  public:
66  void Reconstruct( const CexmcEnergyDepositStore * edStore );
67 
68  public:
69  G4double GetOutputParticleMass( void ) const;
70 
72 
74 
75  void UseTableMass( G4bool on );
76 
77  void UseMassCut( G4bool on );
78 
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 
92 
94 
96 
98 
100 
102 
104 
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 
128 
130 
132 
134 
136 
137  G4double GetExpectedMomentumAmp( void ) const;
138 
140 
142 
143  G4bool HasFullTrigger( void ) const;
144 
145  private:
147 
149 
150  private:
152 
153  private:
155 
157 
159 
161 
163 
165 
167 
169 
171 
173 
175 
177 
179 
181 
183 
184  private:
186 
188 
189  private:
191 
193 
195 };
196 
197 
199  void ) const
200 {
201  return outputParticleMass;
202 }
203 
204 
206  void ) const
207 {
209 }
210 
211 
212 inline const CexmcProductionModelData &
214 {
215  return productionModelData;
216 }
217 
218 
220 {
221  useTableMass = on;
222 }
223 
224 
226 {
227  useMassCut = on;
228 }
229 
230 
232  G4double value )
233 {
235 }
236 
237 
239  G4double value )
240 {
242 }
243 
244 
246  G4double value )
247 {
249 }
250 
251 
253  G4double value )
254 {
256 }
257 
258 
260  G4double value )
261 {
263 }
264 
265 
267  G4bool on )
268 {
270 }
271 
272 
274  G4double value )
275 {
277 }
278 
279 
281  G4double value )
282 {
284 }
285 
286 
288  G4double value )
289 {
291 }
292 
293 
295  G4double value )
296 {
298 }
299 
300 
302  G4double value )
303 {
305 }
306 
307 
309  G4double value )
310 {
312 }
313 
314 
317 {
319 }
320 
321 
323 {
324  return useTableMass;
325 }
326 
327 
329 {
330  return useMassCut;
331 }
332 
333 
335  const
336 {
337  return massCutOPCenter;
338 }
339 
340 
342  const
343 {
344  return massCutNOPCenter;
345 }
346 
347 
349  const
350 {
351  return massCutOPWidth;
352 }
353 
354 
356  const
357 {
358  return massCutNOPWidth;
359 }
360 
361 
363  void ) const
364 {
365  return massCutEllipseAngle;
366 }
367 
368 
370  const
371 {
372  return hasMassCutTriggered;
373 }
374 
375 
377  const
378 {
379  return useAbsorbedEnergyCut;
380 }
381 
382 
384  void ) const
385 {
387 }
388 
389 
391  void ) const
392 {
394 }
395 
396 
398  void ) const
399 {
401 }
402 
403 
405  void ) const
406 {
408 }
409 
410 
413 {
415 }
416 
417 
419  void ) const
420 {
421  return expectedMomentumAmp;
422 }
423 
424 
427 {
428  return edCollectionAlgorithm;
429 }
430 
431 
433  void ) const
434 {
436 }
437 
438 
439 #endif
440