00001 // 00002 // ******************************************************************** 00003 // * License and Disclaimer * 00004 // * * 00005 // * The Geant4 software is copyright of the Copyright Holders of * 00006 // * the Geant4 Collaboration. It is provided under the terms and * 00007 // * conditions of the Geant4 Software License, included in the file * 00008 // * LICENSE and available at http://cern.ch/geant4/license . These * 00009 // * include a list of copyright holders. * 00010 // * * 00011 // * Neither the authors of this software system, nor their employing * 00012 // * institutes,nor the agencies providing financial support for this * 00013 // * work make any representation or warranty, express or implied, * 00014 // * regarding this software system or assume any liability for its * 00015 // * use. Please see the license in the file LICENSE and URL above * 00016 // * for the full disclaimer and the limitation of liability. * 00017 // * * 00018 // * This code implementation is the result of the scientific and * 00019 // * technical work of the GEANT4 collaboration. * 00020 // * By using, copying, modifying or distributing the software (or * 00021 // * any work based on the software) you agree to acknowledge its * 00022 // * use in resulting scientific publications, and indicate your * 00023 // * acceptance of all terms of the Geant4 Software license. * 00024 // ******************************************************************** 00025 // 00026 // $Id: G4VITReactionProcess.hh 64057 2012-10-30 15:04:49Z gcosmo $ 00027 // 00028 // Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr) 00029 // 00030 // WARNING : This class is released as a prototype. 00031 // It might strongly evolve or even disapear in the next releases. 00032 // 00033 // History: 00034 // ----------- 00035 // 10 Oct 2011 M.Karamitros created 00036 // 00037 // ------------------------------------------------------------------- 00038 00039 #ifndef G4VITREACTIONPROCESS_H 00040 #define G4VITREACTIONPROCESS_H 00041 00042 #include "globals.hh" 00043 #include "G4IT.hh" 00044 #include "G4ITReactionChange.hh" 00045 #include "G4ITReactionTable.hh" 00046 #include "AddClone_def.hh" 00047 00053 class G4VITReactionProcess 00054 { 00055 public: 00057 G4VITReactionProcess(); 00059 virtual ~G4VITReactionProcess(); 00063 G4VITReactionProcess(const G4VITReactionProcess& other); 00072 G4IT_TO_BE_CLONED(G4VITReactionProcess) 00073 00074 00078 G4VITReactionProcess& operator=(const G4VITReactionProcess& other); 00079 00083 virtual void Initialize(){;} 00084 00085 virtual G4bool IsApplicable(G4ITType,G4ITType) const {return true;} 00086 // virtual void GetApplicableTypes(G4ITType&, G4ITType&) const; 00087 00088 virtual G4bool TestReactibility(const G4Track&, 00089 const G4Track&, 00090 const double /*currentStepTime*/, 00091 const double /*previousStepTime*/, 00092 bool /*reachedUserStepTimeLimit*/) = 0; 00093 00094 virtual G4ITReactionChange* MakeReaction(const G4Track&, const G4Track&) = 0; 00095 00096 inline void SetReactionTable(const G4ITReactionTable*); 00097 00098 inline void ResetChanges(); 00099 00100 protected: 00101 // G4ITType fApplicableType1; 00102 // G4ITType fApplicableType2; 00103 00104 const G4ITReactionTable* fpReactionTable; 00105 G4ITReactionChange* fpChanges ; 00106 G4String fName ; 00107 }; 00108 00109 inline void G4VITReactionProcess::SetReactionTable(const G4ITReactionTable* table) 00110 { 00111 fpReactionTable = table; 00112 } 00113 00114 inline void G4VITReactionProcess::ResetChanges() 00115 { 00116 fpChanges = 0; 00117 } 00118 #endif // G4VITREACTIONPROCESS_H