Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/lepto_nuclear/include/G4NeutrinoNucleusModel.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/lepto_nuclear/include/G4NeutrinoNucleusModel.hh (Version 11.3.0) and /processes/hadronic/models/lepto_nuclear/include/G4NeutrinoNucleusModel.hh (Version 9.6.p1)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 //                                                
 27 // $Id: G4NeutrinoNucleusModel.hh 90228 2015-0    
 28 //                                                
 29 // Geant4 Header : G4NeutrinoNucleusModel         
 30 //                                                
 31 // Author : V.Grichine 12.2.19                    
 32 //                                                
 33 // Modified:                                      
 34 //                                                
 35 // Class Description                              
 36 // Default model for muon neutrino-nucleus cha    
 37 // Class Description - End                        
 38                                                   
 39 #ifndef G4NeutrinoNucleusModel_h                  
 40 #define G4NeutrinoNucleusModel_h 1                
 41                                                   
 42 #include "globals.hh"                             
 43 #include "G4HadronicInteraction.hh"               
 44 #include "G4HadProjectile.hh"                     
 45 #include "G4Nucleus.hh"                           
 46 #include "G4NucleiProperties.hh"                  
 47 #include "G4LorentzVector.hh"                     
 48                                                   
 49 class G4ParticleDefinition;                       
 50 class G4PreCompoundModel;                         
 51 // class G4CascadeInterface;                      
 52 // class G4BinaryCascade;                         
 53 // class G4TheoFSGenerator;                       
 54 // class G4LundStringFragmentation;               
 55 // class G4ExcitedStringDecay;                    
 56 // class G4INCLXXInterface;                       
 57 class G4Nucleus;                                  
 58 class G4Fragment;                                 
 59 class G4GeneratorPrecompoundInterface;            
 60 class G4ExcitationHandler;                        
 61                                                   
 62 class G4NeutrinoNucleusModel : public G4Hadron    
 63 {                                                 
 64 public:                                           
 65                                                   
 66   G4NeutrinoNucleusModel(const G4String& name     
 67                                                   
 68   virtual ~G4NeutrinoNucleusModel();              
 69                                                   
 70   virtual G4bool IsApplicable(const G4HadProje    
 71               G4Nucleus & targetNucleus);         
 72                                                   
 73   G4double SampleXkr(G4double energy);            
 74   G4double GetXkr(G4int iEnergy, G4double prob    
 75   G4double SampleQkr(G4double energy, G4double    
 76   G4double GetQkr(G4int iE, G4int jX, G4double    
 77                                                   
 78   virtual G4HadFinalState * ApplyYourself(cons    
 79             G4Nucleus & targetNucleus)=0;         
 80                                                   
 81  //////// fragmentation functions ////////////    
 82                                                   
 83   void ClusterDecay( G4LorentzVector & lvX, G4    
 84                                                   
 85   void MesonDecay( G4LorentzVector & lvX, G4in    
 86                                                   
 87   void FinalBarion( G4LorentzVector & lvB, G4i    
 88                                                   
 89   void RecoilDeexcitation( G4Fragment& fragmen    
 90                                                   
 91   void FinalMeson( G4LorentzVector & lvM, G4in    
 92                                                   
 93   void CoherentPion( G4LorentzVector & lvP, G4    
 94                                                   
 95                                                   
 96   // set/get class fields                         
 97                                                   
 98   void SetCutEnergy(G4double ec){fCutEnergy=ec    
 99   G4double GetCutEnergy(){return fCutEnergy;};    
100                                                   
101   G4double GetNuEnergy(){return fNuEnergy;};      
102   G4double GetQtransfer(){return fQtransfer;};    
103   G4double GetQ2(){return fQ2;};                  
104   G4double GetXsample(){return fXsample;};        
105                                                   
106   G4int    GetPDGencoding(){return fPDGencodin    
107   G4bool   GetCascade(){return fCascade;};        
108   G4bool   GetString(){return fString;};          
109                                                   
110   G4double GetCosTheta(){return fCosTheta;};      
111   G4double GetEmu(){return fEmu;};                
112   G4double GetEx(){return fEx;};                  
113   G4double GetMuMass(){return fMu;};              
114   G4double GetW2(){return fW2;};                  
115   G4double GetM1(){return fM1;};                  
116   G4double GetMr(){return fMr;};                  
117   G4double GetTr(){return fTr;};                  
118   G4double GetDp(){return fDp;};                  
119                                                   
120   G4bool GetfBreak()  {return fBreak;};           
121   G4bool GetfCascade(){return fCascade;};         
122   G4bool GetfString() {return fString;};          
123                                                   
124   G4LorentzVector GetLVl(){return fLVl;};         
125   G4LorentzVector GetLVh(){return fLVh;};         
126   G4LorentzVector GetLVt(){return fLVt;};         
127   G4LorentzVector GetLVcpi(){return fLVcpi;};     
128                                                   
129   G4double GetMinNuMuEnergy(){ return fMu + 0.    
130                                                   
131   G4double ThresholdEnergy(G4double mI, G4doub    
132   {                                               
133     G4double w = std::sqrt(fW2);                  
134     return w + 0.5*( (mP+mF)*(mP+mF)-(w+mI)*(w    
135   };                                              
136   G4double GetQEratioA(){ return fQEratioA; };    
137   void     SetQEratioA( G4double qea ){ fQErat    
138                                                   
139                                                   
140   G4double FinalMomentum(G4double mI, G4double    
141                                                   
142   // nucleon binding                              
143                                                   
144   G4double FermiMomentum( G4Nucleus & targetNu    
145   G4double NucleonMomentum( G4Nucleus & target    
146                                                   
147   G4double GetEx( G4int A, G4bool fP );           
148   G4double GgSampleNM(G4Nucleus & nucl);          
149                                                   
150   G4int    GetEnergyIndex(G4double energy);       
151   G4double GetNuMuQeTotRat(G4int index, G4doub    
152                                                   
153   G4int    GetOnePionIndex(G4double energy);      
154   G4double GetNuMuOnePionProb(G4int index, G4d    
155                                                   
156   G4double CalculateQEratioA( G4int Z, G4int A    
157                                                   
158   virtual void ModelDescription(std::ostream&)    
159                                                   
160 protected:                                        
161                                                   
162   G4ParticleDefinition* theMuonMinus;             
163   G4ParticleDefinition* theMuonPlus;              
164                                                   
165   G4double fSin2tW;    // sin^2theta_Weinberg     
166   G4double fCutEnergy; // minimal recoil elect    
167                                                   
168   G4int fNbin, fIndex, fEindex, fXindex, fQind    
169   G4bool fCascade, fString, fProton, f2p2h, fB    
170                                                   
171   G4double fNuEnergy, fQ2, fQtransfer, fXsampl    
172                                                   
173   G4double fM1, fM2, fMt, fMu, fW2,  fMpi, fW2    
174                                                   
175   G4double fEmu, fEmuPi, fEx, fMr, fCosTheta,     
176                                                   
177   G4LorentzVector fLVh, fLVl, fLVt, fLVcpi;       
178                                                   
179   G4GeneratorPrecompoundInterface* fPrecoInter    
180   G4PreCompoundModel*              fPreCompoun    
181   G4ExcitationHandler*             fDeExcitati    
182                                                   
183   G4Nucleus* fRecoil;                             
184                                                   
185   G4int fSecID;  // Creator model ID for the s    
186                                                   
187   static const G4int fResNumber;                  
188   static const G4double fResMass[6]; // [fResN    
189                                                   
190   static const G4int fClustNumber;                
191                                                   
192   static const G4double fMesMass[4];              
193   static const G4int    fMesPDG[4];               
194                                                   
195   static const G4double fBarMass[4];              
196   static const G4int    fBarPDG[4];               
197                                                   
198   static const G4double fNuMuResQ[50][50];        
199                                                   
200                                                   
201   static const G4double fNuMuEnergy[50];          
202   static const G4double fNuMuQeTotRat[50];        
203   static const G4double fOnePionEnergy[58];       
204   static const G4double fOnePionProb[58];         
205                                                   
206   static const G4double fNuMuEnergyLogVector[5    
207                                                   
208   // KR sample distributions, X at E_nu and Q2    
209                                                   
210   static G4double fNuMuXarrayKR[50][51];          
211   static G4double fNuMuXdistrKR[50][50];          
212   static G4double fNuMuQarrayKR[50][51][51];      
213   static G4double fNuMuQdistrKR[50][51][50];      
214                                                   
215   // QEratio(Z,A,Enu)                             
216                                                   
217   static const G4double fQEnergy[50];             
218   static const G4double fANeMuQEratio[50];        
219   static const G4double fNeMuQEratio[50];         
220                                                   
221 };                                                
222                                                   
223                                                   
224                                                   
225 #endif                                            
226