G4FragmentingString.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 
00030 #ifndef G4FragmentingString_h
00031 #define G4FragmentingString_h 1
00032 
00033 // ------------------------------------------------------------
00034 //      GEANT 4 class header file
00035 //
00036 //      ---------------- G4FragmentingString ----------------
00037 //             by Gunter Folger, September 2001.
00038 //       class for an excited string used in Fragmention
00039 // ------------------------------------------------------------
00040 
00041 #include "G4ios.hh"
00042 #include "globals.hh"
00043 #include "G4ThreeVector.hh"
00044 #include "G4LorentzVector.hh"
00045 #include "G4ParticleDefinition.hh"
00046 
00047 class G4ExcitedString;
00048 
00049 class G4FragmentingString 
00050 {
00051 
00052   public:
00053      
00054       G4FragmentingString(const G4FragmentingString &right);
00055       G4FragmentingString(const G4ExcitedString &excited);
00056       G4FragmentingString(const G4FragmentingString &old,
00057                           G4ParticleDefinition * newdecay,
00058                           const G4LorentzVector *momentum);
00059       G4FragmentingString(const G4FragmentingString &old,
00060                           G4ParticleDefinition * newdecay);
00061                           
00062       ~G4FragmentingString();
00063 
00064       G4FragmentingString& operator=(const G4FragmentingString &);
00065       int operator==(const G4FragmentingString &right) const;
00066 
00067       int operator!=(const G4FragmentingString &right) const;
00068 
00069       
00070       G4LorentzVector Get4Momentum() const;
00071 
00072       G4ThreeVector StablePt();
00073       G4ThreeVector DecayPt();
00074       
00075       G4double LightConePlus();
00076       G4double LightConeMinus();
00077       G4double LightConeDecay();
00078    
00079       G4double Mass() const;
00080       G4double Mass2() const;
00081       G4double MassT2() const;
00082       
00083       G4ParticleDefinition* GetLeftParton(void) const;
00084       G4ParticleDefinition* GetRightParton(void) const;
00085       
00086       G4ParticleDefinition* GetStableParton() const; // stable at the moment
00087       G4ParticleDefinition* GetDecayParton() const;  // currently involved in fragmentation
00088 
00089       void SetLeftPartonStable();
00090       void SetRightPartonStable();
00091 
00092       G4int GetDecayDirection() const;
00093             
00094       G4bool    DecayIsQuark();
00095       G4bool    StableIsQuark();
00096       G4bool    FourQuarkString(void) const;
00097 
00098 
00099   private:
00100 
00101       G4ParticleDefinition *LeftParton, *RightParton; 
00102       G4ThreeVector Ptleft,Ptright;    // Pt (px,py) for partons (pz ignored!)
00103       G4double Pplus, Pminus;        // p-, p+ of string, Plus ass. to Left!
00104   
00105       G4ParticleDefinition * theStableParton, * theDecayParton;
00106       
00107       enum DecaySide { None, Left, Right };
00108       DecaySide decaying; 
00109 };
00110 
00111 inline
00112 int G4FragmentingString::operator==(const G4FragmentingString &right) const
00113 {
00114         return this == &right;
00115 }
00116 
00117 inline
00118 int G4FragmentingString::operator!=(const G4FragmentingString &right) const
00119 {
00120         return this != &right;
00121 }
00122 
00123 
00124 inline
00125 G4ParticleDefinition * G4FragmentingString::GetStableParton() const
00126 {
00127      return  theStableParton;
00128 }       
00129 
00130 inline
00131 G4ParticleDefinition * G4FragmentingString::GetDecayParton() const
00132 {
00133      return  theDecayParton;
00134 }       
00135 
00136 inline
00137 G4ParticleDefinition* G4FragmentingString::GetLeftParton(void) const
00138     {
00139     return LeftParton; 
00140     }
00141 
00142 inline
00143 G4ParticleDefinition* G4FragmentingString::GetRightParton(void) const
00144     {
00145     return RightParton; 
00146     }
00147 
00148 
00149 
00150 #endif
00151 
00152 

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