Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VITReactionProcess.hh
Go to the documentation of this file.
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// $Id: G4VITReactionProcess.hh 64057 2012-10-30 15:04:49Z gcosmo $
27//
28// Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr)
29//
30// WARNING : This class is released as a prototype.
31// It might strongly evolve or even disapear in the next releases.
32//
33// History:
34// -----------
35// 10 Oct 2011 M.Karamitros created
36//
37// -------------------------------------------------------------------
38
39#ifndef G4VITREACTIONPROCESS_H
40#define G4VITREACTIONPROCESS_H
41
42#include "globals.hh"
43#include "G4IT.hh"
44#include "G4ITReactionChange.hh"
45#include "G4ITReactionTable.hh"
46#include "AddClone_def.hh"
47
48/**
49 * G4VITReactionProcess defines the reaction between two G4IT.
50 * It should be stored in a G4VITModel.
51 */
52
54{
55public:
56 /** Default constructor */
58 /** Default destructor */
59 virtual ~G4VITReactionProcess();
60 /** Copy constructor
61 * \param other Object to copy from
62 */
64 /** Will Clone the reaction process
65 * i.e. new reaction process will be created with same features
66 * as the parent one.
67 * Use preprocessor macro : AddCloneReactionProcess
68 * the copy constructor of the derived class must be
69 * implemented.
70 * This macro is defined in AddClone_def
71 */
73
74 /** Assignment operator
75 * \param other Object to assign from
76 * \return A reference to this
77 */
79
80 /** First initialization (done once for all at the begin of the run)
81 * eg. check if the reaction table is given ...
82 */
83 virtual void Initialize(){;}
84
85 virtual G4bool IsApplicable(G4ITType,G4ITType) const {return true;}
86// virtual void GetApplicableTypes(G4ITType&, G4ITType&) const;
87
89 const G4Track&,
90 const double /*currentStepTime*/,
91 const double /*previousStepTime*/,
92 bool /*reachedUserStepTimeLimit*/) = 0;
93
94 virtual G4ITReactionChange* MakeReaction(const G4Track&, const G4Track&) = 0;
95
96 inline void SetReactionTable(const G4ITReactionTable*);
97
98 inline void ResetChanges();
99
100protected:
101// G4ITType fApplicableType1;
102// G4ITType fApplicableType2;
103
107};
108
110{
111 fpReactionTable = table;
112}
113
115{
116 fpChanges = 0;
117}
118#endif // G4VITREACTIONPROCESS_H
#define G4IT_TO_BE_CLONED(parent_class)
Definition: AddClone_def.hh:42
bool G4bool
Definition: G4Types.hh:67
void SetReactionTable(const G4ITReactionTable *)
const G4ITReactionTable * fpReactionTable
virtual G4bool IsApplicable(G4ITType, G4ITType) const
virtual G4bool TestReactibility(const G4Track &, const G4Track &, const double, const double, bool)=0
G4ITReactionChange * fpChanges
G4VITReactionProcess & operator=(const G4VITReactionProcess &other)
virtual G4ITReactionChange * MakeReaction(const G4Track &, const G4Track &)=0