50 if(temp->size()!=1)
throw G4HadronicException(__FILE__, __LINE__,
"SampleOne: Yield not correct");
53 result = temp->operator[](0);
81 G4double cmsMom = std::sqrt(the3CMS*the3CMS);
82 G4double sqrts = std::sqrt((totE-cmsMom)*(totE+cmsMom));
92 anEnergy =
fCache.Get().theNeutron->GetKineticEnergy();
96 toZ.rotateZ(-1*Ptmp.phi());
97 toZ.rotateY(-1*Ptmp.theta());
99 fCache.Get().theTotalMeanEnergy=0;
107 fCache.Get().theTotalMeanEnergy += aMeanEnergy;
115 for(
unsigned int ii=0; ii<it->size(); ii++)
118 it->operator[](ii)->GetTotalEnergy());
120 it->operator[](ii)->SetMomentum(pTmp1.vect());
121 it->operator[](ii)->SetTotalEnergy(pTmp1.e());
124 it->operator[](ii)->Lorentz(*(it->operator[](ii)), -1.*(*
fCache.Get().theTarget));
129 cout <<
"G4NeutronHPEnAngCorrelation: "<<
130 it->at(ii)->GetTotalEnergy()<<
" "<<
131 it->at(ii)->GetMomentum()<<
G4endl;
133 it->operator[](ii)->Lorentz(*(it->operator[](ii)), -1.*theCMS);
141 it->operator[](ii)->Lorentz(*(it->operator[](ii)), -1.*(*
fCache.Get().theTarget));
146 it->operator[](ii)->Lorentz(*(it->operator[](ii)), -1.*theCMS);
151 throw G4HadronicException(__FILE__, __LINE__,
"G4NeutronHPEnAngCorrelation::Sample: The frame of the finalstate is not specified");
153 result->push_back(it->operator[](ii));
G4NeutronHPProduct * theProducts
G4ReactionProduct * SampleOne(G4double anEnergy)
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepLorentzRotation G4LorentzRotation
void SetMomentum(const G4double x, const G4double y, const G4double z)
std::vector< G4ReactionProduct * > G4ReactionProductVector
void SetMass(const G4double mas)
void SetTotalEnergy(const G4double en)
G4ReactionProductVector * Sample(G4double anEnergy)
G4double MeanEnergyOfThisInteraction()
G4double GetTotalEnergy() const
G4Cache< toBeCached > fCache
G4ThreeVector GetMomentum() const
G4ReactionProductVector * Sample(G4double anEnergy)
CLHEP::HepLorentzVector G4LorentzVector