Ignore:
Timestamp:
Jun 18, 2010, 11:42:07 AM (14 years ago)
Author:
garnier
Message:

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPEnAngCorrelation.cc

    r962 r1315  
    2828// A prototype of the low energy neutron transport model.
    2929//
     30// 100413 Fix bug in incidence energy by T. Koi 
     31//
    3032#include "G4NeutronHPEnAngCorrelation.hh"
    3133#include "G4LorentzRotation.hh"
    3234#include "G4LorentzVector.hh"
     35#include "G4RotationMatrix.hh"
    3336
    3437G4ReactionProduct * G4NeutronHPEnAngCorrelation::SampleOne(G4double anEnergy)
     
    6770  {
    6871    // simplify and double check @
    69     G4ThreeVector the3Neutron = theNeutron.GetMomentum();
     72    G4ThreeVector the3Neutron = theNeutron.GetMomentum(); //theNeutron has value in LAB
    7073    G4double nEnergy = theNeutron.GetTotalEnergy();
    71     G4ThreeVector the3Target = theTarget.GetMomentum();
     74    G4ThreeVector the3Target = theTarget.GetMomentum();  //theTarget has value in LAB
    7275    G4double tEnergy = theTarget.GetTotalEnergy();
    7376    G4double totE = nEnergy+tEnergy;
     
    8083    G4ReactionProduct aNeutron;
    8184    aNeutron.Lorentz(theNeutron, theCMS);
    82     anEnergy = aNeutron.GetKineticEnergy();
     85    //TKDB 100413
     86    //ENDF-6 Formats Manual ENDF-102
     87    //CHAPTER 6. FILE 6: PRODUCT ENERGY-ANGLE DISTRIBUTIONS
     88    //LCT Reference system for secondary energy and angle (incident energy is always given in the LAB system)
     89    //anEnergy = aNeutron.GetKineticEnergy();
     90    anEnergy = theNeutron.GetKineticEnergy(); //should be same argumment of "anEnergy"
    8391
    8492    G4LorentzVector Ptmp (aNeutron.GetMomentum(), aNeutron.GetTotalEnergy());
     93
    8594    toZ.rotateZ(-1*Ptmp.phi());
    8695    toZ.rotateY(-1*Ptmp.theta());
    87 
    8896  }
    8997  theTotalMeanEnergy=0;
    90   G4LorentzRotation toLab(toZ.inverse());
     98  G4LorentzRotation toLab(toZ.inverse()); //toLab only change axis NOT to LAB system
    9199  for(i=0; i<nProducts; i++)
    92100  {
     
    110118        it->operator[](ii)->SetMomentum(pTmp1.vect());
    111119        it->operator[](ii)->SetTotalEnergy(pTmp1.e());
    112         if(frameFlag==1) // target rest
     120        if(frameFlag==1) // target rest //TK 100413 should be LAB?
    113121        {
    114           it->operator[](ii)->Lorentz(*(it->operator[](ii)), -1.*theTarget);
     122          it->operator[](ii)->Lorentz(*(it->operator[](ii)), -1.*theTarget); //TK 100413 Is this really need?
    115123        }
    116124        else if(frameFlag==2) // CMS
Note: See TracChangeset for help on using the changeset viewer.