G4VPartonStringModel.hh

Go to the documentation of this file.
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 //
00027 // $Id$
00028 //
00029 #ifndef G4VPartonStringModel_h
00030 #define G4VPartonStringModel_h 1
00031 
00032 // ------------------------------------------------------------
00033 //      GEANT 4 class header file
00034 //
00035 //      ---------------- G4VPartonStringModel ----------------
00036 //             by Gunter Folger, May 1998.
00037 //      abstract class for all Parton String Models
00038 // ------------------------------------------------------------
00039 
00040 // Modified at 8-Oct-1998 by Maxim Komogorov. Method EnergyAndMomentumCorrector was added.
00041 
00042 #include "G4StringModel.hh"
00043 #include "G4VParticipants.hh"
00044 #include "G4ReactionProductVector.hh"
00045 #include "G4ExcitedString.hh"
00046 #include "G4ExcitedStringVector.hh"
00047 #include "G4VStringFragmentation.hh"
00048 #include "G4V3DNucleus.hh"
00049 #include "G4KineticTrackVector.hh"
00050 
00051 class G4VPartonStringModel : public G4VHighEnergyGenerator
00052 
00053 {
00054   public:
00055       G4VPartonStringModel(const G4String& modelName = "Parton String Model");
00056       virtual ~G4VPartonStringModel();
00057 
00058   private:
00059       G4VPartonStringModel(const G4VPartonStringModel &right);
00060       const G4VPartonStringModel & operator=(const G4VPartonStringModel &right);
00061       int operator==(const G4VPartonStringModel &right) const;
00062       int operator!=(const G4VPartonStringModel &right) const;
00063 
00064   public:
00065       void SetFragmentationModel(G4VStringFragmentation * aModel);
00066       G4KineticTrackVector * Scatter(const G4Nucleus &theNucleus, const G4DynamicParticle &thePrimary);
00067       virtual G4V3DNucleus * GetWoundedNucleus() const = 0;
00068       virtual void ModelDescription(std::ostream& outFile) const;
00069 
00070 
00071   protected:
00072         
00073       virtual void Init(const G4Nucleus &theNucleus, const G4DynamicParticle &thePrimary) = 0;
00074       virtual G4ExcitedStringVector * GetStrings() = 0;
00075       void SetThisPointer(G4VPartonStringModel * aPointer);
00076 
00077       G4bool EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalCollisionMomentum);   
00078 
00079   private:
00080   
00081       G4VStringFragmentation * stringFragmentationModel;
00082       G4VPartonStringModel * theThis;
00083 
00084 };
00085 
00086 inline void G4VPartonStringModel::SetFragmentationModel(G4VStringFragmentation * aModel)
00087 {
00088   stringFragmentationModel = aModel;
00089 }
00090 
00091 inline
00092 void G4VPartonStringModel::SetThisPointer(G4VPartonStringModel * aPointer)
00093 {
00094         theThis=aPointer;
00095 }
00096 #endif
00097 
00098 

Generated on Mon May 27 17:50:19 2013 for Geant4 by  doxygen 1.4.7