Moved Tao's code to TaoLEMuSR.

This commit is contained in:
shiroka
2008-03-20 09:23:20 +00:00
parent 58c48f9e21
commit 1ca5ef0575
423 changed files with 0 additions and 0 deletions

View File

@ -0,0 +1,629 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4ChordFinder.cc,v 1.45 2003/11/13 19:46:56 japost Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
//
// 25.02.97 John Apostolakis, design and implimentation
// 05.03.97 V. Grichine , style modification
// -------------------------------------------------------------------
#include "G4ChordFinder.hh"
#include "G4MagneticField.hh"
#include "G4ElectricField.hh"
#include "G4El_UsualEqRhs.hh"
#include "G4Mag_UsualEqRhs.hh"
#include "G4ClassicalRK4.hh"
#include <iomanip>
#include "G4ios.hh"
#include "G4Transform3D.hh"
#include "G4UnitsTable.hh"
// ..........................................................................
G4ChordFinder::G4ChordFinder(G4MagInt_Driver* pIntegrationDriver)
: fDefaultDeltaChord( 0.25 * mm ),
fDeltaChord( fDefaultDeltaChord ),
fAllocatedStepper(false),
fEquation(0),
fDriversStepper(0),
fFirstFraction(0.999), fFractionLast(1.00), fFractionNextEstimate(0.98),
fMultipleRadius(15.0),
fTotalNoTrials_FNC(0), fNoCalls_FNC(0), fmaxTrials_FNC(0),
fStatsVerbose(0)
{
// Simple constructor which does not create equation, ..
// fDeltaChord= fDefaultDeltaChord;
fIntgrDriver= pIntegrationDriver;
fAllocatedStepper= false;
fLastStepEstimate_Unconstrained = DBL_MAX; // Should move q, p to
SetFractions_Last_Next( fFractionLast, fFractionNextEstimate);
// check the values and set the other parameters
}
// ..........................................................................
G4ChordFinder::G4ChordFinder( G4MagneticField* theMagField,
G4double stepMinimum,
G4MagIntegratorStepper* pItsStepper )
: fDefaultDeltaChord( 0.25 * mm ),
fDeltaChord( fDefaultDeltaChord ),
fAllocatedStepper(false),
fEquation(0),
fDriversStepper(0),
fFirstFraction(0.999), fFractionLast(1.00), fFractionNextEstimate(0.98),
fMultipleRadius(15.0),
fTotalNoTrials_FNC(0), fNoCalls_FNC(0), fmaxTrials_FNC(0),
fStatsVerbose(0)
{
// Construct the Chord Finder
// by creating in inverse order the Driver, the Stepper and EqRhs ...
G4Mag_EqRhs *pEquation = new G4Mag_UsualEqRhs(theMagField);
fEquation = pEquation;
fLastStepEstimate_Unconstrained = DBL_MAX; // Should move q, p to
// G4FieldTrack ??
SetFractions_Last_Next( fFractionLast, fFractionNextEstimate);
// check the values and set the other parameters
// --->> Charge Q = 0
// --->> Momentum P = 1 NOMINAL VALUES !!!!!!!!!!!!!!!!!!
if( pItsStepper == 0 )
{
pItsStepper = fDriversStepper = new G4ClassicalRK4(pEquation);
fAllocatedStepper= true;
}
else
{
fAllocatedStepper= false;
}
fIntgrDriver = new G4MagInt_Driver(stepMinimum, pItsStepper,
pItsStepper->GetNumberOfVariables() );
}
// .........................................................................
G4ChordFinder::G4ChordFinder( G4ElectricField* theElField,
G4double stepMinimum,
G4MagIntegratorStepper* pItsStepper )
: fDefaultDeltaChord( 0.25 * mm ),
fDeltaChord( fDefaultDeltaChord ),
fAllocatedStepper(false),
fEquation(0),
fDriversStepper(0),
fFirstFraction(0.999), fFractionLast(1.00), fFractionNextEstimate(0.98),
fMultipleRadius(15.0),
fTotalNoTrials_FNC(0), fNoCalls_FNC(0), fmaxTrials_FNC(0),
fStatsVerbose(0)
{ // Construct the Chord Finder
// by creating in inverse order the Driver, the Stepper and EqRhs ...
G4El_UsualEqRhs *pEquation = new G4El_UsualEqRhs(theElField);
fEquation = pEquation;
fLastStepEstimate_Unconstrained = DBL_MAX; // Should move q, p to
// G4FieldTrack ??
SetFractions_Last_Next( fFractionLast, fFractionNextEstimate);
// check the values and set the other parameters
// --->> Charge Q = 0
// --->> Momentum P = 1 NOMINAL VALUES !!!!!!!!!!!!!!!!!!
if( pItsStepper == 0 )
{
pItsStepper = fDriversStepper = new G4ClassicalRK4(pEquation);
fAllocatedStepper= true;
}
else
{
fAllocatedStepper= false;
}
fIntgrDriver = new G4MagInt_Driver(stepMinimum, pItsStepper,
pItsStepper->GetNumberOfVariables() );
G4cout << " CHORD FINDER :: init..."
<< G4endl;
// tao
mfield=theElField;
}
// ......................................................................
void
G4ChordFinder::SetFractions_Last_Next( G4double fractLast, G4double fractNext )
{
// Use -1.0 as request for Default.
if( fractLast == -1.0 ) fractLast = 1.0; // 0.9;
if( fractNext == -1.0 ) fractNext = 0.98; // 0.9;
// fFirstFraction = 0.999; // Orig 0.999 A safe value, range: ~ 0.95 - 0.999
// fMultipleRadius = 15.0; // For later use, range: ~ 2 - 20
if( fStatsVerbose ) {
G4cout << " ChordFnd> Trying to set fractions: "
<< " first " << fFirstFraction
<< " last " << fractLast
<< " next " << fractNext
<< " and multiple " << fMultipleRadius
<< G4endl;
}
if( (fractLast > 0.0) && (fractLast <=1.0) )
{ fFractionLast= fractLast; }
else
G4cerr << "G4ChordFinder:: SetFractions_Last_Next: Invalid "
<< " fraction Last = " << fractLast
<< " must be 0 < fractionLast <= 1 " << G4endl;
if( (fractNext > 0.0) && (fractNext <1.0) )
{ fFractionNextEstimate = fractNext; }
else
G4cerr << "G4ChordFinder:: SetFractions_Last_Next: Invalid "
<< " fraction Next = " << fractNext
<< " must be 0 < fractionNext < 1 " << G4endl;
}
// ......................................................................
G4ChordFinder::~G4ChordFinder()
{
delete fEquation; // fIntgrDriver->pIntStepper->theEquation_Rhs;
if( fAllocatedStepper)
{
delete fDriversStepper;
} // fIntgrDriver->pIntStepper;}
delete fIntgrDriver;
if( fStatsVerbose ) { PrintStatistics(); }
}
void
G4ChordFinder::PrintStatistics()
{
// Print Statistics
G4cout << "G4ChordFinder statistics report: " << G4endl;
G4cout
<< " No trials: " << fTotalNoTrials_FNC
<< " No Calls: " << fNoCalls_FNC
<< " Max-trial: " << fmaxTrials_FNC
<< G4endl;
G4cout
<< " Parameters: "
<< " fFirstFraction " << fFirstFraction
<< " fFractionLast " << fFractionLast
<< " fFractionNextEstimate " << fFractionNextEstimate
<< G4endl;
}
// ......................................................................
G4double
G4ChordFinder::AdvanceChordLimited( G4FieldTrack& yCurrent,
G4double stepMax,
G4double epsStep,
const G4ThreeVector latestSafetyOrigin,
G4double latestSafetyRadius
)
{
G4double stepPossible;
G4double dyErr;
G4FieldTrack yEnd( yCurrent);
G4double startCurveLen= yCurrent.GetCurveLength();
G4double nextStep;
// *************
stepPossible= FindNextChord(yCurrent, stepMax, yEnd, dyErr, epsStep, &nextStep
, latestSafetyOrigin, latestSafetyRadius
);
// *************
G4bool good_advance;
if ( dyErr < epsStep * stepPossible )
{
// Accept this accuracy.
yCurrent = yEnd;
good_advance = true;
}
else
{
// Advance more accurately to "end of chord"
// ***************
good_advance = fIntgrDriver->AccurateAdvance(yCurrent, stepPossible, epsStep, nextStep);
// ***************
if ( ! good_advance ){
// In this case the driver could not do the full distance
stepPossible= yCurrent.GetCurveLength()-startCurveLen;
}
}
#ifdef G4DEBUG_FIELD
G4cout << "Exiting FindNextChord Limited with:" << G4endl
<< " yCurrent: " << yCurrent<< G4endl
<<" step possible: " << stepPossible <<G4endl;
G4cout << "G4ChordFinder report: final fieldtrack \n" << yCurrent <<"\n"
<< "spin" << yCurrent.GetSpin() <<"\n"
<<"time of flight" <<yCurrent.GetProperTimeOfFlight()/ns <<"\n"
<<G4endl;
#endif
return stepPossible;
}
// #define TEST_CHORD_PRINT 1
// ............................................................................
G4double
G4ChordFinder::FindNextChord( const G4FieldTrack yStart,
G4double stepMax,
G4FieldTrack& yEnd, // Endpoint
G4double& dyErrPos, // Error of endpoint
G4double epsStep,
G4double* pStepForAccuracy,
const G4ThreeVector, // latestSafetyOrigin,
G4double // latestSafetyRadius
)
// Returns Length of Step taken
{
// G4int stepRKnumber=0;
G4FieldTrack yCurrent= yStart;
G4double stepTrial, stepForAccuracy;
G4double dydx[G4FieldTrack::ncompSVEC];
// 1.) Try to "leap" to end of interval
// 2.) Evaluate if resulting chord gives d_chord that is good enough.
// 2a.) If d_chord is not good enough, find one that is.
G4bool validEndPoint= false;
G4double dChordStep, lastStepLength; // stepOfLastGoodChord;
#ifdef DEBUG_FIELD
G4cout <<"\n---------- G4ChordFinder :: init FieldTrack : " << yCurrent << "\n------------";
#endif
fIntgrDriver-> GetDerivatives( yCurrent, dydx ) ;
#ifdef DEBUG_FIELD
G4cout <<"\n---------- G4ChordFinder :: derivative got, entering loop : dydx "
<< dydx[0] <<" " << dydx[1] <<" "<< dydx[2] <<" "<<"\n"
<< dydx[3] <<" " << dydx[4] <<" "<< dydx[5] <<" "<<"\n"
<< dydx[6] <<" " << dydx[7] <<" "<< dydx[8] <<" "<<"\n"
<< dydx[9] <<" " << dydx[10] <<" "<< dydx[11] <<" "<<"\n"
<<G4endl;
#endif
G4int noTrials=0;
const G4double safetyFactor= fFirstFraction; // 0.975 or 0.99 ? was 0.999
stepTrial = std::min( stepMax,
safetyFactor * fLastStepEstimate_Unconstrained );
G4double newStepEst_Uncons= 0.0;
do
{
#ifdef DEBUG_FIELD
G4cout <<"\n---------- G4ChordFinder :: quick Advance : " << yCurrent << "\n------------";
#endif
G4double stepForChord;
yCurrent = yStart; // Always start from initial point
// ************
fIntgrDriver->QuickAdvance( yCurrent, dydx, stepTrial,
dChordStep, dyErrPos);
// ************
#ifdef DEBUG_FIELD
G4cout <<"\n---------- G4ChordFinder :: current FieldTrack : " << yCurrent << "\n------------";
#endif
// We check whether the criterion is met here.
validEndPoint = AcceptableMissDist(dChordStep);
// && (dyErrPos < eps) ;
lastStepLength = stepTrial;
// This method estimates to step size for a good chord.
stepForChord = NewStep(stepTrial, dChordStep, newStepEst_Uncons );
if( ! validEndPoint ) {
if( stepTrial<=0.0 )
stepTrial = stepForChord;
else if (stepForChord <= stepTrial)
// Reduce by a fraction, possibly up to 20%
stepTrial = std::min( stepForChord,
fFractionLast * stepTrial);
else
stepTrial *= 0.1;
// if(dbg) G4cerr<<"Dchord too big. Try new hstep="<<stepTrial<<G4endl;
}
// #ifdef TEST_CHORD_PRINT
// TestChordPrint( noTrials, lastStepLength, dChordStep, stepTrial );
// #endif
noTrials++;
}
while( ! validEndPoint ); // End of do-while RKD
if( newStepEst_Uncons > 0.0 ){
fLastStepEstimate_Unconstrained= newStepEst_Uncons;
}
AccumulateStatistics( noTrials );
// stepOfLastGoodChord = stepTrial;
if( pStepForAccuracy ){
// Calculate the step size required for accuracy, if it is needed
G4double dyErr_relative = dyErrPos/(epsStep*lastStepLength);
if( dyErr_relative > 1.0 ) {
stepForAccuracy =
fIntgrDriver->ComputeNewStepSize( dyErr_relative,
lastStepLength );
}else{
stepForAccuracy = 0.0; // Convention to show step was ok
}
*pStepForAccuracy = stepForAccuracy;
}
#ifdef TEST_CHORD_PRINT
// static int dbg=0;
// if( dbg )
G4cout << "ChordF/FindNextChord: NoTrials= " << noTrials
<< " StepForGoodChord=" << std::setw(10) << stepTrial << G4endl;
#endif
yEnd= yCurrent;
return stepTrial;
}
// ----------------------------------------------------------------------------
#if 0
// #ifdef G4VERBOSE
if( dbg ) {
G4cerr << "Returned from QuickAdvance with: yCur=" << yCurrent <<G4endl;
G4cerr << " dChordStep= "<< dChordStep <<" dyErr=" << dyErr << G4endl;
}
#endif
// ----------------------------------------------------------------------------
// ...........................................................................
G4double G4ChordFinder::NewStep(G4double stepTrialOld,
G4double dChordStep, // Curr. dchord achieved
G4double& stepEstimate_Unconstrained )
//
// Is called to estimate the next step size, even for successful steps,
// in order to predict an accurate 'chord-sensitive' first step
// which is likely to assist in more performant 'stepping'.
//
{
G4double stepTrial;
static G4double lastStepTrial = 1., lastDchordStep= 1.;
#if 1
// const G4double threshold = 1.21, multiplier = 0.9;
// 0.9 < 1 / sqrt(1.21)
if (dChordStep > 0.0)
{
stepEstimate_Unconstrained = stepTrialOld*sqrt( fDeltaChord / dChordStep );
// stepTrial = 0.98 * stepEstimate_Unconstrained;
stepTrial = fFractionNextEstimate * stepEstimate_Unconstrained;
}
else
{
// Should not update the Unconstrained Step estimate: incorrect!
stepTrial = stepTrialOld * 2.;
}
// if ( dChordStep < threshold * fDeltaChord ){
// stepTrial= stepTrialOld * multiplier;
// }
if( stepTrial <= 0.001 * stepTrialOld)
{
if ( dChordStep > 1000.0 * fDeltaChord ){
stepTrial= stepTrialOld * 0.03;
}else{
if ( dChordStep > 100. * fDeltaChord ){
stepTrial= stepTrialOld * 0.1;
}else{
// Try halving the length until dChordStep OK
stepTrial= stepTrialOld * 0.5;
}
}
}else if (stepTrial > 1000.0 * stepTrialOld)
{
stepTrial= 1000.0 * stepTrialOld;
}
if( stepTrial == 0.0 ){
stepTrial= 0.000001;
}
lastStepTrial = stepTrialOld;
lastDchordStep= dChordStep;
#else
if ( dChordStep > 1000. * fDeltaChord ){
stepTrial= stepTrialOld * 0.03;
}else{
if ( dChordStep > 100. * fDeltaChord ){
stepTrial= stepTrialOld * 0.1;
}else{
// Keep halving the length until dChordStep OK
stepTrial= stepTrialOld * 0.5;
}
}
#endif
// A more sophisticated chord-finder could figure out a better
// stepTrial, from dChordStep and the required d_geometry
// eg
// Calculate R, r_helix (eg at orig point)
// if( stepTrial < 2 pi R )
// stepTrial = R arc_cos( 1 - fDeltaChord / r_helix )
// else
// ??
return stepTrial;
}
//
// Given a starting curve point A (CurveA_PointVelocity), a later
// curve point B (CurveB_PointVelocity) and a point E which is (generally)
// not on the curve, find and return a point F which is on the curve and
// which is close to E. While advancing towards F utilise eps_step
// as a measure of the relative accuracy of each Step.
G4FieldTrack
G4ChordFinder::ApproxCurvePointV( const G4FieldTrack& CurveA_PointVelocity,
const G4FieldTrack& CurveB_PointVelocity,
const G4ThreeVector& CurrentE_Point,
G4double eps_step)
{
// 1st implementation:
// if r=|AE|/|AB|, and s=true path lenght (AB)
// return the point that is r*s along the curve!
G4FieldTrack Current_PointVelocity= CurveA_PointVelocity;
G4ThreeVector CurveA_Point= CurveA_PointVelocity.GetPosition();
G4ThreeVector CurveB_Point= CurveB_PointVelocity.GetPosition();
G4ThreeVector ChordAB_Vector= CurveB_Point - CurveA_Point;
G4ThreeVector ChordAE_Vector= CurrentE_Point - CurveA_Point;
G4double ABdist= ChordAB_Vector.mag();
G4double curve_length; // A curve length of AB
G4double AE_fraction;
curve_length= CurveB_PointVelocity.GetCurveLength()
- CurveA_PointVelocity.GetCurveLength();
// const
G4double integrationInaccuracyLimit= std::max( perMillion, 0.5*eps_step );
if( curve_length < ABdist * (1. - integrationInaccuracyLimit) ){
#ifdef G4DEBUG_FIELD
G4cerr << " Warning in G4ChordFinder::ApproxCurvePoint: "
<< G4endl
<< " The two points are further apart than the curve length "
<< G4endl
<< " Dist = " << ABdist
<< " curve length = " << curve_length
<< " relativeDiff = " << (curve_length-ABdist)/ABdist
<< G4endl;
if( curve_length < ABdist * (1. - 10*eps_step) ) {
G4cerr << " ERROR: the size of the above difference"
<< " exceeds allowed limits. Aborting." << G4endl;
G4Exception("G4ChordFinder::ApproxCurvePointV()", "PrecisionError",
FatalException, "Unphysical curve length.");
}
#endif
// Take default corrective action:
// --> adjust the maximum curve length.
// NOTE: this case only happens for relatively straight paths.
curve_length = ABdist;
}
G4double new_st_length;
if ( ABdist > 0.0 ){
AE_fraction = ChordAE_Vector.mag() / ABdist;
}else{
AE_fraction = 0.5; // Guess .. ?;
#ifdef G4DEBUG_FIELD
G4cout << "Warning in G4ChordFinder::ApproxCurvePoint:"
<< " A and B are the same point!" << G4endl
<< " Chord AB length = " << ChordAE_Vector.mag() << G4endl
<< G4endl;
#endif
}
if( (AE_fraction> 1.0 + perMillion) || (AE_fraction< 0.) ){
#ifdef G4DEBUG_FIELD
G4cerr << " G4ChordFinder::ApproxCurvePointV - Warning:"
<< " Anomalous condition:AE > AB or AE/AB <= 0 " << G4endl
<< " AE_fraction = " << AE_fraction << G4endl
<< " Chord AE length = " << ChordAE_Vector.mag() << G4endl
<< " Chord AB length = " << ABdist << G4endl << G4endl;
G4cerr << " OK if this condition occurs after a recalculation of 'B'"
<< G4endl << " Otherwise it is an error. " << G4endl ;
#endif
// This course can now result if B has been re-evaluated,
// without E being recomputed (1 July 99)
// In this case this is not a "real error" - but it undesired
// and we cope with it by a default corrective action ...
AE_fraction = 0.5; // Default value
}
new_st_length= AE_fraction * curve_length;
G4bool good_advance;
if ( AE_fraction > 0.0 ) {
good_advance =
fIntgrDriver->AccurateAdvance(Current_PointVelocity,
new_st_length,
eps_step ); // Relative accuracy
// In this case it does not matter if it cannot advance the full distance
}
// If there was a memory of the step_length actually require at the start
// of the integration Step, this could be re-used ...
return Current_PointVelocity;
}
void
G4ChordFinder::TestChordPrint( G4int noTrials,
G4int lastStepTrial,
G4double dChordStep,
G4double nextStepTrial )
{
G4int oldprec= G4cout.precision(5);
G4cout << " ChF/fnc: notrial " << std::setw( 3) << noTrials
<< " this_step= " << std::setw(10) << lastStepTrial;
if( fabs( (dChordStep / fDeltaChord) - 1.0 ) < 0.001 ){
G4cout.precision(8);
}else{ G4cout.precision(6); }
G4cout << " dChordStep= " << std::setw(12) << dChordStep;
if( dChordStep > fDeltaChord ) { G4cout << " d+"; }
else { G4cout << " d-"; }
G4cout.precision(5);
G4cout << " new_step= " << std::setw(10)
<< fLastStepEstimate_Unconstrained
<< " new_step_constr= " << std::setw(10)
<< lastStepTrial << G4endl;
G4cout << " nextStepTrial = " << std::setw(10) << nextStepTrial << G4endl;
G4cout.precision(oldprec);
}

View File

@ -0,0 +1,198 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4ChordFinder.hh,v 1.16 2003/11/13 17:53:47 japost Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
//
// class G4ChordFinder
//
// Class description:
//
// A class that provides RK integration of motion ODE (as does g4magtr)
// and also has a method that returns an Approximate point on the curve
// near to a (chord) point.
// History:
// - 25.02.97 John Apostolakis, design and implementation
// - 05.03.97 V. Grichine , makeup to G4 'standard'
// -------------------------------------------------------------------
#ifndef G4CHORDFINDER_HH
#define G4CHORDFINDER_HH
#include "G4MagIntegratorDriver.hh"
#include "G4FieldTrack.hh"
class G4MagneticField;
class G4ElectricField;
class G4ChordFinder
{
public: // with description
G4ChordFinder( G4MagInt_Driver* pIntegrationDriver );
G4ChordFinder( G4MagneticField* itsMagField,
G4double stepMinimum = 1.0e-2 * mm,
G4MagIntegratorStepper* pItsStepper = 0 );
// A constructor that creates defaults for all "children" classes.
G4ChordFinder( G4ElectricField* itsElField,
G4double stepMinimum = 1.0e-2 * mm,
G4MagIntegratorStepper* pItsStepper = 0 );
virtual ~G4ChordFinder();
G4double AdvanceChordLimited( G4FieldTrack& yCurrent,
G4double stepInitial,
G4double epsStep_Relative,
const G4ThreeVector latestSafetyOrigin,
G4double lasestSafetyRadius);
// Uses ODE solver's driver to find the endpoint that satisfies
// the chord criterion: that d_chord < delta_chord
// -> Returns Length of Step taken.
G4FieldTrack ApproxCurvePointV(const G4FieldTrack& curveAPointVelocity,
const G4FieldTrack& curveBPointVelocity,
const G4ThreeVector& currentEPoint,
G4double epsStep);
inline G4double GetDeltaChord() const;
inline void SetDeltaChord(G4double newval);
inline void SetChargeMomentumMass(G4double pCharge, // in e+ units
G4double pMomentum,
G4double pMass );
// Function to inform integration driver of charge, speed.
inline void SetIntegrationDriver(G4MagInt_Driver* IntegrationDriver);
inline G4MagInt_Driver* GetIntegrationDriver();
// Access and set Driver.
inline void ResetStepEstimate();
// Clear internal state (last step estimate)
inline G4int GetNoCalls();
inline G4int GetNoTrials(); // Total number of trials
inline G4int GetNoMaxTrials(); // Maximum # of trials for one call
// Get statistics about number of calls & trials in FindNextChord
virtual void PrintStatistics();
// A report with the above -- and possibly other stats
inline G4int SetVerbose( G4int newvalue=1);
// Set verbosity and return old value
protected: // .........................................................
inline void AccumulateStatistics( G4int noTrials );
// Accumulate the basic statistics
// - other specialised ones must be kept by derived classes
inline G4bool AcceptableMissDist(G4double dChordStep) const;
G4double NewStep( G4double stepTrialOld,
G4double dChordStep, // Current dchord estimate
G4double& stepEstimate_Unconstrained ) ;
virtual G4double FindNextChord( const G4FieldTrack yStart,
G4double stepMax,
G4FieldTrack& yEnd,
G4double& dyErr, // Error of endpoint
G4double epsStep,
G4double* pNextStepForAccuracy, // = 0,
const G4ThreeVector latestSafetyOrigin,
G4double latestSafetyRadius
);
void PrintDchordTrial(G4int noTrials,
G4double stepTrial,
G4double oldStepTrial,
G4double dChordStep);
public: // no description
void TestChordPrint( G4int noTrials,
G4int lastStepTrial,
G4double dChordStep,
G4double nextStepTrial );
// Printing for monitoring ...
inline G4double GetFirstFraction(); // Originally 0.999
inline G4double GetFractionLast(); // Originally 1.000
inline G4double GetFractionNextEstimate(); // Originally 0.980
inline G4double GetMultipleRadius(); // No original value
// Parameters for adapting performance ... use with great care
public: // with description
void SetFractions_Last_Next( G4double fractLast= 0.90,
G4double fractNext= 0.95 );
// Parameters for performance ... change with great care
inline void SetFirstFraction(G4double fractFirst);
// Parameter for performance ... change with great care
protected:
inline G4double GetLastStepEstimateUnc();
inline void SetLastStepEstimateUnc( G4double stepEst );
private: // ............................................................
G4ChordFinder(const G4ChordFinder&);
G4ChordFinder& operator=(const G4ChordFinder&);
// Private copy constructor and assignment operator.
private: // ............................................................
// G4int nOK, nBAD;
G4MagInt_Driver* fIntgrDriver;
const G4double fDefaultDeltaChord; // SET in G4ChordFinder.cc = 0.25 mm
G4double fDeltaChord; // Maximum miss distance
G4double fLastStepEstimate_Unconstrained; // State information for efficiency
// Variables used in construction/destruction
G4bool fAllocatedStepper;
G4EquationOfMotion* fEquation;
G4MagIntegratorStepper* fDriversStepper;
// Parameters
G4double fFirstFraction, fFractionLast, fFractionNextEstimate;
G4double fMultipleRadius;
// For Statistics
// -- G4int fNoTrials, fNoCalls;
G4int fTotalNoTrials_FNC, fNoCalls_FNC, fmaxTrials_FNC; // fnoTimesMaxTrFNC;
G4int fStatsVerbose; // if > 0, print Statistics in destructor
G4double itime, ftime;
G4ElectricField* mfield;
G4int firstChord;
};
// Inline function implementation:
#include "G4ChordFinder.icc"
#endif // G4CHORDFINDER_HH

View File

@ -0,0 +1,80 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4El_EqRhs.cc,v 1.10 2003/11/05 16:33:55 japost Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
// This is the standard right-hand side for equation of motion
// in a pure Electric Field .
//
// Other that might be required are:
// i) is when using a moving reference frame ... or
// ii) extending for other forces, eg an electric field
//
// J. Apostolakis, January 13th, 1997
//
// --------------------------------------------------------------------
#include "G4ElectricField.hh"
#include "G4El_EqRhs.hh"
#include "globals.hh"
//const G4double G4El_EqRhs::fUnitConstant = 0.299792458 * (GeV/(tesla*m));
// Constructor Implementation
//
G4El_EqRhs::G4El_EqRhs( G4ElectricField *elField )
: G4EquationOfMotion(elField)
{
}
G4El_EqRhs::~G4El_EqRhs() { }
void G4El_EqRhs::RightHandSide( const G4double y[],
G4double dydx[] ) const
{
G4double Field[3];
G4double PositionAndTime[4];
// Position
PositionAndTime[0] = y[0];
PositionAndTime[1] = y[1];
PositionAndTime[2] = y[2];
// Global Time
PositionAndTime[3] = y[7]; // See G4FieldTrack::LoadFromArray
G4cout <<"EL_EQ RIGHT HAND SIDE!"<<G4endl;
GetFieldValue(PositionAndTime, Field) ;
EvaluateRhsGivenB( y, Field, dydx );
}
void
G4El_EqRhs::SetChargeMomentumMass( G4double particleCharge, // e+ units
G4double , // MomentumXc
G4double ) // particleMass
{
fCof_val = particleCharge*eplus*c_light ;
}

View File

@ -0,0 +1,87 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4El_EqRhs.hh,v 1.8 2003/11/05 12:54:13 japost Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
//
// class G4El_EqRhs
//
// Class description:
//
// The "standard" equation of motion of a particle in a pure electric field.
// History:
// - Created. J.Apostolakis, January 13th 1997
// --------------------------------------------------------------------
#ifndef G4_EL_EQRHS_DEF
#define G4_EL_EQRHS_DEF
#include "G4Types.hh"
#include "G4EquationOfMotion.hh"
class G4ElectricField;
class G4El_EqRhs : public G4EquationOfMotion
{
public: // with description
G4El_EqRhs( G4ElectricField *elField );
virtual ~G4El_EqRhs();
// Constructor and destructor. No actions.
virtual void EvaluateRhsGivenB( const G4double y[],
const G4double E[3],
G4double dydx[] ) const = 0;
// Given the value of the field "B", this function
// calculates the value of the derivative dydx.
// This is the _only_ function a subclass must define.
// The other two functions use Rhs_givenB.
inline G4double FCof() const;
void RightHandSide( const G4double y[], G4double dydx[] ) const;
virtual void SetChargeMomentumMass( G4double particleCharge, // in e+ units
G4double MomentumXc,
G4double mass);
private:
G4double fCof_val;
static const G4double fUnitConstant; // Set in G4El_EqRhs.cc
// to 0.299792458
// Coefficient in the Lorentz motion equation (Lorentz force), if the
// electric field B is in Tesla, the particle charge in units of the
// elementary (positron?) charge, the momentum P in MeV/c, and the
// space coordinates and path along the trajectory in mm .
};
inline
G4double G4El_EqRhs::FCof() const
{
return fCof_val;
}
#endif /* G4_EL_EQRHS_DEF */

View File

@ -0,0 +1,76 @@
#include "G4El_MagEqRhs.hh"
#include "G4Mag_SpinEqRhs.hh"
#include "G4MagneticField.hh"
#include "G4ThreeVector.hh"
#include "G4El_UsualEqRhs.hh"
#include "G4ElectricField.hh"
#include "G4ios.hh"
G4El_MagEqRhs::G4El_MagEqRhs( G4Mag_EqRhs *Meq, G4El_EqRhs *Eeq,G4Field* field)
:G4EquationOfMotion(field)
{
fMagEq=Meq;
fElEq=Eeq;
}
G4El_MagEqRhs::~G4El_MagEqRhs()
{;}
void G4El_MagEqRhs::RightHandSide( const G4double y[],
G4double dydx[] )const
{
G4double MagField[3];
G4double ElField[3];
G4double dydx1[12];
G4double dydx2[12];
G4double PositionAndTime[4];
// Position
PositionAndTime[0] = y[0];
PositionAndTime[1] = y[1];
PositionAndTime[2] = y[2];
// Global Time
PositionAndTime[3] = y[7];
// Get Respective Field Values
fMagEq->GetFieldValue(PositionAndTime, MagField) ;
fElEq->GetFieldValue(PositionAndTime, ElField) ;
fMagEq->EvaluateRhsGivenB( y, MagField, &dydx1[0] );
fElEq->EvaluateRhsGivenB( y, ElField, &dydx2[0] );
G4int i;
i=0;
for(i=0;i==18;i++)
{
dydx[i] = dydx1[i]+dydx2[i];
}
}
void G4El_MagEqRhs::SetChargeMomentumMass( G4double particleCharge, // e+ units
G4double MomentumXc, // MomentumXc
G4double mass) // particleMass
{
fMagEq->SetChargeMomentumMass( particleCharge, MomentumXc , mass);
fElEq->SetChargeMomentumMass( particleCharge,MomentumXc , mass);
}
void G4El_MagEqRhs::EvaluateRhsGivenB( const G4double y[],
const G4double B[3],
G4double dydx[] ) const
{}

View File

@ -0,0 +1,42 @@
#ifndef G4EL_MAGEQRHS
#define G4EL_MAGEQRHS
#include "G4Types.hh"
#include "G4Mag_EqRhs.hh"
#include "G4El_UsualEqRhs.hh"
#include "G4ios.hh"
#include "G4EquationOfMotion.hh"
class G4MagneticField;
class G4ElectricField;
class G4Mag_EqRhs;
class G4El_UsualEqRhs;
class G4El_MagEqRhs : public G4EquationOfMotion
{
public: // with description
G4El_MagEqRhs( G4Mag_EqRhs* , G4El_EqRhs*,G4Field* field );
~G4El_MagEqRhs();
// Constructor and destructor. No actions.
void RightHandSide( const G4double y[], G4double dydx[] ) const;
virtual void SetChargeMomentumMass( G4double particleCharge, // in e+ units
G4double MomentumXc,
G4double mass);
void EvaluateRhsGivenB( const G4double y[],
const G4double E[3],
G4double dydx[] ) const;
private:
G4Mag_EqRhs *fMagEq;
G4El_EqRhs *fElEq;
};
#endif /* G4EL_MAGEQRHS */

View File

@ -0,0 +1,110 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4El_UsualEqRhs.cc,v 1.10 2003/11/05 17:31:31 japost Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
//
// This is the 'standard' right-hand side for the equation of motion
// of a charged particle in a magnetic field.
//
// Initial version: J. Apostolakis, January 13th, 1997
//
// --------------------------------------------------------------------
#include "G4UnitsTable.hh"
#include "G4El_UsualEqRhs.hh"
#include "G4ElectricField.hh"
#include "G4ios.hh"
G4El_UsualEqRhs::G4El_UsualEqRhs( G4ElectricField* ElField )
: G4El_EqRhs( ElField ) {}
G4El_UsualEqRhs::~G4El_UsualEqRhs() {}
void
G4El_UsualEqRhs::EvaluateRhsGivenB( const G4double y[],
const G4double E[3],
G4double dydx[] ) const
{
G4double momentum_square = y[3]*y[3] + y[4]*y[4] + y[5]*y[5];
G4double inv_momentum_magnitude = 1.0 / sqrt( momentum_square );
G4double cof = cst*inv_momentum_magnitude;
dydx[0] = y[3]*inv_momentum_magnitude; // (d/ds)x = Vx/V
dydx[1] = y[4]*inv_momentum_magnitude; // (d/ds)y = Vy/V
dydx[2] = y[5]*inv_momentum_magnitude; // (d/ds)z = Vz/V
dydx[3] = cof*(E[0]) ; // Ax = a*(Ex)
dydx[4] = cof*(E[1]) ; // Ay = a*(Ey)
dydx[5] = cof*(E[2]) ; // Az = a*(Ez)
#ifdef DEBUG_FIELD
G4cout<<"LEMuSREl_UsualEqRhs :: posmomE \n"
<< y[0]/100 <<" " << y[1]/100 <<" "<< y[2]/100+5.67 <<" "<<"\n"
<< y[3] <<" " << y[4] <<" "<< y[5] <<" "<<"\n"
<< E[0]/volt*meter <<" " << E[1]/volt*meter <<" "<< E[2]/volt*meter <<" "<<"\n"
<<G4endl;
G4cout<<"LEMuSREl_UsualEqRhs :: dydx \n"
<< dydx[0] <<" " << dydx[1] <<" "<< dydx[2] <<" "<<"\n"
<< dydx[3] <<" " << dydx[4] <<" "<< dydx[5] <<" "<<"\n"
<< dydx[6] <<" " << dydx[7] <<" "<< dydx[8] <<" "<<"\n"
<< dydx[9] <<" " << dydx[10] <<" "<< dydx[11] <<" "<<"\n"
<<G4endl;
// getchar();
#endif
return ;
}
void
G4El_UsualEqRhs:: SetChargeMomentumMass( G4double particleCharge, // in e+ units
G4double MomentumXc,
G4double mass )//mass
{
fInvCurrentMomentumXc= 1.0 / MomentumXc;
cst = particleCharge*eplus*mass;//*c_light;
}
void G4El_UsualEqRhs::RightHandSide( const G4double y[],
G4double dydx[] ) const
{
G4double Field[3];
G4double PositionAndTime[4];
// Position
PositionAndTime[0] = y[0];
PositionAndTime[1] = y[1];
PositionAndTime[2] = y[2];
// Global Time
PositionAndTime[3] = y[7]; // See G4FieldTrack::LoadFromArray
#ifdef DEBUG_FIELD
G4cout <<"EL_USUALEQ RIGHT HAND SIDE!"<<G4endl;
#endif
GetFieldValue(PositionAndTime, Field) ;
EvaluateRhsGivenB( y, Field, dydx );
}

View File

@ -0,0 +1,76 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4El_UsualEqRhs.hh,v 1.6 2003/10/31 14:35:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
//
// class G4El_UsualEqRhs
//
// Class description:
//
// This is the standard right-hand side for equation of motion.
// The only case another is required is when using a moving reference
// frame ... or extending the class to include additional Forces,
// eg an electric field
// History:
// - Created: J. Apostolakis, January 13th 1997.
// --------------------------------------------------------------------
#ifndef G4EL_USUAL_EQRHS
#define G4EL_USUAL_EQRHS
#include "G4El_EqRhs.hh"
class G4ElectricField;
class G4El_UsualEqRhs : public G4El_EqRhs
{
public: // with description
G4El_UsualEqRhs( G4ElectricField* ElField );
~G4El_UsualEqRhs();
// Constructor and destructor. No actions.
void EvaluateRhsGivenB( const G4double y[],
const G4double E[3],
G4double dydx[] ) const;
// Given the value of the electric field E, this function
// calculates the value of the derivative dydx.
virtual void SetChargeMomentumMass( G4double particleCharge, // in e+ units
G4double MomentumXc,
G4double mass);
void RightHandSide( const G4double y[], G4double dydx[] ) const;
private:
G4double cst;
G4double fInvCurrentMomentumXc; // This extra state enables us
// to save a square root in a
// critical method.
};
#endif /* G4EL_USUAL_EQRHS */

View File

@ -0,0 +1,119 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4FieldManager.cc,v 1.13 2003/11/08 04:08:13 japost Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// - Augsut 05 T.K.Paraïso add magcomponent l.138
// -------------------------------------------------------------------
#include "G4FieldManager.hh"
#include "G4Field.hh"
#include "G4MagneticField.hh"
#include "G4ChordFinder.hh"
G4FieldManager::G4FieldManager(G4Field *detectorField,
G4ChordFinder *pChordFinder,
G4bool fieldChangesEnergy
)
: fDetectorField(detectorField),
fChordFinder(pChordFinder),
fAllocatedChordFinder(false),
fDefault_Delta_One_Step_Value(0.01*mm),
fDefault_Delta_Intersection_Val(0.001*mm),
fEpsilonMinDefault(5.0e-5),
fEpsilonMaxDefault(0.001),
fEpsilonMin( fEpsilonMinDefault ),
fEpsilonMax( fEpsilonMaxDefault),
fMagComponent(false)
{
fDelta_One_Step_Value= fDefault_Delta_One_Step_Value;
fDelta_Intersection_Val= fDefault_Delta_Intersection_Val;
if ( detectorField )
fFieldChangesEnergy= detectorField->DoesFieldChangeEnergy();
else
fFieldChangesEnergy= fieldChangesEnergy;
}
G4FieldManager::G4FieldManager(G4MagneticField *detectorField)
: fDetectorField(detectorField), fAllocatedChordFinder(true),
fFieldChangesEnergy(false),
fDefault_Delta_One_Step_Value(0.01*mm),
fDefault_Delta_Intersection_Val(0.001*mm),
fEpsilonMinDefault(5.0e-5),
fEpsilonMaxDefault(0.001),
fEpsilonMin( fEpsilonMinDefault ),
fEpsilonMax( fEpsilonMaxDefault),
fMagComponent(true)
{
fChordFinder= new G4ChordFinder( detectorField );
fDelta_One_Step_Value= fDefault_Delta_One_Step_Value;
fDelta_Intersection_Val= fDefault_Delta_Intersection_Val;
}
void G4FieldManager::ConfigureForTrack( const G4Track * )
{
// Default is to do nothing!
;
}
G4FieldManager::~G4FieldManager()
{
if( fAllocatedChordFinder ){
delete fChordFinder;
}
}
void
G4FieldManager::CreateChordFinder(G4MagneticField *detectorMagField)
{
if ( fAllocatedChordFinder )
delete fChordFinder;
fChordFinder= new G4ChordFinder( detectorMagField );
fAllocatedChordFinder= true;
}
G4bool G4FieldManager::SetDetectorField(G4Field *pDetectorField)
{
fDetectorField= pDetectorField;
if ( pDetectorField )
fFieldChangesEnergy= pDetectorField->DoesFieldChangeEnergy();
else
fFieldChangesEnergy= false; // No field
return false;
}
G4bool G4FieldManager::SetDetectorField(G4Field *pDetectorField,G4bool mag)
{
fDetectorField= pDetectorField;
fMagComponent = mag;
if ( pDetectorField )
fFieldChangesEnergy= pDetectorField->DoesFieldChangeEnergy();
else
fFieldChangesEnergy= false; // No field
return false;
}

View File

@ -0,0 +1,191 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4FieldManager.hh,v 1.13 2003/11/08 03:55:16 japost Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
//
// class G4FieldManager
//
// Class description:
//
// A class to manage (Store) a pointer to the Field subclass that
// describes the field of a detector (magnetic, electric or other).
// Also stores a reference to the chord finder.
//
// The G4FieldManager class exists to allow the user program to specify
// the electric, magnetic and/or other field(s) of the detector.
// (OR, in the future, of a part of it - planned to be a logical volume).
// It also stores a pointer to the ChordFinder object that can do the
// propagation in this field. All geometrical track "advancement"
// in the field is handled by this ChordFinder object.
//
// G4FieldManager allows the other classes/object (of the MagneticField
// & other class categories) to find out whether a detector field object
// exists and what that object is.
//
// The Chord Finder must be created either by calling CreateChordFinder
// for a Magnetic Field or by the user creating a a Chord Finder object
// "manually" and setting this pointer.
//
// A default FieldManager is created by the singleton class
// G4NavigatorForTracking and exists before main is called.
// However a new one can be created and given to G4NavigatorForTracking.
//
// Our current design envisions that one Field manager is
// valid for each region detector.
// History:
// - 10.03.97 John Apostolakis, design and implementation.
// - Augsut 05 T.K.Paraïso add magcomponent l.138
// -------------------------------------------------------------------
#ifndef G4FIELDMANAGER_HH
#define G4FIELDMANAGER_HH 1
#include "globals.hh"
class G4Field;
class G4MagneticField;
class G4ElectricField;
class G4ChordFinder;
class G4Track; // Forward reference for parameter configuration
class G4FieldManager
{
public: // with description
G4FieldManager(G4Field *detectorField=0,
G4ChordFinder *pChordFinder=0,
G4bool b=true ); // fieldChangesEnergy is taken from field
// General constructor for any field.
// -> Must be set with field and chordfinder for use.
G4FieldManager(G4MagneticField *detectorMagneticField);
// Creates ChordFinder
// - assumes pure magnetic field (so Energy constant)
virtual ~G4FieldManager();
G4bool SetDetectorField(G4Field *detectorField);
// TAO
G4bool SetDetectorField(G4Field *detectorField, G4bool magcomponent);
inline const G4Field* GetDetectorField() const;
inline G4bool DoesFieldExist() const;
// Set, get and check the field object
void CreateChordFinder(G4MagneticField *detectorMagField);
inline void SetChordFinder(G4ChordFinder *aChordFinder);
inline G4ChordFinder* GetChordFinder();
inline const G4ChordFinder* GetChordFinder() const;
// Create, set or get the associated Chord Finder
virtual void ConfigureForTrack( const G4Track * );
// Setup the choice of the configurable parameters
// relying on the current track's energy, particle identity, ..
// Note: In addition to the values of member variables,
// a user can use this to change the ChordFinder, the field, ...
public: // with description
inline G4double GetDeltaIntersection() const; // virtual ?
// Accuracy for boundary intersection.
inline G4double GetDeltaOneStep() const; // virtual ?
// Accuracy for one tracking/physics step.
inline void SetAccuraciesWithDeltaOneStep(G4double valDeltaOneStep);
// Sets both accuracies, maintaining a fixed ratio for accuracties
// of volume Intersection and Integration (in One Step)
inline void SetDeltaOneStep(G4double valueD1step);
// Set accuracy for integration of one step. (only)
inline void SetDeltaIntersection(G4double valueDintersection);
// Set accuracy of intersection of a volume. (only)
inline G4double GetMinimumEpsilonStep() const;
inline void SetMinimumEpsilonStep( G4double newEpsMin );
// Minimum for Relative accuracy of a Step
inline G4double GetMaximumEpsilonStep() const;
inline void SetMaximumEpsilonStep( G4double newEpsMax );
// Maximum for Relative accuracy of a Step
inline G4bool DoesFieldChangeEnergy() const;
inline void SetFieldChangesEnergy(G4bool value);
// For electric field this should be true
// For electromagnetic field this should be true
// For magnetic field this should be false
inline G4bool FieldHasMagComponent() const;
inline void SetFieldMagComponent(G4bool value);
// For electric field this should be true
// For magnetic field this should be false
private:
G4FieldManager(const G4FieldManager&);
G4FieldManager& operator=(const G4FieldManager&);
// Private copy constructor and assignment operator.
private:
G4Field* fDetectorField;
G4ChordFinder* fChordFinder;
G4bool fAllocatedChordFinder; // Did we used "new" to
// create fChordFinder ?
G4bool fFieldChangesEnergy;
// Values for the required accuracies
//
G4double fDelta_One_Step_Value; // for one tracking/physics step
G4double fDelta_Intersection_Val; // for boundary intersection
G4double fDefault_Delta_One_Step_Value; // = 0.25 * mm;
G4double fDefault_Delta_Intersection_Val; // = 0.1 * mm;
// Values for the small possible relative accuracy of a step
// (corresponding to the greatest possible integration accuracy)
G4double fEpsilonMinDefault; // Can be 1.0e-5 to 1.0e-10 ...
G4double fEpsilonMaxDefault; // Can be 1.0e-3 to 1.0e-8 ...
G4double fEpsilonMin;
G4double fEpsilonMax;
//TAO (nb if we add a value which is initialized in constructor: respect the order of declaration - initialization. therefor fMagComponent should be declared after fEpsilonMax .-cf constructors)
G4bool fMagComponent;
};
// Our current design envisions that one Field manager is valid for a region of the detector.
// (eg a detector with electric E and magnetic B field will now treat
// them as one field - and could treat any other field of importance
// as additional components of a single field.)
// Does it make sense to have several instead ?
// Is the lack of elegance of the design (of G4Field) made up
// for by the simplification it allows ?
// Implementation of inline functions
#include "G4FieldManager.icc"
#endif /* G4FIELDMANAGER_HH */

View File

@ -0,0 +1,133 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4FieldManager.icc,v 1.9 2003/11/08 03:39:39 japost Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
//
// G4FieldManager inline implementation
//
// -------------------------------------------------------------------
inline
const G4Field* G4FieldManager::GetDetectorField() const
{
// If pointer is null, should this raise an exception ??
return fDetectorField;
}
inline
G4bool G4FieldManager::DoesFieldExist() const
{
return (fDetectorField != 0);
}
inline
void G4FieldManager::SetChordFinder(G4ChordFinder *aChordFinder)
{
fChordFinder= aChordFinder;
}
inline
G4ChordFinder* G4FieldManager::GetChordFinder()
{
return fChordFinder;
}
inline
G4double G4FieldManager::GetDeltaIntersection() const
{
return fDelta_Intersection_Val;
}
inline
G4double G4FieldManager::GetDeltaOneStep() const
{
return fDelta_One_Step_Value;
}
inline
void G4FieldManager::SetDeltaOneStep(G4double valDeltaOneStep)
{
fDelta_One_Step_Value= valDeltaOneStep;
}
inline
void G4FieldManager::SetDeltaIntersection(G4double valDeltaIntersection)
{
fDelta_Intersection_Val = valDeltaIntersection;
}
inline
void G4FieldManager::SetAccuraciesWithDeltaOneStep(G4double valDeltaOneStep)
{
fDelta_One_Step_Value= valDeltaOneStep;
fDelta_Intersection_Val = 0.4 * fDelta_One_Step_Value;
}
inline G4bool G4FieldManager::DoesFieldChangeEnergy() const
{ return fFieldChangesEnergy;}
inline void G4FieldManager::SetFieldChangesEnergy(G4bool value)
{ fFieldChangesEnergy = value; }
inline G4bool G4FieldManager:: FieldHasMagComponent() const
{ return fMagComponent; }
inline void G4FieldManager::SetFieldMagComponent(G4bool value)
{ fMagComponent = value;}
// Minimum for Relative accuracy of any Step
inline
G4double G4FieldManager::GetMinimumEpsilonStep() const
{
return fEpsilonMin;
}
inline
void G4FieldManager::SetMinimumEpsilonStep( G4double newEpsMin )
{
if( (newEpsMin > 0.0) && (fabs(1.0+newEpsMin) > 1.0) )
{
fEpsilonMin = newEpsMin;
}
}
// Maximum for Relative accuracy of any Step
inline
G4double G4FieldManager::GetMaximumEpsilonStep() const
{
return fEpsilonMax;
}
inline
void G4FieldManager::SetMaximumEpsilonStep( G4double newEpsMax )
{
if( (newEpsMax > 0.0)
&& (newEpsMax >= fEpsilonMin )
&& (fabs(1.0+newEpsMax)>1.0) )
{
fEpsilonMax = newEpsMax;
}
}

View File

@ -0,0 +1,209 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4MuonDecayChannel.cc,v 1.13 2005/06/23 11:02:26 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// History: first implementation, based on object model of
// 30 May 1997 H.Kurashige
//
// Fix bug in calcuration of electron energy in DecayIt 28 Feb. 01 H.Kurashige
//2005
// M. Melissas ( melissas AT cppm.in2p3.fr)
// J. Brunner ( brunner AT cppm.in2p3.fr)
// Adding V-A fluxes for neutrinos using a new algortithm :
// ------------------------------------------------------------
#include "G4ParticleDefinition.hh"
#include "G4DecayProducts.hh"
#include "G4VDecayChannel.hh"
#include "G4MuonDecayChannel.hh"
#include "Randomize.hh"
#include "G4LorentzVector.hh"
#include "G4LorentzRotation.hh"
#include "G4RotationMatrix.hh"
G4MuonDecayChannel::G4MuonDecayChannel(const G4String& theParentName,
G4double theBR)
:G4VDecayChannel("Muon Decay",1)
{
// set names for daughter particles
if (theParentName == "mu+") {
SetBR(theBR);
SetParent("mu+");
SetNumberOfDaughters(3);
SetDaughter(0, "e+");
SetDaughter(1, "nu_e");
SetDaughter(2, "anti_nu_mu");
} else if (theParentName == "Mu") {
SetBR(theBR);
SetParent("Mu");
SetNumberOfDaughters(3);
SetDaughter(0, "e+");
SetDaughter(1, "nu_e");
SetDaughter(2, "anti_nu_mu");
} else if (theParentName == "mu-") {
SetBR(theBR);
SetParent("mu-");
SetNumberOfDaughters(3);
SetDaughter(0, "e-");
SetDaughter(1, "anti_nu_e");
SetDaughter(2, "nu_mu");
} else {
#ifdef G4VERBOSE
if (GetVerboseLevel()>0) {
G4cout << "G4MuonDecayChannel:: constructor :";
G4cout << " parent particle is not muon but ";
G4cout << theParentName << G4endl;
}
#endif
}
}
G4MuonDecayChannel::~G4MuonDecayChannel()
{
}
G4DecayProducts *G4MuonDecayChannel::DecayIt(G4double)
{
// this version neglects muon polarization,and electron mass
// assumes the pure V-A coupling
// the Neutrinos are correctly V-A.
#ifdef G4VERBOSE
if (GetVerboseLevel()>1) G4cout << "G4MuonDecayChannel::DecayIt ";
#endif
if (parent == 0) FillParent();
if (daughters == 0) FillDaughters();
// parent mass
G4double parentmass = parent->GetPDGMass();
//daughters'mass
G4double daughtermass[3];
G4double sumofdaughtermass = 0.0;
for (G4int index=0; index<3; index++){
daughtermass[index] = daughters[index]->GetPDGMass();
sumofdaughtermass += daughtermass[index];
}
//create parent G4DynamicParticle at rest
G4ThreeVector dummy;
G4DynamicParticle * parentparticle = new G4DynamicParticle( parent, dummy, 0.0);
//create G4Decayproducts
G4DecayProducts *products = new G4DecayProducts(*parentparticle);
delete parentparticle;
// calculate daughter momentum
G4double daughtermomentum[3];
// calcurate electron energy
G4double xmax = (1.0+daughtermass[0]*daughtermass[0]/parentmass/parentmass);
G4double x;
G4double Ee,Ene;
G4double gam;
G4double EMax=parentmass/2-daughtermass[0];
//Generating Random Energy
do {
Ee=G4UniformRand();
do{
x=xmax*G4UniformRand();
gam=G4UniformRand();
}while (gam >x*(1.-x));
Ene=x;
} while ( Ene < (1.-Ee));
G4double Enm=(2.-Ee-Ene);
//initialisation of rotation parameters
G4double costheta,sintheta,rphi,rtheta,rpsi;
costheta= 1.-2./Ee-2./Ene+2./Ene/Ee;
sintheta=sqrt(1.-costheta*costheta);
rphi=twopi*G4UniformRand()*rad;
rtheta=(acos(2.*G4UniformRand()-1.));
rpsi=twopi*G4UniformRand()*rad;
G4RotationMatrix *rot= new G4RotationMatrix();
rot->set(rphi,rtheta,rpsi);
//electron 0
daughtermomentum[0]=sqrt(Ee*Ee*EMax*EMax+2.0*Ee*EMax * daughtermass[0]);
G4ThreeVector *direction0 =new G4ThreeVector(0.0,0.0,1.0);
*direction0 *= *rot;
G4DynamicParticle * daughterparticle = new G4DynamicParticle ( daughters[0], *direction0 * daughtermomentum[0]);
products->PushProducts(daughterparticle);
//electronic neutrino 1
daughtermomentum[1]=sqrt(Ene*Ene*EMax*EMax+2.0*Ene*EMax * daughtermass[1]);
G4ThreeVector *direction1 =new G4ThreeVector(sintheta,0.0,costheta);
*direction1 *= *rot;
G4DynamicParticle * daughterparticle1 = new G4DynamicParticle ( daughters[1], *direction1 * daughtermomentum[1]);
products->PushProducts(daughterparticle1);
//muonnic neutrino 2
daughtermomentum[2]=sqrt(Enm*Enm*EMax*EMax +2.0*Enm*EMax*daughtermass[2]);
G4ThreeVector *direction2 =new G4ThreeVector(-Ene/Enm*sintheta,0,-Ee/Enm-Ene/Enm*costheta);
*direction2 *= *rot;
G4DynamicParticle * daughterparticle2 = new G4DynamicParticle ( daughters[2],
*direction2 * daughtermomentum[2]);
products->PushProducts(daughterparticle2);
// output message
#ifdef G4VERBOSE
if (GetVerboseLevel()>1) {
G4cout << "G4MuonDecayChannel::DecayIt ";
G4cout << " create decay products in rest frame " <<G4endl;
products->DumpInfo();
}
#endif
return products;
}

View File

@ -0,0 +1,63 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4MuonDecayChannel.hh,v 1.5 2001/07/11 10:01:56 gunter Exp $
// GEANT4 tag $Name: geant4-07-01 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// History: first implementation, based on object model of
// 30 May 1997 H.Kurashige
// ------------------------------------------------------------
#ifndef G4MuonDecayChannel_h
#define G4MuonDecayChannel_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "G4VDecayChannel.hh"
class G4MuonDecayChannel :public G4VDecayChannel
{
// Class Decription
// This class describes muon decay kinemtics.
// This version neglects muon polarization
// assumes the pure V-A coupling
// gives incorrect energy spectrum for neutrinos
//
public: // With Description
//Constructors
G4MuonDecayChannel(const G4String& theParentName,
G4double theBR);
// Destructor
virtual ~G4MuonDecayChannel();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
};
#endif

View File

@ -0,0 +1,460 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VDecayChannel.cc,v 1.16 2004/12/02 08:09:00 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// History: first implementation, based on object model of
// 27 July 1996 H.Kurashige
// 30 May 1997 H.Kurashige
// 23 Mar. 2000 H.Weber : add GetAngularMomentum
// ------------------------------------------------------------
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
#include "G4DecayTable.hh"
#include "G4DecayProducts.hh"
#include "G4VDecayChannel.hh"
const G4String G4VDecayChannel::noName = " ";
G4VDecayChannel::G4VDecayChannel(const G4String &aName, G4int Verbose)
:kinematics_name(aName),
rbranch(0.0),
numberOfDaughters(0),
parent_name(0), daughters_name(0),
particletable(0),
parent(0), daughters(0),
parent_mass(0.0), daughters_mass(0),
verboseLevel(Verbose)
{
// set pointer to G4ParticleTable (static and singleton object)
particletable = G4ParticleTable::GetParticleTable();
}
G4VDecayChannel::G4VDecayChannel(const G4String &aName,
const G4String& theParentName,
G4double theBR,
G4int theNumberOfDaughters,
const G4String& theDaughterName1,
const G4String& theDaughterName2,
const G4String& theDaughterName3,
const G4String& theDaughterName4 )
:kinematics_name(aName),
rbranch(theBR),
numberOfDaughters(theNumberOfDaughters),
parent_name(0), daughters_name(0),
particletable(0),
parent(0), daughters(0),
parent_mass(0.0), daughters_mass(0),
verboseLevel(1)
{
// set pointer to G4ParticleTable (static and singleton object)
particletable = G4ParticleTable::GetParticleTable();
// parent name
parent_name = new G4String(theParentName);
// cleate array
daughters_name = new G4String*[numberOfDaughters];
for (G4int index=0;index<numberOfDaughters;index++) daughters_name[index]=0;
// daughters' name
if (numberOfDaughters>0) daughters_name[0] = new G4String(theDaughterName1);
if (numberOfDaughters>1) daughters_name[1] = new G4String(theDaughterName2);
if (numberOfDaughters>2) daughters_name[2] = new G4String(theDaughterName3);
if (numberOfDaughters>3) daughters_name[3] = new G4String(theDaughterName4);
}
G4VDecayChannel::G4VDecayChannel(const G4VDecayChannel &right)
{
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
parent = 0;
parent_mass = 0.0;
//create array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++)
{
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
//
daughters_mass = 0;
daughters = 0;
// particle table
particletable = G4ParticleTable::GetParticleTable();
}
G4VDecayChannel & G4VDecayChannel::operator=(const G4VDecayChannel &right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
}
//
parent = 0;
daughters = 0;
parent_mass = 0.0;
daughters_mass = 0;
// particle table
particletable = G4ParticleTable::GetParticleTable();
return *this;
}
G4VDecayChannel::~G4VDecayChannel()
{
if (parent_name != 0) delete parent_name;
ClearDaughtersName();
if (daughters_mass != 0) delete [] daughters_mass;
}
void G4VDecayChannel::ClearDaughtersName()
{
if ( daughters_name != 0) {
if (numberOfDaughters>0) {
#ifdef G4VERBOSE
if (verboseLevel>1) {
G4cout << "G4VDecayChannel::ClearDaughtersName ";
G4cout << "clear all daughters " << G4endl;
}
#endif
for (G4int index=0; index < numberOfDaughters; index++) {
if (daughters_name[index] != 0) delete daughters_name[index];
}
}
delete [] daughters_name;
daughters_name = 0;
}
//
if (daughters != 0) delete [] daughters;
if (daughters_mass != 0) delete [] daughters_mass;
daughters = 0;
daughters_mass = 0;
numberOfDaughters = 0;
}
void G4VDecayChannel::SetNumberOfDaughters(G4int size)
{
if (size >0) {
// remove old contents
ClearDaughtersName();
// cleate array
daughters_name = new G4String*[size];
for (G4int index=0;index<size;index++) daughters_name[index]=0;
numberOfDaughters = size;
}
}
void G4VDecayChannel::SetDaughter(G4int anIndex,
const G4String &particle_name)
{
// check numberOfDaughters is positive
if (numberOfDaughters<=0) {
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cout << "G4VDecayChannel::SetDaughter: ";
G4cout << "Number of daughters is not defined" << G4endl;
}
#endif
return;
}
// check existence of daughters_name array
if (daughters_name == 0) {
// cleate array
daughters_name = new G4String*[numberOfDaughters];
for (G4int index=0;index<numberOfDaughters;index++) {
daughters_name[index]=0;
}
}
// check an index
if ( (anIndex<0) || (anIndex>=numberOfDaughters) ) {
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cout << "G4VDecayChannel::SetDaughter";
G4cout << "index out of range " << anIndex << G4endl;
}
#endif
} else {
// delete the old name if it exists
if (daughters_name[anIndex]!=0) delete daughters_name[anIndex];
// fill the name
daughters_name[anIndex] = new G4String(particle_name);
// refill the array of daughters[] if it exists
if (daughters != 0) FillDaughters();
#ifdef G4VERBOSE
if (verboseLevel>1) {
G4cout << "G4VDecayChannel::SetDaughter[" << anIndex <<"] :";
G4cout << daughters_name[anIndex] << ":" << *daughters_name[anIndex]<<G4endl;
}
#endif
}
}
void G4VDecayChannel::SetDaughter(G4int anIndex, const G4ParticleDefinition * parent_type)
{
if (parent_type != 0) SetDaughter(anIndex, parent_type->GetParticleName());
}
void G4VDecayChannel::FillDaughters()
{
G4int index;
#ifdef G4VERBOSE
if (verboseLevel>1) G4cout << "G4VDecayChannel::FillDaughters()" <<G4endl;
#endif
if (daughters != 0) delete [] daughters;
// parent mass
if (parent == 0) FillParent();
G4double parentmass = parent->GetPDGMass();
//
G4double sumofdaughtermass = 0.0;
if ((numberOfDaughters <=0) || (daughters_name == 0) ){
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cout << "G4VDecayChannel::FillDaughters ";
G4cout << "[ " << parent->GetParticleName() << " ]";
G4cout << "numberOfDaughters is not defined yet";
}
#endif
daughters = 0;
G4Exception("G4VDecayChannel::FillDaughters");
}
//create and set the array of pointers to daughter particles
daughters = new G4ParticleDefinition*[numberOfDaughters];
if (daughters_mass != 0) delete [] daughters_mass;
daughters_mass = new G4double[numberOfDaughters];
// loop over all daughters
for (index=0; index < numberOfDaughters; index++) {
if (daughters_name[index] == 0) {
// daughter name is not defined
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cout << "G4VDecayChannel::FillDaughters ";
G4cout << "[ " << parent->GetParticleName() << " ]";
G4cout << index << "-th daughter is not defined yet" << G4endl;
}
#endif
daughters[index] = 0;
G4Exception("G4VDecayChannel::FillDaughters");
}
//search daughter particles in the particle table
daughters[index] = particletable->FindParticle(*daughters_name[index]);
if (daughters[index] == 0) {
// can not find the daughter particle
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cout << "G4VDecayChannel::FillDaughters ";
G4cout << "[ " << parent->GetParticleName() << " ]";
G4cout << index << ":" << *daughters_name[index];
G4cout << " is not defined !!" << G4endl;
G4cout << " The BR of this decay mode is set to zero " << G4endl;
}
#endif
SetBR(0.0);
return;
}
#ifdef G4VERBOSE
if (verboseLevel>1) {
G4cout << index << ":" << *daughters_name[index];
G4cout << ":" << daughters[index] << G4endl;
}
#endif
daughters_mass[index] = daughters[index]->GetPDGMass();
sumofdaughtermass += daughters[index]->GetPDGMass();
} // end loop over all daughters
// check sum of daghter mass
G4double widthMass = parent->GetPDGWidth();
if ( (parent->GetParticleType() != "nucleus") &&
(sumofdaughtermass > parentmass + 5*widthMass) ){
// !!! illegal mass !!!
#ifdef G4VERBOSE
if (GetVerboseLevel()>0) {
G4cout << "G4VDecayChannel::FillDaughters ";
G4cout << "[ " << parent->GetParticleName() << " ]";
G4cout << " Energy/Momentum conserevation breaks " <<G4endl;
if (GetVerboseLevel()>1) {
G4cout << " parent:" << *parent_name;
G4cout << " mass:" << parentmass/GeV << "[GeV/c/c]" <<G4endl;
for (index=0; index < numberOfDaughters; index++){
G4cout << " daughter " << index << ":" << *daughters_name[index];
G4cout << " mass:" << daughters[index]->GetPDGMass()/GeV;
G4cout << "[GeV/c/c]" <<G4endl;
}
}
}
#endif
}
}
void G4VDecayChannel::FillParent()
{
if (parent_name == 0) {
// parent name is not defined
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cout << "G4VDecayChannel::FillParent ";
G4cout << ": parent name is not defined !!" << G4endl;
}
#endif
parent = 0;
G4Exception("G4VDecayChannel::FillParent");
}
// search parent particle in the particle table
parent = particletable->FindParticle(*parent_name);
if (parent == 0) {
// parent particle does not exist
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cout << "G4VDecayChannel::FillParent ";
G4cout << *parent_name << " does not exist !!" << G4endl;
}
#endif
G4Exception("G4VDecayChannel::FillParent");
}
parent_mass = parent->GetPDGMass();
}
void G4VDecayChannel::SetParent(const G4ParticleDefinition * parent_type)
{
if (parent_type != 0) SetParent(parent_type->GetParticleName());
}
G4int G4VDecayChannel::GetAngularMomentum()
{
// determine angular momentum
// fill pointers to daughter particles if not yet set
if (daughters == 0) FillDaughters();
const G4int PiSpin = parent->GetPDGiSpin();
const G4int PParity = parent->GetPDGiParity();
if (2==numberOfDaughters) { // up to now we can only handle two particle decays
const G4int D1iSpin = daughters[0]->GetPDGiSpin();
const G4int D1Parity = daughters[0]->GetPDGiParity();
const G4int D2iSpin = daughters[1]->GetPDGiSpin();
const G4int D2Parity = daughters[1]->GetPDGiParity();
const G4int MiniSpin = std::abs (D1iSpin - D2iSpin);
const G4int MaxiSpin = D1iSpin + D2iSpin;
const G4int lMax = (PiSpin+D1iSpin+D2iSpin)/2; // l is allways int
G4int lMin;
#ifdef G4VERBOSE
if (verboseLevel>1) {
G4cout << "iSpin: " << PiSpin << " -> " << D1iSpin << " + " << D2iSpin << G4endl;
G4cout << "2*jmin, 2*jmax, lmax " << MiniSpin << " " << MaxiSpin << " " << lMax << G4endl;
}
#endif
for (G4int j=MiniSpin; j<=MaxiSpin; j+=2){ // loop over all possible spin couplings
lMin = std::abs(PiSpin-j)/2;
#ifdef G4VERBOSE
if (verboseLevel>1)
G4cout << "-> checking 2*j=" << j << G4endl;
#endif
for (G4int l=lMin; l<=lMax; l++) {
#ifdef G4VERBOSE
if (verboseLevel>1)
G4cout << " checking l=" << l << G4endl;
#endif
if (l%2==0) {
if (PParity == D1Parity*D2Parity) { // check parity for this l
return l;
}
} else {
if (PParity == -1*D1Parity*D2Parity) { // check parity for this l
return l;
}
}
}
}
} else {
G4Exception ("G4VDecayChannel::GetAngularMomentum: Sorry, can't handle 3 particle decays (up to now)");
}
G4Exception ("G4VDecayChannel::GetAngularMomentum: Can't find angular momentum for this decay!");
return 0;
}
void G4VDecayChannel::DumpInfo()
{
G4cout << " BR: " << rbranch << " [" << kinematics_name << "]";
G4cout << " : " ;
for (G4int index=0; index < numberOfDaughters; index++)
{
if(daughters_name[index] != 0) {
G4cout << " " << *(daughters_name[index]);
} else {
G4cout << " not defined ";
}
}
G4cout << G4endl;
}
const G4String& G4VDecayChannel::GetNoName() const
{
return noName;
}

View File

@ -0,0 +1,290 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VDecayChannel.hh,v 1.11 2004/12/02 08:08:58 kurasige Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// History: first implementation, based on object model of
// 27 July 1996 H.Kurashige
// 30 May 1997 H.Kurashige
// 23 Mar. 2000 H.Weber : add GetAngularMomentum()
// ------------------------------------------------------------
#ifndef G4VDecayChannel_h
#define G4VDecayChannel_h 1
#include "G4ios.hh"
#include "globals.hh"
#include <cmath>
#include "G4ThreeVector.hh"
class G4ParticleDefinition;
class G4DecayProducts;
class G4ParticleTable;
class G4VDecayChannel
{
// Class Description
// This class is a abstract class to describe decay kinematics
//
public:
//Constructors
G4VDecayChannel(const G4String &aName, G4int Verbose = 1);
G4VDecayChannel(const G4String &aName,
const G4String& theParentName,
G4double theBR,
G4int theNumberOfDaughters,
const G4String& theDaughterName1,
const G4String& theDaughterName2 = "",
const G4String& theDaughterName3 = "",
const G4String& theDaughterName4 = "" );
// Destructor
virtual ~G4VDecayChannel();
private:
// copy constructor and assignment operatotr
G4VDecayChannel(const G4VDecayChannel &);
G4VDecayChannel & operator=(const G4VDecayChannel &);
public:
// equality operators
G4int operator==(const G4VDecayChannel &right) const {return (this == &right);}
G4int operator!=(const G4VDecayChannel &right) const {return (this != &right);}
// less-than operator is defined for G4DecayTable
G4int operator<(const G4VDecayChannel &right) const;
public: // With Description
virtual G4DecayProducts* DecayIt(G4double parentMass = -1.0) = 0;
public: // With Description
//get kinematics name
G4String GetKinematicsName() const;
//get branching ratio
G4double GetBR() const;
//get number of daughter particles
G4int GetNumberOfDaughters() const;
//get the pointer to the parent particle
G4ParticleDefinition * GetParent();
//get the pointer to a daughter particle
G4ParticleDefinition * GetDaughter(G4int anIndex);
//get the angular momentum of the decay
G4int GetAngularMomentum();
//get the name of the parent particle
const G4String& GetParentName() const;
//get the name of a daughter particle
const G4String& GetDaughterName(G4int anIndex) const;
// get mass of parent
G4double GetParentMass() const;
G4double GetDaughterMass(G4int anIndex) const;
G4ThreeVector GetParentPolarization();
//set the parent particle (by name or by pointer)
void SetParent(const G4ParticleDefinition * particle_type);
void SetParent(const G4String &particle_name);
//set branching ratio
void SetBR(G4double value);
//set number of daughter particles
void SetNumberOfDaughters(G4int value);
//set a daughter particle (by name or by pointer)
void SetDaughter(G4int anIndex,
const G4ParticleDefinition * particle_type);
void SetDaughter(G4int anIndex,
const G4String &particle_name);
protected:
// kinematics name
G4String kinematics_name;
// branching ratio [0.0 - 1.0]
G4double rbranch;
// number of daughters
G4int numberOfDaughters;
// parent particle
G4String* parent_name;
//daughter particles
G4String** daughters_name;
protected: // With Description
// celar daughters array
void ClearDaughtersName();
protected:
// pointer to particle table
G4ParticleTable* particletable;
// temporary buffers of pointers to G4ParticleDefinition
G4ParticleDefinition* parent;
G4ParticleDefinition** daughters;
// parent mass
G4double parent_mass;
G4double* daughters_mass;
//parent theParentPolarization
G4ThreeVector theParentPolarization;
// fill daughters array
void FillDaughters();
// fill parent
void FillParent();
public: // With Description
void SetVerboseLevel(G4int value);
G4int GetVerboseLevel() const;
void DumpInfo();
private:
const G4String& GetNoName() const;
private:
// controle flag for output message
G4int verboseLevel;
// 0: Silent
// 1: Warning message
// 2: More
static const G4String noName;
public:
void SetParentPolarization(G4ThreeVector polar);
};
inline
G4int G4VDecayChannel::operator<(const G4VDecayChannel &right) const
{
return (this->rbranch < right.rbranch);
}
inline
G4ParticleDefinition* G4VDecayChannel::GetDaughter(G4int anIndex)
{
//pointers to daughter particles are filled, if they are not set yet
if (daughters == 0) FillDaughters();
//get the pointer to a daughter particle
if ( (anIndex>=0) && (anIndex<numberOfDaughters) ) {
return daughters[anIndex];
} else {
if (verboseLevel>0)
G4cout << "G4VDecayChannel::GetDaughter index out of range "<<anIndex<<G4endl;
return 0;
}
}
inline
const G4String& G4VDecayChannel::GetDaughterName(G4int anIndex) const
{
if ( (anIndex>=0) && (anIndex<numberOfDaughters) ) {
return *daughters_name[anIndex];
} else {
if (verboseLevel>0){
G4cout << "G4VDecayChannel::GetDaughterName ";
G4cout << "index out of range " << anIndex << G4endl;
}
return GetNoName();
}
}
inline
G4double G4VDecayChannel::GetDaughterMass(G4int anIndex) const
{
if ( (anIndex>=0) && (anIndex<numberOfDaughters) ) {
return daughters_mass[anIndex];
} else {
if (verboseLevel>0){
G4cout << "G4VDecayChannel::GetDaughterMass ";
G4cout << "index out of range " << anIndex << G4endl;
}
return 0.0;
}
}
inline
G4ParticleDefinition* G4VDecayChannel::GetParent()
{
//the pointer to the parent particle is filled, if it is not set yet
if (parent == 0) FillParent();
//get the pointer to the parent particle
return parent;
}
inline
const G4String& G4VDecayChannel::GetParentName() const
{
return *parent_name;
}
inline
G4double G4VDecayChannel::GetParentMass() const
{
return parent_mass;
}
inline
void G4VDecayChannel::SetParent(const G4String &particle_name)
{
if (parent_name != 0) delete parent_name;
parent_name = new G4String(particle_name);
parent = 0;
}
inline
G4int G4VDecayChannel::GetNumberOfDaughters() const
{
return numberOfDaughters;
}
inline
G4String G4VDecayChannel::GetKinematicsName() const { return kinematics_name; }
inline
void G4VDecayChannel::SetBR(G4double value){ rbranch = value; }
inline
G4double G4VDecayChannel::GetBR() const { return rbranch; }
inline
void G4VDecayChannel::SetVerboseLevel(G4int value){ verboseLevel = value; }
inline
G4int G4VDecayChannel::GetVerboseLevel() const { return verboseLevel; }
inline G4ThreeVector G4VDecayChannel::GetParentPolarization(){return theParentPolarization;}
inline void G4VDecayChannel::SetParentPolarization(G4ThreeVector polar){theParentPolarization=polar;}
#endif

View File

@ -0,0 +1,8 @@
Geant4 ElectricField update files:
Copy files in the following directories:
G4El_EqRhs -----> $G4Install/source/geometry/magneticfield /src and /include
G4El_UsualEqRhs -----> $G4Install/source/geometry/magneticfield /src and /include
G4ChordFinder -----> $G4Install/source/geometry/magneticfield /src and /include

View File

@ -0,0 +1,42 @@
# In order to handle the LEMuSR new types of field
cp G4ChordFinder.cc $G4INSTALL/source/geometry/magneticfield/src/
cp G4ChordFinder.hh $G4INSTALL/source/geometry/magneticfield/include/
# For the FieldHasMagComponent boolean variable
cp G4FieldManager.cc $G4INSTALL/source/geometry/magneticfield/src/
cp G4FieldManager.hh $G4INSTALL/source/geometry/magneticfield/include/
cp G4FieldManager.icc $G4INSTALL/source/geometry/magneticfield/include/
# Better equations of motions including time update
cp G4El_EqRhs.cc $G4INSTALL/source/geometry/magneticfield/src/
cp G4El_EqRhs.hh $G4INSTALL/source/geometry/magneticfield/include/
cp G4El_UsualEqRhs.cc $G4INSTALL/source/geometry/magneticfield/src/
cp G4El_UsualEqRhs.hh $G4INSTALL/source/geometry/magneticfield/include/
# Enable the muon decay channel for "Mu" particle
# Set parent polarization
cp G4VDecayChannel.cc $G4INSTALL/source/particles/management/src/
cp G4VDecayChannel.hh $G4INSTALL/source/particles/management/include/
cp G4MuonDecayChannel.cc $G4INSTALL/source/particles/management/src/
cp G4MuonDecayChannel.hh $G4INSTALL/source/particles/management/include/
#cd $G4INSTALL/source/geometry/magneticfield/
#gmake clean
#gmake
#cd $G4INSTALL/source/particles/management/
#gmake clean
#gmake
cd $G4INSTALL/source
gmake
cd $G4WORKDIR

View File

@ -0,0 +1,74 @@
# $Id$
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
name := LEMuSR
G4TARGET := $(name)
G4EXLIB := true
ifndef G4INSTALL
G4INSTALL = ../
endif
.PHONY: all
all: lib bin
include $(G4INSTALL)/config/architecture.gmk
include $(G4INSTALL)/config/binmake.gmk
########################### TRIUMF ###############################
#CPPFLAGS += -I$(G4INSTALL)/spintest/triumf/spintest/include
########################### ROOT #################################
ifdef ROOTSYS
ifndef G4UI_USE_ROOT
CPPFLAGS += -DG4ANALYSIS_USE_ROOT $(shell $(ROOTSYS)/bin/root-config --cflags)
ROOTLIBS = $(shell $(ROOTSYS)/bin/root-config --nonew --glibs) -lMinuit -lHtml
ROOTLIBS := $(filter-out -lNew,$(ROOTLIBS))
ROOTLIBS := $(filter-out -lThread,$(ROOTLIBS))
ROOTLIBS := $(filter-out -lpthread,$(ROOTLIBS))
LDLIBS += $(ROOTLIBS)
endif
endif
ifdef ASYM_USE_LEMU
CPPFLAGS += -DASYM_USE_LEMU
endif
ifdef LEMU_TEST_ASYM
CPPFLAGS += -DLEMU_TEST_ASYM
endif
ifdef LEMU_TEST_FIELD
CPPFLAGS += -DLEMU_TEST_FIELD
endif
ifdef LEMU_TEST_CFOIL
CPPFLAGS += -DLEMU_TEST_CFOIL
endif
ifdef LEMU_TEST_FOCAL_LENGTH
CPPFLAGS += -DLEMU_TEST_FOCAL_LENGTH
endif
ifdef G4SRVERBOSE
CPPFLAGS += -DG4SRVERBOSE
endif
ifdef DEBUG_INTERPOLATING_FIELD
CPPFLAGS += -DDEBUG_INTERPOLATING_FIELD
endif
ifdef NO_CFOIL
CPPFLAGS += -DNO_CFOIL
endif
ifdef LEMU_GET_NEWMAPS
CPPFLAGS += -DLEMU_GET_NEWMAPS
endif
ifdef LEMU_TRANSVERSE_FIELD
CPPFLAGS += -DLEMU_TRANSVERSE_FIELD
endif

179
geant4/TaoLEMuSR/LEMuSR.cc Normal file
View File

@ -0,0 +1,179 @@
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//*
// LOW ENERGY MUON SPIN RELAXATION, ROTATION, RADIATION Geant4 SIMULATION
// ID : LEMuSR.cc , v 1.2
// AUTHOR: Taofiq PARAISO
// DATE : 2004-06-24 09:57
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
//
// & &&&&&&&&&& &&&&&&& &&&&&&&&
// & & && && & &&
// & & & & & & &&
// & &&&&&&& & & &&&&&& &&&&&&&&
// & & & && & & &&
// & & && & & && && & &
// &&&&&&&&&& &&&&&&&&&& & &&&&& && &&&&&&& & &&
// &
// &
// &
// &
//
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
// I G4 CLASSES
#include "G4RunManager.hh"
#include "G4UImanager.hh"
#include "G4UIterminal.hh"
#include "G4UItcsh.hh"
#include "G4ios.hh"
#include <iomanip>
// II LEMuSR CLASSES
// a_ Mandatory Classes
#include "LEMuSRDetectorConstruction.hh"
#include "LEMuSRPhysicsList.hh"
#include "PhysicsList.hh"
#include "LEMuSRPrimaryGeneratorAction.hh"
// b_ Optionnal Classes
#include "LEMuSRRunAction.hh"
#include "LEMuSREventAction.hh"
#include "LEMuSRSteppingAction.hh"
#include "LEMuSRStackingAction.hh"
#include "LEMuSRTrackingAction.hh"
// III TEST STEPPING ACTIONS CLASSES
#include "AsymCheck.hh"
#include "FieldCheck.hh"
#include "TDCheck.hh"
#include "FocalLengthTest.hh"
// IV LEMuSR VISUALIZATION CLASS
#include "LEMuSRVisManager.hh"
// V Interactive root xwindow
#ifdef G4UI_USE_ROOT
#include "G4UIRoot.hh"
#endif
int main() //argc:: defines the user interface
{
// random numbers
time_t myseed;
time(&myseed);
RanecuEngine *theRanGenerator = new RanecuEngine;
theRanGenerator->setSeed(myseed);
HepRandom::setTheEngine(theRanGenerator);
//! 1 The run manager construction
G4RunManager* runManager = new G4RunManager;
//! 2 The three mandatory classes
//! 2.1 LEMuSR Initialization classes
LEMuSRDetectorConstruction* lemuDetector = new LEMuSRDetectorConstruction();
LEMuSRPhysicsList* lemuPhysicsList = new LEMuSRPhysicsList();
//! 2.2 Setting the mandatory Initialization classes
runManager ->SetUserInitialization( lemuDetector );
runManager ->SetUserInitialization( lemuPhysicsList );
//! 2.3 LEMuSR Action class
LEMuSRPrimaryGeneratorAction* lemuPGA = new LEMuSRPrimaryGeneratorAction();
//! 2.4 Setting the mandatory Action class
runManager ->SetUserAction( lemuPGA );
//! 3 The optionnal classes
runManager ->SetUserAction( new LEMuSRRunAction());
runManager ->SetUserAction( new LEMuSREventAction());// scintillators, sensitive detectors
runManager ->SetUserAction( new LEMuSRTrackingAction());
runManager ->SetUserAction( new LEMuSRStackingAction());
//! Optionnal stepping action: enable one at once only
#if defined LEMU_TEST_ASYM
runManager ->SetUserAction( new AsymCheck()); //! To test the asymmetry
#elif defined LEMU_TEST_FIELD
runManager ->SetUserAction( new FieldCheck()); //! To test the EM fields
#elif defined LEMU_TEST_CFOIL
runManager ->SetUserAction( new TDCheck()); //! To test the trigger foil
#elif defined LEMU_TEST_FOCAL_LENGTH
runManager ->SetUserAction( new FocalLengthTest()); //! To test the focal length of the einzel lens
#else
runManager ->SetUserAction( new LEMuSRSteppingAction()); //! For a normal run
#endif
//! 4 The visualization manager construction and initialization. It will be initialize only if the env variable G4VIS_USE=1 !
#ifdef G4VIS_USE
LEMuSRVisManager* lemuVisManager = new LEMuSRVisManager;
lemuVisManager -> Initialize();
#endif
//! 5 Initialize G4 kernel
runManager -> Initialize();
//! 6 Configuration of the User Interface manager
G4UImanager* UI = G4UImanager::GetUIpointer();
G4UIsession* session = 0;
#if defined G4UI_USE_ROOT
// G4UIRoot is a ROOT based GUI
session = new G4UIRoot( argc, argv);
#elif defined G4UI_USE_TCSH
session = new G4UIterminal(new G4UItcsh);
G4cout<<"\n G4UI_USE_TCSH! \n"<<G4endl;
#else
session = new G4UIterminal();
#endif
UI->ApplyCommand("/vis/sceneHandler/create");
UI->ApplyCommand("/control/verbose 1");
UI->ApplyCommand("/run/verbose 1");
#if defined LEMU_TEST_ASYM
UI->ApplyCommand("/Detector/MagneticField 50");
UI->ApplyCommand("/Detector/AsymCheck on");
UI->ApplyCommand("/lemuGun/gunPosition 0 0 0");
UI->ApplyCommand("/lemuGun/energy/defined 0");
UI->ApplyCommand("/lemuGun/energy/offset 0");
G4cout<<"\n READY TO TEST ASYMETRY! ";
#endif
//! JOB START
session->SessionStart();
//! JOB TERMINATION
delete session;
#if defined G4VIS_USE
delete lemuVisManager;
#endif
delete runManager;
return 0;
}

View File

@ -0,0 +1,28 @@
LAST MODIFICATIONS
Stacking Manager:
The stacking manager is now responsible for the tracks selection. If the tracks in the staks are not desired partiles they are killed directly. This was done before by the stepping manager and costed more CPU time.
The gamma particles are killed. It seems that some processes for gamma particles have a bug in the 8.0.2.p01 version of geant4. The consequence is a global time that goes back. One should contact them to check it.
DetectorConstruction:
The ring anode was entirely built in the half or quarter detector view modes (cf command Detector/View ). This caused few problems with the geometry controler.
AtRestSpinPrecession:
The spin precession at rest is not calculated if the magnetic field is (0,0,0). This "mute" problem caused crashed in the simulation under rare special conditions. The typical error when a (0,0,0) vector is used or when a vector is divided by zero leads to a "ZMxpvInifiteVector thrown" message.
PhysicsList:
For simplicity the modular physics list was removed and everything is now in LEMuSRPhyiscsList.
SteppingAction:
Some data about the killed particles (killed for looping in fields) are now printed out.
LEMuSRMultipleScattering:
This class is now G4 independant and has its own ParticleChange.

View File

@ -0,0 +1,734 @@
%!PS-Adobe-2.0
%%Title: M10.eps
%%Creator: gnuplot 3.7 patchlevel 3
%%CreationDate: Mon Apr 11 19:41:32 2005
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 554 770
%%Orientation: Landscape
%%Pages: (atend)
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color true def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
0 vshift R show } def
/Rshow { currentpoint stroke M
dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
{pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
/C1 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill
Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore } def
/CircE { stroke [] 0 setdash
hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore } def
/CircW { stroke [] 0 setdash
hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
50 50 translate
0.100 0.100 scale
90 rotate
0 -5040 translate
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
1.000 UL
LTb
1.000 UL
LTa
714 420 M
6248 0 V
1.000 UL
LTb
714 420 M
63 0 V
6185 0 R
-63 0 V
630 420 M
( 0) Rshow
1.000 UL
LTa
714 865 M
6248 0 V
1.000 UL
LTb
714 865 M
63 0 V
6185 0 R
-63 0 V
630 865 M
( 0.1) Rshow
1.000 UL
LTa
714 1310 M
6248 0 V
1.000 UL
LTb
714 1310 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.2) Rshow
1.000 UL
LTa
714 1756 M
6248 0 V
1.000 UL
LTb
714 1756 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.3) Rshow
1.000 UL
LTa
714 2201 M
6248 0 V
1.000 UL
LTb
714 2201 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.4) Rshow
1.000 UL
LTa
714 2646 M
6248 0 V
1.000 UL
LTb
714 2646 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.5) Rshow
1.000 UL
LTa
714 3091 M
6248 0 V
1.000 UL
LTb
714 3091 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.6) Rshow
1.000 UL
LTa
714 3536 M
6248 0 V
1.000 UL
LTb
714 3536 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.7) Rshow
1.000 UL
LTa
714 3982 M
6248 0 V
1.000 UL
LTb
714 3982 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.8) Rshow
1.000 UL
LTa
714 4427 M
6248 0 V
1.000 UL
LTb
714 4427 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.9) Rshow
1.000 UL
LTa
714 4872 M
6248 0 V
1.000 UL
LTb
714 4872 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 1) Rshow
1.000 UL
LTa
714 420 M
0 4452 V
1.000 UL
LTb
714 420 M
0 63 V
0 4389 R
0 -63 V
714 280 M
( 0) Cshow
1.000 UL
LTa
1408 420 M
0 4452 V
1.000 UL
LTb
1408 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 5) Cshow
1.000 UL
LTa
2102 420 M
0 4452 V
1.000 UL
LTb
2102 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 10) Cshow
1.000 UL
LTa
2797 420 M
0 4452 V
1.000 UL
LTb
2797 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 15) Cshow
1.000 UL
LTa
3491 420 M
0 4452 V
1.000 UL
LTb
3491 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 20) Cshow
1.000 UL
LTa
4185 420 M
0 4452 V
1.000 UL
LTb
4185 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 25) Cshow
1.000 UL
LTa
4879 420 M
0 4452 V
1.000 UL
LTb
4879 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 30) Cshow
1.000 UL
LTa
5574 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
5574 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 35) Cshow
1.000 UL
LTa
6268 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
6268 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 40) Cshow
1.000 UL
LTa
6962 420 M
0 4452 V
1.000 UL
LTb
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 45) Cshow
1.000 UL
LTb
714 420 M
6248 0 V
0 4452 V
-6248 0 V
714 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(Meyer's distribution) Cshow
grestore
3838 70 M
(scatt. angle [deg]) Cshow
1.000 UP
1.000 UL
LT0
6311 4739 M
('M10.keV' us 1:2) Rshow
783 4872 Pls
853 4843 Pls
922 4814 Pls
992 4785 Pls
1061 4756 Pls
1131 4712 Pls
1200 4619 Pls
1269 4527 Pls
1339 4434 Pls
1408 4342 Pls
1478 4238 Pls
1547 4121 Pls
1616 4003 Pls
1686 3869 Pls
1755 3734 Pls
1825 3601 Pls
1894 3467 Pls
1964 3334 Pls
2033 3201 Pls
2102 3067 Pls
2172 2939 Pls
2241 2811 Pls
2311 2682 Pls
2380 2554 Pls
2450 2430 Pls
2519 2323 Pls
2588 2215 Pls
2658 2108 Pls
2727 2001 Pls
2797 1903 Pls
2866 1818 Pls
2936 1733 Pls
3005 1648 Pls
3074 1563 Pls
3144 1489 Pls
3213 1420 Pls
3283 1354 Pls
3352 1297 Pls
3421 1239 Pls
3491 1193 Pls
3560 1147 Pls
3630 1101 Pls
3699 1055 Pls
3769 1011 Pls
3838 978 Pls
3907 945 Pls
3977 912 Pls
4046 879 Pls
4116 850 Pls
4185 826 Pls
4255 802 Pls
4324 778 Pls
4393 755 Pls
4463 735 Pls
4532 717 Pls
4602 700 Pls
4671 682 Pls
4740 665 Pls
4810 652 Pls
4879 640 Pls
4949 629 Pls
5018 617 Pls
5088 605 Pls
5157 596 Pls
5226 587 Pls
5296 578 Pls
5365 569 Pls
5435 560 Pls
5504 554 Pls
5574 547 Pls
5643 540 Pls
5712 534 Pls
5782 529 Pls
5851 524 Pls
5921 520 Pls
5990 516 Pls
6060 512 Pls
6129 508 Pls
6198 504 Pls
6268 500 Pls
6337 496 Pls
6407 492 Pls
6476 488 Pls
6545 483 Pls
6615 481 Pls
6684 479 Pls
6754 477 Pls
6823 474 Pls
6893 472 Pls
6962 470 Pls
6594 4739 Pls
1.000 UL
LT1
6311 4599 M
(exp\(-x*x/200.\)) Rshow
6395 4599 M
399 0 V
714 4872 M
63 -5 V
63 -13 V
63 -23 V
63 -32 V
64 -41 V
63 -49 V
63 -57 V
63 -65 V
63 -72 V
63 -80 V
63 -86 V
63 -92 V
63 -98 V
64 -103 V
63 -107 V
63 -112 V
63 -114 V
63 -117 V
63 -120 V
63 -121 V
63 -122 V
63 -123 V
64 -122 V
63 -123 V
63 -121 V
63 -120 V
63 -118 V
63 -115 V
63 -114 V
63 -110 V
63 -107 V
64 -104 V
63 -101 V
63 -96 V
63 -93 V
63 -89 V
63 -85 V
63 -80 V
63 -77 V
63 -72 V
64 -69 V
63 -64 V
63 -61 V
63 -56 V
63 -53 V
63 -50 V
63 -46 V
63 -42 V
63 -39 V
64 -37 V
63 -33 V
63 -30 V
63 -28 V
63 -26 V
63 -23 V
63 -22 V
63 -19 V
63 -17 V
64 -16 V
63 -14 V
63 -13 V
63 -11 V
63 -10 V
63 -9 V
63 -8 V
63 -8 V
63 -6 V
64 -6 V
63 -4 V
63 -5 V
63 -4 V
63 -3 V
63 -3 V
63 -2 V
63 -3 V
63 -2 V
64 -1 V
63 -2 V
63 -1 V
63 -1 V
63 -1 V
63 -1 V
63 0 V
63 -1 V
63 0 V
64 -1 V
63 0 V
63 -1 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 -1 V
64 0 V
63 0 V
63 0 V
63 0 V
63 0 V
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

View File

@ -0,0 +1,167 @@
0.5 1 0
1 0.99351 0.0357481
1.5 0.98702 0.0710264
2 0.98053 0.105832
2.5 0.974041 0.140163
3 0.964167 0.173408
3.5 0.943389 0.203577
4 0.922611 0.232237
4.5 0.901832 0.259387
5 0.881054 0.285026
5.5 0.857766 0.30825
6 0.83169 0.328679
6.5 0.805237 0.347053
7 0.775073 0.361776
7.5 0.744909 0.374314
8 0.714917 0.384761
8.5 0.684995 0.39308
9 0.655074 0.399237
9.5 0.625152 0.403233
10 0.595231 0.405073
10.5 0.566391 0.405532
11 0.537611 0.403961
11.5 0.508832 0.400324
12 0.480052 0.394622
12.5 0.452135 0.387601
13 0.428038 0.381995
13.5 0.403941 0.374666
14 0.379845 0.36562
14.5 0.355748 0.354859
15 0.333765 0.344571
15.5 0.314688 0.335826
16 0.295611 0.32573
16.5 0.276534 0.314285
17 0.257457 0.301498
17.5 0.240716 0.290187
18 0.225189 0.279208
18.5 0.21038 0.268056
19 0.19745 0.258329
19.5 0.18452 0.247699
20 0.173957 0.239428
20.5 0.163673 0.230816
21 0.153388 0.22149
21.5 0.143103 0.211455
22 0.133193 0.201278
22.5 0.125753 0.194237
23 0.118313 0.186686
23.5 0.110873 0.178626
24 0.103433 0.170059
24.5 0.0967697 0.16229
25 0.0914364 0.156345
25.5 0.086103 0.150039
26 0.0807697 0.143374
26.5 0.0754364 0.136352
27 0.0709517 0.130535
27.5 0.0670204 0.125456
28 0.063089 0.120115
28.5 0.0591577 0.114514
29 0.0552264 0.108655
29.5 0.0523566 0.10466
30 0.0496858 0.100881
30.5 0.0470149 0.0969269
31 0.0443441 0.0927989
31.5 0.041722 0.0886018
32 0.0396678 0.0854598
32.5 0.0376137 0.0821853
33 0.0355596 0.0787792
33.5 0.0335055 0.0752425
34 0.0316272 0.0719762
34.5 0.0301299 0.0694702
35 0.0286327 0.0668695
35.5 0.0271354 0.064175
36 0.0256381 0.0613873
36.5 0.0244597 0.0592799
37 0.0235393 0.0577323
37.5 0.0226189 0.0561271
38 0.0216985 0.0544646
38.5 0.0207781 0.0527455
39 0.0198577 0.0509702
39.5 0.0189373 0.0491392
40 0.0180169 0.0472529
40.5 0.0170965 0.045312
41 0.0161761 0.0433168
41.5 0.0152557 0.041268
42 0.0143353 0.0391661
42.5 0.013698 0.0377927
43 0.0132167 0.0368168
43.5 0.0127354 0.0358126
44 0.0122542 0.0347803
44.5 0.0117729 0.0337203
45 0.0112916 0.0326328
45.5 0.0108103 0.0315181
46 0.010329 0.0303765
46.5 0.00984769 0.0292083
47 0.00936639 0.0280139
47.5 0.0088851 0.0267934
48 0.00840381 0.0255473
48.5 0.00807864 0.0247543
49 0.00780923 0.0241159
49.5 0.00753982 0.0234628
50 0.00727041 0.0227952
50.5 0.007001 0.0221132
51 0.00673158 0.0214171
51.5 0.00646217 0.0207071
52 0.00619276 0.0199833
52.5 0.00592335 0.0192459
53 0.00565394 0.0184951
53.5 0.00538453 0.0177311
54 0.00511512 0.016954
54.5 0.00493893 0.0164751
55 0.00478199 0.0160521
55.5 0.00462504 0.0156214
56 0.0044681 0.0151829
56.5 0.00431115 0.0147369
57 0.00415421 0.0142835
57.5 0.00399726 0.0138227
58 0.00384032 0.0133547
58.5 0.00368337 0.0128797
59 0.00352643 0.0123976
59.5 0.00336948 0.0119088
60 0.00321254 0.0114132
60.5 0.00307638 0.0109852
61 0.00294201 0.0105579
61.5 0.00280764 0.0101251
62 0.00267327 0.00968679
62.5 0.0025389 0.00924312
63 0.00240453 0.00879422
63.5 0.00227016 0.00834018
64 0.00213579 0.00788111
64.5 0.00200142 0.00741713
65 0.00186704 0.00694834
65.5 0.00173267 0.00647487
66 0.0015983 0.00599681
66.5 0.00146393 0.00551429
67 0.00132956 0.00502741
67.5 0.00119519 0.0045363
68 0.00106082 0.00404106
68.5 0.000926448 0.00354181
69 0.000792077 0.00303867
69.5 0.000657706 0.00253176
70 0.000523335 0.00202119
70.5 0.000388965 0.00150707
71 0.000254594 0.000989538
71.5 0.000120223 0.0004687
72 0 0
72.5 0 0
73 0 0
73.5 0 0
74 0 0
74.5 0 0
75 0 0
75.5 0 0
76 0 0
76.5 0 0
77 0 0
77.5 0 0
78 0 0
78.5 0 0
79 0 0
79.5 0 0
80 0 0
80.5 0 0
81 0 0
81.5 0 0
82 0 0
82.5 0 0
83 0 0
83.5 0 0

Binary file not shown.

View File

@ -0,0 +1,805 @@
%!PS-Adobe-2.0
%%Title: Ma10sin.eps
%%Creator: gnuplot 3.7 patchlevel 3
%%CreationDate: Mon Apr 11 19:49:42 2005
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 554 770
%%Orientation: Landscape
%%Pages: (atend)
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color true def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
0 vshift R show } def
/Rshow { currentpoint stroke M
dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
{pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
/C1 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill
Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore } def
/CircE { stroke [] 0 setdash
hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore } def
/CircW { stroke [] 0 setdash
hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
50 50 translate
0.100 0.100 scale
90 rotate
0 -5040 translate
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
1.000 UL
LTb
1.000 UL
LTa
714 420 M
6248 0 V
1.000 UL
LTb
714 420 M
63 0 V
6185 0 R
-63 0 V
630 420 M
( 0) Rshow
1.000 UL
LTa
714 915 M
6248 0 V
1.000 UL
LTb
714 915 M
63 0 V
6185 0 R
-63 0 V
630 915 M
( 0.1) Rshow
1.000 UL
LTa
714 1409 M
6248 0 V
1.000 UL
LTb
714 1409 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.2) Rshow
1.000 UL
LTa
714 1904 M
6248 0 V
1.000 UL
LTb
714 1904 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.3) Rshow
1.000 UL
LTa
714 2399 M
6248 0 V
1.000 UL
LTb
714 2399 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.4) Rshow
1.000 UL
LTa
714 2893 M
6248 0 V
1.000 UL
LTb
714 2893 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.5) Rshow
1.000 UL
LTa
714 3388 M
6248 0 V
1.000 UL
LTb
714 3388 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.6) Rshow
1.000 UL
LTa
714 3883 M
6248 0 V
1.000 UL
LTb
714 3883 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.7) Rshow
1.000 UL
LTa
714 4377 M
6248 0 V
1.000 UL
LTb
714 4377 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.8) Rshow
1.000 UL
LTa
714 4872 M
6248 0 V
1.000 UL
LTb
714 4872 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.9) Rshow
1.000 UL
LTa
714 420 M
0 4452 V
1.000 UL
LTb
714 420 M
0 63 V
0 4389 R
0 -63 V
714 280 M
( 0) Cshow
1.000 UL
LTa
1408 420 M
0 4452 V
1.000 UL
LTb
1408 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 5) Cshow
1.000 UL
LTa
2102 420 M
0 4452 V
1.000 UL
LTb
2102 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 10) Cshow
1.000 UL
LTa
2797 420 M
0 4452 V
1.000 UL
LTb
2797 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 15) Cshow
1.000 UL
LTa
3491 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
3491 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 20) Cshow
1.000 UL
LTa
4185 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
4185 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 25) Cshow
1.000 UL
LTa
4879 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
4879 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 30) Cshow
1.000 UL
LTa
5574 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
5574 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 35) Cshow
1.000 UL
LTa
6268 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
6268 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 40) Cshow
1.000 UL
LTa
6962 420 M
0 4452 V
1.000 UL
LTb
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 45) Cshow
1.000 UL
LTb
714 420 M
6248 0 V
0 4452 V
-6248 0 V
714 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(distribution) Cshow
grestore
3838 70 M
([deg]) Cshow
1.000 UP
1.000 UL
LT0
6311 4739 M
('M20.keV' us 1:3) Rshow
749 420 Pls
783 773 Pls
818 1122 Pls
853 1466 Pls
888 1806 Pls
922 2135 Pls
957 2433 Pls
992 2717 Pls
1026 2986 Pls
1061 3240 Pls
1096 3470 Pls
1131 3673 Pls
1165 3856 Pls
1200 4003 Pls
1235 4128 Pls
1269 4232 Pls
1304 4316 Pls
1339 4379 Pls
1374 4420 Pls
1408 4439 Pls
1443 4446 Pls
1478 4432 Pls
1512 4398 Pls
1547 4343 Pls
1582 4275 Pls
1616 4221 Pls
1651 4150 Pls
1686 4062 Pls
1721 3957 Pls
1755 3856 Pls
1790 3771 Pls
1825 3672 Pls
1859 3560 Pls
1894 3435 Pls
1929 3323 Pls
1964 3215 Pls
1998 3105 Pls
2033 3010 Pls
2068 2905 Pls
2102 2824 Pls
2137 2739 Pls
2172 2648 Pls
2207 2549 Pls
2241 2447 Pls
2276 2378 Pls
2311 2304 Pls
2345 2224 Pls
2380 2140 Pls
2415 2062 Pls
2450 2003 Pls
2484 1941 Pls
2519 1875 Pls
2554 1805 Pls
2588 1747 Pls
2623 1697 Pls
2658 1644 Pls
2693 1589 Pls
2727 1530 Pls
2762 1490 Pls
2797 1453 Pls
2831 1413 Pls
2866 1372 Pls
2901 1330 Pls
2936 1299 Pls
2970 1266 Pls
3005 1232 Pls
3040 1197 Pls
3074 1164 Pls
3109 1139 Pls
3144 1113 Pls
3178 1086 Pls
3213 1058 Pls
3248 1037 Pls
3283 1022 Pls
3317 1006 Pls
3352 989 Pls
3387 972 Pls
3421 955 Pls
3456 936 Pls
3491 917 Pls
3526 898 Pls
3560 877 Pls
3595 856 Pls
3630 835 Pls
3664 821 Pls
3699 811 Pls
3734 801 Pls
3769 791 Pls
3803 780 Pls
3838 769 Pls
3873 758 Pls
3907 746 Pls
3942 734 Pls
3977 722 Pls
4012 709 Pls
4046 697 Pls
4081 688 Pls
4116 682 Pls
4150 675 Pls
4185 669 Pls
4220 662 Pls
4255 654 Pls
4289 647 Pls
4324 640 Pls
4359 632 Pls
4393 624 Pls
4428 616 Pls
4463 608 Pls
4498 603 Pls
4532 599 Pls
4567 594 Pls
4602 590 Pls
4636 585 Pls
4671 581 Pls
4706 576 Pls
4740 571 Pls
4775 566 Pls
4810 561 Pls
4845 556 Pls
4879 550 Pls
4914 546 Pls
4949 541 Pls
4983 536 Pls
5018 532 Pls
5053 527 Pls
5088 522 Pls
5122 517 Pls
5157 512 Pls
5192 507 Pls
5226 502 Pls
5261 496 Pls
5296 491 Pls
5331 485 Pls
5365 480 Pls
5400 474 Pls
5435 468 Pls
5469 463 Pls
5504 457 Pls
5539 451 Pls
5574 445 Pls
5608 439 Pls
5643 432 Pls
5678 426 Pls
5712 420 Pls
5747 420 Pls
5782 420 Pls
5817 420 Pls
5851 420 Pls
5886 420 Pls
5921 420 Pls
5955 420 Pls
5990 420 Pls
6025 420 Pls
6060 420 Pls
6094 420 Pls
6129 420 Pls
6164 420 Pls
6198 420 Pls
6233 420 Pls
6268 420 Pls
6302 420 Pls
6337 420 Pls
6372 420 Pls
6407 420 Pls
6441 420 Pls
6476 420 Pls
6511 420 Pls
6594 4739 Pls
1.000 UL
LT1
6311 4599 M
(exp\(-x*x/55.\)*sin\(x/180*3.14\)*14.7) Rshow
6395 4599 M
399 0 V
749 737 M
58 525 V
58 509 V
58 484 V
59 449 V
58 408 V
58 359 V
58 306 V
58 250 V
59 192 V
58 133 V
58 76 V
58 21 V
58 -30 V
59 -77 V
58 -118 V
58 -153 V
58 -181 V
58 -205 V
59 -220 V
58 -232 V
58 -236 V
58 -237 V
58 -232 V
59 -225 V
58 -215 V
58 -202 V
58 -187 V
58 -172 V
59 -156 V
58 -140 V
58 -125 V
58 -110 V
58 -96 V
59 -83 V
58 -70 V
58 -61 V
58 -50 V
58 -42 V
59 -35 V
58 -29 V
58 -23 V
58 -19 V
58 -15 V
59 -12 V
58 -10 V
58 -7 V
58 -6 V
58 -5 V
59 -3 V
58 -3 V
58 -2 V
58 -1 V
58 -1 V
59 -1 V
58 -1 V
58 0 V
58 0 V
58 0 V
59 -1 V
58 0 V
58 0 V
58 0 V
58 0 V
59 0 V
58 0 V
58 0 V
58 0 V
58 0 V
59 0 V
58 0 V
58 0 V
58 0 V
58 0 V
59 0 V
58 0 V
58 0 V
58 0 V
59 0 V
58 0 V
58 0 V
58 0 V
58 0 V
59 0 V
58 0 V
58 0 V
58 0 V
58 0 V
59 0 V
58 0 V
58 0 V
58 0 V
58 0 V
59 0 V
58 0 V
58 0 V
58 0 V
58 0 V
59 0 V
58 0 V
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

Binary file not shown.

View File

@ -0,0 +1,167 @@
0.25 1 0
0.5 0.993513 0.0714331
0.75 0.987026 0.141932
1 0.980539 0.211496
1.25 0.974052 0.280122
1.5 0.964213 0.346606
1.75 0.943444 0.406954
2 0.922675 0.464309
2.25 0.901907 0.51867
2.5 0.881138 0.570036
2.75 0.857883 0.61662
3 0.831818 0.65763
3.25 0.805398 0.694578
3.5 0.775248 0.724233
3.75 0.745097 0.749546
4 0.715117 0.770701
4.25 0.685209 0.787622
4.5 0.655301 0.800238
4.75 0.625393 0.808549
5 0.595485 0.812558
5.25 0.566648 0.813804
5.5 0.537881 0.811008
5.75 0.509114 0.804079
6 0.480348 0.793016
6.25 0.452393 0.779221
6.5 0.428307 0.768354
6.75 0.404221 0.754029
7 0.380135 0.736248
7.25 0.356049 0.715014
7.5 0.334012 0.694589
7.75 0.314943 0.677392
8 0.295875 0.657464
8.25 0.276806 0.634807
8.5 0.257738 0.609422
8.75 0.240951 0.58687
9 0.225432 0.565096
9.25 0.210588 0.542846
9.5 0.197664 0.523563
9.75 0.18474 0.502434
10 0.174136 0.485941
10.25 0.163856 0.46886
10.5 0.153576 0.450315
10.75 0.143296 0.430307
11 0.133336 0.40982
11.25 0.125899 0.395852
11.5 0.118463 0.380827
11.75 0.111026 0.364747
12 0.10359 0.347611
12.25 0.096884 0.331926
12.5 0.0915531 0.320098
12.75 0.0862222 0.307515
13 0.0808912 0.294177
13.25 0.0755603 0.280086
13.5 0.0710447 0.268323
13.75 0.0671152 0.258176
14 0.0631856 0.247475
14.25 0.0592561 0.236221
14.5 0.0553265 0.224414
14.75 0.0524258 0.216299
15 0.0497562 0.208746
15.25 0.0470865 0.200818
15.5 0.0444169 0.192515
15.75 0.0417789 0.183978
16 0.0397257 0.177687
16.25 0.0376725 0.171109
16.5 0.0356193 0.164243
16.75 0.033566 0.157091
17 0.031672 0.150409
17.25 0.0301754 0.145378
17.5 0.0286788 0.140138
17.75 0.0271822 0.13469
18 0.0256856 0.129035
18.25 0.0244893 0.124701
18.5 0.0235693 0.121626
18.75 0.0226493 0.118424
19 0.0217293 0.115095
19.25 0.0208093 0.111638
19.5 0.0198893 0.108053
19.75 0.0189694 0.104342
20 0.0180494 0.100504
20.25 0.0171294 0.0965393
20.5 0.0162094 0.0924486
20.75 0.0152894 0.0882321
21 0.0143694 0.08389
21.25 0.0137161 0.0809972
21.5 0.013235 0.0790439
21.75 0.0127539 0.0770247
22 0.0122729 0.0749396
22.25 0.0117918 0.0727889
22.5 0.0113107 0.0705726
22.75 0.0108296 0.068291
23 0.0103485 0.0659441
23.25 0.00986747 0.0635322
23.5 0.00938639 0.0610554
23.75 0.00890531 0.0585139
24 0.00842423 0.0559078
24.25 0.0080902 0.0542229
24.5 0.00782091 0.0529312
24.75 0.00755161 0.0516032
25 0.00728232 0.050239
25.25 0.00701303 0.0488387
25.5 0.00674374 0.0474024
25.75 0.00647445 0.0459301
26 0.00620516 0.044422
26.25 0.00593587 0.0428782
26.5 0.00566658 0.0412987
26.75 0.00539729 0.0396838
27 0.00512799 0.0380334
27.25 0.00494651 0.0370046
27.5 0.00478963 0.0361375
27.75 0.00463276 0.0352497
28 0.00447588 0.0343412
28.25 0.00431901 0.0334121
28.5 0.00416213 0.0324624
28.75 0.00400526 0.0314922
29 0.00384838 0.0305016
29.25 0.00369151 0.0294907
29.5 0.00353463 0.0284594
29.75 0.00337775 0.027408
30 0.00322088 0.0263364
30.25 0.00308359 0.025406
30.5 0.00294928 0.0244828
30.75 0.00281497 0.0235425
31 0.00268065 0.022585
31.25 0.00254634 0.0216106
31.5 0.00241203 0.0206192
31.75 0.00227772 0.0196108
32 0.00214341 0.0185857
32.25 0.0020091 0.0175437
32.5 0.00187479 0.016485
32.75 0.00174048 0.0154097
33 0.00160617 0.0143178
33.25 0.00147186 0.0132094
33.5 0.00133755 0.0120846
33.75 0.00120323 0.0109433
34 0.00106892 0.00978579
34.25 0.000934612 0.00861199
34.5 0.000800302 0.00742201
34.75 0.000665991 0.00621593
35 0.00053168 0.00499382
35.25 0.000397369 0.00375574
35.5 0.000263058 0.00250177
35.75 0.000128747 0.00123197
36 0 0
36.25 0 0
36.5 0 0
36.75 0 0
37 0 0
37.25 0 0
37.5 0 0
37.75 0 0
38 0 0
38.25 0 0
38.5 0 0
38.75 0 0
39 0 0
39.25 0 0
39.5 0 0
39.75 0 0
40 0 0
40.25 0 0
40.5 0 0
40.75 0 0
41 0 0
41.25 0 0
41.5 0 0
41.75 0 0

View File

@ -0,0 +1,805 @@
%!PS-Adobe-2.0
%%Title: M20sin.eps
%%Creator: gnuplot 3.7 patchlevel 3
%%CreationDate: Tue Apr 12 08:56:48 2005
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 554 770
%%Orientation: Landscape
%%Pages: (atend)
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color true def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
0 vshift R show } def
/Rshow { currentpoint stroke M
dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
{pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
/C1 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill
Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore } def
/CircE { stroke [] 0 setdash
hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore } def
/CircW { stroke [] 0 setdash
hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
50 50 translate
0.100 0.100 scale
90 rotate
0 -5040 translate
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
1.000 UL
LTb
1.000 UL
LTa
714 420 M
6248 0 V
1.000 UL
LTb
714 420 M
63 0 V
6185 0 R
-63 0 V
630 420 M
( 0) Rshow
1.000 UL
LTa
714 915 M
6248 0 V
1.000 UL
LTb
714 915 M
63 0 V
6185 0 R
-63 0 V
630 915 M
( 0.1) Rshow
1.000 UL
LTa
714 1409 M
6248 0 V
1.000 UL
LTb
714 1409 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.2) Rshow
1.000 UL
LTa
714 1904 M
6248 0 V
1.000 UL
LTb
714 1904 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.3) Rshow
1.000 UL
LTa
714 2399 M
6248 0 V
1.000 UL
LTb
714 2399 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.4) Rshow
1.000 UL
LTa
714 2893 M
6248 0 V
1.000 UL
LTb
714 2893 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.5) Rshow
1.000 UL
LTa
714 3388 M
6248 0 V
1.000 UL
LTb
714 3388 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.6) Rshow
1.000 UL
LTa
714 3883 M
6248 0 V
1.000 UL
LTb
714 3883 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.7) Rshow
1.000 UL
LTa
714 4377 M
6248 0 V
1.000 UL
LTb
714 4377 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.8) Rshow
1.000 UL
LTa
714 4872 M
6248 0 V
1.000 UL
LTb
714 4872 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.9) Rshow
1.000 UL
LTa
714 420 M
0 4452 V
1.000 UL
LTb
714 420 M
0 63 V
0 4389 R
0 -63 V
714 280 M
( 0) Cshow
1.000 UL
LTa
1408 420 M
0 4452 V
1.000 UL
LTb
1408 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 5) Cshow
1.000 UL
LTa
2102 420 M
0 4452 V
1.000 UL
LTb
2102 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 10) Cshow
1.000 UL
LTa
2797 420 M
0 4452 V
1.000 UL
LTb
2797 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 15) Cshow
1.000 UL
LTa
3491 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
3491 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 20) Cshow
1.000 UL
LTa
4185 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
4185 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 25) Cshow
1.000 UL
LTa
4879 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
4879 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 30) Cshow
1.000 UL
LTa
5574 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
5574 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 35) Cshow
1.000 UL
LTa
6268 420 M
0 4109 V
0 280 R
0 63 V
1.000 UL
LTb
6268 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 40) Cshow
1.000 UL
LTa
6962 420 M
0 4452 V
1.000 UL
LTb
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 45) Cshow
1.000 UL
LTb
714 420 M
6248 0 V
0 4452 V
-6248 0 V
714 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(distribution) Cshow
grestore
3838 70 M
([deg]) Cshow
1.000 UP
1.000 UL
LT0
6311 4739 M
('M20.keV' us 1:3) Rshow
749 420 Pls
783 773 Pls
818 1122 Pls
853 1466 Pls
888 1806 Pls
922 2135 Pls
957 2433 Pls
992 2717 Pls
1026 2986 Pls
1061 3240 Pls
1096 3470 Pls
1131 3673 Pls
1165 3856 Pls
1200 4003 Pls
1235 4128 Pls
1269 4232 Pls
1304 4316 Pls
1339 4379 Pls
1374 4420 Pls
1408 4439 Pls
1443 4446 Pls
1478 4432 Pls
1512 4398 Pls
1547 4343 Pls
1582 4275 Pls
1616 4221 Pls
1651 4150 Pls
1686 4062 Pls
1721 3957 Pls
1755 3856 Pls
1790 3771 Pls
1825 3672 Pls
1859 3560 Pls
1894 3435 Pls
1929 3323 Pls
1964 3215 Pls
1998 3105 Pls
2033 3010 Pls
2068 2905 Pls
2102 2824 Pls
2137 2739 Pls
2172 2648 Pls
2207 2549 Pls
2241 2447 Pls
2276 2378 Pls
2311 2304 Pls
2345 2224 Pls
2380 2140 Pls
2415 2062 Pls
2450 2003 Pls
2484 1941 Pls
2519 1875 Pls
2554 1805 Pls
2588 1747 Pls
2623 1697 Pls
2658 1644 Pls
2693 1589 Pls
2727 1530 Pls
2762 1490 Pls
2797 1453 Pls
2831 1413 Pls
2866 1372 Pls
2901 1330 Pls
2936 1299 Pls
2970 1266 Pls
3005 1232 Pls
3040 1197 Pls
3074 1164 Pls
3109 1139 Pls
3144 1113 Pls
3178 1086 Pls
3213 1058 Pls
3248 1037 Pls
3283 1022 Pls
3317 1006 Pls
3352 989 Pls
3387 972 Pls
3421 955 Pls
3456 936 Pls
3491 917 Pls
3526 898 Pls
3560 877 Pls
3595 856 Pls
3630 835 Pls
3664 821 Pls
3699 811 Pls
3734 801 Pls
3769 791 Pls
3803 780 Pls
3838 769 Pls
3873 758 Pls
3907 746 Pls
3942 734 Pls
3977 722 Pls
4012 709 Pls
4046 697 Pls
4081 688 Pls
4116 682 Pls
4150 675 Pls
4185 669 Pls
4220 662 Pls
4255 654 Pls
4289 647 Pls
4324 640 Pls
4359 632 Pls
4393 624 Pls
4428 616 Pls
4463 608 Pls
4498 603 Pls
4532 599 Pls
4567 594 Pls
4602 590 Pls
4636 585 Pls
4671 581 Pls
4706 576 Pls
4740 571 Pls
4775 566 Pls
4810 561 Pls
4845 556 Pls
4879 550 Pls
4914 546 Pls
4949 541 Pls
4983 536 Pls
5018 532 Pls
5053 527 Pls
5088 522 Pls
5122 517 Pls
5157 512 Pls
5192 507 Pls
5226 502 Pls
5261 496 Pls
5296 491 Pls
5331 485 Pls
5365 480 Pls
5400 474 Pls
5435 468 Pls
5469 463 Pls
5504 457 Pls
5539 451 Pls
5574 445 Pls
5608 439 Pls
5643 432 Pls
5678 426 Pls
5712 420 Pls
5747 420 Pls
5782 420 Pls
5817 420 Pls
5851 420 Pls
5886 420 Pls
5921 420 Pls
5955 420 Pls
5990 420 Pls
6025 420 Pls
6060 420 Pls
6094 420 Pls
6129 420 Pls
6164 420 Pls
6198 420 Pls
6233 420 Pls
6268 420 Pls
6302 420 Pls
6337 420 Pls
6372 420 Pls
6407 420 Pls
6441 420 Pls
6476 420 Pls
6511 420 Pls
6594 4739 Pls
1.000 UL
LT1
6311 4599 M
(exp\(-x*x/55.\)*sin\(x/180*3.14\)*14.7) Rshow
6395 4599 M
399 0 V
714 420 M
63 574 V
63 562 V
63 536 V
63 499 V
64 453 V
63 397 V
63 335 V
63 269 V
63 200 V
63 131 V
63 65 V
63 1 V
63 -56 V
64 -108 V
63 -152 V
63 -189 V
63 -217 V
63 -238 V
63 -250 V
63 -256 V
63 -257 V
63 -250 V
64 -241 V
63 -228 V
63 -211 V
63 -194 V
63 -176 V
63 -157 V
63 -138 V
63 -121 V
63 -104 V
64 -89 V
63 -75 V
63 -63 V
63 -52 V
63 -43 V
63 -34 V
63 -28 V
63 -22 V
63 -17 V
64 -14 V
63 -11 V
63 -8 V
63 -6 V
63 -4 V
63 -4 V
63 -2 V
63 -2 V
63 -2 V
64 -1 V
63 0 V
63 -1 V
63 0 V
63 0 V
63 -1 V
63 0 V
63 0 V
63 0 V
64 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
64 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
64 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
64 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
63 0 V
64 0 V
63 0 V
63 0 V
63 0 V
63 0 V
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

View File

@ -0,0 +1,111 @@
0.25 1 0
0.5 0.990251 0.160806
0.75 0.980502 0.318444
1 0.970753 0.472909
1.25 0.943207 0.612639
1.5 0.911995 0.740436
1.75 0.880783 0.858084
2 0.84433 0.959627
2.25 0.804711 1.0452
2.5 0.759399 1.10958
2.75 0.714265 1.15953
3 0.669317 1.19514
3.25 0.62437 1.21614
3.5 0.579965 1.22369
3.75 0.536733 1.21948
4 0.493501 1.20124
4.25 0.451294 1.17162
4.5 0.415097 1.14488
4.75 0.378899 1.10639
5 0.342701 1.05616
5.25 0.313856 1.01805
5.5 0.285199 0.971222
5.75 0.256542 0.91511
6 0.232174 0.865709
6.25 0.209704 0.815799
6.5 0.190281 0.770961
6.75 0.173374 0.730441
7 0.157925 0.690826
7.25 0.142476 0.646215
7.5 0.129003 0.605895
7.75 0.117827 0.572379
8 0.106651 0.535254
8.25 0.0963976 0.499303
8.5 0.088386 0.472015
8.75 0.0803744 0.442142
9 0.0726174 0.411129
9.25 0.0667118 0.388398
9.5 0.0608063 0.363766
9.75 0.0549008 0.337233
10 0.0507941 0.32014
10.25 0.046782 0.302337
10.5 0.04277 0.283246
10.75 0.0394798 0.267763
11 0.0363941 0.252644
11.25 0.0333085 0.236535
11.5 0.0307317 0.223133
11.75 0.0284825 0.211337
12 0.0262334 0.198821
12.25 0.0243634 0.18852
12.5 0.0229808 0.181471
12.75 0.0215982 0.173979
13 0.0202156 0.166045
13.25 0.018833 0.15767
13.5 0.0174504 0.148854
13.75 0.0160678 0.139599
14 0.0146852 0.129905
14.25 0.0136393 0.122803
14.5 0.0129163 0.118327
14.75 0.0121933 0.113622
15 0.0114703 0.108687
15.25 0.0107473 0.103523
15.5 0.0100243 0.0981307
15.75 0.00930134 0.0925096
16 0.00857836 0.0866604
16.25 0.00804106 0.0824885
16.5 0.00763635 0.0795281
16.75 0.00723165 0.0764401
17 0.00682694 0.0732246
17.25 0.00642224 0.0698818
17.5 0.00601753 0.0664119
17.75 0.00561283 0.0628153
18 0.00520812 0.0590922
18.25 0.0049143 0.0565179
18.5 0.00467854 0.0545286
18.75 0.00444278 0.0524655
19 0.00420702 0.0503287
19.25 0.00397126 0.0481185
19.5 0.0037355 0.045835
19.75 0.00349974 0.0434784
20 0.00326398 0.0410487
20.25 0.00305295 0.038861
20.5 0.0028511 0.0367263
20.75 0.00264925 0.0345295
21 0.0024474 0.0322706
21.25 0.00224555 0.0299498
21.5 0.0020437 0.0275673
21.75 0.00184185 0.0251231
22 0.00164 0.0226174
22.25 0.00143816 0.0200504
22.5 0.00123631 0.0174223
22.75 0.00103446 0.0147331
23 0.000832607 0.0119831
23.25 0.000630758 0.0091724
23.5 0.000428908 0.00630118
23.75 0.000227059 0.00336962
24 2.52097e-05 0.00037787
24.25 0 0
24.5 0 0
24.75 0 0
25 0 0
25.25 0 0
25.5 0 0
25.75 0 0
26 0 0
26.25 0 0
26.5 0 0
26.75 0 0
27 0 0
27.25 0 0
27.5 0 0
27.75 0 0

View File

@ -0,0 +1,203 @@
0.5 1 0
1 0.996752 0.00898079
1.5 0.993505 0.0179024
2 0.990257 0.0267641
2.5 0.98701 0.0355652
3 0.983762 0.0443052
3.5 0.980515 0.0529833
4 0.977267 0.061599
4.5 0.974019 0.0701516
5 0.970772 0.0786404
5.5 0.964082 0.0867551
6 0.953685 0.0943763
6.5 0.943287 0.101804
7 0.93289 0.109037
7.5 0.922492 0.116076
8 0.912095 0.12292
8.5 0.901697 0.129569
9 0.8913 0.136023
9.5 0.880902 0.14228
10 0.870505 0.148342
10.5 0.857554 0.153751
11 0.844505 0.158899
11.5 0.831456 0.163804
12 0.818407 0.168465
12.5 0.804942 0.172794
13 0.789848 0.176508
13.5 0.774753 0.179944
14 0.759659 0.1831
14.5 0.744565 0.185979
15 0.729524 0.188593
15.5 0.714551 0.190948
16 0.699579 0.193028
16.5 0.684606 0.194834
17 0.669633 0.196365
17.5 0.65466 0.197622
18 0.639687 0.198607
18.5 0.624714 0.199319
19 0.609741 0.199759
19.5 0.594768 0.199928
20 0.580324 0.20001
20.5 0.565922 0.199845
21 0.551521 0.199422
21.5 0.537119 0.19874
22 0.522718 0.197801
22.5 0.508316 0.196605
23 0.493915 0.195154
23.5 0.479513 0.193448
24 0.465111 0.191488
24.5 0.451664 0.189677
25 0.439606 0.188224
25.5 0.427548 0.18656
26 0.415489 0.184684
26.5 0.403431 0.182598
27 0.391373 0.180303
27.5 0.379315 0.1778
28 0.367257 0.17509
28.5 0.355198 0.172173
29 0.34314 0.169052
29.5 0.333314 0.166844
30 0.323768 0.164611
30.5 0.314222 0.162215
31 0.304675 0.159658
31.5 0.295129 0.156941
32 0.285583 0.154064
32.5 0.276037 0.151029
33 0.26649 0.147837
33.5 0.256944 0.144488
34 0.248055 0.141359
34.5 0.240286 0.138731
35 0.232516 0.135977
35.5 0.224747 0.133098
36 0.216977 0.130093
36.5 0.210001 0.127446
37 0.203531 0.124998
37.5 0.197061 0.122447
38 0.19059 0.119794
38.5 0.18412 0.117038
39 0.178777 0.114907
39.5 0.173631 0.112819
40 0.168484 0.110651
40.5 0.163338 0.108402
41 0.158191 0.106075
41.5 0.153045 0.103668
42 0.147898 0.101184
42.5 0.142752 0.0986228
43 0.137605 0.095985
43.5 0.132933 0.0936053
44 0.12921 0.0918317
44.5 0.125487 0.0900024
45 0.121764 0.0881181
45.5 0.118041 0.0861791
46 0.114318 0.0841862
46.5 0.110595 0.0821398
47 0.106872 0.0800406
47.5 0.103149 0.0778891
48 0.0994258 0.0756859
48.5 0.0965613 0.0740903
49 0.0938924 0.0726059
49.5 0.0912236 0.0710841
50 0.0885548 0.0695253
50.5 0.0858859 0.0679299
51 0.0832171 0.0662985
51.5 0.0805483 0.0646314
52 0.0778794 0.0629292
52.5 0.0752106 0.0611922
53 0.0727493 0.059591
53.5 0.070782 0.0583656
54 0.0688148 0.0571144
54.5 0.0668475 0.0558378
55 0.0648803 0.0545361
55.5 0.062913 0.0532096
56 0.0609458 0.0518588
56.5 0.0589785 0.0504839
57 0.0570113 0.0490854
57.5 0.055044 0.0476636
58 0.053567 0.0466457
58.5 0.0522305 0.045733
59 0.050894 0.0448041
59.5 0.0495575 0.0438591
60 0.048221 0.0428984
60.5 0.0468845 0.0419223
61 0.045548 0.0409309
61.5 0.0442115 0.0399245
62 0.042875 0.0389034
62.5 0.0416183 0.0379406
63 0.0405904 0.0371738
63.5 0.0395625 0.0363957
64 0.0385346 0.0356063
64.5 0.0375067 0.034806
65 0.0364788 0.0339949
65.5 0.0354509 0.0331733
66 0.034423 0.0323413
66.5 0.0333951 0.0314991
67 0.0323672 0.030647
67.5 0.0315455 0.0299812
68 0.0307963 0.0293764
68.5 0.0300471 0.0287642
69 0.0292978 0.0281448
69.5 0.0285486 0.0275183
70 0.0277993 0.0268848
70.5 0.0270501 0.0262446
71 0.0263008 0.0255977
71.5 0.0255516 0.0249444
72 0.0248663 0.0243474
72.5 0.0244057 0.0239653
73 0.0239451 0.0235788
73.5 0.0234846 0.023188
74 0.023024 0.0227931
74.5 0.0225634 0.022394
75 0.0221029 0.0219909
75.5 0.0216423 0.021584
76 0.0211817 0.0211733
76.5 0.0207211 0.0207588
77 0.0202606 0.0203408
77.5 0.0198 0.0199193
78 0.0193394 0.0194944
78.5 0.0188788 0.0190662
79 0.0184183 0.0186349
79.5 0.0179577 0.0182005
80 0.0174971 0.0177631
80.5 0.0170366 0.0173228
81 0.016576 0.0168798
81.5 0.0161154 0.0164341
82 0.0156548 0.0159859
82.5 0.0151943 0.0155352
83 0.0147337 0.0150822
83.5 0.0142731 0.014627
84 0.013906 0.0142654
84.5 0.0136651 0.0140318
85 0.0134243 0.0137966
85.5 0.0131834 0.0135599
86 0.0129426 0.0133219
86.5 0.0127017 0.0130825
87 0.0124609 0.0128417
87.5 0.0122201 0.0125998
88 0.0119792 0.0123566
88.5 0.0117384 0.0121124
89 0.0114975 0.011867
89.5 0.0112567 0.0116206
90 0.0110159 0.0113733
90.5 0.010775 0.0111251
91 0.0105342 0.010876
91.5 0.0102933 0.0106261
92 0.0100525 0.0103755
92.5 0.00981164 0.0101242
93 0.0095708 0.00987233
93.5 0.00932995 0.00961987
94 0.00908911 0.0093669
94.5 0.00884827 0.00911348
95 0.00860743 0.00885967
95.5 0.00836658 0.00860553
96 0.0081924 0.00841962
96.5 0.00805759 0.00827379
97 0.00792277 0.00812758
97.5 0.00778795 0.00798104
98 0.00765314 0.00783418
98.5 0.00751832 0.00768704
99 0.00738351 0.00753965
99.5 0.00724869 0.00739205
100 0.00711388 0.00724426
100.5 0.00697906 0.00709633
101 0.00684425 0.00694827
101.5 1.96893e-305 -1.98021

View File

@ -0,0 +1,134 @@
0.125 1 0
0.25 0.991892 0.222817
0.375 0.983784 0.44199
0.5 0.975677 0.657519
0.625 0.964224 0.866397
0.75 0.938266 1.05383
0.875 0.912308 1.2296
1 0.88635 1.3937
1.125 0.857911 1.54168
1.25 0.825333 1.66851
1.375 0.790363 1.77532
1.5 0.752679 1.85971
1.625 0.715166 1.92763
1.75 0.677784 1.97907
1.875 0.640403 2.01372
2 0.603022 2.03157
2.125 0.56671 2.03646
2.25 0.530755 2.02641
2.375 0.4948 2.00021
2.5 0.458846 1.95785
2.625 0.428372 1.92397
2.75 0.398268 1.87813
2.875 0.368163 1.81878
3 0.338838 1.74993
3.125 0.315005 1.69752
3.25 0.291172 1.6344
3.375 0.267339 1.56058
3.5 0.244888 1.48444
3.625 0.22549 1.41743
3.75 0.207408 1.35026
3.875 0.191254 1.28797
4 0.176749 1.22991
4.125 0.1639 1.17723
4.25 0.151052 1.11879
4.375 0.138203 1.05459
4.5 0.127794 1.00378
4.625 0.118499 0.957314
4.75 0.109204 0.906678
4.875 0.0999093 0.851876
5 0.0929137 0.813026
5.125 0.0862508 0.774027
5.25 0.0795878 0.732041
5.375 0.0730317 0.688077
5.5 0.0681202 0.65704
5.625 0.0632088 0.623803
5.75 0.0582974 0.588367
5.875 0.0537771 0.554767
6 0.0504404 0.531618
6.125 0.0471037 0.506975
6.25 0.043767 0.480839
6.375 0.040766 0.456974
6.5 0.0381998 0.436736
6.625 0.0356336 0.415351
6.75 0.0330673 0.392818
6.875 0.0309346 0.374384
7 0.029064 0.358228
7.125 0.0271935 0.341237
7.25 0.0253229 0.32341
7.375 0.0240364 0.312337
7.5 0.0228866 0.302494
7.625 0.0217367 0.292138
7.75 0.0205869 0.281269
7.875 0.019437 0.269886
8 0.0182872 0.25799
8.125 0.0171373 0.245581
8.25 0.0159874 0.232659
8.375 0.0148376 0.219225
8.5 0.0138407 0.207572
8.625 0.0132394 0.201497
8.75 0.0126381 0.195153
8.875 0.0120368 0.188541
9 0.0114356 0.181661
9.125 0.0108343 0.174514
9.25 0.010233 0.167098
9.375 0.00963171 0.159416
9.5 0.00903042 0.151466
9.625 0.00842914 0.143248
9.75 0.00802566 0.138169
9.875 0.00768908 0.134077
10 0.0073525 0.129836
10.125 0.00701592 0.125445
10.25 0.00667934 0.120904
10.375 0.00634277 0.116214
10.5 0.00600619 0.111374
10.625 0.00566961 0.106386
10.75 0.00533303 0.101248
10.875 0.00502675 0.0965427
11 0.00483068 0.0938429
11.125 0.00463461 0.0910561
11.25 0.00443854 0.0881824
11.375 0.00424246 0.0852218
11.5 0.00404639 0.0821744
11.625 0.00385032 0.0790403
11.75 0.00365424 0.0758195
11.875 0.00345817 0.0725121
12 0.0032621 0.069118
12.125 0.00308532 0.0660504
12.25 0.00291745 0.0630975
12.375 0.00274958 0.0600706
12.5 0.0025817 0.0569697
12.625 0.00241383 0.0537949
12.75 0.00224596 0.0505462
12.875 0.00207809 0.0472236
13 0.00191022 0.0438273
13.125 0.00174235 0.0403572
13.25 0.00157448 0.0368134
13.375 0.00140661 0.033196
13.5 0.00123874 0.0295051
13.625 0.00107087 0.0257406
13.75 0.000902998 0.0219027
13.875 0.000735128 0.0179913
14 0.000567257 0.0140066
14.125 0.000399386 0.00994868
14.25 0.000231516 0.00581749
14.375 6.36452e-05 0.00161313
14.5 0 0
14.625 0 0
14.75 0 0
14.875 0 0
15 0 0
15.125 0 0
15.25 0 0
15.375 0 0
15.5 0 0
15.625 0 0
15.75 0 0
15.875 0 0
16 0 0
16.125 0 0
16.25 0 0
16.375 0 0
16.5 0 0
16.625 0 0
16.75 0 0

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,977 @@
%!PS-Adobe-2.0
%%Title: Mall2.eps
%%Creator: gnuplot 3.7 patchlevel 3
%%CreationDate: Mon Apr 11 19:39:42 2005
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 554 770
%%Orientation: Landscape
%%Pages: (atend)
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color true def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
0 vshift R show } def
/Rshow { currentpoint stroke M
dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
{pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
/C1 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill
Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore } def
/CircE { stroke [] 0 setdash
hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore } def
/CircW { stroke [] 0 setdash
hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
50 50 translate
0.100 0.100 scale
90 rotate
0 -5040 translate
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
1.000 UL
LTb
1.000 UL
LTa
714 420 M
6248 0 V
1.000 UL
LTb
714 420 M
63 0 V
6185 0 R
-63 0 V
630 420 M
( 0) Rshow
1.000 UL
LTa
714 1310 M
6248 0 V
1.000 UL
LTb
714 1310 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.2) Rshow
1.000 UL
LTa
714 2201 M
6248 0 V
1.000 UL
LTb
714 2201 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.4) Rshow
1.000 UL
LTa
714 3091 M
6248 0 V
1.000 UL
LTb
714 3091 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.6) Rshow
1.000 UL
LTa
714 3982 M
6248 0 V
1.000 UL
LTb
714 3982 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.8) Rshow
1.000 UL
LTa
714 4872 M
6248 0 V
1.000 UL
LTb
714 4872 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 1) Rshow
1.000 UL
LTa
714 420 M
0 4452 V
1.000 UL
LTb
714 420 M
0 63 V
0 4389 R
0 -63 V
714 280 M
( 0) Cshow
1.000 UL
LTa
1408 420 M
0 4452 V
1.000 UL
LTb
1408 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 5) Cshow
1.000 UL
LTa
2102 420 M
0 4452 V
1.000 UL
LTb
2102 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 10) Cshow
1.000 UL
LTa
2797 420 M
0 4452 V
1.000 UL
LTb
2797 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 15) Cshow
1.000 UL
LTa
3491 420 M
0 4452 V
1.000 UL
LTb
3491 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 20) Cshow
1.000 UL
LTa
4185 420 M
0 4452 V
1.000 UL
LTb
4185 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 25) Cshow
1.000 UL
LTa
4879 420 M
0 4452 V
1.000 UL
LTb
4879 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 30) Cshow
1.000 UL
LTa
5574 420 M
0 3829 V
0 560 R
0 63 V
1.000 UL
LTb
5574 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 35) Cshow
1.000 UL
LTa
6268 420 M
0 3829 V
0 560 R
0 63 V
1.000 UL
LTb
6268 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 40) Cshow
1.000 UL
LTa
6962 420 M
0 4452 V
1.000 UL
LTb
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 45) Cshow
1.000 UL
LTb
714 420 M
6248 0 V
0 4452 V
-6248 0 V
714 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(Meyer's distribution) Cshow
grestore
3838 70 M
(scatt. angle [deg]) Cshow
1.000 UP
1.000 UL
LT0
6311 4739 M
('M5.keV') Rshow
783 4872 Pls
853 4858 Pls
922 4843 Pls
992 4829 Pls
1061 4814 Pls
1131 4800 Pls
1200 4785 Pls
1269 4771 Pls
1339 4756 Pls
1408 4742 Pls
1478 4712 Pls
1547 4666 Pls
1616 4620 Pls
1686 4573 Pls
1755 4527 Pls
1825 4481 Pls
1894 4434 Pls
1964 4388 Pls
2033 4342 Pls
2102 4296 Pls
2172 4238 Pls
2241 4180 Pls
2311 4122 Pls
2380 4064 Pls
2450 4004 Pls
2519 3937 Pls
2588 3869 Pls
2658 3802 Pls
2727 3735 Pls
2797 3668 Pls
2866 3601 Pls
2936 3535 Pls
3005 3468 Pls
3074 3401 Pls
3144 3335 Pls
3213 3268 Pls
3283 3201 Pls
3352 3135 Pls
3421 3068 Pls
3491 3004 Pls
3560 2940 Pls
3630 2876 Pls
3699 2811 Pls
3769 2747 Pls
3838 2683 Pls
3907 2619 Pls
3977 2555 Pls
4046 2491 Pls
4116 2431 Pls
4185 2377 Pls
4255 2324 Pls
4324 2270 Pls
4393 2216 Pls
4463 2163 Pls
4532 2109 Pls
4602 2055 Pls
4671 2002 Pls
4740 1948 Pls
4810 1904 Pls
4879 1862 Pls
4949 1819 Pls
5018 1777 Pls
5088 1734 Pls
5157 1692 Pls
5226 1649 Pls
5296 1607 Pls
5365 1564 Pls
5435 1525 Pls
5504 1490 Pls
5574 1455 Pls
5643 1421 Pls
5712 1386 Pls
5782 1355 Pls
5851 1326 Pls
5921 1297 Pls
5990 1269 Pls
6060 1240 Pls
6129 1216 Pls
6198 1193 Pls
6268 1170 Pls
6337 1147 Pls
6407 1124 Pls
6476 1102 Pls
6545 1079 Pls
6615 1056 Pls
6684 1033 Pls
6754 1012 Pls
6823 995 Pls
6893 979 Pls
6962 962 Pls
6594 4739 Pls
1.000 UP
1.000 UL
LT1
6311 4599 M
('M10.keV') Rshow
783 4872 Crs
853 4843 Crs
922 4814 Crs
992 4785 Crs
1061 4756 Crs
1131 4712 Crs
1200 4619 Crs
1269 4527 Crs
1339 4434 Crs
1408 4342 Crs
1478 4238 Crs
1547 4121 Crs
1616 4003 Crs
1686 3869 Crs
1755 3734 Crs
1825 3601 Crs
1894 3467 Crs
1964 3334 Crs
2033 3201 Crs
2102 3067 Crs
2172 2939 Crs
2241 2811 Crs
2311 2682 Crs
2380 2554 Crs
2450 2430 Crs
2519 2323 Crs
2588 2215 Crs
2658 2108 Crs
2727 2001 Crs
2797 1903 Crs
2866 1818 Crs
2936 1733 Crs
3005 1648 Crs
3074 1563 Crs
3144 1489 Crs
3213 1420 Crs
3283 1354 Crs
3352 1297 Crs
3421 1239 Crs
3491 1193 Crs
3560 1147 Crs
3630 1101 Crs
3699 1055 Crs
3769 1011 Crs
3838 978 Crs
3907 945 Crs
3977 912 Crs
4046 879 Crs
4116 850 Crs
4185 826 Crs
4255 802 Crs
4324 778 Crs
4393 755 Crs
4463 735 Crs
4532 717 Crs
4602 700 Crs
4671 682 Crs
4740 665 Crs
4810 652 Crs
4879 640 Crs
4949 629 Crs
5018 617 Crs
5088 605 Crs
5157 596 Crs
5226 587 Crs
5296 578 Crs
5365 569 Crs
5435 560 Crs
5504 554 Crs
5574 547 Crs
5643 540 Crs
5712 534 Crs
5782 529 Crs
5851 524 Crs
5921 520 Crs
5990 516 Crs
6060 512 Crs
6129 508 Crs
6198 504 Crs
6268 500 Crs
6337 496 Crs
6407 492 Crs
6476 488 Crs
6545 483 Crs
6615 481 Crs
6684 479 Crs
6754 477 Crs
6823 474 Crs
6893 472 Crs
6962 470 Crs
6594 4599 Crs
1.000 UP
1.000 UL
LT2
6311 4459 M
('M20.keV') Rshow
749 4872 Star
783 4843 Star
818 4814 Star
853 4785 Star
888 4757 Star
922 4713 Star
957 4620 Star
992 4528 Star
1026 4436 Star
1061 4343 Star
1096 4240 Star
1131 4124 Star
1165 4006 Star
1200 3872 Star
1235 3738 Star
1269 3605 Star
1304 3472 Star
1339 3338 Star
1374 3205 Star
1408 3072 Star
1443 2944 Star
1478 2816 Star
1512 2688 Star
1547 2560 Star
1582 2435 Star
1616 2328 Star
1651 2221 Star
1686 2114 Star
1721 2007 Star
1755 1908 Star
1790 1823 Star
1825 1738 Star
1859 1654 Star
1894 1569 Star
1929 1494 Star
1964 1425 Star
1998 1359 Star
2033 1301 Star
2068 1244 Star
2102 1196 Star
2137 1150 Star
2172 1105 Star
2207 1059 Star
2241 1014 Star
2276 981 Star
2311 948 Star
2345 915 Star
2380 882 Star
2415 852 Star
2450 828 Star
2484 804 Star
2519 781 Star
2554 757 Star
2588 737 Star
2623 719 Star
2658 702 Star
2693 684 Star
2727 667 Star
2762 654 Star
2797 642 Star
2831 630 Star
2866 618 Star
2901 606 Star
2936 597 Star
2970 588 Star
3005 579 Star
3040 570 Star
3074 561 Star
3109 555 Star
3144 548 Star
3178 541 Star
3213 535 Star
3248 529 Star
3283 525 Star
3317 521 Star
3352 517 Star
3387 513 Star
3421 509 Star
3456 505 Star
3491 501 Star
3526 496 Star
3560 492 Star
3595 488 Star
3630 484 Star
3664 481 Star
3699 479 Star
3734 477 Star
3769 475 Star
3803 473 Star
3838 470 Star
3873 468 Star
3907 466 Star
3942 464 Star
3977 462 Star
4012 460 Star
4046 458 Star
4081 456 Star
4116 455 Star
4150 454 Star
4185 452 Star
4220 451 Star
4255 450 Star
4289 449 Star
4324 448 Star
4359 446 Star
4393 445 Star
4428 444 Star
4463 443 Star
4498 442 Star
4532 441 Star
4567 441 Star
4602 440 Star
4636 439 Star
4671 439 Star
4706 438 Star
4740 437 Star
4775 436 Star
4810 436 Star
4845 435 Star
4879 434 Star
4914 434 Star
4949 433 Star
4983 433 Star
5018 432 Star
5053 431 Star
5088 431 Star
5122 430 Star
5157 430 Star
5192 429 Star
5226 428 Star
5261 428 Star
5296 427 Star
5331 427 Star
5365 426 Star
5400 425 Star
5435 425 Star
5469 424 Star
5504 424 Star
5539 423 Star
5574 422 Star
5608 422 Star
5643 421 Star
5678 421 Star
5712 420 Star
5747 420 Star
5782 420 Star
5817 420 Star
5851 420 Star
5886 420 Star
5921 420 Star
5955 420 Star
5990 420 Star
6025 420 Star
6060 420 Star
6094 420 Star
6129 420 Star
6164 420 Star
6198 420 Star
6233 420 Star
6268 420 Star
6302 420 Star
6337 420 Star
6372 420 Star
6407 420 Star
6441 420 Star
6476 420 Star
6511 420 Star
6594 4459 Star
1.000 UP
1.000 UL
LT3
6311 4319 M
('M50.keV') Rshow
731 4872 Box
749 4836 Box
766 4800 Box
783 4764 Box
801 4713 Box
818 4597 Box
835 4482 Box
853 4366 Box
870 4240 Box
888 4095 Box
905 3939 Box
922 3771 Box
940 3604 Box
957 3438 Box
974 3271 Box
992 3105 Box
1009 2943 Box
1026 2783 Box
1044 2623 Box
1061 2463 Box
1078 2327 Box
1096 2193 Box
1113 2059 Box
1131 1929 Box
1148 1823 Box
1165 1717 Box
1183 1611 Box
1200 1511 Box
1217 1424 Box
1235 1344 Box
1252 1272 Box
1269 1207 Box
1287 1150 Box
1304 1093 Box
1321 1036 Box
1339 989 Box
1356 948 Box
1374 906 Box
1391 865 Box
1408 834 Box
1426 804 Box
1443 774 Box
1460 745 Box
1478 723 Box
1495 702 Box
1512 680 Box
1530 660 Box
1547 645 Box
1564 630 Box
1582 615 Box
1599 602 Box
1616 590 Box
1634 579 Box
1651 567 Box
1669 558 Box
1686 549 Box
1703 541 Box
1721 533 Box
1738 527 Box
1755 522 Box
1773 517 Box
1790 512 Box
1807 507 Box
1825 501 Box
1842 496 Box
1859 491 Box
1877 486 Box
1894 482 Box
1912 479 Box
1929 476 Box
1946 474 Box
1964 471 Box
1981 468 Box
1998 466 Box
2016 463 Box
2033 460 Box
2050 458 Box
2068 456 Box
2085 454 Box
2102 453 Box
2120 451 Box
2137 450 Box
2155 448 Box
2172 447 Box
2189 445 Box
2207 444 Box
2224 442 Box
2241 442 Box
2259 441 Box
2276 440 Box
2293 439 Box
2311 438 Box
2328 437 Box
2345 436 Box
2363 435 Box
2380 435 Box
2397 434 Box
2415 433 Box
2432 432 Box
2450 432 Box
2467 431 Box
2484 430 Box
2502 429 Box
2519 429 Box
2536 428 Box
2554 427 Box
2571 426 Box
2588 426 Box
2606 425 Box
2623 424 Box
2640 423 Box
2658 423 Box
2675 422 Box
2693 421 Box
2710 420 Box
2727 420 Box
2745 420 Box
2762 420 Box
2779 420 Box
2797 420 Box
2814 420 Box
2831 420 Box
2849 420 Box
2866 420 Box
2883 420 Box
2901 420 Box
2918 420 Box
2936 420 Box
2953 420 Box
2970 420 Box
2988 420 Box
3005 420 Box
3022 420 Box
3040 420 Box
6594 4319 Box
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

Binary file not shown.

View File

@ -0,0 +1,978 @@
%!PS-Adobe-2.0
%%Title: Mallsin.eps
%%Creator: gnuplot 3.7 patchlevel 3
%%CreationDate: Tue Apr 12 08:59:12 2005
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 554 770
%%Orientation: Landscape
%%Pages: (atend)
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color true def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
0 vshift R show } def
/Rshow { currentpoint stroke M
dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
{pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
/C1 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill
Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore } def
/CircE { stroke [] 0 setdash
hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore } def
/CircW { stroke [] 0 setdash
hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
50 50 translate
0.100 0.100 scale
90 rotate
0 -5040 translate
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
1.000 UL
LTb
1.000 UL
LTa
714 420 M
6248 0 V
1.000 UL
LTb
714 420 M
63 0 V
6185 0 R
-63 0 V
630 420 M
( 0) Rshow
1.000 UL
LTa
714 1056 M
6248 0 V
1.000 UL
LTb
714 1056 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.2) Rshow
1.000 UL
LTa
714 1692 M
6248 0 V
1.000 UL
LTb
714 1692 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.4) Rshow
1.000 UL
LTa
714 2328 M
6248 0 V
1.000 UL
LTb
714 2328 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.6) Rshow
1.000 UL
LTa
714 2964 M
6248 0 V
1.000 UL
LTb
714 2964 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 0.8) Rshow
1.000 UL
LTa
714 3600 M
6248 0 V
1.000 UL
LTb
714 3600 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 1) Rshow
1.000 UL
LTa
714 4236 M
6248 0 V
1.000 UL
LTb
714 4236 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 1.2) Rshow
1.000 UL
LTa
714 4872 M
6248 0 V
1.000 UL
LTb
714 4872 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
( 1.4) Rshow
1.000 UL
LTa
714 420 M
0 4452 V
1.000 UL
LTb
714 420 M
0 63 V
0 4389 R
0 -63 V
714 280 M
( 0) Cshow
1.000 UL
LTa
1408 420 M
0 4452 V
1.000 UL
LTb
1408 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 5) Cshow
1.000 UL
LTa
2102 420 M
0 4452 V
1.000 UL
LTb
2102 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 10) Cshow
1.000 UL
LTa
2797 420 M
0 4452 V
1.000 UL
LTb
2797 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 15) Cshow
1.000 UL
LTa
3491 420 M
0 4452 V
1.000 UL
LTb
3491 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 20) Cshow
1.000 UL
LTa
4185 420 M
0 4452 V
1.000 UL
LTb
4185 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 25) Cshow
1.000 UL
LTa
4879 420 M
0 4452 V
1.000 UL
LTb
4879 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 30) Cshow
1.000 UL
LTa
5574 420 M
0 3829 V
0 560 R
0 63 V
1.000 UL
LTb
5574 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 35) Cshow
1.000 UL
LTa
6268 420 M
0 3829 V
0 560 R
0 63 V
1.000 UL
LTb
6268 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 40) Cshow
1.000 UL
LTa
6962 420 M
0 4452 V
1.000 UL
LTb
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
( 45) Cshow
1.000 UL
LTb
714 420 M
6248 0 V
0 4452 V
-6248 0 V
714 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(distribution) Cshow
grestore
3838 70 M
([deg]) Cshow
1.000 UP
1.000 UL
LT0
6311 4739 M
('M5.keV' us 1:3) Rshow
783 420 Pls
853 449 Pls
922 477 Pls
992 505 Pls
1061 533 Pls
1131 561 Pls
1200 588 Pls
1269 616 Pls
1339 643 Pls
1408 670 Pls
1478 696 Pls
1547 720 Pls
1616 744 Pls
1686 767 Pls
1755 789 Pls
1825 811 Pls
1894 832 Pls
1964 853 Pls
2033 872 Pls
2102 892 Pls
2172 909 Pls
2241 925 Pls
2311 941 Pls
2380 956 Pls
2450 969 Pls
2519 981 Pls
2588 992 Pls
2658 1002 Pls
2727 1011 Pls
2797 1020 Pls
2866 1027 Pls
2936 1034 Pls
3005 1040 Pls
3074 1044 Pls
3144 1048 Pls
3213 1052 Pls
3283 1054 Pls
3352 1055 Pls
3421 1056 Pls
3491 1056 Pls
3560 1056 Pls
3630 1054 Pls
3699 1052 Pls
3769 1049 Pls
3838 1045 Pls
3907 1041 Pls
3977 1035 Pls
4046 1029 Pls
4116 1023 Pls
4185 1019 Pls
4255 1013 Pls
4324 1007 Pls
4393 1001 Pls
4463 993 Pls
4532 985 Pls
4602 977 Pls
4671 968 Pls
4740 958 Pls
4810 951 Pls
4879 943 Pls
4949 936 Pls
5018 928 Pls
5088 919 Pls
5157 910 Pls
5226 900 Pls
5296 890 Pls
5365 879 Pls
5435 870 Pls
5504 861 Pls
5574 852 Pls
5643 843 Pls
5712 834 Pls
5782 825 Pls
5851 817 Pls
5921 809 Pls
5990 801 Pls
6060 792 Pls
6129 785 Pls
6198 779 Pls
6268 772 Pls
6337 765 Pls
6407 757 Pls
6476 750 Pls
6545 742 Pls
6615 734 Pls
6684 725 Pls
6754 718 Pls
6823 712 Pls
6893 706 Pls
6962 700 Pls
6594 4739 Pls
1.000 UP
1.000 UL
LT1
6311 4599 M
('M10.keV' us 1:3) Rshow
783 420 Crs
853 534 Crs
922 646 Crs
992 757 Crs
1061 866 Crs
1131 971 Crs
1200 1067 Crs
1269 1159 Crs
1339 1245 Crs
1408 1326 Crs
1478 1400 Crs
1547 1465 Crs
1616 1524 Crs
1686 1570 Crs
1755 1610 Crs
1825 1644 Crs
1894 1670 Crs
1964 1690 Crs
2033 1702 Crs
2102 1708 Crs
2172 1710 Crs
2241 1705 Crs
2311 1693 Crs
2380 1675 Crs
2450 1653 Crs
2519 1635 Crs
2588 1611 Crs
2658 1583 Crs
2727 1548 Crs
2797 1516 Crs
2866 1488 Crs
2936 1456 Crs
3005 1419 Crs
3074 1379 Crs
3144 1343 Crs
3213 1308 Crs
3283 1272 Crs
3352 1241 Crs
3421 1208 Crs
3491 1181 Crs
3560 1154 Crs
3630 1124 Crs
3699 1092 Crs
3769 1060 Crs
3838 1038 Crs
3907 1014 Crs
3977 988 Crs
4046 961 Crs
4116 936 Crs
4185 917 Crs
4255 897 Crs
4324 876 Crs
4393 854 Crs
4463 835 Crs
4532 819 Crs
4602 802 Crs
4671 784 Crs
4740 766 Crs
4810 753 Crs
4879 741 Crs
4949 728 Crs
5018 715 Crs
5088 702 Crs
5157 692 Crs
5226 681 Crs
5296 671 Crs
5365 659 Crs
5435 649 Crs
5504 641 Crs
5574 633 Crs
5643 624 Crs
5712 615 Crs
5782 609 Crs
5851 604 Crs
5921 598 Crs
5990 593 Crs
6060 588 Crs
6129 582 Crs
6198 576 Crs
6268 570 Crs
6337 564 Crs
6407 558 Crs
6476 551 Crs
6545 545 Crs
6615 540 Crs
6684 537 Crs
6754 534 Crs
6823 531 Crs
6893 527 Crs
6962 524 Crs
6594 4599 Crs
1.000 UP
1.000 UL
LT2
6311 4459 M
('M20.keV'us 1:3) Rshow
749 420 Star
783 647 Star
818 871 Star
853 1093 Star
888 1311 Star
922 1522 Star
957 1714 Star
992 1897 Star
1026 2069 Star
1061 2233 Star
1096 2381 Star
1131 2511 Star
1165 2629 Star
1200 2723 Star
1235 2804 Star
1269 2871 Star
1304 2925 Star
1339 2965 Star
1374 2991 Star
1408 3004 Star
1443 3008 Star
1478 2999 Star
1512 2977 Star
1547 2942 Star
1582 2898 Star
1616 2863 Star
1651 2818 Star
1686 2761 Star
1721 2694 Star
1755 2629 Star
1790 2574 Star
1825 2511 Star
1859 2439 Star
1894 2358 Star
1929 2286 Star
1964 2217 Star
1998 2146 Star
2033 2085 Star
2068 2018 Star
2102 1965 Star
2137 1911 Star
2172 1852 Star
2207 1788 Star
2241 1723 Star
2276 1679 Star
2311 1631 Star
2345 1580 Star
2380 1525 Star
2415 1476 Star
2450 1438 Star
2484 1398 Star
2519 1355 Star
2554 1311 Star
2588 1273 Star
2623 1241 Star
2658 1207 Star
2693 1171 Star
2727 1134 Star
2762 1108 Star
2797 1084 Star
2831 1059 Star
2866 1032 Star
2901 1005 Star
2936 985 Star
2970 964 Star
3005 942 Star
3040 920 Star
3074 898 Star
3109 882 Star
3144 866 Star
3178 848 Star
3213 830 Star
3248 817 Star
3283 807 Star
3317 797 Star
3352 786 Star
3387 775 Star
3421 764 Star
3456 752 Star
3491 740 Star
3526 727 Star
3560 714 Star
3595 701 Star
3630 687 Star
3664 678 Star
3699 671 Star
3734 665 Star
3769 658 Star
3803 651 Star
3838 644 Star
3873 637 Star
3907 630 Star
3942 622 Star
3977 614 Star
4012 606 Star
4046 598 Star
4081 592 Star
4116 588 Star
4150 584 Star
4185 580 Star
4220 575 Star
4255 571 Star
4289 566 Star
4324 561 Star
4359 556 Star
4393 551 Star
4428 546 Star
4463 541 Star
4498 538 Star
4532 535 Star
4567 532 Star
4602 529 Star
4636 526 Star
4671 523 Star
4706 520 Star
4740 517 Star
4775 514 Star
4810 511 Star
4845 507 Star
4879 504 Star
4914 501 Star
4949 498 Star
4983 495 Star
5018 492 Star
5053 489 Star
5088 486 Star
5122 482 Star
5157 479 Star
5192 476 Star
5226 472 Star
5261 469 Star
5296 466 Star
5331 462 Star
5365 458 Star
5400 455 Star
5435 451 Star
5469 447 Star
5504 444 Star
5539 440 Star
5574 436 Star
5608 432 Star
5643 428 Star
5678 424 Star
5712 420 Star
5747 420 Star
5782 420 Star
5817 420 Star
5851 420 Star
5886 420 Star
5921 420 Star
5955 420 Star
5990 420 Star
6025 420 Star
6060 420 Star
6094 420 Star
6129 420 Star
6164 420 Star
6198 420 Star
6233 420 Star
6268 420 Star
6302 420 Star
6337 420 Star
6372 420 Star
6407 420 Star
6441 420 Star
6476 420 Star
6511 420 Star
6594 4459 Star
1.000 UP
1.000 UL
LT3
6311 4319 M
('M30.keV' us 1:3) Rshow
749 420 Box
783 931 Box
818 1433 Box
853 1924 Box
888 2368 Box
922 2775 Box
957 3149 Box
992 3472 Box
1026 3744 Box
1061 3948 Box
1096 4107 Box
1131 4221 Box
1165 4287 Box
1200 4311 Box
1235 4298 Box
1269 4240 Box
1304 4146 Box
1339 4061 Box
1374 3938 Box
1408 3779 Box
1443 3657 Box
1478 3508 Box
1512 3330 Box
1547 3173 Box
1582 3014 Box
1616 2872 Box
1651 2743 Box
1686 2617 Box
1721 2475 Box
1755 2347 Box
1790 2240 Box
1825 2122 Box
1859 2008 Box
1894 1921 Box
1929 1826 Box
1964 1727 Box
1998 1655 Box
2033 1577 Box
2068 1492 Box
2102 1438 Box
2137 1381 Box
2172 1321 Box
2207 1271 Box
2241 1223 Box
2276 1172 Box
2311 1130 Box
2345 1092 Box
2380 1052 Box
2415 1019 Box
2450 997 Box
2484 973 Box
2519 948 Box
2554 921 Box
2588 893 Box
2623 864 Box
2658 833 Box
2693 811 Box
2727 796 Box
2762 781 Box
2797 766 Box
2831 749 Box
2866 732 Box
2901 714 Box
2936 696 Box
2970 682 Box
3005 673 Box
3040 663 Box
3074 653 Box
3109 642 Box
3144 631 Box
3178 620 Box
3213 608 Box
3248 600 Box
3283 593 Box
3317 587 Box
3352 580 Box
3387 573 Box
3421 566 Box
3456 558 Box
3491 551 Box
3526 544 Box
3560 537 Box
3595 530 Box
3630 523 Box
3664 515 Box
3699 508 Box
3734 500 Box
3769 492 Box
3803 484 Box
3838 475 Box
3873 467 Box
3907 458 Box
3942 449 Box
3977 440 Box
4012 431 Box
4046 421 Box
4081 420 Box
4116 420 Box
4150 420 Box
4185 420 Box
4220 420 Box
4255 420 Box
4289 420 Box
4324 420 Box
4359 420 Box
4393 420 Box
4428 420 Box
4463 420 Box
4498 420 Box
4532 420 Box
4567 420 Box
6594 4319 Box
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

Binary file not shown.

BIN
geant4/TaoLEMuSR/MEYER/a.out Executable file

Binary file not shown.

2
geant4/TaoLEMuSR/MEYER/g Normal file
View File

@ -0,0 +1,2 @@
gnuplot

View File

@ -0,0 +1,6 @@
set term post col
set outp "Mall2.eps"
set grid
pl [0:45] 'testmeyer.out' us 1:2, exp(-x*x/200.)
set xlabel "[deg]"
set ylab "distribution"

View File

@ -0,0 +1,6 @@
set term post col
set outp "testmeyer.eps"
set grid
pl [0:15] 'testmeyer.out', exp(-x*x/1.)*61.5
set outp "testmeyer2.eps"
pl [0:15] 'testmeyer.out', exp(-x*x/1.)*61.5

View File

@ -0,0 +1,888 @@
/*
fIRST IMPLEMENTATION BY ANLSEM,H. IN FORTRAN
C++ CONVERSION T.K.PARAISO 04-2005
!!! IMPORTANT !!!
Notice:
Tables definition changes between FORTRAN and C++:
1/ Fortran indices start at 1 and C++ indices start at 0
2/ Tables are defined as table[column][row] in Fortran
table[row][column] in c++
usefull reference
http://gershwin.ens.fr/vdaniel/Doc-Locale/Langages-Program-Scientific/Fortran/Tutorial/arrays.htm
*/
#include "meyer.h"
#include <iomanip>
#include <fstream>
#include <iostream>
#include <stdlib.h>
#include<ios>
using namespace std;
meyer::meyer()
{;}
meyer::~meyer()
{;}
void meyer::GFunctions(double* g1,double* g2, double tau)
{
//Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau'
//Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von
//Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts-
//breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253
//(1971))
double help;
int i;
double tau_[] = {0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0,
2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 12.0, 14.0, 16.0, 18.0, 20.0 };
double g1_[] = {0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575,
0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850,
1.990,2.270,2.540,2.800,3.050,3.290 };
double g2_[] = {0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59,
0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32,
0.30,0.26,0.22,0.18,0.15,0.13 };
if (tau<tau_[0])// tau_[0] is the lowest in c++; in fortran it is tau_[1]!!! TAO!
{
std::cout<<"SUBROUTINE G_Functions:"<<std::endl;
std::cout<<" Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:"<<std::endl;
std::cout<<" aktuelles tau ist kleiner als kleinster Tabellenwert:"<<std::endl;
std::cout<<" tau = "<< tau<<std::endl;
std::cout<<" tau_[0] = "<< tau_[0]<<std::endl;
return;
}
i = 1;
do
{
i = i + 1;
if (i==26)
{
std::cout<<"SUBROUTINE G_Functions:"<<std::endl;
std::cout<<" Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:"<<std::endl;
std::cout<<" aktuelles tau ist groesser als groesster Tabellenwert:"<<std::endl;
std::cout<<" tau = "<< tau <<std::endl;
std::cout<<" tau_[26] = "<< tau_[26] <<std::endl;
break;
}
}while(tau>tau_[i]);
//lineare Interpolation zwischen Tabellenwerten:
help = (tau-tau_[i-1])/(tau_[i]-tau_[i-1]);
*g1 = g1_[i-1] + help*(g1_[i]-g1_[i-1]);
*g2 = g2_[i-1] + help*(g2_[i]-g2_[i-1]);
}
//==========================================================================================
void meyer:: Get_F_Function_Meyer(double tau, double Ekin, double Z1, double Z2, double m1, double m2)
{
double thetaSchlange,thetaSchlangeMax;
double theta,thetaMax,thetaStep;
double f1,f2,F;
//---------------------------------
//- Parameters:
// double Z1, Z2; ! die atomaren Nummern von Projektil und Target
double a0; // ! Bohrscher Radius in cm
double screeningPar; // ! Screeningparameter "a" in cm fuer Teilchen der
// ! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6)
// ! bei Streichung von Z1 (vgl. Referenz, S. 268)
double r0Meyer; // ! r0(C) berechnet aus dem screeningParameter "a"
// ! und dem ebenfalls bei Meyer angegebenem
// ! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben)
double eSquare; // ! elektrische Ladung zum Quadrat in keV*cm
double Pi ; // ! die Kreiszahl
///
a0 = 5.29E-9;//unit == centimeter
//the screening parameter
double D= exp(2/3*log(Z1))+exp(2/3*log(Z2));
double a=0.885*a0/sqrt(D);
screeningPar=a; // screeningPar = 2.5764E-9;
r0Meyer = 9.909E-9;
eSquare = 1.44E-10;
Pi = 3.141592654;
double Meyer_faktor3;
double Meyer_faktor4;
double zzz;// ! "Hilfsparameter"
double Meyer_faktor5;
Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer);
Meyer_faktor4 = (m1+m2)/m2/2.;
//((1./9.+12.)/12.)/2. ;// TAO m1+m2/m2/2.
// in meyer article, we then have b= mf4/Ekine1= (m1+m2)/(m2*2*m1*v1²)
zzz = screeningPar / (2.*Z1*Z2*eSquare);
Meyer_faktor5 = zzz*zzz / (8*Pi*Pi);
//---------------------------------
//---------------------------------
//---------------------------------
int nBin,nBinMax;
nBinMax=201;
double value[nBinMax]; // /0.,nBinMax*0./
double area[nBinMax] ; // / nBinMax*0./
double integ[nBinMax]; // /0.,nBinMax*0./
// common /MeyerTable/ value,area,integ,thetaStep,nBin
int i;
double rHelp;
int HB_memsize;
HB_memsize=500000;
double memory[HB_memsize];
// COMMON /PAWC/ memory
//nur noch fuer Testzwecke:
double fValues[203];
double fValuesFolded[203];
int idh;
idh = 50;
//INCLUDE "mutrack$sourcedirectory:COM_DIRS.INC"
// character filename*20 ! Name der Ausgabe-Dateien
// COMMON /filename/ filename
//----------------------------------------------------------------------------
//Festlegen des maximalen Theta-Wertes sowie der Schrittweite:
if (tau<0.2)
{
std::cout<< "Subroutine ''Get_F_Function_Meyer'':"<<std::endl;
std::cout<< "Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP"<<std::endl;
return;
}
else if (tau<=2.)
{
// ! => Tabelle A
thetaSchlangeMax = 4.0;
}
else if (tau<=8.)
{
//! => Tabelle B
thetaSchlangeMax = 7.0;
}
else if (tau<=20.)
{
//! => Tabelle C
thetaSchlangeMax = 20.0;
}
else
{
std::cout<< "Subroutine ''Get_F_Function_Meyer'':"<<std::endl;
std::cout<< "Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP"<<std::endl;
return;
}
std::cout<< "M4: "<<Meyer_faktor4<<std::endl;
std::cout<< "Ekin: "<<Ekin <<std::endl;
thetaMax = thetaSchlangeMax / Meyer_faktor4 / Ekin/M_PI*180;
if (thetaMax>50.)
{
thetaStep = .5;
}
else if (thetaMax>25)
{
thetaStep = .25;
}
else if (thetaMax>12.5)
{
thetaStep = .125;
}
else
{
thetaStep = .0625;
}
//Tabelle der F-Werte erstellen:
nBin = 0;
std::cout<<"thetamax = "<<thetaMax << std::endl;
theta=thetaStep;
// begining of do loop
for( theta = thetaStep; theta<=thetaMax; theta+=thetaStep)
{
// std::cout<<"theta"<<theta << std::endl;
// ! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich
// ! noch von degree bei theta in Radiant bei thetaSchlange umrechnen):
//
thetaSchlange = Meyer_faktor4 * Ekin * theta *M_PI/180;
// ! Auslesen der Tabellenwerte fuer die f-Funktionen:
F_Functions_Meyer(tau,thetaSchlange,&f1,&f2);
if (thetaSchlange==-1)
{
//! wir sind jenseits von thetaSchlangeMax
goto bigtheta;
// endif
}
// ! Berechnen der Streuintensitaet:
F = Meyer_faktor4*Meyer_faktor4 * Ekin*Ekin /2 /M_PI * (f1 - Meyer_faktor3*f2);// TAO, Anselm was: Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2);
nBin = nBin + 1;
if (nBin>nBinMax)
{
std::cout<< "nBin > nBinMax => EXIT";
break;
}
value[nBin] = sin(theta)*F;
fValues[nBin+1] = F; // ! fuer Testzwecke
fValuesFolded[nBin+1] = sin(theta/180*M_PI)*F;// ! fuer Testzwecke
}// end of do loop
//Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale:
bigtheta:for( i = 1;i<= nBin; i++)
{
area[i] = (value[i]+value[i-1])/2.* thetaStep;
integ[i] = integ[i-1] + area[i];
}
//Normiere totale Flaeche auf 1:
rHelp = integ[nBin];
for( i = 1; i<=nBin; i++)
{
value[i] = value[i] / rHelp;
area[i] = area[i] / rHelp;
integ[i] = integ[i] / rHelp;
}
//vorerst noch: gib Tabelle in Datei und Histogrammfile aus:
//! Berechne die Werte fuer theta=0:
F_Functions_Meyer(tau,0.,&f1,&f2);
F = Meyer_faktor4*Meyer_faktor4 * Ekin*Ekin /2 /M_PI * (f1 - Meyer_faktor3*f2);// TAO, Anselm was: Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2);
fValues[1] = F;
fValuesFolded[1] = 0.;
//! Gib die Werte in das Tabellenfile aus:
ofstream Mprint("tkm.out");
theta = thetaStep;
if (!Mprint.is_open()) exit(8);
for( i = 1; i<=nBin+1;i++)
{
Mprint << theta<< " "<< fValues[i]/fValues[1]<<" " << fValuesFolded[i]<<std::endl;
theta = theta + thetaStep;
}
Mprint.close();
}
//===============================================================================================
void meyer:: F_Functions_Meyer( double tau,double thetaSchlange,double *f1,double *f2)
{
//Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau'
//Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den
//bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine
//verwendeten Tabellen sind eben dieser Referenz entnommen:
//L.Meyer, phys.stat.sol. (b) 44, 253 (1971)
double f1_[2], f2_[2];
int column_,column,row;
int iColumn;
double weightCol, weightRow;
//----------------------------------------------------------------------------
//die Tabellendaten der Referenz (Tabellen 2 und 3):
int nColumn;
nColumn=24;
double tau_[25]= {
0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0,
3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 10., 12., 14., 16., 18., 20.
};
int nRowA=24;
double thetaSchlangeA[25]=
{
.00, .05, .10, .15, .20, .25, .30, .35, .40, .45, .50, .60,
.70, .80, .90, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, 3.5, 4.0
};
int nRowB=23;
double thetaSchlangeB[24]=
{
0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.8,
2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0
};
int nRowC=23;
double thetaSchlangeC[24]=
{
0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0,
7.0, 8.0, 9.0, 10., 11., 12., 13., 14., 15., 16., 18., 20.
};
double f1_A[25][9]=
{
1.96E+2,4.55E+1,2.11E+1,1.25E+1,8.48E+0,6.21E+0,4.80E+0,3.86E+0,3.20E+0,
9.82E+1,3.72E+1,1.97E+1,1.20E+1,8.27E+0,6.11E+0,4.74E+0,3.83E+0,3.17E+0,
3.96E+1,2.58E+1,1.65E+1,1.09E+1,7.73E+0,5.82E+0,4.58E+0,3.72E+0,3.10E+0,
1.76E+1,1.58E+1,1.27E+1,9.26E+0,6.93E+0,5.38E+0,4.31E+0,3.55E+0,2.99E+0,
8.62E+0,1.01E+1,9.45E+0,7.58E+0,6.02E+0,4.85E+0,3.98E+0,3.33E+0,2.84E+0,
4.65E+0,6.55E+0,6.91E+0,6.06E+0,5.11E+0,4.28E+0,3.62E+0,3.08E+0,2.66E+0,
2.74E+0,4.45E+0,5.03E+0,4.78E+0,4.27E+0,3.72E+0,3.23E+0,2.82E+0,2.47E+0,
1.77E+0,3.02E+0,3.71E+0,3.76E+0,3.53E+0,3.20E+0,2.86E+0,2.55E+0,2.27E+0,
1.22E+0,2.19E+0,2.78E+0,2.96E+0,2.91E+0,2.73E+0,2.51E+0,2.28E+0,2.07E+0,
8.82E-1,1.59E+0,2.12E+0,2.35E+0,2.39E+0,2.32E+0,2.19E+0,2.03E+0,1.87E+0,
6.55E-1,1.20E+0,1.64E+0,1.88E+0,1.97E+0,1.96E+0,1.90E+0,1.79E+0,1.68E+0,
3.80E-1,7.15E-1,1.01E+0,1.22E+0,1.35E+0,1.40E+0,1.41E+0,1.39E+0,1.34E+0,
2.26E-1,4.45E-1,6.44E-1,8.08E-1,9.28E-1,1.01E+0,1.05E+0,1.06E+0,1.05E+0,
1.39E-1,2.80E-1,4.21E-1,5.45E-1,6.46E-1,7.22E-1,7.75E-1,8.07E-1,8.21E-1,
8.22E-2,1.76E-1,2.78E-1,3.71E-1,4.53E-1,5.21E-1,5.74E-1,6.12E-1,6.37E-1,
5.04E-2,1.11E-1,1.86E-1,2.57E-1,3.22E-1,3.79E-1,4.27E-1,4.65E-1,4.94E-1,
2.51E-2,5.60E-2,9.24E-2,1.31E-1,1.69E-1,2.02E-1,2.40E-1,2.71E-1,2.97E-1,
1.52E-2,3.20E-2,5.08E-2,7.23E-2,9.51E-2,1.18E-1,1.41E-1,1.63E-1,1.83E-1,
1.03E-2,2.05E-2,3.22E-2,4.55E-2,6.01E-2,7.53E-2,9.02E-2,1.05E-1,1.19E-1,
8.80E-3,1.48E-2,2.25E-2,3.13E-2,4.01E-2,5.03E-2,6.01E-2,7.01E-2,8.01E-2,
6.10E-3,1.15E-2,1.71E-2,2.28E-2,2.89E-2,3.52E-2,4.18E-2,4.86E-2,5.55E-2,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,1.71E-2,1.98E-2,2.28E-2,2.58E-2,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.90E-3,1.02E-2,1.16E-2,1.31E-2,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,4.90E-3,5.70E-3,6.40E-3,7.20E-3,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.90E-3,3.40E-3,3.90E-3,4.30E-3
};
double f1_B[24][9]=
{
2.71E+0,1.92E+0,1.46E+0,1.16E+0,9.52E-1,8.03E-1,6.90E-1,5.32E-1,4.28E-1,
2.45E+0,1.79E+0,1.39E+0,1.12E+0,9.23E-1,7.82E-1,6.75E-1,5.23E-1,4.23E-1,
1.87E+0,1.48E+0,1.20E+0,9.96E-1,8.42E-1,7.24E-1,6.32E-1,4.98E-1,4.07E-1,
1.56E+0,1.30E+0,1.09E+0,9.19E-1,7.89E-1,6.86E-1,6.03E-1,4.80E-1,3.95E-1,
1.28E+0,1.11E+0,9.62E-1,8.33E-1,7.27E-1,6.40E-1,5.69E-1,4.59E-1,3.81E-1,
8.23E-1,7.90E-1,7.29E-1,6.64E-1,6.01E-1,5.44E-1,4.94E-1,4.12E-1,3.49E-1,
5.14E-1,5.36E-1,5.29E-1,5.07E-1,4.78E-1,4.47E-1,4.16E-1,3.60E-1,3.13E-1,
3.19E-1,3.58E-1,3.76E-1,3.78E-1,3.70E-1,3.57E-1,3.45E-1,3.08E-1,2.76E-1,
2.02E-1,2.40E-1,2.64E-1,2.77E-1,2.82E-1,2.80E-1,2.65E-1,2.59E-1,2.39E-1,
1.67E-1,1.96E-1,2.20E-1,2.36E-1,2.44E-1,2.47E-1,2.45E-1,2.35E-1,2.21E-1,
1.33E-1,1.61E-1,1.85E-1,2.02E-1,2.12E-1,2.18E-1,2.18E-1,2.14E-1,2.03E-1,
8.99E-2,1.12E-1,1.32E-1,1.48E-1,1.59E-1,1.67E-1,1.68E-1,1.75E-1,1.72E-1,
6.24E-2,7.94E-2,9.50E-2,1.09E-1,1.20E-1,1.29E-1,1.35E-1,1.42E-1,1.43E-1,
4.55E-2,5.74E-2,6.98E-2,8.11E-2,9.09E-2,9.92E-2,1.06E-1,1.15E-1,1.19E-1,
3.35E-2,4.22E-2,5.19E-2,6.11E-2,6.95E-2,7.69E-2,8.33E-2,9.28E-2,9.85E-2,
2.50E-2,3.16E-2,3.92E-2,4.66E-2,5.35E-2,6.00E-2,6.57E-2,7.49E-2,8.13E-2,
1.90E-2,2.40E-2,2.99E-2,3.58E-2,4.16E-2,4.70E-2,5.20E-2,6.05E-2,6.70E-2,
1.47E-2,1.86E-2,2.32E-2,2.79E-2,3.25E-2,3.70E-2,4.12E-2,4.89E-2,5.51E-2,
8.10E-3,1.04E-2,1.30E-2,1.57E-2,1.84E-2,2.12E-2,2.40E-2,2.93E-2,3.42E-2,
4.80E-3,6.20E-3,7.70E-3,9.30E-3,1.09E-2,1.26E-2,1.44E-2,1.79E-2,2.14E-2,
2.80E-3,3.80E-3,4.70E-3,5.70E-3,6.70E-3,7.50E-3,8.90E-3,1.13E-2,1.36E-2,
1.70E-3,2.30E-3,2.90E-3,3.60E-3,4.20E-3,4.90E-3,5.60E-3,7.20E-3,8.80E-3,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.00E-3,2.80E-3,3.50E-3,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.80E-4,1.20E-3,1.60E-3
};
double f1_C[24][7]=
{
3.65E-1,2.62E-1,2.05E-1,1.67E-1,1.41E-1,1.21E-1,1.05E-1,
3.33E-1,2.50E-1,1.95E-1,1.61E-1,1.36E-1,1.18E-1,1.03E-1,
2.75E-1,2.18E-1,1.76E-1,1.48E-1,1.27E-1,1.11E-1,9.80E-2,
2.04E-1,1.75E-1,1.50E-1,1.29E-1,1.13E-1,1.01E-1,9.00E-2,
1.41E-1,1.31E-1,1.19E-1,1.08E-1,9.71E-2,8.88E-2,8.01E-2,
9.32E-2,9.42E-2,9.10E-2,8.75E-2,8.00E-2,7.44E-2,6.91E-2,
5.98E-2,6.52E-2,6.72E-2,6.62E-2,6.40E-2,6.12E-2,5.82E-2,
3.83E-2,4.45E-2,4.80E-2,4.96E-2,4.98E-2,4.90E-2,4.77E-2,
2.46E-2,3.01E-2,3.40E-2,3.65E-2,3.79E-2,3.84E-2,3.83E-2,
1.59E-2,2.03E-2,2.39E-2,2.66E-2,2.85E-2,2.97E-2,3.04E-2,
1.04E-2,1.37E-2,1.66E-2,1.92E-2,2.12E-2,2.27E-2,2.37E-2,
4.39E-3,6.26E-3,8.26E-3,9.96E-3,1.15E-2,1.29E-2,1.41E-2,
2.06E-3,3.02E-3,4.24E-3,5.28E-3,6.32E-3,7.32E-3,8.26E-3,
1.21E-3,1.69E-3,2.24E-3,2.85E-3,3.50E-3,4.16E-3,4.82E-3,
8.50E-4,1.10E-3,1.38E-3,1.65E-3,2.03E-3,2.45E-3,2.88E-3,
5.90E-4,7.40E-4,8.50E-4,9.90E-4,1.23E-3,1.49E-3,1.71E-3,
3.90E-4,4.60E-4,5.20E-4,6.30E-4,7.65E-4,9.65E-4,1.12E-3,
2.40E-4,2.70E-4,3.10E-4,3.98E-4,4.97E-4,6.03E-4,7.18E-4,
1.50E-4,1.70E-4,2.15E-4,2.70E-4,3.35E-4,4.35E-4,5.00E-4,
1.00E-4,1.20E-4,1.46E-4,1.90E-4,2.40E-4,2.88E-4,3.43E-4,
0.00 ,0.00 ,1.04E-4,1.41E-4,1.80E-4,2.10E-4,2.50E-4,
0.00 ,0.00 ,8.20E-5,1.06E-4,1.38E-4,1.58E-4,1.85E-4,
0.00 ,0.00 ,5.40E-5,7.00E-5,8.60E-5,1.03E-4,1.20E-4,
0.00 ,0.00 ,4.20E-5,5.40E-5,6.50E-5,7.70E-5,8.80E-5
};
double f2_A[25][9]=
{
3.52E+3, 3.27E+2, 9.08E+1, 3.85E+1, 2.00E+1, 1.18E+1, 7.55E+0, 5.16E+0, 3.71E+0,
2.58E+2, 1.63E+2, 7.30E+1, 3.42E+1, 1.85E+1, 1.11E+1, 7.18E+0, 4.96E+0, 3.59E+0,
-1.12E+2, 4.84E+0, 3.56E+1, 2.34E+1, 1.45E+1, 9.33E+0, 6.37E+0, 4.51E+0, 3.32E+0,
-5.60E+1,-1.12E+1, 9.87E+0, 1.24E+1, 9.59E+0, 7.01E+0, 5.16E+0, 3.83E+0, 2.91E+0,
-2.13E+1,-1.22E+1,-2.23E+0, 3.88E+0, 5.15E+0, 4.65E+0, 3.87E+0, 3.12E+0, 2.45E+0,
-8.25E+0,-9.58E+0,-5.59E+0,-1.40E+0, 1.76E+0, 2.71E+0, 2.71E+0, 2.35E+0, 1.95E+0,
-3.22E+0,-6.12E+0,-5.28E+0,-2.87E+0,-1.92E-1, 1.32E+0, 1.69E+0, 1.74E+0, 1.48E+0,
-1.11E+0,-3.40E+0,-4.12E+0,-3.08E+0,-6.30E-1, 3.60E-1, 9.20E-1, 1.03E+0, 1.04E+0,
-2.27E-1,-2.00E+0,-2.93E+0,-2.69E+0,-1.48E+0,-3.14E-1, 2.69E-1, 5.28E-1, 6.09E-1,
1.54E-1,-1.09E+0,-2.10E+0,-2.15E+0,-1.47E+0,-6.77E-1,-1.80E-1, 1.08E-1, 2.70E-1,
3.28E-1,-6.30E-1,-1.50E+0,-1.68E+0,-1.34E+0,-8.43E-1,-4.60E-1,-1.85E-1,-4.67E-3,
3.32E-1,-2.06E-1,-7.32E-1,-9.90E-1,-9.42E-1,-8.20E-1,-6.06E-1,-4.51E-1,-3.01E-1,
2.72E-1,-3.34E-2,-3.49E-1,-5.65E-1,-6.03E-1,-5.79E-1,-5.05E-1,-4.31E-1,-3.45E-1,
2.02E-1, 2.80E-2,-1.54E-1,-3.00E-1,-3.59E-1,-3.76E-1,-4.60E-1,-3.40E-1,-3.08E-1,
1.38E-1, 4.84E-2,-5.56E-2,-1.44E-1,-2.04E-1,-2.39E-1,-2.54E-1,-2.49E-1,-2.48E-1,
9.47E-2, 4.86E-2,-1.08E-2,-6.44E-2,-1.02E-1,-1.34E-1,-1.62E-1,-1.79E-1,-1.87E-1,
5.33E-2, 3.71E-2, 1.85E-2, 1.63E-3,-1.69E-2,-3.69E-2,-5.66E-2,-7.78E-2,-9.33E-2,
3.38E-2, 2.40E-2, 1.62E-2, 9.90E-3, 3.76E-3,-4.93E-3,-1.66E-2,-3.05E-2,-4.22E-2,
2.12E-2, 1.56E-2, 1.05E-2, 7.80E-3, 7.92E-3, 6.30E-3, 3.20E-4,-8.50E-3,-1.66E-2,
1.40E-2, 9.20E-3, 5.30E-3, 4.70E-3, 6.31E-3, 8.40E-3, 5.30E-3, 8.80E-4,-3.30E-3,
9.20E-3, 4.70E-3, 1.70E-3, 2.60E-3, 4.49E-3, 6.60E-3, 6.00E-3, 4.70E-3, 2.80E-3,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00
};
double f2_B[24][9]=
{
2.75E+0, 1.94E+0, 9.13E-1, 6.06E-1, 4.26E-1, 3.14E-1, 2.40E-1, 1.51E-1, 1.03E-1,
1.94E+0, 1.16E+0, 7.56E-1, 5.26E-1, 3.81E-1, 2.87E-1, 2.23E-1, 1.43E-1, 9.78E-2,
5.85E-1, 5.04E-1, 4.10E-1, 3.30E-1, 2.69E-1, 2.17E-1, 1.78E-1, 1.22E-1, 8.71E-2,
7.83E-2, 2.00E-1, 2.35E-1, 2.19E-1, 1.97E-1, 1.73E-1, 1.48E-1, 1.08E-1, 7.93E-2,
-1.82E-1, 1.56E-2, 1.04E-1, 1.36E-1, 1.38E-1, 1.31E-1, 1.19E-1, 9.46E-2, 7.19E-2,
-2.71E-1,-1.66E-1,-7.29E-2,-4.74E-3, 3.60E-2, 5.50E-2, 6.28E-2, 5.98E-2, 5.09E-2,
-1.87E-1,-1.58E-1,-1.09E-1,-5.80E-2,-2.03E-2, 2.48E-3, 1.99E-2, 3.36E-2, 3.27E-2,
-1.01E-1,-1.05E-1,-8.95E-2,-6.63E-2,-3.93E-2,-2.38E-2,-9.22E-3, 8.47E-3, 1.52E-2,
-5.19E-2,-6.47E-2,-6.51E-2,-5.62E-2,-4.51E-2,-3.49E-2,-2.45E-2,-8.19E-3, 2.05E-3,
-3.68E-2,-4.89E-2,-5.36E-2,-5.06E-2,-4.27E-2,-3.65E-2,-2.80E-2,-1.33E-2,-3.47E-3,
-2.33E-2,-3.69E-2,-4.41E-2,-4.38E-2,-3.97E-2,-3.50E-2,-2.88E-2,-1.60E-2,-6.68E-3,
-8.76E-3,-2.07E-2,-2.90E-2,-3.17E-2,-3.09E-2,-2.92E-2,-2.63E-2,-1.79E-2,-1.03E-2,
-1.20E-3,-1.11E-2,-1.90E-2,-2.20E-2,-2.32E-2,-2.24E-2,-2.10E-2,-1.66E-2,-1.11E-2,
1.72E-3,-4.82E-3,-1.02E-2,-1.42E-2,-1.65E-2,-1.66E-2,-1.60E-2,-1.39E-2,-1.09E-2,
2.68E-3,-1.18E-3,-5.19E-3,-8.30E-5,-1.01E-2,-1.14E-2,-1.16E-2,-1.16E-2,-9.99E-3,
2.81E-3, 8.21E-4,-1.96E-3,-3.99E-3,-5.89E-3,-7.13E-3,-8.15E-3,-9.05E-3,-8.60E-3,
2.61E-3, 1.35E-3,-2.99E-4,-1.79E-3,-3.12E-3,-4.44E-3,-5.61E-3,-7.01E-3,-7.27E-3,
2.06E-3, 1.45E-3, 4.64E-4,-5.97E-4,-1.71E-3,-2.79E-3,-3.84E-3,-5.29E-3,-5.90E-3,
1.07E-3, 9.39E-4, 8.22E-4, 3.58E-4,-1.15E-4,-6.60E-4,-1.18E-3,-2.15E-3,-2.88E-3,
4.97E-4, 5.46E-4, 6.15E-4, 5.56E-4, 3.14E-4, 9.80E-5,-1.30E-4,-5.98E-4,-1.07E-4,
1.85E-4, 3.11E-4, 4.25E-4, 4.08E-4, 3.63E-4, 3.04E-4, 2.24E-4, 2.80E-5,-2.10E-4,
4.80E-5, 1.48E-4, 2.44E-4, 2.80E-4, 3.01E-4, 3.11E-4, 3.13E-4, 2.40E-4, 1.10E-4,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 1.39E-4, 1.80E-4, 1.80E-4,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 4.38E-5, 7.30E-5, 8.40E-5
};
double f2_C[24][7]=
{
7.36E-2, 4.21E-2, 2.69E-2, 1.83E-2, 1.34E-2, 1.01E-2, 7.88E-3,
5.79E-2, 3.61E-2, 2.34E-2, 1.64E-2, 1.21E-2, 9.26E-3, 7.28E-3,
2.94E-2, 2.17E-2, 1.60E-2, 1.23E-2, 9.49E-3, 7.45E-3, 5.95E-3,
2.30E-3, 7.07E-3, 7.76E-3, 7.02E-3, 6.13E-3, 5.17E-3, 4.34E-3,
-7.50E-3,-2.00E-3, 9.93E-4, 2.36E-3, 2.82E-3, 2.86E-3, 2.72E-3,
8.27E-3,-5.37E-3,-2.58E-3,-7.96E-4, 3.75E-4, 9.71E-4, 1.28E-3,
-5.79E-3,-5.12E-3,-3.86E-3,-2.46E-3,-1.20E-3,-3.74E-4, 1.74E-4,
-3.26E-3,-3.43E-3,-3.26E-3,-2.68E-3,-1.84E-3,-1.12E-3,-4.54E-4,
-1.46E-3,-1.49E-3,-2.20E-3,-2.18E-3,-1.85E-3,-1.40E-3,-8.15E-4,
-4.29E-4,-9.44E-4,-1.29E-3,-1.50E-3,-1.51E-3,-1.36E-3,-9.57E-4,
-3.30E-5,-3.66E-4,-6.78E-4,-9.38E-4,-1.09E-3,-1.09E-3,-9.56E-4,
1.50E-4, 3.10E-5,-1.38E-4,-3.06E-4,-4.67E-4,-5.48E-4,-6.08E-4,
1.00E-4, 8.50E-5, 2.30E-5,-6.60E-5,-1.58E-4,-2.40E-4,-3.05E-4,
5.40E-5, 6.50E-5, 4.90E-5, 1.20E-5,-3.60E-5,-8.90E-5,-1.31E-4,
2.90E-5, 4.30E-5, 4.40E-5, 2.90E-5, 5.10E-6,-2.20E-5,-4.80E-5,
1.40E-5, 2.40E-5, 2.80E-5, 2.60E-5, 1.90E-5, 7.50E-6,-1.10E-5,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00
};
//=============================================================================
//Bestimme, welche Reihen der Tabellen fuer Interpolation benoetigt werden:
if (tau<tau_[0])
{
std::cout<< "tau is less than the lowest tabulated value:"<<std::endl;
std::cout<<"tau = "<<tau<<std::endl;
std::cout<<"minimum = "<<tau_[0]<<std::endl;
return;
}
else if (tau>tau_[nColumn])
{
std::cout<<"tau is greater than the highest tabulated value:"<<std::endl;
std::cout<<"tau = "<<tau<<std::endl;
std::cout <<"maximum = "<<tau_[nColumn]<<std::endl;
return;
}
column_ = 0;
do
{
if(tau>tau_[column_])// TAO IF LOOP NOT GET THE CORRECT COLUNM INTERPOLATION
{
column_ = column_ + 1;
}
}while (tau>tau_[column_]);
#ifdef DEBUGMEYER
std::cout<<"column= " << column_ <<std::endl;
std::cout<<"tau c " << tau_[column_] <<std::endl;
std::cout<<"tau c-1 " << tau_[column_-1] <<std::endl;
#endif
// ! Das Gewicht der Reihe zu groesserem Tau:
if(column==0)
{
weightCol=1;
}
else
{
weightCol = (tau-tau_[column_-1]) / (tau_[column_]-tau_[column_-1]);
}
//Besorge fuer gegebenes 'thetaSchlange' die interpolierten f1- und f2 -Werte
//der beiden relevanten Reihen:
//iColumn = 1 => Reihe mit hoeherem Index
//iColumn = 2 => Reihe mit kleinerem Index
iColumn = 1;
// 5 continue;
do{
if (column_<=8)
{
//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//! Werte aus 1. Tabelle: 0.2 <= tau <= 1.8
column = column_;
// std::cout<<"thetaSchlange = "<<thetaSchlange<<std::endl;
if (thetaSchlange<thetaSchlangeA[0])
{
std::cout<<"thetaSchlange is less than the lowest tabulated value in table 1:"<<std::endl;
std::cout<<"thetaSchlange = "<<thetaSchlange<<std::endl;
std::cout<<"minimum = "<<thetaSchlangeA[0]<<std::endl;
return;
}
else if (thetaSchlange>thetaSchlangeA[nRowA])
{
std::cout<<"thetaSchlange is greater than the highest tabulated value in table 1:"<<std::endl;
std::cout<<"thetaSchlange = "<<thetaSchlange<<std::endl;
std::cout<<"maximum = "<<thetaSchlangeA[nRowA]<<std::endl;
thetaSchlange = -1.;
return;
}
row = 0;
do
{
if (thetaSchlange>thetaSchlangeA[row])
{
row = row + 1;
}
}while (thetaSchlange>thetaSchlangeA[row]);
#ifdef DEBUGMEYER
std::cout<<"row= " << row <<std::endl;
#endif
//! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
if(row==0)
{
weightRow=1;
f1_[iColumn] = weightRow * f1_A[row][column];
f2_[iColumn] = weightRow * f2_A[row][column];
}
else
{
weightRow = (thetaSchlange-thetaSchlangeA[row-1]) /
(thetaSchlangeA[row]-thetaSchlangeA[row-1]);
f1_[iColumn] = (1.-weightRow) * f1_A[row-1][column] +
weightRow * f1_A[row][column];
f2_[iColumn] = (1.-weightRow) * f2_A[row-1][column] +
weightRow * f2_A[row][column];
}
}
else if (column_>8&&column_<=17)
{
//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//! Werte aus 2. Tabelle: 2.0 <= tau <= 7.0
column = column_ - 9;
if (thetaSchlange<thetaSchlangeB[0])
{
std::cout<< "thetaSchlange is less than the lowest tabulated value in table 2:"<<std::endl;
std::cout<< "thetaSchlange = "<<thetaSchlange<<std::endl;
std::cout<< "minimum = "<<thetaSchlangeB[0]<<std::endl;
return;
}
else if (thetaSchlange>thetaSchlangeB[nRowB])
{
std::cout<< "thetaSchlange is greater than the highest tabulated value in table 2:";
std::cout<< "thetaSchlange = "<<thetaSchlange;
std::cout<< "maximum = "<<thetaSchlangeB[nRowB];
// call exit
thetaSchlange = -1.;
return;
}
row = 0;
do
{
if(thetaSchlange>thetaSchlangeB[row])
{
row = row + 1;
}
} while (thetaSchlange>thetaSchlangeB[row]);
#ifdef DEBUGMEYER
std::cout<<"row= " << row <<std::endl;
#endif
// ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
if(row==0)
{
weightRow=1;
f1_[iColumn] = weightRow * f1_B[row][column];
f2_[iColumn] = weightRow * f2_B[row][column];
}
else
{
weightRow = (thetaSchlange-thetaSchlangeB[row-1]) /
(thetaSchlangeB[row]-thetaSchlangeB[row-1]);
f1_[iColumn] = (1.-weightRow) * f1_B[row-1][column] +
weightRow * f1_B[row][column];
f2_[iColumn] = (1.-weightRow) * f2_B[row-1][column] +
weightRow * f2_B[row][column];
}
}
else
{
//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ! Werte aus 3. Tabelle: 8.0 <= tau <= 20.
column = column_ - 18;
if (thetaSchlange<thetaSchlangeC[0])
{
std::cout<< "thetaSchlange is less than the lowest tabulated value in table 3:"<<std::endl;
std::cout<< "thetaSchlange = "<<thetaSchlange<<std::endl;
std::cout<< "minimum = "<<thetaSchlangeC[0]<<std::endl;
return;
}
else if (thetaSchlange>thetaSchlangeC[nRowC])
{
std::cout<< "thetaSchlange is greater than the highest tabulated value in table 3:";
std::cout<< "\n thetaSchlange = ",thetaSchlange;
std::cout<< "\n maximum = ",thetaSchlangeC[nRowC];
thetaSchlange = -1.;
return;
}
row = 0;
do
{
if(thetaSchlange>thetaSchlangeC[row])
{
row = row + 1;
}
}while (thetaSchlange>thetaSchlangeC[row]);
#ifdef DEBUGMEYER
std::cout<<"row= " << row <<std::endl;
#endif
// ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
if(row==0)
{
weightRow=1;
f1_[iColumn] = weightRow * f1_C[row][column];
f2_[iColumn] = weightRow * f2_C[row][column];
}
else
{
weightRow = (thetaSchlange-thetaSchlangeC[row-1]) /
(thetaSchlangeC[row]-thetaSchlangeC[row-1]);
f1_[iColumn] = (1.-weightRow) * f1_C[row-1][column] +
weightRow * f1_C[row][column];
f2_[iColumn] = (1.-weightRow) * f2_C[row-1][column] +
weightRow * f2_C[row][column];
}
}
#ifdef DEBUGMEYER
std::cout<<"f1_[iColumn]= " << f1_[iColumn] <<std::endl;
std::cout<<"f2_[iColumn]= " << f2_[iColumn] <<std::endl;
std::cout<<"wc: "<<weightCol<<std::endl;
std::cout<<"wr: "<<weightRow<<std::endl;
std::cout<<"icol: "<<iColumn<<std::endl;
#endif
iColumn++ ;
}while(iColumn<=2);
#ifdef DEBUGMEYER
std::cout<<"f1: "<<*f1<<std::endl;
std::cout<<"f2: "<<*f2<<std::endl;
#endif
*f1 = weightCol*f1_[1] + (1.-weightCol)*f1_[2];
*f2 = weightCol*f2_[1] + (1.-weightCol)*f2_[2];
}
//========================================================================================
/*-
options /extend_source
subroutine throwMeyerAngle (theta)
c ==================================
implicit none
real lowerbound,y1,y2,f,root,radiant,fraction
integer bin,nBin
integer nBinMax
parameter (nBinMax=201)
real theta,thetaStep
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
real rHelp
real random
integer seed
common /seed/ seed
c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von
c random erreicht oder ueberschreitet:
random = ran(seed)
bin = 1
do while (random.GT.integ(bin))
bin = bin + 1
if (bin.GT.nBin) then
write(*,*) 'error 1'
call exit
endif
enddo
fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1))
y1 = value(bin-1)
y2 = value(bin)
f = thetaStep / (y2-y1)
rHelp = y1*f
radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f
root = SQRT(radiant)
lowerBound = real(bin-1)*thetaStep
if (f.GT.0) then
theta = lowerBound - rHelp + root
else
theta = lowerBound - rHelp - root
endif
END
c===============================================================================
options /extend_source
*/

View File

@ -0,0 +1,888 @@
/*
fIRST IMPLEMENTATION BY ANLSEM,H. IN FORTRAN
C++ CONVERSION T.K.PARAISO 04-2005
!!! IMPORTANT !!!
Notice:
Tables definition changes between FORTRAN and C++:
1/ Fortran indices start at 1 and C++ indices start at 0
2/ Tables are defined as table[column][row] in Fortran
table[row][column] in c++
usefull reference
http://gershwin.ens.fr/vdaniel/Doc-Locale/Langages-Program-Scientific/Fortran/Tutorial/arrays.htm
*/
#include "meyer.h"
#include <iomanip>
#include <fstream>
#include <iostream>
#include <stdlib.h>
#include<ios>
using namespace std;
meyer::meyer()
{;}
meyer::~meyer()
{;}
void meyer::GFunctions(double* g1,double* g2, double tau)
{
//Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau'
//Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von
//Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts-
//breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253
//(1971))
double help;
int i;
double tau_[] = {0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0,
2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 12.0, 14.0, 16.0, 18.0, 20.0 };
double g1_[] = {0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575,
0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850,
1.990,2.270,2.540,2.800,3.050,3.290 };
double g2_[] = {0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59,
0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32,
0.30,0.26,0.22,0.18,0.15,0.13 };
if (tau<tau_[0])// tau_[0] is the lowest in c++; in fortran it is tau_[1]!!! TAO!
{
std::cout<<"SUBROUTINE G_Functions:"<<std::endl;
std::cout<<" Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:"<<std::endl;
std::cout<<" aktuelles tau ist kleiner als kleinster Tabellenwert:"<<std::endl;
std::cout<<" tau = "<< tau<<std::endl;
std::cout<<" tau_[0] = "<< tau_[0]<<std::endl;
return;
}
i = 1;
do
{
i = i + 1;
if (i==26)
{
std::cout<<"SUBROUTINE G_Functions:"<<std::endl;
std::cout<<" Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:"<<std::endl;
std::cout<<" aktuelles tau ist groesser als groesster Tabellenwert:"<<std::endl;
std::cout<<" tau = "<< tau <<std::endl;
std::cout<<" tau_[26] = "<< tau_[26] <<std::endl;
break;
}
}while(tau>tau_[i]);
//lineare Interpolation zwischen Tabellenwerten:
help = (tau-tau_[i-1])/(tau_[i]-tau_[i-1]);
*g1 = g1_[i-1] + help*(g1_[i]-g1_[i-1]);
*g2 = g2_[i-1] + help*(g2_[i]-g2_[i-1]);
}
//==========================================================================================
void meyer:: Get_F_Function_Meyer(double tau, double Ekin, double Z1, double Z2, double m1, double m2)
{
double thetaSchlange,thetaSchlangeMax;
double theta,thetaMax,thetaStep;
double f1,f2,F;
//---------------------------------
//- Parameters:
// double Z1, Z2; ! die atomaren Nummern von Projektil und Target
double a0; // ! Bohrscher Radius in cm
double screeningPar; // ! Screeningparameter "a" in cm fuer Teilchen der
// ! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6)
// ! bei Streichung von Z1 (vgl. Referenz, S. 268)
double r0Meyer; // ! r0(C) berechnet aus dem screeningParameter "a"
// ! und dem ebenfalls bei Meyer angegebenem
// ! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben)
double eSquare; // ! elektrische Ladung zum Quadrat in keV*cm
double Pi ; // ! die Kreiszahl
///
a0 = 5.29E-9;//unit == centimeter
//the screening parameter
double D= exp(2/3*log(Z1))+exp(2/3*log(Z2));
double a=0.885*a0/sqrt(D);
screeningPar=a; // screeningPar = 2.5764E-9;
r0Meyer = 9.909E-9;
eSquare = 1.44E-10;
Pi = 3.141592654;
double Meyer_faktor3;
double Meyer_faktor4;
double zzz;// ! "Hilfsparameter"
double Meyer_faktor5;
Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer);
Meyer_faktor4 = (m1+m2)/m2/2.;
//((1./9.+12.)/12.)/2. ;// TAO m1+m2/m2/2.
// in meyer article, we then have b= mf4/Ekine1= (m1+m2)/(m2*2*m1*v1²)
zzz = screeningPar / (2.*Z1*Z2*eSquare);
Meyer_faktor5 = zzz*zzz / (8*Pi*Pi);
//---------------------------------
//---------------------------------
//---------------------------------
int nBin,nBinMax;
nBinMax=201;
double value[nBinMax]; // /0.,nBinMax*0./
double area[nBinMax] ; // / nBinMax*0./
double integ[nBinMax]; // /0.,nBinMax*0./
// common /MeyerTable/ value,area,integ,thetaStep,nBin
int i;
double rHelp;
int HB_memsize;
HB_memsize=500000;
double memory[HB_memsize];
// COMMON /PAWC/ memory
//nur noch fuer Testzwecke:
double fValues[203];
double fValuesFolded[203];
int idh;
idh = 50;
//INCLUDE "mutrack$sourcedirectory:COM_DIRS.INC"
// character filename*20 ! Name der Ausgabe-Dateien
// COMMON /filename/ filename
//----------------------------------------------------------------------------
//Festlegen des maximalen Theta-Wertes sowie der Schrittweite:
if (tau<0.2)
{
std::cout<< "Subroutine ''Get_F_Function_Meyer'':"<<std::endl;
std::cout<< "Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP"<<std::endl;
return;
}
else if (tau<=2.)
{
// ! => Tabelle A
thetaSchlangeMax = 4.0;
}
else if (tau<=8.)
{
//! => Tabelle B
thetaSchlangeMax = 7.0;
}
else if (tau<=20.)
{
//! => Tabelle C
thetaSchlangeMax = 20.0;
}
else
{
std::cout<< "Subroutine ''Get_F_Function_Meyer'':"<<std::endl;
std::cout<< "Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP"<<std::endl;
return;
}
std::cout<< "M4: "<<Meyer_faktor4<<std::endl;
std::cout<< "Ekin: "<<Ekin <<std::endl;
thetaMax = thetaSchlangeMax / Meyer_faktor4 / Ekin/M_PI*180;
if (thetaMax>50.)
{
thetaStep = .5;
}
else if (thetaMax>25)
{
thetaStep = .25;
}
else if (thetaMax>12.5)
{
thetaStep = .125;
}
else
{
thetaStep = .0625;
}
//Tabelle der F-Werte erstellen:
nBin = 0;
std::cout<<"thetamax = "<<thetaMax << std::endl;
theta=thetaStep;
// begining of do loop
for( theta = thetaStep; theta<=thetaMax; theta+=thetaStep)
{
// std::cout<<"theta"<<theta << std::endl;
// ! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich
// ! noch von degree bei theta in Radiant bei thetaSchlange umrechnen):
//
thetaSchlange = Meyer_faktor4 * Ekin * theta *M_PI/180;
// ! Auslesen der Tabellenwerte fuer die f-Funktionen:
F_Functions_Meyer(tau,thetaSchlange,&f1,&f2);
if (thetaSchlange==-1)
{
//! wir sind jenseits von thetaSchlangeMax
goto bigtheta;
// endif
}
// ! Berechnen der Streuintensitaet:
F = Meyer_faktor4*Meyer_faktor4 * Ekin*Ekin /2 /M_PI * (f1 - Meyer_faktor3*f2);// TAO, Anselm was: Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2);
nBin = nBin + 1;
if (nBin>nBinMax)
{
std::cout<< "nBin > nBinMax => EXIT";
break;
}
value[nBin] = sin(theta)*F;
fValues[nBin+1] = F; // ! fuer Testzwecke
fValuesFolded[nBin+1] = sin(theta/180*M_PI)*F;// ! fuer Testzwecke
}// end of do loop
//Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale:
bigtheta:for( i = 1;i<= nBin; i++)
{
area[i] = (value[i]+value[i-1])/2.* thetaStep;
integ[i] = integ[i-1] + area[i];
}
//Normiere totale Flaeche auf 1:
rHelp = integ[nBin];
for( i = 1; i<=nBin; i++)
{
value[i] = value[i] / rHelp;
area[i] = area[i] / rHelp;
integ[i] = integ[i] / rHelp;
}
//vorerst noch: gib Tabelle in Datei und Histogrammfile aus:
//! Berechne die Werte fuer theta=0:
F_Functions_Meyer(tau,0.,&f1,&f2);
F = Meyer_faktor4*Meyer_faktor4 * Ekin*Ekin /2 /M_PI * (f1 - Meyer_faktor3*f2);// TAO, Anselm was: Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2);
fValues[1] = F;
fValuesFolded[1] = 0.;
//! Gib die Werte in das Tabellenfile aus:
ofstream Mprint("tkm.out");
theta = thetaStep;
if (!Mprint.is_open()) exit(8);
for( i = 1; i<=nBin+1;i++)
{
Mprint << theta<< " "<< fValues[i]/fValues[1]<<" " << fValuesFolded[i]<<std::endl;
theta = theta + thetaStep;
}
Mprint.close();
}
//===============================================================================================
void meyer:: F_Functions_Meyer( double tau,double thetaSchlange,double *f1,double *f2)
{
//Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau'
//Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den
//bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine
//verwendeten Tabellen sind eben dieser Referenz entnommen:
//L.Meyer, phys.stat.sol. (b) 44, 253 (1971)
double f1_[2], f2_[2];
int column_,column,row;
int iColumn;
double weightCol, weightRow;
//----------------------------------------------------------------------------
//die Tabellendaten der Referenz (Tabellen 2 und 3):
int nColumn;
nColumn=24;
double tau_[25]= {
0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0,
3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 10., 12., 14., 16., 18., 20.
};
int nRowA=24;
double thetaSchlangeA[25]=
{
.00, .05, .10, .15, .20, .25, .30, .35, .40, .45, .50, .60,
.70, .80, .90, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, 3.5, 4.0
};
int nRowB=23;
double thetaSchlangeB[24]=
{
0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.8,
2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0
};
int nRowC=23;
double thetaSchlangeC[24]=
{
0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0,
7.0, 8.0, 9.0, 10., 11., 12., 13., 14., 15., 16., 18., 20.
};
double f1_A[25][9]=
{
1.96E+2,4.55E+1,2.11E+1,1.25E+1,8.48E+0,6.21E+0,4.80E+0,3.86E+0,3.20E+0,
9.82E+1,3.72E+1,1.97E+1,1.20E+1,8.27E+0,6.11E+0,4.74E+0,3.83E+0,3.17E+0,
3.96E+1,2.58E+1,1.65E+1,1.09E+1,7.73E+0,5.82E+0,4.58E+0,3.72E+0,3.10E+0,
1.76E+1,1.58E+1,1.27E+1,9.26E+0,6.93E+0,5.38E+0,4.31E+0,3.55E+0,2.99E+0,
8.62E+0,1.01E+1,9.45E+0,7.58E+0,6.02E+0,4.85E+0,3.98E+0,3.33E+0,2.84E+0,
4.65E+0,6.55E+0,6.91E+0,6.06E+0,5.11E+0,4.28E+0,3.62E+0,3.08E+0,2.66E+0,
2.74E+0,4.45E+0,5.03E+0,4.78E+0,4.27E+0,3.72E+0,3.23E+0,2.82E+0,2.47E+0,
1.77E+0,3.02E+0,3.71E+0,3.76E+0,3.53E+0,3.20E+0,2.86E+0,2.55E+0,2.27E+0,
1.22E+0,2.19E+0,2.78E+0,2.96E+0,2.91E+0,2.73E+0,2.51E+0,2.28E+0,2.07E+0,
8.82E-1,1.59E+0,2.12E+0,2.35E+0,2.39E+0,2.32E+0,2.19E+0,2.03E+0,1.87E+0,
6.55E-1,1.20E+0,1.64E+0,1.88E+0,1.97E+0,1.96E+0,1.90E+0,1.79E+0,1.68E+0,
3.80E-1,7.15E-1,1.01E+0,1.22E+0,1.35E+0,1.40E+0,1.41E+0,1.39E+0,1.34E+0,
2.26E-1,4.45E-1,6.44E-1,8.08E-1,9.28E-1,1.01E+0,1.05E+0,1.06E+0,1.05E+0,
1.39E-1,2.80E-1,4.21E-1,5.45E-1,6.46E-1,7.22E-1,7.75E-1,8.07E-1,8.21E-1,
8.22E-2,1.76E-1,2.78E-1,3.71E-1,4.53E-1,5.21E-1,5.74E-1,6.12E-1,6.37E-1,
5.04E-2,1.11E-1,1.86E-1,2.57E-1,3.22E-1,3.79E-1,4.27E-1,4.65E-1,4.94E-1,
2.51E-2,5.60E-2,9.24E-2,1.31E-1,1.69E-1,2.02E-1,2.40E-1,2.71E-1,2.97E-1,
1.52E-2,3.20E-2,5.08E-2,7.23E-2,9.51E-2,1.18E-1,1.41E-1,1.63E-1,1.83E-1,
1.03E-2,2.05E-2,3.22E-2,4.55E-2,6.01E-2,7.53E-2,9.02E-2,1.05E-1,1.19E-1,
8.80E-3,1.48E-2,2.25E-2,3.13E-2,4.01E-2,5.03E-2,6.01E-2,7.01E-2,8.01E-2,
6.10E-3,1.15E-2,1.71E-2,2.28E-2,2.89E-2,3.52E-2,4.18E-2,4.86E-2,5.55E-2,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,1.71E-2,1.98E-2,2.28E-2,2.58E-2,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.90E-3,1.02E-2,1.16E-2,1.31E-2,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,4.90E-3,5.70E-3,6.40E-3,7.20E-3,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.90E-3,3.40E-3,3.90E-3,4.30E-3
};
double f1_B[24][9]=
{
2.71E+0,1.92E+0,1.46E+0,1.16E+0,9.52E-1,8.03E-1,6.90E-1,5.32E-1,4.28E-1,
2.45E+0,1.79E+0,1.39E+0,1.12E+0,9.23E-1,7.82E-1,6.75E-1,5.23E-1,4.23E-1,
1.87E+0,1.48E+0,1.20E+0,9.96E-1,8.42E-1,7.24E-1,6.32E-1,4.98E-1,4.07E-1,
1.56E+0,1.30E+0,1.09E+0,9.19E-1,7.89E-1,6.86E-1,6.03E-1,4.80E-1,3.95E-1,
1.28E+0,1.11E+0,9.62E-1,8.33E-1,7.27E-1,6.40E-1,5.69E-1,4.59E-1,3.81E-1,
8.23E-1,7.90E-1,7.29E-1,6.64E-1,6.01E-1,5.44E-1,4.94E-1,4.12E-1,3.49E-1,
5.14E-1,5.36E-1,5.29E-1,5.07E-1,4.78E-1,4.47E-1,4.16E-1,3.60E-1,3.13E-1,
3.19E-1,3.58E-1,3.76E-1,3.78E-1,3.70E-1,3.57E-1,3.45E-1,3.08E-1,2.76E-1,
2.02E-1,2.40E-1,2.64E-1,2.77E-1,2.82E-1,2.80E-1,2.65E-1,2.59E-1,2.39E-1,
1.67E-1,1.96E-1,2.20E-1,2.36E-1,2.44E-1,2.47E-1,2.45E-1,2.35E-1,2.21E-1,
1.33E-1,1.61E-1,1.85E-1,2.02E-1,2.12E-1,2.18E-1,2.18E-1,2.14E-1,2.03E-1,
8.99E-2,1.12E-1,1.32E-1,1.48E-1,1.59E-1,1.67E-1,1.68E-1,1.75E-1,1.72E-1,
6.24E-2,7.94E-2,9.50E-2,1.09E-1,1.20E-1,1.29E-1,1.35E-1,1.42E-1,1.43E-1,
4.55E-2,5.74E-2,6.98E-2,8.11E-2,9.09E-2,9.92E-2,1.06E-1,1.15E-1,1.19E-1,
3.35E-2,4.22E-2,5.19E-2,6.11E-2,6.95E-2,7.69E-2,8.33E-2,9.28E-2,9.85E-2,
2.50E-2,3.16E-2,3.92E-2,4.66E-2,5.35E-2,6.00E-2,6.57E-2,7.49E-2,8.13E-2,
1.90E-2,2.40E-2,2.99E-2,3.58E-2,4.16E-2,4.70E-2,5.20E-2,6.05E-2,6.70E-2,
1.47E-2,1.86E-2,2.32E-2,2.79E-2,3.25E-2,3.70E-2,4.12E-2,4.89E-2,5.51E-2,
8.10E-3,1.04E-2,1.30E-2,1.57E-2,1.84E-2,2.12E-2,2.40E-2,2.93E-2,3.42E-2,
4.80E-3,6.20E-3,7.70E-3,9.30E-3,1.09E-2,1.26E-2,1.44E-2,1.79E-2,2.14E-2,
2.80E-3,3.80E-3,4.70E-3,5.70E-3,6.70E-3,7.50E-3,8.90E-3,1.13E-2,1.36E-2,
1.70E-3,2.30E-3,2.90E-3,3.60E-3,4.20E-3,4.90E-3,5.60E-3,7.20E-3,8.80E-3,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.00E-3,2.80E-3,3.50E-3,
0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.80E-4,1.20E-3,1.60E-3
};
double f1_C[24][7]=
{
3.65E-1,2.62E-1,2.05E-1,1.67E-1,1.41E-1,1.21E-1,1.05E-1,
3.33E-1,2.50E-1,1.95E-1,1.61E-1,1.36E-1,1.18E-1,1.03E-1,
2.75E-1,2.18E-1,1.76E-1,1.48E-1,1.27E-1,1.11E-1,9.80E-2,
2.04E-1,1.75E-1,1.50E-1,1.29E-1,1.13E-1,1.01E-1,9.00E-2,
1.41E-1,1.31E-1,1.19E-1,1.08E-1,9.71E-2,8.88E-2,8.01E-2,
9.32E-2,9.42E-2,9.10E-2,8.75E-2,8.00E-2,7.44E-2,6.91E-2,
5.98E-2,6.52E-2,6.72E-2,6.62E-2,6.40E-2,6.12E-2,5.82E-2,
3.83E-2,4.45E-2,4.80E-2,4.96E-2,4.98E-2,4.90E-2,4.77E-2,
2.46E-2,3.01E-2,3.40E-2,3.65E-2,3.79E-2,3.84E-2,3.83E-2,
1.59E-2,2.03E-2,2.39E-2,2.66E-2,2.85E-2,2.97E-2,3.04E-2,
1.04E-2,1.37E-2,1.66E-2,1.92E-2,2.12E-2,2.27E-2,2.37E-2,
4.39E-3,6.26E-3,8.26E-3,9.96E-3,1.15E-2,1.29E-2,1.41E-2,
2.06E-3,3.02E-3,4.24E-3,5.28E-3,6.32E-3,7.32E-3,8.26E-3,
1.21E-3,1.69E-3,2.24E-3,2.85E-3,3.50E-3,4.16E-3,4.82E-3,
8.50E-4,1.10E-3,1.38E-3,1.65E-3,2.03E-3,2.45E-3,2.88E-3,
5.90E-4,7.40E-4,8.50E-4,9.90E-4,1.23E-3,1.49E-3,1.71E-3,
3.90E-4,4.60E-4,5.20E-4,6.30E-4,7.65E-4,9.65E-4,1.12E-3,
2.40E-4,2.70E-4,3.10E-4,3.98E-4,4.97E-4,6.03E-4,7.18E-4,
1.50E-4,1.70E-4,2.15E-4,2.70E-4,3.35E-4,4.35E-4,5.00E-4,
1.00E-4,1.20E-4,1.46E-4,1.90E-4,2.40E-4,2.88E-4,3.43E-4,
0.00 ,0.00 ,1.04E-4,1.41E-4,1.80E-4,2.10E-4,2.50E-4,
0.00 ,0.00 ,8.20E-5,1.06E-4,1.38E-4,1.58E-4,1.85E-4,
0.00 ,0.00 ,5.40E-5,7.00E-5,8.60E-5,1.03E-4,1.20E-4,
0.00 ,0.00 ,4.20E-5,5.40E-5,6.50E-5,7.70E-5,8.80E-5
};
double f2_A[25][9]=
{
3.52E+3, 3.27E+2, 9.08E+1, 3.85E+1, 2.00E+1, 1.18E+1, 7.55E+0, 5.16E+0, 3.71E+0,
2.58E+2, 1.63E+2, 7.30E+1, 3.42E+1, 1.85E+1, 1.11E+1, 7.18E+0, 4.96E+0, 3.59E+0,
-1.12E+2, 4.84E+0, 3.56E+1, 2.34E+1, 1.45E+1, 9.33E+0, 6.37E+0, 4.51E+0, 3.32E+0,
-5.60E+1,-1.12E+1, 9.87E+0, 1.24E+1, 9.59E+0, 7.01E+0, 5.16E+0, 3.83E+0, 2.91E+0,
-2.13E+1,-1.22E+1,-2.23E+0, 3.88E+0, 5.15E+0, 4.65E+0, 3.87E+0, 3.12E+0, 2.45E+0,
-8.25E+0,-9.58E+0,-5.59E+0,-1.40E+0, 1.76E+0, 2.71E+0, 2.71E+0, 2.35E+0, 1.95E+0,
-3.22E+0,-6.12E+0,-5.28E+0,-2.87E+0,-1.92E-1, 1.32E+0, 1.69E+0, 1.74E+0, 1.48E+0,
-1.11E+0,-3.40E+0,-4.12E+0,-3.08E+0,-6.30E-1, 3.60E-1, 9.20E-1, 1.03E+0, 1.04E+0,
-2.27E-1,-2.00E+0,-2.93E+0,-2.69E+0,-1.48E+0,-3.14E-1, 2.69E-1, 5.28E-1, 6.09E-1,
1.54E-1,-1.09E+0,-2.10E+0,-2.15E+0,-1.47E+0,-6.77E-1,-1.80E-1, 1.08E-1, 2.70E-1,
3.28E-1,-6.30E-1,-1.50E+0,-1.68E+0,-1.34E+0,-8.43E-1,-4.60E-1,-1.85E-1,-4.67E-3,
3.32E-1,-2.06E-1,-7.32E-1,-9.90E-1,-9.42E-1,-8.20E-1,-6.06E-1,-4.51E-1,-3.01E-1,
2.72E-1,-3.34E-2,-3.49E-1,-5.65E-1,-6.03E-1,-5.79E-1,-5.05E-1,-4.31E-1,-3.45E-1,
2.02E-1, 2.80E-2,-1.54E-1,-3.00E-1,-3.59E-1,-3.76E-1,-4.60E-1,-3.40E-1,-3.08E-1,
1.38E-1, 4.84E-2,-5.56E-2,-1.44E-1,-2.04E-1,-2.39E-1,-2.54E-1,-2.49E-1,-2.48E-1,
9.47E-2, 4.86E-2,-1.08E-2,-6.44E-2,-1.02E-1,-1.34E-1,-1.62E-1,-1.79E-1,-1.87E-1,
5.33E-2, 3.71E-2, 1.85E-2, 1.63E-3,-1.69E-2,-3.69E-2,-5.66E-2,-7.78E-2,-9.33E-2,
3.38E-2, 2.40E-2, 1.62E-2, 9.90E-3, 3.76E-3,-4.93E-3,-1.66E-2,-3.05E-2,-4.22E-2,
2.12E-2, 1.56E-2, 1.05E-2, 7.80E-3, 7.92E-3, 6.30E-3, 3.20E-4,-8.50E-3,-1.66E-2,
1.40E-2, 9.20E-3, 5.30E-3, 4.70E-3, 6.31E-3, 8.40E-3, 5.30E-3, 8.80E-4,-3.30E-3,
9.20E-3, 4.70E-3, 1.70E-3, 2.60E-3, 4.49E-3, 6.60E-3, 6.00E-3, 4.70E-3, 2.80E-3,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00
};
double f2_B[24][9]=
{
2.75E+0, 1.94E+0, 9.13E-1, 6.06E-1, 4.26E-1, 3.14E-1, 2.40E-1, 1.51E-1, 1.03E-1,
1.94E+0, 1.16E+0, 7.56E-1, 5.26E-1, 3.81E-1, 2.87E-1, 2.23E-1, 1.43E-1, 9.78E-2,
5.85E-1, 5.04E-1, 4.10E-1, 3.30E-1, 2.69E-1, 2.17E-1, 1.78E-1, 1.22E-1, 8.71E-2,
7.83E-2, 2.00E-1, 2.35E-1, 2.19E-1, 1.97E-1, 1.73E-1, 1.48E-1, 1.08E-1, 7.93E-2,
-1.82E-1, 1.56E-2, 1.04E-1, 1.36E-1, 1.38E-1, 1.31E-1, 1.19E-1, 9.46E-2, 7.19E-2,
-2.71E-1,-1.66E-1,-7.29E-2,-4.74E-3, 3.60E-2, 5.50E-2, 6.28E-2, 5.98E-2, 5.09E-2,
-1.87E-1,-1.58E-1,-1.09E-1,-5.80E-2,-2.03E-2, 2.48E-3, 1.99E-2, 3.36E-2, 3.27E-2,
-1.01E-1,-1.05E-1,-8.95E-2,-6.63E-2,-3.93E-2,-2.38E-2,-9.22E-3, 8.47E-3, 1.52E-2,
-5.19E-2,-6.47E-2,-6.51E-2,-5.62E-2,-4.51E-2,-3.49E-2,-2.45E-2,-8.19E-3, 2.05E-3,
-3.68E-2,-4.89E-2,-5.36E-2,-5.06E-2,-4.27E-2,-3.65E-2,-2.80E-2,-1.33E-2,-3.47E-3,
-2.33E-2,-3.69E-2,-4.41E-2,-4.38E-2,-3.97E-2,-3.50E-2,-2.88E-2,-1.60E-2,-6.68E-3,
-8.76E-3,-2.07E-2,-2.90E-2,-3.17E-2,-3.09E-2,-2.92E-2,-2.63E-2,-1.79E-2,-1.03E-2,
-1.20E-3,-1.11E-2,-1.90E-2,-2.20E-2,-2.32E-2,-2.24E-2,-2.10E-2,-1.66E-2,-1.11E-2,
1.72E-3,-4.82E-3,-1.02E-2,-1.42E-2,-1.65E-2,-1.66E-2,-1.60E-2,-1.39E-2,-1.09E-2,
2.68E-3,-1.18E-3,-5.19E-3,-8.30E-5,-1.01E-2,-1.14E-2,-1.16E-2,-1.16E-2,-9.99E-3,
2.81E-3, 8.21E-4,-1.96E-3,-3.99E-3,-5.89E-3,-7.13E-3,-8.15E-3,-9.05E-3,-8.60E-3,
2.61E-3, 1.35E-3,-2.99E-4,-1.79E-3,-3.12E-3,-4.44E-3,-5.61E-3,-7.01E-3,-7.27E-3,
2.06E-3, 1.45E-3, 4.64E-4,-5.97E-4,-1.71E-3,-2.79E-3,-3.84E-3,-5.29E-3,-5.90E-3,
1.07E-3, 9.39E-4, 8.22E-4, 3.58E-4,-1.15E-4,-6.60E-4,-1.18E-3,-2.15E-3,-2.88E-3,
4.97E-4, 5.46E-4, 6.15E-4, 5.56E-4, 3.14E-4, 9.80E-5,-1.30E-4,-5.98E-4,-1.07E-4,
1.85E-4, 3.11E-4, 4.25E-4, 4.08E-4, 3.63E-4, 3.04E-4, 2.24E-4, 2.80E-5,-2.10E-4,
4.80E-5, 1.48E-4, 2.44E-4, 2.80E-4, 3.01E-4, 3.11E-4, 3.13E-4, 2.40E-4, 1.10E-4,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 1.39E-4, 1.80E-4, 1.80E-4,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 4.38E-5, 7.30E-5, 8.40E-5
};
double f2_C[24][7]=
{
7.36E-2, 4.21E-2, 2.69E-2, 1.83E-2, 1.34E-2, 1.01E-2, 7.88E-3,
5.79E-2, 3.61E-2, 2.34E-2, 1.64E-2, 1.21E-2, 9.26E-3, 7.28E-3,
2.94E-2, 2.17E-2, 1.60E-2, 1.23E-2, 9.49E-3, 7.45E-3, 5.95E-3,
2.30E-3, 7.07E-3, 7.76E-3, 7.02E-3, 6.13E-3, 5.17E-3, 4.34E-3,
-7.50E-3,-2.00E-3, 9.93E-4, 2.36E-3, 2.82E-3, 2.86E-3, 2.72E-3,
8.27E-3,-5.37E-3,-2.58E-3,-7.96E-4, 3.75E-4, 9.71E-4, 1.28E-3,
-5.79E-3,-5.12E-3,-3.86E-3,-2.46E-3,-1.20E-3,-3.74E-4, 1.74E-4,
-3.26E-3,-3.43E-3,-3.26E-3,-2.68E-3,-1.84E-3,-1.12E-3,-4.54E-4,
-1.46E-3,-1.49E-3,-2.20E-3,-2.18E-3,-1.85E-3,-1.40E-3,-8.15E-4,
-4.29E-4,-9.44E-4,-1.29E-3,-1.50E-3,-1.51E-3,-1.36E-3,-9.57E-4,
-3.30E-5,-3.66E-4,-6.78E-4,-9.38E-4,-1.09E-3,-1.09E-3,-9.56E-4,
1.50E-4, 3.10E-5,-1.38E-4,-3.06E-4,-4.67E-4,-5.48E-4,-6.08E-4,
1.00E-4, 8.50E-5, 2.30E-5,-6.60E-5,-1.58E-4,-2.40E-4,-3.05E-4,
5.40E-5, 6.50E-5, 4.90E-5, 1.20E-5,-3.60E-5,-8.90E-5,-1.31E-4,
2.90E-5, 4.30E-5, 4.40E-5, 2.90E-5, 5.10E-6,-2.20E-5,-4.80E-5,
1.40E-5, 2.40E-5, 2.80E-5, 2.60E-5, 1.90E-5, 7.50E-6,-1.10E-5,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00
};
//=============================================================================
//Bestimme, welche Reihen der Tabellen fuer Interpolation benoetigt werden:
if (tau<tau_[0])
{
std::cout<< "tau is less than the lowest tabulated value:"<<std::endl;
std::cout<<"tau = "<<tau<<std::endl;
std::cout<<"minimum = "<<tau_[0]<<std::endl;
return;
}
else if (tau>tau_[nColumn])
{
std::cout<<"tau is greater than the highest tabulated value:"<<std::endl;
std::cout<<"tau = "<<tau<<std::endl;
std::cout <<"maximum = "<<tau_[nColumn]<<std::endl;
return;
}
column_ = 0;
do
{
if(tau>tau_[column_])// TAO IF LOOP NOT GET THE CORRECT COLUNM INTERPOLATION
{
column_ = column_ + 1;
}
}while (tau>tau_[column_]);
#ifdef DEBUGMEYER
std::cout<<"column= " << column_ <<std::endl;
std::cout<<"tau c " << tau_[column_] <<std::endl;
std::cout<<"tau c-1 " << tau_[column_-1] <<std::endl;
#endif
// ! Das Gewicht der Reihe zu groesserem Tau:
if(column==0)
{
weightCol=1;
}
else
{
weightCol = (tau-tau_[column_-1]) / (tau_[column_]-tau_[column_-1]);
}
//Besorge fuer gegebenes 'thetaSchlange' die interpolierten f1- und f2 -Werte
//der beiden relevanten Reihen:
//iColumn = 1 => Reihe mit hoeherem Index
//iColumn = 2 => Reihe mit kleinerem Index
iColumn = 1;
// 5 continue;
do{
if (column_<=8)
{
//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//! Werte aus 1. Tabelle: 0.2 <= tau <= 1.8
column = column_;
// std::cout<<"thetaSchlange = "<<thetaSchlange<<std::endl;
if (thetaSchlange<thetaSchlangeA[0])
{
std::cout<<"thetaSchlange is less than the lowest tabulated value in table 1:"<<std::endl;
std::cout<<"thetaSchlange = "<<thetaSchlange<<std::endl;
std::cout<<"minimum = "<<thetaSchlangeA[0]<<std::endl;
return;
}
else if (thetaSchlange>thetaSchlangeA[nRowA])
{
std::cout<<"thetaSchlange is greater than the highest tabulated value in table 1:"<<std::endl;
std::cout<<"thetaSchlange = "<<thetaSchlange<<std::endl;
std::cout<<"maximum = "<<thetaSchlangeA[nRowA]<<std::endl;
thetaSchlange = -1.;
return;
}
row = 0;
do
{
if (thetaSchlange>thetaSchlangeA[row])
{
row = row + 1;
}
}while (thetaSchlange>thetaSchlangeA[row]);
#ifdef DEBUGMEYER
std::cout<<"row= " << row <<std::endl;
#endif
//! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
if(row==0)
{
weightRow=1;
f1_[iColumn] = weightRow * f1_A[row][column];
f2_[iColumn] = weightRow * f2_A[row][column];
}
else
{
weightRow = (thetaSchlange-thetaSchlangeA[row-1]) /
(thetaSchlangeA[row]-thetaSchlangeA[row-1]);
f1_[iColumn] = (1.-weightRow) * f1_A[row-1][column] +
weightRow * f1_A[row][column];
f2_[iColumn] = (1.-weightRow) * f2_A[row-1][column] +
weightRow * f2_A[row][column];
}
}
else if (column_>8&&column_<=17)
{
//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//! Werte aus 2. Tabelle: 2.0 <= tau <= 7.0
column = column_ - 9;
if (thetaSchlange<thetaSchlangeB[0])
{
std::cout<< "thetaSchlange is less than the lowest tabulated value in table 2:"<<std::endl;
std::cout<< "thetaSchlange = "<<thetaSchlange<<std::endl;
std::cout<< "minimum = "<<thetaSchlangeB[0]<<std::endl;
return;
}
else if (thetaSchlange>thetaSchlangeB[nRowB])
{
std::cout<< "thetaSchlange is greater than the highest tabulated value in table 2:";
std::cout<< "thetaSchlange = "<<thetaSchlange;
std::cout<< "maximum = "<<thetaSchlangeB[nRowB];
// call exit
thetaSchlange = -1.;
return;
}
row = 0;
do
{
if(thetaSchlange>thetaSchlangeB[row])
{
row = row + 1;
}
} while (thetaSchlange>thetaSchlangeB[row]);
#ifdef DEBUGMEYER
std::cout<<"row= " << row <<std::endl;
#endif
// ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
if(row==0)
{
weightRow=1;
f1_[iColumn] = weightRow * f1_B[row][column];
f2_[iColumn] = weightRow * f2_B[row][column];
}
else
{
weightRow = (thetaSchlange-thetaSchlangeB[row-1]) /
(thetaSchlangeB[row]-thetaSchlangeB[row-1]);
f1_[iColumn] = (1.-weightRow) * f1_B[row-1][column] +
weightRow * f1_B[row][column];
f2_[iColumn] = (1.-weightRow) * f2_B[row-1][column] +
weightRow * f2_B[row][column];
}
}
else
{
//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ! Werte aus 3. Tabelle: 8.0 <= tau <= 20.
column = column_ - 18;
if (thetaSchlange<thetaSchlangeC[0])
{
std::cout<< "thetaSchlange is less than the lowest tabulated value in table 3:"<<std::endl;
std::cout<< "thetaSchlange = "<<thetaSchlange<<std::endl;
std::cout<< "minimum = "<<thetaSchlangeC[0]<<std::endl;
return;
}
else if (thetaSchlange>thetaSchlangeC[nRowC])
{
std::cout<< "thetaSchlange is greater than the highest tabulated value in table 3:";
std::cout<< "\n thetaSchlange = ",thetaSchlange;
std::cout<< "\n maximum = ",thetaSchlangeC[nRowC];
thetaSchlange = -1.;
return;
}
row = 0;
do
{
if(thetaSchlange>thetaSchlangeC[row])
{
row = row + 1;
}
}while (thetaSchlange>thetaSchlangeC[row]);
#ifdef DEBUGMEYER
std::cout<<"row= " << row <<std::endl;
#endif
// ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
if(row==0)
{
weightRow=1;
f1_[iColumn] = weightRow * f1_C[row][column];
f2_[iColumn] = weightRow * f2_C[row][column];
}
else
{
weightRow = (thetaSchlange-thetaSchlangeC[row-1]) /
(thetaSchlangeC[row]-thetaSchlangeC[row-1]);
f1_[iColumn] = (1.-weightRow) * f1_C[row-1][column] +
weightRow * f1_C[row][column];
f2_[iColumn] = (1.-weightRow) * f2_C[row-1][column] +
weightRow * f2_C[row][column];
}
}
#ifdef DEBUGMEYER
std::cout<<"f1_[iColumn]= " << f1_[iColumn] <<std::endl;
std::cout<<"f2_[iColumn]= " << f2_[iColumn] <<std::endl;
std::cout<<"wc: "<<weightCol<<std::endl;
std::cout<<"wr: "<<weightRow<<std::endl;
std::cout<<"icol: "<<iColumn<<std::endl;
#endif
iColumn++ ;
}while(iColumn<=2);
#ifdef DEBUGMEYER
std::cout<<"f1: "<<*f1<<std::endl;
std::cout<<"f2: "<<*f2<<std::endl;
#endif
*f1 = weightCol*f1_[1] + (1.-weightCol)*f1_[2];
*f2 = weightCol*f2_[1] + (1.-weightCol)*f2_[2];
}
//========================================================================================
/*-
options /extend_source
subroutine throwMeyerAngle (theta)
c ==================================
implicit none
real lowerbound,y1,y2,f,root,radiant,fraction
integer bin,nBin
integer nBinMax
parameter (nBinMax=201)
real theta,thetaStep
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
real rHelp
real random
integer seed
common /seed/ seed
c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von
c random erreicht oder ueberschreitet:
random = ran(seed)
bin = 1
do while (random.GT.integ(bin))
bin = bin + 1
if (bin.GT.nBin) then
write(*,*) 'error 1'
call exit
endif
enddo
fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1))
y1 = value(bin-1)
y2 = value(bin)
f = thetaStep / (y2-y1)
rHelp = y1*f
radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f
root = SQRT(radiant)
lowerBound = real(bin-1)*thetaStep
if (f.GT.0) then
theta = lowerBound - rHelp + root
else
theta = lowerBound - rHelp - root
endif
END
c===============================================================================
options /extend_source
*/

View File

@ -0,0 +1,364 @@
c-------------------------------------------------------------------------------
c Konstanten und Variable fuer Berechnung der Winkelaufstreuung in Triggerfolie
c mittels Meyer-Formel (L.Meyer, phys.stat.sol. (b) 44, 253 (1971)):
real g1, g2 ! Tabellierte Funktionen der Referenz
real effRedThick ! effektive reduzierte Dicke ('tau' der Referenz)
c - Parameter:
real Z1, Z2 ! die atomaren Nummern von Projektil und Target
real a0 ! Bohrscher Radius in cm
real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der
! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6)
! bei Streichung von Z1 (vgl. Referenz, S. 268)
real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a'
! und dem ebenfalls bei Meyer angegebenem
! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben)
real eSquare ! elektrische Ladung zum Quadrat in keV*cm
real HWHM2sigma ! Umrechnungsfaktor von (halber!) Halbwertsbreite
! nach Sigma der Gaussfunktion
real Na ! die Avogadrokonstante
real mMolC ! molare Masse von C in ug
real Pi ! die Kreiszahl
parameter (Z1 = 1, Z2 = 6, a0 = 5.29E-9, ScreeningPar = 2.5764E-9)
parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10, HWHM2sigma = 1./1.17741)
parameter (Na = 6.022e23, mMolC = 12.011e6, Pi = 3.141592654)
c - Bei der Berechnung von Sigma auftretende Vorfaktoren.
c (Meyer_faktor 1 wird benoetigt fuer Berechnung der reduzierten Dicke aus der
c 'ug/cm2'-Angabe der Foliendicke. Meyer_faktor2 und Meyer_faktor3 werden
c direkt fuer die Berechnung von sigma aus den beiden tabellierten Funktionen
c g1 und g2 verwendet):
real Meyer_Faktor1, Meyer_Faktor2, Meyer_Faktor3
parameter (Meyer_faktor1 = Pi*screeningPar*screeningPar * Na/mMolC)
! Na/mMolC = 1/m(C-Atom)
parameter (Meyer_faktor2 = (2*Z1*Z2 * eSquare)/ScreeningPar * 180./Pi
+ * HWHM2sigma)
parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer))
c-------------------------------------------------------------------------------
c Kommentar zur Berechnung der Winkelaufstreuung nach Meyer:
c
c Als Bedingung fuer die Gueltigkeit der Rechnung wird verlangt, dass
c
c (1) die Anzahl n der Stoesse >> 20*(a/r0)^(4/3) sein muss. Fuer Protonen auf
c Graphit ist laut Referenz a/r0 gleich 0.26 (mit Dichte von 3.5 g/ccm habe
c ich einen Wert von 0.29 abgeschaetzt). Fuer Myonen hat man den selben
c Wert zu nehmen. Damit ergibt sich die Forderung, dass n >> 3.5 sein muss.
c
c (2) unabhaengig von (1) n >> 5 sein muss, was (1) also mit einschliesst.
c
c Mit n = Pi*r0*r0*Teilchen/Flaeche ergibt sich fuer eine Foliendicke von
c 3 ug/cm^2 als Abschaetzung fuer n ein Wert von 37. (r0 ueber r0 = 0.5 N^(1/3)
c und 3.5 g/ccm zu 8.9e-9 cm abgeschaetzt). D.h., dass die Bedingungen in
c unserem Fall gut erfuellt sind.
c In dem Paper wird eine Formel fuer Halbwertsbreiten angegeben. Ich habe nicht
c kontrolliert, in wie weit die Form der Verteilung tatsaechlich einer Gauss-
c verteilung entspricht. Zumindest im Bereich der Vorwaertsstreuung sollte
c die in diesem Programm verwendete Gaussverteilung aber eine sehr gute
c Naeherung abgeben. Abweichungen bei groesseren Winkeln koennten jedoch u. U.
c die absolute Streuintensitaet in Vorwaertsrichtung verfaelschen.
czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
c HIER GEHT DER PROGRAMMTEXT RICHTIG LOS
czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
c===============================================================================
options /extend_source
subroutine Get_F_Function_Meyer(tau,Ekin)
c =========================================
implicit none
real tau
real Ekin
real thetaSchlange,thetaSchlangeMax
real theta,thetaMax,thetaStep
real f1,f2,F
c------------------------------------
c - Parameter:
real Z1, Z2 ! die atomaren Nummern von Projektil und Target
c real a0 ! Bohrscher Radius in cm
real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der
! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6)
! bei Streichung von Z1 (vgl. Referenz, S. 268)
real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a'
! und dem ebenfalls bei Meyer angegebenem
! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben)
real eSquare ! elektrische Ladung zum Quadrat in keV*cm
real Pi ! die Kreiszahl
c parameter (a0 = 5.29E-9)
parameter (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9)
parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10)
parameter (Pi = 3.141592654)
real Meyer_Faktor3
real Meyer_Faktor4
real zzz ! 'Hilfsparameter'
real Meyer_Faktor5
parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer))
parameter (Meyer_faktor4 = screeningPar / (2.*Z1*Z2*eSquare) * Pi/180.)
parameter (zzz = screeningPar / (2.*Z1*Z2*eSquare))
parameter (Meyer_faktor5 = zzz*zzz / (8*Pi*Pi))
c------------------------------------
integer nBin,nBinMax
parameter (nBinMax=201)
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
integer i
real rhelp
integer HB_memsize
parameter(HB_memsize=500000)
real memory(HB_memsize)
COMMON /PAWC/ memory
c nur noch fuer Testzwecke:
real fValues(203)
real fValuesFolded(203)
integer idh
parameter (idh = 50)
INCLUDE 'mutrack$sourcedirectory:COM_DIRS.INC'
character filename*20 ! Name der Ausgabe-Dateien
COMMON /filename/ filename
c-------------------------------------------------------------------------------
c Festlegen des maximalen Theta-Wertes sowie der Schrittweite:
if (tau.LT.0.2) then
write(*,*) 'Subroutine ''Get_F_Function_Meyer'':'
write(*,*) 'Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP'
call exit
elseif (tau.LE.2.) then
! => Tabelle A
thetaSchlangeMax = 4.0
elseif (tau.LE.8.) then
! => Tabelle B
thetaSchlangeMax = 7.0
elseif (tau.LE.20.) then
! => Tabelle C
thetaSchlangeMax = 20.0
else
write(*,*) 'Subroutine ''Get_F_Function_Meyer'':'
write(*,*) 'Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP'
call exit
endif
thetaMax = thetaSchlangeMax / Meyer_Faktor4 / Ekin
if (thetaMax.GT.50) then
thetaStep = .5
elseif (thetaMax.GT.25) then
thetaStep = .25
elseif (thetaMax.GT.12.5) then
thetaStep = .125
else
thetaStep = .0625
endif
c Tabelle der F-Werte erstellen:
nBin = 0
do theta = thetaStep, thetaMax, thetaStep
! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich
! noch von degree bei theta in Radiant bei thetaSchlange umrechnen):
thetaSchlange = Meyer_faktor4 * Ekin * theta
! Auslesen der Tabellenwerte fuer die f-Funktionen:
call F_Functions_Meyer(tau,thetaSchlange,f1,f2)
if (thetaSchlange.EQ.-1) then
! wir sind jenseits von thetaSchlangeMax
goto 10
endif
! Berechnen der Streuintensitaet:
F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2)
nBin = nBin + 1
if (nBin.GT.nBinMax) then
write(*,*) 'nBin > nBinMax => EXIT'
call exit
endif
value(nBin) = sind(theta)*F
fValues(nBin+1) = F ! fuer Testzwecke
fValuesFolded(nBin+1) = sind(theta)*F ! fuer Testzwecke
enddo
c Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale:
10 do i = 1, nBin
area(i) = (value(i)+value(i-1))/2. * thetaStep
integ(i) = integ(i-1) + area(i)
enddo
c Normiere totale Flaeche auf 1:
rHelp = integ(nBin)
do i = 1, nBin
value(i) = value(i) / rHelp
area(i) = area(i) / rHelp
integ(i) = integ(i) / rHelp
enddo
c vorerst noch: gib Tabelle in Datei und Histogrammfile aus:
! Berechne die Werte fuer theta=0:
call F_Functions_Meyer(tau,0.,f1,f2)
F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2)
fValues(1) = F
fValuesFolded(1) = 0.
! Gib die Werte in das Tabellenfile aus:
c theta = 0.
c open (10,file=outDir//':'//filename//'.TAB',status='NEW')
c do i = 1, nBin+1
c write(10,*) theta, fValues(i), fValuesFolded(i)
c theta = theta + thetaStep
c enddo
c close (10)
! Buchen und Fuellen der Histogramme:
call HBOOK1(idh,'F',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.)
call HPAK(idh,fValues)
call HRPUT(idh,outDir//':'//filename//'.RZ','N')
call HDELET(idh)
call HBOOK1(idh+1,'F*sin([q])',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.)
call HPAK(idh+1,fValuesFolded)
call HRPUT(idh+1,outDir//':'//filename//'.RZ','U')
call HDELET(idh+1)
END
c===============================================================================
options /extend_source
subroutine throwMeyerAngle (theta)
c ==================================
implicit none
real lowerbound,y1,y2,f,root,radiant,fraction
integer bin,nBin
integer nBinMax
parameter (nBinMax=201)
real theta,thetaStep
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
real rhelp
real random
integer seed
common /seed/ seed
c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von
c random erreicht oder ueberschreitet:
random = ran(seed)
bin = 1
do while (random.GT.integ(bin))
bin = bin + 1
if (bin.GT.nBin) then
write(*,*) 'error 1'
call exit
endif
enddo
fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1))
y1 = value(bin-1)
y2 = value(bin)
f = thetaStep / (y2-y1)
rHelp = y1*f
radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f
root = SQRT(radiant)
lowerBound = real(bin-1)*thetaStep
if (f.GT.0) then
theta = lowerBound - rHelp + root
else
theta = lowerBound - rHelp - root
endif
END
c===============================================================================
options /extend_source
subroutine F_Functions_Meyer(tau,thetaSchlange,f1,f2)
c =====================================================
implicit none
c Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau'
c Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den
c bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine
c verwendeten Tabellen sind eben dieser Referenz entnommen:
c L.Meyer, phys.stat.sol. (b) 44, 253 (1971)
real tau,thetaSchlange
real f1, f2, f1_(2), f2_(2)
integer column_,column,row
integer iColumn
real weightCol, weightRow
c-------------------------------------------------------------------------------

View File

@ -0,0 +1,367 @@
;; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffer.
c-------------------------------------------------------------------------------
c Konstanten und Variable fuer Berechnung der Winkelaufstreuung in Triggerfolie
c mittels Meyer-Formel (L.Meyer, phys.stat.sol. (b) 44, 253 (1971)):
real g1, g2 ! Tabellierte Funktionen der Referenz
real effRedThick ! effektive reduzierte Dicke ('tau' der Referenz)
c - Parameter:
real Z1, Z2 ! die atomaren Nummern von Projektil und Target
real a0 ! Bohrscher Radius in cm
real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der
! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6)
! bei Streichung von Z1 (vgl. Referenz, S. 268)
real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a'
! und dem ebenfalls bei Meyer angegebenem
! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben)
real eSquare ! elektrische Ladung zum Quadrat in keV*cm
real HWHM2sigma ! Umrechnungsfaktor von (halber!) Halbwertsbreite
! nach Sigma der Gaussfunktion
real Na ! die Avogadrokonstante
real mMolC ! molare Masse von C in ug
real Pi ! die Kreiszahl
parameter (Z1 = 1, Z2 = 6, a0 = 5.29E-9, ScreeningPar = 2.5764E-9)
parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10, HWHM2sigma = 1./1.17741)
parameter (Na = 6.022e23, mMolC = 12.011e6, Pi = 3.141592654)
c - Bei der Berechnung von Sigma auftretende Vorfaktoren.
c (Meyer_faktor 1 wird benoetigt fuer Berechnung der reduzierten Dicke aus der
c 'ug/cm2'-Angabe der Foliendicke. Meyer_faktor2 und Meyer_faktor3 werden
c direkt fuer die Berechnung von sigma aus den beiden tabellierten Funktionen
c g1 und g2 verwendet):
real Meyer_Faktor1, Meyer_Faktor2, Meyer_Faktor3
parameter (Meyer_faktor1 = Pi*screeningPar*screeningPar * Na/mMolC)
! Na/mMolC = 1/m(C-Atom)
parameter (Meyer_faktor2 = (2*Z1*Z2 * eSquare)/ScreeningPar * 180./Pi
+ * HWHM2sigma)
parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer))
c-------------------------------------------------------------------------------
c Kommentar zur Berechnung der Winkelaufstreuung nach Meyer:
c
c Als Bedingung fuer die Gueltigkeit der Rechnung wird verlangt, dass
c
c (1) die Anzahl n der Stoesse >> 20*(a/r0)^(4/3) sein muss. Fuer Protonen auf
c Graphit ist laut Referenz a/r0 gleich 0.26 (mit Dichte von 3.5 g/ccm habe
c ich einen Wert von 0.29 abgeschaetzt). Fuer Myonen hat man den selben
c Wert zu nehmen. Damit ergibt sich die Forderung, dass n >> 3.5 sein muss.
c
c (2) unabhaengig von (1) n >> 5 sein muss, was (1) also mit einschliesst.
c
c Mit n = Pi*r0*r0*Teilchen/Flaeche ergibt sich fuer eine Foliendicke von
c 3 ug/cm^2 als Abschaetzung fuer n ein Wert von 37. (r0 ueber r0 = 0.5 N^(1/3)
c und 3.5 g/ccm zu 8.9e-9 cm abgeschaetzt). D.h., dass die Bedingungen in
c unserem Fall gut erfuellt sind.
c In dem Paper wird eine Formel fuer Halbwertsbreiten angegeben. Ich habe nicht
c kontrolliert, in wie weit die Form der Verteilung tatsaechlich einer Gauss-
c verteilung entspricht. Zumindest im Bereich der Vorwaertsstreuung sollte
c die in diesem Programm verwendete Gaussverteilung aber eine sehr gute
c Naeherung abgeben. Abweichungen bei groesseren Winkeln koennten jedoch u. U.
c die absolute Streuintensitaet in Vorwaertsrichtung verfaelschen.
czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
c HIER GEHT DER PROGRAMMTEXT RICHTIG LOS
czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
c===============================================================================
options /extend_source
subroutine Get_F_Function_Meyer(tau,Ekin)
c =========================================
implicit none
real tau
real Ekin
real thetaSchlange,thetaSchlangeMax
real theta,thetaMax,thetaStep
real f1,f2,F
c------------------------------------
c - Parameter:
real Z1, Z2 ! die atomaren Nummern von Projektil und Target
c real a0 ! Bohrscher Radius in cm
real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der
! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6)
! bei Streichung von Z1 (vgl. Referenz, S. 268)
real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a'
! und dem ebenfalls bei Meyer angegebenem
! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben)
real eSquare ! elektrische Ladung zum Quadrat in keV*cm
real Pi ! die Kreiszahl
c parameter (a0 = 5.29E-9)
parameter (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9)
parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10)
parameter (Pi = 3.141592654)
real Meyer_Faktor3
real Meyer_Faktor4
real zzz ! 'Hilfsparameter'
real Meyer_Faktor5
parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer))
parameter (Meyer_faktor4 = screeningPar / (2.*Z1*Z2*eSquare) * Pi/180.)
parameter (zzz = screeningPar / (2.*Z1*Z2*eSquare))
parameter (Meyer_faktor5 = zzz*zzz / (8*Pi*Pi))
c------------------------------------
integer nBin,nBinMax
parameter (nBinMax=201)
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
integer i
real rhelp
integer HB_memsize
parameter(HB_memsize=500000)
real memory(HB_memsize)
COMMON /PAWC/ memory
c nur noch fuer Testzwecke:
real fValues(203)
real fValuesFolded(203)
integer idh
parameter (idh = 50)
INCLUDE 'mutrack$sourcedirectory:COM_DIRS.INC'
character filename*20 ! Name der Ausgabe-Dateien
COMMON /filename/ filename
c-------------------------------------------------------------------------------
c Festlegen des maximalen Theta-Wertes sowie der Schrittweite:
if (tau.LT.0.2) then
write(*,*) 'Subroutine ''Get_F_Function_Meyer'':'
write(*,*) 'Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP'
call exit
elseif (tau.LE.2.) then
! => Tabelle A
thetaSchlangeMax = 4.0
elseif (tau.LE.8.) then
! => Tabelle B
thetaSchlangeMax = 7.0
elseif (tau.LE.20.) then
! => Tabelle C
thetaSchlangeMax = 20.0
else
write(*,*) 'Subroutine ''Get_F_Function_Meyer'':'
write(*,*) 'Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP'
call exit
endif
thetaMax = thetaSchlangeMax / Meyer_Faktor4 / Ekin
if (thetaMax.GT.50) then
thetaStep = .5
elseif (thetaMax.GT.25) then
thetaStep = .25
elseif (thetaMax.GT.12.5) then
thetaStep = .125
else
thetaStep = .0625
endif
c Tabelle der F-Werte erstellen:
nBin = 0
do theta = thetaStep, thetaMax, thetaStep
! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich
! noch von degree bei theta in Radiant bei thetaSchlange umrechnen):
thetaSchlange = Meyer_faktor4 * Ekin * theta
! Auslesen der Tabellenwerte fuer die f-Funktionen:
call F_Functions_Meyer(tau,thetaSchlange,f1,f2)
if (thetaSchlange.EQ.-1) then
! wir sind jenseits von thetaSchlangeMax
goto 10
endif
! Berechnen der Streuintensitaet:
F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2)
nBin = nBin + 1
if (nBin.GT.nBinMax) then
write(*,*) 'nBin > nBinMax => EXIT'
call exit
endif
value(nBin) = sind(theta)*F
fValues(nBin+1) = F ! fuer Testzwecke
fValuesFolded(nBin+1) = sind(theta)*F ! fuer Testzwecke
enddo
c Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale:
10 do i = 1, nBin
area(i) = (value(i)+value(i-1))/2. * thetaStep
integ(i) = integ(i-1) + area(i)
enddo
c Normiere totale Flaeche auf 1:
rHelp = integ(nBin)
do i = 1, nBin
value(i) = value(i) / rHelp
area(i) = area(i) / rHelp
integ(i) = integ(i) / rHelp
enddo
c vorerst noch: gib Tabelle in Datei und Histogrammfile aus:
! Berechne die Werte fuer theta=0:
call F_Functions_Meyer(tau,0.,f1,f2)
F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2)
fValues(1) = F
fValuesFolded(1) = 0.
! Gib die Werte in das Tabellenfile aus:
c theta = 0.
c open (10,file=outDir//':'//filename//'.TAB',status='NEW')
c do i = 1, nBin+1
c write(10,*) theta, fValues(i), fValuesFolded(i)
c theta = theta + thetaStep
c enddo
c close (10)
! Buchen und Fuellen der Histogramme:
call HBOOK1(idh,'F',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.)
call HPAK(idh,fValues)
call HRPUT(idh,outDir//':'//filename//'.RZ','N')
call HDELET(idh)
call HBOOK1(idh+1,'F*sin([q])',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.)
call HPAK(idh+1,fValuesFolded)
call HRPUT(idh+1,outDir//':'//filename//'.RZ','U')
call HDELET(idh+1)
END
c===============================================================================
options /extend_source
subroutine throwMeyerAngle (theta)
c ==================================
implicit none
real lowerbound,y1,y2,f,root,radiant,fraction
integer bin,nBin
integer nBinMax
parameter (nBinMax=201)
real theta,thetaStep
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
real rhelp
real random
integer seed
common /seed/ seed
c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von
c random erreicht oder ueberschreitet:
random = ran(seed)
bin = 1
do while (random.GT.integ(bin))
bin = bin + 1
if (bin.GT.nBin) then
write(*,*) 'error 1'
call exit
endif
enddo
fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1))
y1 = value(bin-1)
y2 = value(bin)
f = thetaStep / (y2-y1)
rHelp = y1*f
radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f
root = SQRT(radiant)
lowerBound = real(bin-1)*thetaStep
if (f.GT.0) then
theta = lowerBound - rHelp + root
else
theta = lowerBound - rHelp - root
endif
END
c===============================================================================
options /extend_source
subroutine F_Functions_Meyer(tau,thetaSchlange,f1,f2)
c =====================================================
implicit none
c Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau'
c Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den
c bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine
c verwendeten Tabellen sind eben dieser Referenz entnommen:
c L.Meyer, phys.stat.sol. (b) 44, 253 (1971)
real tau,thetaSchlange
real f1, f2, f1_(2), f2_(2)
integer column_,column,row
integer iColumn
real weightCol, weightRow
c-------------------------------------------------------------------------------

View File

@ -0,0 +1,27 @@
#ifndef meyer_h
#define meyer_h 1
#include <iomanip>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <ios>
class meyer
{
public:
meyer();
~meyer();
void GFunctions(double*, double*, double);
void Get_F_Function_Meyer(double tau, double Ekin, double Z1, double Z2, double m1, double m2);
void F_Functions_Meyer( double tau,double thetaSchlange,double *f1,double *f2);
};
#endif

View File

@ -0,0 +1,27 @@
#ifndef meyer_h
#define meyer_h 1
#include <iomanip>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <ios>
class meyer
{
public:
meyer();
~meyer();
void GFunctions(double*, double*, double);
void Get_F_Function_Meyer(double tau, double Ekin);
void F_Functions_Meyer( double tau,double thetaSchlange,double *f1,double *f2);
};
#endif

View File

@ -0,0 +1 @@
g++ testmeyer.cc meyer.cc

View File

@ -0,0 +1,698 @@
PROGRAM mtest
IMPLICIT NONE
write(*,*)'SUBROUTINE G_Functions:'
SUBROUTINE G_Functions(G1,G2,tau)
c =================================
c Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau'
c Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von
c Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts-
c breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253
c (1971))
IMPLICIT NONE
real tau,g1,g2
real tau_(26),g1_(26),g2_(26)
real help
integer i
DATA tau_ /0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0,
+ 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0,
+ 10.0, 12.0, 14.0, 16.0, 18.0, 20.0 /
DATA g1_ /0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575,
+ 0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850,
+ 1.990,2.270,2.540,2.800,3.050,3.290 /
DATA g2_ / 0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59,
+ 0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32,
+ 0.30,0.26,0.22,0.18,0.15,0.13 /
if (tau.LT.tau_(1)) then
write(*,*)
write(*,*)'SUBROUTINE G_Functions:'
write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:'
write(*,*)' aktuelles tau ist kleiner als kleinster Tabellenwert:'
write(*,*)' tau = ',tau
write(*,*)' tau_(1) = ',tau_(1)
write(*,*)
STOP
endif
i = 1
10 i = i + 1
if (i.EQ.27) then
write(*,*)
write(*,*)'SUBROUTINE G_Functions:'
write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:'
write(*,*)' aktuelles tau ist groesser als groesster Tabellenwert:'
write(*,*)' tau = ',tau
write(*,*)' tau_(26) = ',tau_(26)
write(*,*)
STOP
elseif (tau.gt.tau_(i)) then
goto 10
endif
c lineare Interpolation zwischen Tabellenwerten:
help = (tau-tau_(i-1))/(tau_(i)-tau_(i-1))
g1 = g1_(i-1) + help*(g1_(i)-g1_(i-1))
g2 = g2_(i-1) + help*(g2_(i)-g2_(i-1))
END
c===============================================================================
options /extend_source
subroutine Get_F_Function_Meyer(tau,Ekin)
c =========================================
implicit none
real tau
real Ekin
real thetaSchlange,thetaSchlangeMax
real theta,thetaMax,thetaStep
real f1,f2,F
c------------------------------------
c - Parameter:
real Z1, Z2 ! die atomaren Nummern von Projektil und Target
c real a0 ! Bohrscher Radius in cm
real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der
! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6)
! bei Streichung von Z1 (vgl. Referenz, S. 268)
real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a'
! und dem ebenfalls bei Meyer angegebenem
! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben)
real eSquare ! elektrische Ladung zum Quadrat in keV*cm
real Pi ! die Kreiszahl
c parameter (a0 = 5.29E-9)
parameter (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9)
parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10)
parameter (Pi = 3.141592654)
real Meyer_Faktor3
real Meyer_Faktor4
real zzz ! 'Hilfsparameter'
real Meyer_Faktor5
parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer))
parameter (Meyer_faktor4 = screeningPar / (2.*Z1*Z2*eSquare) * Pi/180.)
parameter (zzz = screeningPar / (2.*Z1*Z2*eSquare))
parameter (Meyer_faktor5 = zzz*zzz / (8*Pi*Pi))
c------------------------------------
integer nBin,nBinMax
parameter (nBinMax=201)
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
integer i
real rhelp
integer HB_memsize
parameter(HB_memsize=500000)
real memory(HB_memsize)
COMMON /PAWC/ memory
c nur noch fuer Testzwecke:
real fValues(203)
real fValuesFolded(203)
integer idh
parameter (idh = 50)
INCLUDE 'mutrack$sourcedirectory:COM_DIRS.INC'
character filename*20 ! Name der Ausgabe-Dateien
COMMON /filename/ filename
c-------------------------------------------------------------------------------
c Festlegen des maximalen Theta-Wertes sowie der Schrittweite:
if (tau.LT.0.2) then
write(*,*) 'Subroutine ''Get_F_Function_Meyer'':'
write(*,*) 'Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP'
call exit
elseif (tau.LE.2.) then
! => Tabelle A
thetaSchlangeMax = 4.0
elseif (tau.LE.8.) then
! => Tabelle B
thetaSchlangeMax = 7.0
elseif (tau.LE.20.) then
! => Tabelle C
thetaSchlangeMax = 20.0
else
write(*,*) 'Subroutine ''Get_F_Function_Meyer'':'
write(*,*) 'Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP'
call exit
endif
thetaMax = thetaSchlangeMax / Meyer_Faktor4 / Ekin
if (thetaMax.GT.50) then
thetaStep = .5
elseif (thetaMax.GT.25) then
thetaStep = .25
elseif (thetaMax.GT.12.5) then
thetaStep = .125
else
thetaStep = .0625
endif
c Tabelle der F-Werte erstellen:
nBin = 0
do theta = thetaStep, thetaMax, thetaStep
! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich
! noch von degree bei theta in Radiant bei thetaSchlange umrechnen):
thetaSchlange = Meyer_faktor4 * Ekin * theta
! Auslesen der Tabellenwerte fuer die f-Funktionen:
call F_Functions_Meyer(tau,thetaSchlange,f1,f2)
if (thetaSchlange.EQ.-1) then
! wir sind jenseits von thetaSchlangeMax
goto 10
endif
! Berechnen der Streuintensitaet:
F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2)
nBin = nBin + 1
if (nBin.GT.nBinMax) then
write(*,*) 'nBin > nBinMax => EXIT'
call exit
endif
value(nBin) = sind(theta)*F
fValues(nBin+1) = F ! fuer Testzwecke
fValuesFolded(nBin+1) = sind(theta)*F ! fuer Testzwecke
enddo
c Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale:
10 do i = 1, nBin
area(i) = (value(i)+value(i-1))/2. * thetaStep
integ(i) = integ(i-1) + area(i)
enddo
c Normiere totale Flaeche auf 1:
rHelp = integ(nBin)
do i = 1, nBin
value(i) = value(i) / rHelp
area(i) = area(i) / rHelp
integ(i) = integ(i) / rHelp
enddo
c vorerst noch: gib Tabelle in Datei und Histogrammfile aus:
! Berechne die Werte fuer theta=0:
call F_Functions_Meyer(tau,0.,f1,f2)
F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2)
fValues(1) = F
fValuesFolded(1) = 0.
! Gib die Werte in das Tabellenfile aus:
c theta = 0.
c open (10,file=outDir//':'//filename//'.TAB',status='NEW')
c do i = 1, nBin+1
c write(10,*) theta, fValues(i), fValuesFolded(i)
c theta = theta + thetaStep
c enddo
c close (10)
! Buchen und Fuellen der Histogramme:
call HBOOK1(idh,'F',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.)
call HPAK(idh,fValues)
call HRPUT(idh,outDir//':'//filename//'.RZ','N')
call HDELET(idh)
call HBOOK1(idh+1,'F*sin([q])',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.)
call HPAK(idh+1,fValuesFolded)
call HRPUT(idh+1,outDir//':'//filename//'.RZ','U')
call HDELET(idh+1)
END
c===============================================================================
options /extend_source
subroutine throwMeyerAngle (theta)
c ==================================
implicit none
real lowerbound,y1,y2,f,root,radiant,fraction
integer bin,nBin
integer nBinMax
parameter (nBinMax=201)
real theta,thetaStep
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
real rhelp
real random
integer seed
common /seed/ seed
c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von
c random erreicht oder ueberschreitet:
random = ran(seed)
bin = 1
do while (random.GT.integ(bin))
bin = bin + 1
if (bin.GT.nBin) then
write(*,*) 'error 1'
call exit
endif
enddo
fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1))
y1 = value(bin-1)
y2 = value(bin)
f = thetaStep / (y2-y1)
rHelp = y1*f
radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f
root = SQRT(radiant)
lowerBound = real(bin-1)*thetaStep
if (f.GT.0) then
theta = lowerBound - rHelp + root
else
theta = lowerBound - rHelp - root
endif
END
c===============================================================================
options /extend_source
subroutine F_Functions_Meyer(tau,thetaSchlange,f1,f2)
c =====================================================
implicit none
c Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau'
c Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den
c bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine
c verwendeten Tabellen sind eben dieser Referenz entnommen:
c L.Meyer, phys.stat.sol. (b) 44, 253 (1971)
real tau,thetaSchlange
real f1, f2, f1_(2), f2_(2)
integer column_,column,row
integer iColumn
real weightCol, weightRow
c-------------------------------------------------------------------------------
c die Tabellendaten der Referenz (Tabellen 2 und 3):
integer nColumn
parameter (nColumn = 25)
real tau_(nColumn) /
+ 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0,
+ 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 10., 12., 14., 16., 18., 20. /
integer nRowA
parameter (nRowA = 25)
real thetaSchlangeA(nRowA) /
+ .00, .05, .10, .15, .20, .25, .30, .35, .40, .45, .50, .60,
+ .70, .80, .90, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, 3.5, 4.0 /
integer nRowB
parameter (nRowB = 24)
real thetaSchlangeB(nRowB) /
+ 0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.8,
+ 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0 /
integer nRowC
parameter (nRowC = 24)
real thetaSchlangeC(nRowC) /
+ 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0,
+ 7.0, 8.0, 9.0, 10., 11., 12., 13., 14., 15., 16., 18., 20. /
real f1_A(9,nRowA)
+ /1.69E+2,4.55E+1,2.11E+1,1.25E+1,8.48E+0,6.21E+0,4.80E+0,3.86E+0,3.20E+0,
+ 9.82E+1,3.72E+1,1.97E+1,1.20E+1,8.27E+0,6.11E+0,4.74E+0,3.83E+0,3.17E+0,
+ 3.96E+1,2.58E+1,1.65E+1,1.09E+1,7.73E+0,5.82E+0,4.58E+0,3.72E+0,3.10E+0,
+ 1.76E+1,1.58E+1,1.27E+1,9.26E+0,6.93E+0,5.38E+0,4.31E+0,3.55E+0,2.99E+0,
+ 8.62E+0,1.01E+1,9.45E+0,7.58E+0,6.02E+0,4.85E+0,3.98E+0,3.33E+0,2.84E+0,
+ 4.65E+0,6.55E+0,6.91E+0,6.06E+0,5.11E+0,4.28E+0,3.62E+0,3.08E+0,2.66E+0,
+ 2.74E+0,4.45E+0,5.03E+0,4.78E+0,4.27E+0,3.72E+0,3.23E+0,2.82E+0,2.47E+0,
+ 1.77E+0,3.02E+0,3.71E+0,3.76E+0,3.53E+0,3.20E+0,2.86E+0,2.55E+0,2.27E+0,
+ 1.22E+0,2.19E+0,2.78E+0,2.96E+0,2.91E+0,2.73E+0,2.51E+0,2.28E+0,2.07E+0,
+ 8.82E-1,1.59E+0,2.12E+0,2.35E+0,2.39E+0,2.32E+0,2.19E+0,2.03E+0,1.87E+0,
+ 6.55E-1,1.20E+0,1.64E+0,1.88E+0,1.97E+0,1.96E+0,1.90E+0,1.79E+0,1.68E+0,
+ 3.80E-1,7.15E-1,1.01E+0,1.22E+0,1.35E+0,1.40E+0,1.41E+0,1.39E+0,1.34E+0,
+ 2.26E-1,4.45E-1,6.44E-1,8.08E-1,9.28E-1,1.01E+0,1.05E+0,1.06E+0,1.05E+0,
+ 1.39E-1,2.80E-1,4.21E-1,5.45E-1,6.46E-1,7.22E-1,7.75E-1,8.07E-1,8.21E-1,
+ 8.22E-2,1.76E-1,2.78E-1,3.71E-1,4.53E-1,5.21E-1,5.74E-1,6.12E-1,6.37E-1,
+ 5.04E-2,1.11E-1,1.86E-1,2.57E-1,3.22E-1,3.79E-1,4.27E-1,4.65E-1,4.94E-1,
+ 2.51E-2,5.60E-2,9.24E-2,1.31E-1,1.69E-1,2.02E-1,2.40E-1,2.71E-1,2.97E-1,
+ 1.52E-2,3.20E-2,5.08E-2,7.23E-2,9.51E-2,1.18E-1,1.41E-1,1.63E-1,1.83E-1,
+ 1.03E-2,2.05E-2,3.22E-2,4.55E-2,6.01E-2,7.53E-2,9.02E-2,1.05E-1,1.19E-1,
+ 8.80E-3,1.48E-2,2.25E-2,3.13E-2,4.01E-2,5.03E-2,6.01E-2,7.01E-2,8.01E-2,
+ 6.10E-3,1.15E-2,1.71E-2,2.28E-2,2.89E-2,3.52E-2,4.18E-2,4.86E-2,5.55E-2,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,1.71E-2,1.98E-2,2.28E-2,2.58E-2,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.90E-3,1.02E-2,1.16E-2,1.31E-2,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,4.90E-3,5.70E-3,6.40E-3,7.20E-3,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.90E-3,3.40E-3,3.90E-3,4.30E-3/
real f1_B(9,nRowB)
+ /2.71E+0,1.92E+0,1.46E+0,1.16E+0,9.52E-1,8.03E-1,6.90E-1,5.32E-1,4.28E-1,
+ 2.45E+0,1.79E+0,1.39E+0,1.12E+0,9.23E-1,7.82E-1,6.75E-1,5.23E-1,4.23E-1,
+ 1.87E+0,1.48E+0,1.20E+0,9.96E-1,8.42E-1,7.24E-1,6.32E-1,4.98E-1,4.07E-1,
+ 1.56E+0,1.30E+0,1.09E+0,9.19E-1,7.89E-1,6.86E-1,6.03E-1,4.80E-1,3.95E-1,
+ 1.28E+0,1.11E+0,9.62E-1,8.33E-1,7.27E-1,6.40E-1,5.69E-1,4.59E-1,3.81E-1,
+ 8.23E-1,7.90E-1,7.29E-1,6.64E-1,6.01E-1,5.44E-1,4.94E-1,4.12E-1,3.49E-1,
+ 5.14E-1,5.36E-1,5.29E-1,5.07E-1,4.78E-1,4.47E-1,4.16E-1,3.60E-1,3.13E-1,
+ 3.19E-1,3.58E-1,3.76E-1,3.78E-1,3.70E-1,3.57E-1,3.45E-1,3.08E-1,2.76E-1,
+ 2.02E-1,2.40E-1,2.64E-1,2.77E-1,2.82E-1,2.80E-1,2.65E-1,2.59E-1,2.39E-1,
+ 1.67E-1,1.96E-1,2.20E-1,2.36E-1,2.44E-1,2.47E-1,2.45E-1,2.35E-1,2.21E-1,
+ 1.33E-1,1.61E-1,1.85E-1,2.02E-1,2.12E-1,2.18E-1,2.18E-1,2.14E-1,2.03E-1,
+ 8.99E-2,1.12E-1,1.32E-1,1.48E-1,1.59E-1,1.67E-1,1.68E-1,1.75E-1,1.72E-1,
+ 6.24E-2,7.94E-2,9.50E-2,1.09E-1,1.20E-1,1.29E-1,1.35E-1,1.42E-1,1.43E-1,
+ 4.55E-2,5.74E-2,6.98E-2,8.11E-2,9.09E-2,9.92E-2,1.06E-1,1.15E-1,1.19E-1,
+ 3.35E-2,4.22E-2,5.19E-2,6.11E-2,6.95E-2,7.69E-2,8.33E-2,9.28E-2,9.85E-2,
+ 2.50E-2,3.16E-2,3.92E-2,4.66E-2,5.35E-2,6.00E-2,6.57E-2,7.49E-2,8.13E-2,
+ 1.90E-2,2.40E-2,2.99E-2,3.58E-2,4.16E-2,4.70E-2,5.20E-2,6.05E-2,6.70E-2,
+ 1.47E-2,1.86E-2,2.32E-2,2.79E-2,3.25E-2,3.70E-2,4.12E-2,4.89E-2,5.51E-2,
+ 8.10E-3,1.04E-2,1.30E-2,1.57E-2,1.84E-2,2.12E-2,2.40E-2,2.93E-2,3.42E-2,
+ 4.80E-3,6.20E-3,7.70E-3,9.30E-3,1.09E-2,1.26E-2,1.44E-2,1.79E-2,2.14E-2,
+ 2.80E-3,3.80E-3,4.70E-3,5.70E-3,6.70E-3,7.50E-3,8.90E-3,1.13E-2,1.36E-2,
+ 1.70E-3,2.30E-3,2.90E-3,3.60E-3,4.20E-3,4.90E-3,5.60E-3,7.20E-3,8.80E-3,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.00E-3,2.80E-3,3.50E-3,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.80E-4,1.20E-3,1.60E-3/
real f1_C(7,nRowC)
+ /3.65E-1,2.62E-1,2.05E-1,1.67E-1,1.41E-1,1.21E-1,1.05E-1,
+ 3.33E-1,2.50E-1,1.95E-1,1.61E-1,1.36E-1,1.18E-1,1.03E-1,
+ 2.75E-1,2.18E-1,1.76E-1,1.48E-1,1.27E-1,1.11E-1,9.80E-2,
+ 2.04E-1,1.75E-1,1.50E-1,1.29E-1,1.13E-1,1.01E-1,9.00E-2,
+ 1.41E-1,1.31E-1,1.19E-1,1.08E-1,9.71E-2,8.88E-2,8.01E-2,
+ 9.32E-2,9.42E-2,9.10E-2,8.75E-2,8.00E-2,7.44E-2,6.91E-2,
+ 5.98E-2,6.52E-2,6.72E-2,6.62E-2,6.40E-2,6.12E-2,5.82E-2,
+ 3.83E-2,4.45E-2,4.80E-2,4.96E-2,4.98E-2,4.90E-2,4.77E-2,
+ 2.46E-2,3.01E-2,3.40E-2,3.65E-2,3.79E-2,3.84E-2,3.83E-2,
+ 1.59E-2,2.03E-2,2.39E-2,2.66E-2,2.85E-2,2.97E-2,3.04E-2,
+ 1.04E-2,1.37E-2,1.66E-2,1.92E-2,2.12E-2,2.27E-2,2.37E-2,
+ 4.39E-3,6.26E-3,8.26E-3,9.96E-3,1.15E-2,1.29E-2,1.41E-2,
+ 2.06E-3,3.02E-3,4.24E-3,5.28E-3,6.32E-3,7.32E-3,8.26E-3,
+ 1.21E-3,1.69E-3,2.24E-3,2.85E-3,3.50E-3,4.16E-3,4.82E-3,
+ 8.50E-4,1.10E-3,1.38E-3,1.65E-3,2.03E-3,2.45E-3,2.88E-3,
+ 5.90E-4,7.40E-4,8.50E-4,9.90E-4,1.23E-3,1.49E-3,1.71E-3,
+ 3.90E-4,4.60E-4,5.20E-4,6.30E-4,7.65E-4,9.65E-4,1.12E-3,
+ 2.40E-4,2.70E-4,3.10E-4,3.98E-4,4.97E-4,6.03E-4,7.18E-4,
+ 1.50E-4,1.70E-4,2.15E-4,2.70E-4,3.35E-4,4.35E-4,5.00E-4,
+ 1.00E-4,1.20E-4,1.46E-4,1.90E-4,2.40E-4,2.88E-4,3.43E-4,
+ 0.00 ,0.00 ,1.04E-4,1.41E-4,1.80E-4,2.10E-4,2.50E-4,
+ 0.00 ,0.00 ,8.20E-5,1.06E-4,1.38E-4,1.58E-4,1.85E-4,
+ 0.00 ,0.00 ,5.40E-5,7.00E-5,8.60E-5,1.03E-4,1.20E-4,
+ 0.00 ,0.00 ,4.20E-5,5.40E-5,6.50E-5,7.70E-5,8.80E-5/
real f2_A(9,nRowA)
+ / 3.52E+3, 3.27E+2, 9.08E+1, 3.85E+1, 2.00E+1, 1.18E+1, 7.55E+0, 5.16E+0, 3.71E+0,
+ 2.58E+2, 1.63E+2, 7.30E+1, 3.42E+1, 1.85E+1, 1.11E+1, 7.18E+0, 4.96E+0, 3.59E+0,
+ -1.12E+2, 4.84E+0, 3.56E+1, 2.34E+1, 1.45E+1, 9.33E+0, 6.37E+0, 4.51E+0, 3.32E+0,
+ -5.60E+1,-1.12E+1, 9.87E+0, 1.24E+1, 9.59E+0, 7.01E+0, 5.16E+0, 3.83E+0, 2.91E+0,
+ -2.13E+1,-1.22E+1,-2.23E+0, 3.88E+0, 5.15E+0, 4.65E+0, 3.87E+0, 3.12E+0, 2.45E+0,
+ -8.25E+0,-9.58E+0,-5.59E+0,-1.40E+0, 1.76E+0, 2.71E+0, 2.71E+0, 2.35E+0, 1.95E+0,
+ -3.22E+0,-6.12E+0,-5.28E+0,-2.87E+0,-1.92E-1, 1.32E+0, 1.69E+0, 1.74E+0, 1.48E+0,
+ -1.11E+0,-3.40E+0,-4.12E+0,-3.08E+0,-6.30E-1, 3.60E-1, 9.20E-1, 1.03E+0, 1.04E+0,
+ -2.27E-1,-2.00E+0,-2.93E+0,-2.69E+0,-1.48E+0,-3.14E-1, 2.69E-1, 5.28E-1, 6.09E-1,
+ 1.54E-1,-1.09E+0,-2.10E+0,-2.15E+0,-1.47E+0,-6.77E-1,-1.80E-1, 1.08E-1, 2.70E-1,
+ 3.28E-1,-6.30E-1,-1.50E+0,-1.68E+0,-1.34E+0,-8.43E-1,-4.60E-1,-1.85E-1,-4.67E-3,
+ 3.32E-1,-2.06E-1,-7.32E-1,-9.90E-1,-9.42E-1,-8.20E-1,-6.06E-1,-4.51E-1,-3.01E-1,
+ 2.72E-1,-3.34E-2,-3.49E-1,-5.65E-1,-6.03E-1,-5.79E-1,-5.05E-1,-4.31E-1,-3.45E-1,
+ 2.02E-1, 2.80E-2,-1.54E-1,-3.00E-1,-3.59E-1,-3.76E-1,-4.60E-1,-3.40E-1,-3.08E-1,
+ 1.38E-1, 4.84E-2,-5.56E-2,-1.44E-1,-2.04E-1,-2.39E-1,-2.54E-1,-2.49E-1,-2.48E-1,
+ 9.47E-2, 4.86E-2,-1.08E-2,-6.44E-2,-1.02E-1,-1.34E-1,-1.62E-1,-1.79E-1,-1.87E-1,
+ 5.33E-2, 3.71E-2, 1.85E-2, 1.63E-3,-1.69E-2,-3.69E-2,-5.66E-2,-7.78E-2,-9.33E-2,
+ 3.38E-2, 2.40E-2, 1.62E-2, 9.90E-3, 3.76E-3,-4.93E-3,-1.66E-2,-3.05E-2,-4.22E-2,
+ 2.12E-2, 1.56E-2, 1.05E-2, 7.80E-3, 7.92E-3, 6.30E-3, 3.20E-4,-8.50E-3,-1.66E-2,
+ 1.40E-2, 9.20E-3, 5.30E-3, 4.70E-3, 6.31E-3, 8.40E-3, 5.30E-3, 8.80E-4,-3.30E-3,
+ 9.20E-3, 4.70E-3, 1.70E-3, 2.60E-3, 4.49E-3, 6.60E-3, 6.00E-3, 4.70E-3, 2.80E-3,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 /
real f2_B(9,nRowB)
+ / 2.75E+0, 1.94E+0, 9.13E-1, 6.06E-1, 4.26E-1, 3.14E-1, 2.40E-1, 1.51E-1, 1.03E-1,
+ 1.94E+0, 1.16E+0, 7.56E-1, 5.26E-1, 3.81E-1, 2.87E-1, 2.23E-1, 1.43E-1, 9.78E-2,
+ 5.85E-1, 5.04E-1, 4.10E-1, 3.30E-1, 2.69E-1, 2.17E-1, 1.78E-1, 1.22E-1, 8.71E-2,
+ 7.83E-2, 2.00E-1, 2.35E-1, 2.19E-1, 1.97E-1, 1.73E-1, 1.48E-1, 1.08E-1, 7.93E-2,
+ -1.82E-1, 1.56E-2, 1.04E-1, 1.36E-1, 1.38E-1, 1.31E-1, 1.19E-1, 9.46E-2, 7.19E-2,
+ -2.71E-1,-1.66E-1,-7.29E-2,-4.74E-3, 3.60E-2, 5.50E-2, 6.28E-2, 5.98E-2, 5.09E-2,
+ -1.87E-1,-1.58E-1,-1.09E-1,-5.80E-2,-2.03E-2, 2.48E-3, 1.99E-2, 3.36E-2, 3.27E-2,
+ -1.01E-1,-1.05E-1,-8.95E-2,-6.63E-2,-3.93E-2,-2.38E-2,-9.22E-3, 8.47E-3, 1.52E-2,
+ -5.19E-2,-6.47E-2,-6.51E-2,-5.62E-2,-4.51E-2,-3.49E-2,-2.45E-2,-8.19E-3, 2.05E-3,
+ -3.68E-2,-4.89E-2,-5.36E-2,-5.06E-2,-4.27E-2,-3.65E-2,-2.80E-2,-1.33E-2,-3.47E-3,
+ -2.33E-2,-3.69E-2,-4.41E-2,-4.38E-2,-3.97E-2,-3.50E-2,-2.88E-2,-1.60E-2,-6.68E-3,
+ -8.76E-3,-2.07E-2,-2.90E-2,-3.17E-2,-3.09E-2,-2.92E-2,-2.63E-2,-1.79E-2,-1.03E-2,
+ -1.20E-3,-1.11E-2,-1.90E-2,-2.20E-2,-2.32E-2,-2.24E-2,-2.10E-2,-1.66E-2,-1.11E-2,
+ 1.72E-3,-4.82E-3,-1.02E-2,-1.42E-2,-1.65E-2,-1.66E-2,-1.60E-2,-1.39E-2,-1.09E-2,
+ 2.68E-3,-1.18E-3,-5.19E-3,-8.30E-5,-1.01E-2,-1.14E-2,-1.16E-2,-1.16E-2,-9.99E-3,
+ 2.81E-3, 8.21E-4,-1.96E-3,-3.99E-3,-5.89E-3,-7.13E-3,-8.15E-3,-9.05E-3,-8.60E-3,
+ 2.61E-3, 1.35E-3,-2.99E-4,-1.79E-3,-3.12E-3,-4.44E-3,-5.61E-3,-7.01E-3,-7.27E-3,
+ 2.06E-3, 1.45E-3, 4.64E-4,-5.97E-4,-1.71E-3,-2.79E-3,-3.84E-3,-5.29E-3,-5.90E-3,
+ 1.07E-3, 9.39E-4, 8.22E-4, 3.58E-4,-1.15E-4,-6.60E-4,-1.18E-3,-2.15E-3,-2.88E-3,
+ 4.97E-4, 5.46E-4, 6.15E-4, 5.56E-4, 3.14E-4, 9.80E-5,-1.30E-4,-5.98E-4,-1.07E-4,
+ 1.85E-4, 3.11E-4, 4.25E-4, 4.08E-4, 3.63E-4, 3.04E-4, 2.24E-4, 2.80E-5,-2.10E-4,
+ 4.80E-5, 1.48E-4, 2.44E-4, 2.80E-4, 3.01E-4, 3.11E-4, 3.13E-4, 2.40E-4, 1.10E-4,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 1.39E-4, 1.80E-4, 1.80E-4,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 4.38E-5, 7.30E-5, 8.40E-5/
real f2_C(7,nRowC)
+ / 7.36E-2, 4.21E-2, 2.69E-2, 1.83E-2, 1.34E-2, 1.01E-2, 7.88E-3,
+ 5.79E-2, 3.61E-2, 2.34E-2, 1.64E-2, 1.21E-2, 9.26E-3, 7.28E-3,
+ 2.94E-2, 2.17E-2, 1.60E-2, 1.23E-2, 9.49E-3, 7.45E-3, 5.95E-3,
+ 2.30E-3, 7.07E-3, 7.76E-3, 7.02E-3, 6.13E-3, 5.17E-3, 4.34E-3,
+ -7.50E-3,-2.00E-3, 9.93E-4, 2.36E-3, 2.82E-3, 2.86E-3, 2.72E-3,
+ -8.27E-3,-5.37E-3,-2.58E-3,-7.96E-4, 3.75E-4, 9.71E-4, 1.28E-3,
+ -5.79E-3,-5.12E-3,-3.86E-3,-2.46E-3,-1.20E-3,-3.74E-4, 1.74E-4,
+ -3.26E-3,-3.43E-3,-3.26E-3,-2.68E-3,-1.84E-3,-1.12E-3,-4.54E-4,
+ -1.46E-3,-1.49E-3,-2.20E-3,-2.18E-3,-1.85E-3,-1.40E-3,-8.15E-4,
+ -4.29E-4,-9.44E-4,-1.29E-3,-1.50E-3,-1.51E-3,-1.36E-3,-9.57E-4,
+ -3.30E-5,-3.66E-4,-6.78E-4,-9.38E-4,-1.09E-3,-1.09E-3,-9.56E-4,
+ 1.50E-4, 3.10E-5,-1.38E-4,-3.06E-4,-4.67E-4,-5.48E-4,-6.08E-4,
+ 1.00E-4, 8.50E-5, 2.30E-5,-6.60E-5,-1.58E-4,-2.40E-4,-3.05E-4,
+ 5.40E-5, 6.50E-5, 4.90E-5, 1.20E-5,-3.60E-5,-8.90E-5,-1.31E-4,
+ 2.90E-5, 4.30E-5, 4.40E-5, 2.90E-5, 5.10E-6,-2.20E-5,-4.80E-5,
+ 1.40E-5, 2.40E-5, 2.80E-5, 2.60E-5, 1.90E-5, 7.50E-6,-1.10E-5,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 /
c===============================================================================
c Bestimme, welche Reihen der Tabellen fuer Interpolation benoetigt werden:
if (tau.LT.tau_(1)) then
write(*,*) 'tau is less than the lowest tabulated value:'
write(*,*) 'tau = ',tau
write(*,*) 'minimum = ',tau_(1)
call exit
elseif (tau.GT.tau_(nColumn)) then
write(*,*) 'tau is greater than the highest tabulated value:'
write(*,*) 'tau = ',tau
write(*,*) 'maximum = ',tau_(nColumn)
call exit
endif
column_ = 2
do while (tau.GT.tau_(column_))
column_ = column_ + 1
enddo
! Das Gewicht der Reihe zu groesserem Tau:
weightCol = (tau-tau_(column_-1)) / (tau_(column_)-tau_(column_-1))
c Besorge fuer gegebenes 'thetaSchlange' die interpolierten f1- und f2 -Werte
c der beiden relevanten Reihen:
c iColumn = 1 => Reihe mit hoeherem Index
c iColumn = 2 => Reihe mit kleinerem Index
iColumn = 1
5 continue
if (column_.LE.9) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Werte aus 1. Tabelle: 0.2 <= tau <= 1.8
column = column_
if (thetaSchlange.LT.thetaSchlangeA(1)) then
write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:'
write(*,*) 'thetaSchlange = ',thetaSchlange
write(*,*) 'minimum = ',thetaSchlangeA(1)
call exit
elseif (thetaSchlange.GT.thetaSchlangeA(nRowA)) then
c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:'
c write(*,*) 'thetaSchlange = ',thetaSchlange
c write(*,*) 'maximum = ',thetaSchlangeA(nRowA)
c call exit
thetaSchlange = -1.
RETURN
endif
row = 2
do while (thetaSchlange.GT.thetaSchlangeA(row))
row = row + 1
enddo
! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
weightRow = (thetaSchlange-thetaSchlangeA(row-1)) /
+ (thetaSchlangeA(row)-thetaSchlangeA(row-1))
f1_(iColumn) = (1.-weightRow) * f1_A(column,row-1) +
+ weightRow * f1_A(column,row)
f2_(iColumn) = (1.-weightRow) * f2_A(column,row-1) +
+ weightRow * f2_A(column,row)
elseif (column_.LE.18) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Werte aus 2. Tabelle: 2.0 <= tau <= 7.0
column = column_ - 9
if (thetaSchlange.LT.thetaSchlangeB(1)) then
write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:'
write(*,*) 'thetaSchlange = ',thetaSchlange
write(*,*) 'minimum = ',thetaSchlangeB(1)
call exit
elseif (thetaSchlange.GT.thetaSchlangeB(nRowB)) then
c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:'
c write(*,*) 'thetaSchlange = ',thetaSchlange
c write(*,*) 'maximum = ',thetaSchlangeB(nRowB)
c call exit
thetaSchlange = -1.
RETURN
endif
row = 2
do while (thetaSchlange.GT.thetaSchlangeB(row))
row = row + 1
enddo
! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
weightRow = (thetaSchlange-thetaSchlangeB(row-1)) /
+ (thetaSchlangeB(row)-thetaSchlangeB(row-1))
f1_(iColumn) = (1.-weightRow) * f1_B(column,row-1) +
+ weightRow * f1_B(column,row)
f2_(iColumn) = (1.-weightRow) * f2_B(column,row-1) +
+ weightRow * f2_B(column,row)
else ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Werte aus 3. Tabelle: 8.0 <= tau <= 20.
column = column_ - 18
if (thetaSchlange.LT.thetaSchlangeC(1)) then
write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:'
write(*,*) 'thetaSchlange = ',thetaSchlange
write(*,*) 'minimum = ',thetaSchlangeC(1)
call exit
elseif (thetaSchlange.GT.thetaSchlangeC(nRowC)) then
c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:'
c write(*,*) 'thetaSchlange = ',thetaSchlange
c write(*,*) 'maximum = ',thetaSchlangeC(nRowC)
c call exit
thetaSchlange = -1.
RETURN
endif
row = 2
do while (thetaSchlange.GT.thetaSchlangeC(row))
row = row + 1
enddo
! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
weightRow = (thetaSchlange-thetaSchlangeC(row-1)) /
+ (thetaSchlangeC(row)-thetaSchlangeC(row-1))
f1_(iColumn) = (1.-weightRow) * f1_C(column,row-1) +
+ weightRow * f1_C(column,row)
f2_(iColumn) = (1.-weightRow) * f2_C(column,row-1) +
+ weightRow * f2_C(column,row)
endif ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (iColumn.EQ.1) then
column_ = column_ - 1
iColumn = 2
goto 5
endif
f1 = weightCol*f1_(1) + (1.-weightCol)*f1_(2)
f2 = weightCol*f2_(1) + (1.-weightCol)*f2_(2)
END
c===============================================================================
END PROGRAM mtest

View File

@ -0,0 +1,691 @@
SUBROUTINE G_Functions(G1,G2,tau)
c =================================
c Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau'
c Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von
c Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts-
c breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253
c (1971))
IMPLICIT NONE
real tau,g1,g2
real tau_(26),g1_(26),g2_(26)
real help
integer i
DATA tau_ /0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0,
+ 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0,
+ 10.0, 12.0, 14.0, 16.0, 18.0, 20.0 /
DATA g1_ /0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575,
+ 0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850,
+ 1.990,2.270,2.540,2.800,3.050,3.290 /
DATA g2_ / 0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59,
+ 0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32,
+ 0.30,0.26,0.22,0.18,0.15,0.13 /
if (tau.LT.tau_(1)) then
write(*,*)
write(*,*)'SUBROUTINE G_Functions:'
write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:'
write(*,*)' aktuelles tau ist kleiner als kleinster Tabellenwert:'
write(*,*)' tau = ',tau
write(*,*)' tau_(1) = ',tau_(1)
write(*,*)
STOP
endif
i = 1
10 i = i + 1
if (i.EQ.27) then
write(*,*)
write(*,*)'SUBROUTINE G_Functions:'
write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:'
write(*,*)' aktuelles tau ist groesser als groesster Tabellenwert:'
write(*,*)' tau = ',tau
write(*,*)' tau_(26) = ',tau_(26)
write(*,*)
STOP
elseif (tau.gt.tau_(i)) then
goto 10
endif
c lineare Interpolation zwischen Tabellenwerten:
help = (tau-tau_(i-1))/(tau_(i)-tau_(i-1))
g1 = g1_(i-1) + help*(g1_(i)-g1_(i-1))
g2 = g2_(i-1) + help*(g2_(i)-g2_(i-1))
END
c===============================================================================
options /extend_source
subroutine Get_F_Function_Meyer(tau,Ekin)
c =========================================
implicit none
real tau
real Ekin
real thetaSchlange,thetaSchlangeMax
real theta,thetaMax,thetaStep
real f1,f2,F
c------------------------------------
c - Parameter:
real Z1, Z2 ! die atomaren Nummern von Projektil und Target
c real a0 ! Bohrscher Radius in cm
real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der
! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6)
! bei Streichung von Z1 (vgl. Referenz, S. 268)
real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a'
! und dem ebenfalls bei Meyer angegebenem
! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben)
real eSquare ! elektrische Ladung zum Quadrat in keV*cm
real Pi ! die Kreiszahl
c parameter (a0 = 5.29E-9)
parameter (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9)
parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10)
parameter (Pi = 3.141592654)
real Meyer_Faktor3
real Meyer_Faktor4
real zzz ! 'Hilfsparameter'
real Meyer_Faktor5
parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer))
parameter (Meyer_faktor4 = screeningPar / (2.*Z1*Z2*eSquare) * Pi/180.)
parameter (zzz = screeningPar / (2.*Z1*Z2*eSquare))
parameter (Meyer_faktor5 = zzz*zzz / (8*Pi*Pi))
c------------------------------------
integer nBin,nBinMax
parameter (nBinMax=201)
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
integer i
real rhelp
integer HB_memsize
parameter(HB_memsize=500000)
real memory(HB_memsize)
COMMON /PAWC/ memory
c nur noch fuer Testzwecke:
real fValues(203)
real fValuesFolded(203)
integer idh
parameter (idh = 50)
INCLUDE 'mutrack$sourcedirectory:COM_DIRS.INC'
character filename*20 ! Name der Ausgabe-Dateien
COMMON /filename/ filename
c-------------------------------------------------------------------------------
c Festlegen des maximalen Theta-Wertes sowie der Schrittweite:
if (tau.LT.0.2) then
write(*,*) 'Subroutine ''Get_F_Function_Meyer'':'
write(*,*) 'Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP'
call exit
elseif (tau.LE.2.) then
! => Tabelle A
thetaSchlangeMax = 4.0
elseif (tau.LE.8.) then
! => Tabelle B
thetaSchlangeMax = 7.0
elseif (tau.LE.20.) then
! => Tabelle C
thetaSchlangeMax = 20.0
else
write(*,*) 'Subroutine ''Get_F_Function_Meyer'':'
write(*,*) 'Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP'
call exit
endif
thetaMax = thetaSchlangeMax / Meyer_Faktor4 / Ekin
if (thetaMax.GT.50) then
thetaStep = .5
elseif (thetaMax.GT.25) then
thetaStep = .25
elseif (thetaMax.GT.12.5) then
thetaStep = .125
else
thetaStep = .0625
endif
c Tabelle der F-Werte erstellen:
nBin = 0
do theta = thetaStep, thetaMax, thetaStep
! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich
! noch von degree bei theta in Radiant bei thetaSchlange umrechnen):
thetaSchlange = Meyer_faktor4 * Ekin * theta
! Auslesen der Tabellenwerte fuer die f-Funktionen:
call F_Functions_Meyer(tau,thetaSchlange,f1,f2)
if (thetaSchlange.EQ.-1) then
! wir sind jenseits von thetaSchlangeMax
goto 10
endif
! Berechnen der Streuintensitaet:
F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2)
nBin = nBin + 1
if (nBin.GT.nBinMax) then
write(*,*) 'nBin > nBinMax => EXIT'
call exit
endif
value(nBin) = sind(theta)*F
fValues(nBin+1) = F ! fuer Testzwecke
fValuesFolded(nBin+1) = sind(theta)*F ! fuer Testzwecke
enddo
c Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale:
10 do i = 1, nBin
area(i) = (value(i)+value(i-1))/2. * thetaStep
integ(i) = integ(i-1) + area(i)
enddo
c Normiere totale Flaeche auf 1:
rHelp = integ(nBin)
do i = 1, nBin
value(i) = value(i) / rHelp
area(i) = area(i) / rHelp
integ(i) = integ(i) / rHelp
enddo
c vorerst noch: gib Tabelle in Datei und Histogrammfile aus:
! Berechne die Werte fuer theta=0:
call F_Functions_Meyer(tau,0.,f1,f2)
F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2)
fValues(1) = F
fValuesFolded(1) = 0.
! Gib die Werte in das Tabellenfile aus:
c theta = 0.
c open (10,file=outDir//':'//filename//'.TAB',status='NEW')
c do i = 1, nBin+1
c write(10,*) theta, fValues(i), fValuesFolded(i)
c theta = theta + thetaStep
c enddo
c close (10)
! Buchen und Fuellen der Histogramme:
call HBOOK1(idh,'F',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.)
call HPAK(idh,fValues)
call HRPUT(idh,outDir//':'//filename//'.RZ','N')
call HDELET(idh)
call HBOOK1(idh+1,'F*sin([q])',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.)
call HPAK(idh+1,fValuesFolded)
call HRPUT(idh+1,outDir//':'//filename//'.RZ','U')
call HDELET(idh+1)
END
c===============================================================================
options /extend_source
subroutine throwMeyerAngle (theta)
c ==================================
implicit none
real lowerbound,y1,y2,f,root,radiant,fraction
integer bin,nBin
integer nBinMax
parameter (nBinMax=201)
real theta,thetaStep
real value(0:nBinMax) /0.,nBinMax*0./
real area(nBinMax) / nBinMax*0./
real integ(0:nBinMax) /0.,nBinMax*0./
common /MeyerTable/ value,area,integ,thetaStep,nBin
real rhelp
real random
integer seed
common /seed/ seed
c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von
c random erreicht oder ueberschreitet:
random = ran(seed)
bin = 1
do while (random.GT.integ(bin))
bin = bin + 1
if (bin.GT.nBin) then
write(*,*) 'error 1'
call exit
endif
enddo
fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1))
y1 = value(bin-1)
y2 = value(bin)
f = thetaStep / (y2-y1)
rHelp = y1*f
radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f
root = SQRT(radiant)
lowerBound = real(bin-1)*thetaStep
if (f.GT.0) then
theta = lowerBound - rHelp + root
else
theta = lowerBound - rHelp - root
endif
END
c===============================================================================
options /extend_source
subroutine F_Functions_Meyer(tau,thetaSchlange,f1,f2)
c =====================================================
implicit none
c Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau'
c Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den
c bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine
c verwendeten Tabellen sind eben dieser Referenz entnommen:
c L.Meyer, phys.stat.sol. (b) 44, 253 (1971)
real tau,thetaSchlange
real f1, f2, f1_(2), f2_(2)
integer column_,column,row
integer iColumn
real weightCol, weightRow
c-------------------------------------------------------------------------------
c die Tabellendaten der Referenz (Tabellen 2 und 3):
integer nColumn
parameter (nColumn = 25)
real tau_(nColumn) /
+ 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0,
+ 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 10., 12., 14., 16., 18., 20. /
integer nRowA
parameter (nRowA = 25)
real thetaSchlangeA(nRowA) /
+ .00, .05, .10, .15, .20, .25, .30, .35, .40, .45, .50, .60,
+ .70, .80, .90, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, 3.5, 4.0 /
integer nRowB
parameter (nRowB = 24)
real thetaSchlangeB(nRowB) /
+ 0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.8,
+ 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0 /
integer nRowC
parameter (nRowC = 24)
real thetaSchlangeC(nRowC) /
+ 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0,
+ 7.0, 8.0, 9.0, 10., 11., 12., 13., 14., 15., 16., 18., 20. /
real f1_A(9,nRowA)
+ /1.69E+2,4.55E+1,2.11E+1,1.25E+1,8.48E+0,6.21E+0,4.80E+0,3.86E+0,3.20E+0,
+ 9.82E+1,3.72E+1,1.97E+1,1.20E+1,8.27E+0,6.11E+0,4.74E+0,3.83E+0,3.17E+0,
+ 3.96E+1,2.58E+1,1.65E+1,1.09E+1,7.73E+0,5.82E+0,4.58E+0,3.72E+0,3.10E+0,
+ 1.76E+1,1.58E+1,1.27E+1,9.26E+0,6.93E+0,5.38E+0,4.31E+0,3.55E+0,2.99E+0,
+ 8.62E+0,1.01E+1,9.45E+0,7.58E+0,6.02E+0,4.85E+0,3.98E+0,3.33E+0,2.84E+0,
+ 4.65E+0,6.55E+0,6.91E+0,6.06E+0,5.11E+0,4.28E+0,3.62E+0,3.08E+0,2.66E+0,
+ 2.74E+0,4.45E+0,5.03E+0,4.78E+0,4.27E+0,3.72E+0,3.23E+0,2.82E+0,2.47E+0,
+ 1.77E+0,3.02E+0,3.71E+0,3.76E+0,3.53E+0,3.20E+0,2.86E+0,2.55E+0,2.27E+0,
+ 1.22E+0,2.19E+0,2.78E+0,2.96E+0,2.91E+0,2.73E+0,2.51E+0,2.28E+0,2.07E+0,
+ 8.82E-1,1.59E+0,2.12E+0,2.35E+0,2.39E+0,2.32E+0,2.19E+0,2.03E+0,1.87E+0,
+ 6.55E-1,1.20E+0,1.64E+0,1.88E+0,1.97E+0,1.96E+0,1.90E+0,1.79E+0,1.68E+0,
+ 3.80E-1,7.15E-1,1.01E+0,1.22E+0,1.35E+0,1.40E+0,1.41E+0,1.39E+0,1.34E+0,
+ 2.26E-1,4.45E-1,6.44E-1,8.08E-1,9.28E-1,1.01E+0,1.05E+0,1.06E+0,1.05E+0,
+ 1.39E-1,2.80E-1,4.21E-1,5.45E-1,6.46E-1,7.22E-1,7.75E-1,8.07E-1,8.21E-1,
+ 8.22E-2,1.76E-1,2.78E-1,3.71E-1,4.53E-1,5.21E-1,5.74E-1,6.12E-1,6.37E-1,
+ 5.04E-2,1.11E-1,1.86E-1,2.57E-1,3.22E-1,3.79E-1,4.27E-1,4.65E-1,4.94E-1,
+ 2.51E-2,5.60E-2,9.24E-2,1.31E-1,1.69E-1,2.02E-1,2.40E-1,2.71E-1,2.97E-1,
+ 1.52E-2,3.20E-2,5.08E-2,7.23E-2,9.51E-2,1.18E-1,1.41E-1,1.63E-1,1.83E-1,
+ 1.03E-2,2.05E-2,3.22E-2,4.55E-2,6.01E-2,7.53E-2,9.02E-2,1.05E-1,1.19E-1,
+ 8.80E-3,1.48E-2,2.25E-2,3.13E-2,4.01E-2,5.03E-2,6.01E-2,7.01E-2,8.01E-2,
+ 6.10E-3,1.15E-2,1.71E-2,2.28E-2,2.89E-2,3.52E-2,4.18E-2,4.86E-2,5.55E-2,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,1.71E-2,1.98E-2,2.28E-2,2.58E-2,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.90E-3,1.02E-2,1.16E-2,1.31E-2,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,4.90E-3,5.70E-3,6.40E-3,7.20E-3,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.90E-3,3.40E-3,3.90E-3,4.30E-3/
real f1_B(9,nRowB)
+ /2.71E+0,1.92E+0,1.46E+0,1.16E+0,9.52E-1,8.03E-1,6.90E-1,5.32E-1,4.28E-1,
+ 2.45E+0,1.79E+0,1.39E+0,1.12E+0,9.23E-1,7.82E-1,6.75E-1,5.23E-1,4.23E-1,
+ 1.87E+0,1.48E+0,1.20E+0,9.96E-1,8.42E-1,7.24E-1,6.32E-1,4.98E-1,4.07E-1,
+ 1.56E+0,1.30E+0,1.09E+0,9.19E-1,7.89E-1,6.86E-1,6.03E-1,4.80E-1,3.95E-1,
+ 1.28E+0,1.11E+0,9.62E-1,8.33E-1,7.27E-1,6.40E-1,5.69E-1,4.59E-1,3.81E-1,
+ 8.23E-1,7.90E-1,7.29E-1,6.64E-1,6.01E-1,5.44E-1,4.94E-1,4.12E-1,3.49E-1,
+ 5.14E-1,5.36E-1,5.29E-1,5.07E-1,4.78E-1,4.47E-1,4.16E-1,3.60E-1,3.13E-1,
+ 3.19E-1,3.58E-1,3.76E-1,3.78E-1,3.70E-1,3.57E-1,3.45E-1,3.08E-1,2.76E-1,
+ 2.02E-1,2.40E-1,2.64E-1,2.77E-1,2.82E-1,2.80E-1,2.65E-1,2.59E-1,2.39E-1,
+ 1.67E-1,1.96E-1,2.20E-1,2.36E-1,2.44E-1,2.47E-1,2.45E-1,2.35E-1,2.21E-1,
+ 1.33E-1,1.61E-1,1.85E-1,2.02E-1,2.12E-1,2.18E-1,2.18E-1,2.14E-1,2.03E-1,
+ 8.99E-2,1.12E-1,1.32E-1,1.48E-1,1.59E-1,1.67E-1,1.68E-1,1.75E-1,1.72E-1,
+ 6.24E-2,7.94E-2,9.50E-2,1.09E-1,1.20E-1,1.29E-1,1.35E-1,1.42E-1,1.43E-1,
+ 4.55E-2,5.74E-2,6.98E-2,8.11E-2,9.09E-2,9.92E-2,1.06E-1,1.15E-1,1.19E-1,
+ 3.35E-2,4.22E-2,5.19E-2,6.11E-2,6.95E-2,7.69E-2,8.33E-2,9.28E-2,9.85E-2,
+ 2.50E-2,3.16E-2,3.92E-2,4.66E-2,5.35E-2,6.00E-2,6.57E-2,7.49E-2,8.13E-2,
+ 1.90E-2,2.40E-2,2.99E-2,3.58E-2,4.16E-2,4.70E-2,5.20E-2,6.05E-2,6.70E-2,
+ 1.47E-2,1.86E-2,2.32E-2,2.79E-2,3.25E-2,3.70E-2,4.12E-2,4.89E-2,5.51E-2,
+ 8.10E-3,1.04E-2,1.30E-2,1.57E-2,1.84E-2,2.12E-2,2.40E-2,2.93E-2,3.42E-2,
+ 4.80E-3,6.20E-3,7.70E-3,9.30E-3,1.09E-2,1.26E-2,1.44E-2,1.79E-2,2.14E-2,
+ 2.80E-3,3.80E-3,4.70E-3,5.70E-3,6.70E-3,7.50E-3,8.90E-3,1.13E-2,1.36E-2,
+ 1.70E-3,2.30E-3,2.90E-3,3.60E-3,4.20E-3,4.90E-3,5.60E-3,7.20E-3,8.80E-3,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.00E-3,2.80E-3,3.50E-3,
+ 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.80E-4,1.20E-3,1.60E-3/
real f1_C(7,nRowC)
+ /3.65E-1,2.62E-1,2.05E-1,1.67E-1,1.41E-1,1.21E-1,1.05E-1,
+ 3.33E-1,2.50E-1,1.95E-1,1.61E-1,1.36E-1,1.18E-1,1.03E-1,
+ 2.75E-1,2.18E-1,1.76E-1,1.48E-1,1.27E-1,1.11E-1,9.80E-2,
+ 2.04E-1,1.75E-1,1.50E-1,1.29E-1,1.13E-1,1.01E-1,9.00E-2,
+ 1.41E-1,1.31E-1,1.19E-1,1.08E-1,9.71E-2,8.88E-2,8.01E-2,
+ 9.32E-2,9.42E-2,9.10E-2,8.75E-2,8.00E-2,7.44E-2,6.91E-2,
+ 5.98E-2,6.52E-2,6.72E-2,6.62E-2,6.40E-2,6.12E-2,5.82E-2,
+ 3.83E-2,4.45E-2,4.80E-2,4.96E-2,4.98E-2,4.90E-2,4.77E-2,
+ 2.46E-2,3.01E-2,3.40E-2,3.65E-2,3.79E-2,3.84E-2,3.83E-2,
+ 1.59E-2,2.03E-2,2.39E-2,2.66E-2,2.85E-2,2.97E-2,3.04E-2,
+ 1.04E-2,1.37E-2,1.66E-2,1.92E-2,2.12E-2,2.27E-2,2.37E-2,
+ 4.39E-3,6.26E-3,8.26E-3,9.96E-3,1.15E-2,1.29E-2,1.41E-2,
+ 2.06E-3,3.02E-3,4.24E-3,5.28E-3,6.32E-3,7.32E-3,8.26E-3,
+ 1.21E-3,1.69E-3,2.24E-3,2.85E-3,3.50E-3,4.16E-3,4.82E-3,
+ 8.50E-4,1.10E-3,1.38E-3,1.65E-3,2.03E-3,2.45E-3,2.88E-3,
+ 5.90E-4,7.40E-4,8.50E-4,9.90E-4,1.23E-3,1.49E-3,1.71E-3,
+ 3.90E-4,4.60E-4,5.20E-4,6.30E-4,7.65E-4,9.65E-4,1.12E-3,
+ 2.40E-4,2.70E-4,3.10E-4,3.98E-4,4.97E-4,6.03E-4,7.18E-4,
+ 1.50E-4,1.70E-4,2.15E-4,2.70E-4,3.35E-4,4.35E-4,5.00E-4,
+ 1.00E-4,1.20E-4,1.46E-4,1.90E-4,2.40E-4,2.88E-4,3.43E-4,
+ 0.00 ,0.00 ,1.04E-4,1.41E-4,1.80E-4,2.10E-4,2.50E-4,
+ 0.00 ,0.00 ,8.20E-5,1.06E-4,1.38E-4,1.58E-4,1.85E-4,
+ 0.00 ,0.00 ,5.40E-5,7.00E-5,8.60E-5,1.03E-4,1.20E-4,
+ 0.00 ,0.00 ,4.20E-5,5.40E-5,6.50E-5,7.70E-5,8.80E-5/
real f2_A(9,nRowA)
+ / 3.52E+3, 3.27E+2, 9.08E+1, 3.85E+1, 2.00E+1, 1.18E+1, 7.55E+0, 5.16E+0, 3.71E+0,
+ 2.58E+2, 1.63E+2, 7.30E+1, 3.42E+1, 1.85E+1, 1.11E+1, 7.18E+0, 4.96E+0, 3.59E+0,
+ -1.12E+2, 4.84E+0, 3.56E+1, 2.34E+1, 1.45E+1, 9.33E+0, 6.37E+0, 4.51E+0, 3.32E+0,
+ -5.60E+1,-1.12E+1, 9.87E+0, 1.24E+1, 9.59E+0, 7.01E+0, 5.16E+0, 3.83E+0, 2.91E+0,
+ -2.13E+1,-1.22E+1,-2.23E+0, 3.88E+0, 5.15E+0, 4.65E+0, 3.87E+0, 3.12E+0, 2.45E+0,
+ -8.25E+0,-9.58E+0,-5.59E+0,-1.40E+0, 1.76E+0, 2.71E+0, 2.71E+0, 2.35E+0, 1.95E+0,
+ -3.22E+0,-6.12E+0,-5.28E+0,-2.87E+0,-1.92E-1, 1.32E+0, 1.69E+0, 1.74E+0, 1.48E+0,
+ -1.11E+0,-3.40E+0,-4.12E+0,-3.08E+0,-6.30E-1, 3.60E-1, 9.20E-1, 1.03E+0, 1.04E+0,
+ -2.27E-1,-2.00E+0,-2.93E+0,-2.69E+0,-1.48E+0,-3.14E-1, 2.69E-1, 5.28E-1, 6.09E-1,
+ 1.54E-1,-1.09E+0,-2.10E+0,-2.15E+0,-1.47E+0,-6.77E-1,-1.80E-1, 1.08E-1, 2.70E-1,
+ 3.28E-1,-6.30E-1,-1.50E+0,-1.68E+0,-1.34E+0,-8.43E-1,-4.60E-1,-1.85E-1,-4.67E-3,
+ 3.32E-1,-2.06E-1,-7.32E-1,-9.90E-1,-9.42E-1,-8.20E-1,-6.06E-1,-4.51E-1,-3.01E-1,
+ 2.72E-1,-3.34E-2,-3.49E-1,-5.65E-1,-6.03E-1,-5.79E-1,-5.05E-1,-4.31E-1,-3.45E-1,
+ 2.02E-1, 2.80E-2,-1.54E-1,-3.00E-1,-3.59E-1,-3.76E-1,-4.60E-1,-3.40E-1,-3.08E-1,
+ 1.38E-1, 4.84E-2,-5.56E-2,-1.44E-1,-2.04E-1,-2.39E-1,-2.54E-1,-2.49E-1,-2.48E-1,
+ 9.47E-2, 4.86E-2,-1.08E-2,-6.44E-2,-1.02E-1,-1.34E-1,-1.62E-1,-1.79E-1,-1.87E-1,
+ 5.33E-2, 3.71E-2, 1.85E-2, 1.63E-3,-1.69E-2,-3.69E-2,-5.66E-2,-7.78E-2,-9.33E-2,
+ 3.38E-2, 2.40E-2, 1.62E-2, 9.90E-3, 3.76E-3,-4.93E-3,-1.66E-2,-3.05E-2,-4.22E-2,
+ 2.12E-2, 1.56E-2, 1.05E-2, 7.80E-3, 7.92E-3, 6.30E-3, 3.20E-4,-8.50E-3,-1.66E-2,
+ 1.40E-2, 9.20E-3, 5.30E-3, 4.70E-3, 6.31E-3, 8.40E-3, 5.30E-3, 8.80E-4,-3.30E-3,
+ 9.20E-3, 4.70E-3, 1.70E-3, 2.60E-3, 4.49E-3, 6.60E-3, 6.00E-3, 4.70E-3, 2.80E-3,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 /
real f2_B(9,nRowB)
+ / 2.75E+0, 1.94E+0, 9.13E-1, 6.06E-1, 4.26E-1, 3.14E-1, 2.40E-1, 1.51E-1, 1.03E-1,
+ 1.94E+0, 1.16E+0, 7.56E-1, 5.26E-1, 3.81E-1, 2.87E-1, 2.23E-1, 1.43E-1, 9.78E-2,
+ 5.85E-1, 5.04E-1, 4.10E-1, 3.30E-1, 2.69E-1, 2.17E-1, 1.78E-1, 1.22E-1, 8.71E-2,
+ 7.83E-2, 2.00E-1, 2.35E-1, 2.19E-1, 1.97E-1, 1.73E-1, 1.48E-1, 1.08E-1, 7.93E-2,
+ -1.82E-1, 1.56E-2, 1.04E-1, 1.36E-1, 1.38E-1, 1.31E-1, 1.19E-1, 9.46E-2, 7.19E-2,
+ -2.71E-1,-1.66E-1,-7.29E-2,-4.74E-3, 3.60E-2, 5.50E-2, 6.28E-2, 5.98E-2, 5.09E-2,
+ -1.87E-1,-1.58E-1,-1.09E-1,-5.80E-2,-2.03E-2, 2.48E-3, 1.99E-2, 3.36E-2, 3.27E-2,
+ -1.01E-1,-1.05E-1,-8.95E-2,-6.63E-2,-3.93E-2,-2.38E-2,-9.22E-3, 8.47E-3, 1.52E-2,
+ -5.19E-2,-6.47E-2,-6.51E-2,-5.62E-2,-4.51E-2,-3.49E-2,-2.45E-2,-8.19E-3, 2.05E-3,
+ -3.68E-2,-4.89E-2,-5.36E-2,-5.06E-2,-4.27E-2,-3.65E-2,-2.80E-2,-1.33E-2,-3.47E-3,
+ -2.33E-2,-3.69E-2,-4.41E-2,-4.38E-2,-3.97E-2,-3.50E-2,-2.88E-2,-1.60E-2,-6.68E-3,
+ -8.76E-3,-2.07E-2,-2.90E-2,-3.17E-2,-3.09E-2,-2.92E-2,-2.63E-2,-1.79E-2,-1.03E-2,
+ -1.20E-3,-1.11E-2,-1.90E-2,-2.20E-2,-2.32E-2,-2.24E-2,-2.10E-2,-1.66E-2,-1.11E-2,
+ 1.72E-3,-4.82E-3,-1.02E-2,-1.42E-2,-1.65E-2,-1.66E-2,-1.60E-2,-1.39E-2,-1.09E-2,
+ 2.68E-3,-1.18E-3,-5.19E-3,-8.30E-5,-1.01E-2,-1.14E-2,-1.16E-2,-1.16E-2,-9.99E-3,
+ 2.81E-3, 8.21E-4,-1.96E-3,-3.99E-3,-5.89E-3,-7.13E-3,-8.15E-3,-9.05E-3,-8.60E-3,
+ 2.61E-3, 1.35E-3,-2.99E-4,-1.79E-3,-3.12E-3,-4.44E-3,-5.61E-3,-7.01E-3,-7.27E-3,
+ 2.06E-3, 1.45E-3, 4.64E-4,-5.97E-4,-1.71E-3,-2.79E-3,-3.84E-3,-5.29E-3,-5.90E-3,
+ 1.07E-3, 9.39E-4, 8.22E-4, 3.58E-4,-1.15E-4,-6.60E-4,-1.18E-3,-2.15E-3,-2.88E-3,
+ 4.97E-4, 5.46E-4, 6.15E-4, 5.56E-4, 3.14E-4, 9.80E-5,-1.30E-4,-5.98E-4,-1.07E-4,
+ 1.85E-4, 3.11E-4, 4.25E-4, 4.08E-4, 3.63E-4, 3.04E-4, 2.24E-4, 2.80E-5,-2.10E-4,
+ 4.80E-5, 1.48E-4, 2.44E-4, 2.80E-4, 3.01E-4, 3.11E-4, 3.13E-4, 2.40E-4, 1.10E-4,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 1.39E-4, 1.80E-4, 1.80E-4,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 4.38E-5, 7.30E-5, 8.40E-5/
real f2_C(7,nRowC)
+ / 7.36E-2, 4.21E-2, 2.69E-2, 1.83E-2, 1.34E-2, 1.01E-2, 7.88E-3,
+ 5.79E-2, 3.61E-2, 2.34E-2, 1.64E-2, 1.21E-2, 9.26E-3, 7.28E-3,
+ 2.94E-2, 2.17E-2, 1.60E-2, 1.23E-2, 9.49E-3, 7.45E-3, 5.95E-3,
+ 2.30E-3, 7.07E-3, 7.76E-3, 7.02E-3, 6.13E-3, 5.17E-3, 4.34E-3,
+ -7.50E-3,-2.00E-3, 9.93E-4, 2.36E-3, 2.82E-3, 2.86E-3, 2.72E-3,
+ -8.27E-3,-5.37E-3,-2.58E-3,-7.96E-4, 3.75E-4, 9.71E-4, 1.28E-3,
+ -5.79E-3,-5.12E-3,-3.86E-3,-2.46E-3,-1.20E-3,-3.74E-4, 1.74E-4,
+ -3.26E-3,-3.43E-3,-3.26E-3,-2.68E-3,-1.84E-3,-1.12E-3,-4.54E-4,
+ -1.46E-3,-1.49E-3,-2.20E-3,-2.18E-3,-1.85E-3,-1.40E-3,-8.15E-4,
+ -4.29E-4,-9.44E-4,-1.29E-3,-1.50E-3,-1.51E-3,-1.36E-3,-9.57E-4,
+ -3.30E-5,-3.66E-4,-6.78E-4,-9.38E-4,-1.09E-3,-1.09E-3,-9.56E-4,
+ 1.50E-4, 3.10E-5,-1.38E-4,-3.06E-4,-4.67E-4,-5.48E-4,-6.08E-4,
+ 1.00E-4, 8.50E-5, 2.30E-5,-6.60E-5,-1.58E-4,-2.40E-4,-3.05E-4,
+ 5.40E-5, 6.50E-5, 4.90E-5, 1.20E-5,-3.60E-5,-8.90E-5,-1.31E-4,
+ 2.90E-5, 4.30E-5, 4.40E-5, 2.90E-5, 5.10E-6,-2.20E-5,-4.80E-5,
+ 1.40E-5, 2.40E-5, 2.80E-5, 2.60E-5, 1.90E-5, 7.50E-6,-1.10E-5,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 ,
+ 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 /
c===============================================================================
c Bestimme, welche Reihen der Tabellen fuer Interpolation benoetigt werden:
if (tau.LT.tau_(1)) then
write(*,*) 'tau is less than the lowest tabulated value:'
write(*,*) 'tau = ',tau
write(*,*) 'minimum = ',tau_(1)
call exit
elseif (tau.GT.tau_(nColumn)) then
write(*,*) 'tau is greater than the highest tabulated value:'
write(*,*) 'tau = ',tau
write(*,*) 'maximum = ',tau_(nColumn)
call exit
endif
column_ = 2
do while (tau.GT.tau_(column_))
column_ = column_ + 1
enddo
! Das Gewicht der Reihe zu groesserem Tau:
weightCol = (tau-tau_(column_-1)) / (tau_(column_)-tau_(column_-1))
c Besorge fuer gegebenes 'thetaSchlange' die interpolierten f1- und f2 -Werte
c der beiden relevanten Reihen:
c iColumn = 1 => Reihe mit hoeherem Index
c iColumn = 2 => Reihe mit kleinerem Index
iColumn = 1
5 continue
if (column_.LE.9) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Werte aus 1. Tabelle: 0.2 <= tau <= 1.8
column = column_
if (thetaSchlange.LT.thetaSchlangeA(1)) then
write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:'
write(*,*) 'thetaSchlange = ',thetaSchlange
write(*,*) 'minimum = ',thetaSchlangeA(1)
call exit
elseif (thetaSchlange.GT.thetaSchlangeA(nRowA)) then
c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:'
c write(*,*) 'thetaSchlange = ',thetaSchlange
c write(*,*) 'maximum = ',thetaSchlangeA(nRowA)
c call exit
thetaSchlange = -1.
RETURN
endif
row = 2
do while (thetaSchlange.GT.thetaSchlangeA(row))
row = row + 1
enddo
! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
weightRow = (thetaSchlange-thetaSchlangeA(row-1)) /
+ (thetaSchlangeA(row)-thetaSchlangeA(row-1))
f1_(iColumn) = (1.-weightRow) * f1_A(column,row-1) +
+ weightRow * f1_A(column,row)
f2_(iColumn) = (1.-weightRow) * f2_A(column,row-1) +
+ weightRow * f2_A(column,row)
elseif (column_.LE.18) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Werte aus 2. Tabelle: 2.0 <= tau <= 7.0
column = column_ - 9
if (thetaSchlange.LT.thetaSchlangeB(1)) then
write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:'
write(*,*) 'thetaSchlange = ',thetaSchlange
write(*,*) 'minimum = ',thetaSchlangeB(1)
call exit
elseif (thetaSchlange.GT.thetaSchlangeB(nRowB)) then
c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:'
c write(*,*) 'thetaSchlange = ',thetaSchlange
c write(*,*) 'maximum = ',thetaSchlangeB(nRowB)
c call exit
thetaSchlange = -1.
RETURN
endif
row = 2
do while (thetaSchlange.GT.thetaSchlangeB(row))
row = row + 1
enddo
! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
weightRow = (thetaSchlange-thetaSchlangeB(row-1)) /
+ (thetaSchlangeB(row)-thetaSchlangeB(row-1))
f1_(iColumn) = (1.-weightRow) * f1_B(column,row-1) +
+ weightRow * f1_B(column,row)
f2_(iColumn) = (1.-weightRow) * f2_B(column,row-1) +
+ weightRow * f2_B(column,row)
else ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Werte aus 3. Tabelle: 8.0 <= tau <= 20.
column = column_ - 18
if (thetaSchlange.LT.thetaSchlangeC(1)) then
write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:'
write(*,*) 'thetaSchlange = ',thetaSchlange
write(*,*) 'minimum = ',thetaSchlangeC(1)
call exit
elseif (thetaSchlange.GT.thetaSchlangeC(nRowC)) then
c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:'
c write(*,*) 'thetaSchlange = ',thetaSchlange
c write(*,*) 'maximum = ',thetaSchlangeC(nRowC)
c call exit
thetaSchlange = -1.
RETURN
endif
row = 2
do while (thetaSchlange.GT.thetaSchlangeC(row))
row = row + 1
enddo
! Gewicht des Tabellenwertes zu groesseren ThetaSchlange:
weightRow = (thetaSchlange-thetaSchlangeC(row-1)) /
+ (thetaSchlangeC(row)-thetaSchlangeC(row-1))
f1_(iColumn) = (1.-weightRow) * f1_C(column,row-1) +
+ weightRow * f1_C(column,row)
f2_(iColumn) = (1.-weightRow) * f2_C(column,row-1) +
+ weightRow * f2_C(column,row)
endif ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (iColumn.EQ.1) then
column_ = column_ - 1
iColumn = 2
goto 5
endif
f1 = weightCol*f1_(1) + (1.-weightCol)*f1_(2)
f2 = weightCol*f2_(1) + (1.-weightCol)*f2_(2)
END
c===============================================================================

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,195 @@
#include<stdlib.h>
#include<iostream>
#include<sstream>
#include<ios>
#include<fstream>
#include <iomanip>
#include <fstream>
#include <iostream>
#include <stdlib.h>
#include<ios>
#include"meyer.h"
void GFunctions(double*,double*, const double tau);
meyer GET;
int main()
{
// DECLARATION OF MEYER's PARAMETERS
/* Meyer's p255: "We consider a beam of initially parallel particles
with mass m1 and atomic number Z1 which penetrates a material
layer of thickness t with N atoms per unit volume of mass m2 and
atomic number Z2. We assume that each scattering centre will be
effective according to the scattering cross section
dsigma/dŋ=¶a²f(ŋ)/ŋ² within a spherical volume of radius r0
*/
double a, a0, N; // screnqing parameter a
double Z1, Z2, D; // charges numbers Z
double epsilon, b; // reduced energy epsilon
double mass1, mass2; // masses of incident & target particles
double v; // velocity of incident particle
double eta, theta; // eta = epsilon*sin(theta/2), (theta, scatt. angle)
// cross section variable by Lindhard, Nielsen and Scharff
double eSquare = 1.44E-10; // squared electric charge of electron in keV*cm
double tau,thetaSchlange, thick;
double Energy;
std::cout<< "thickness? in µm/cm²" << std::endl;
std::cin>>thick;
thick=thick*1.0e-6/2;// density= 2g/cm³,
// we want the conversion of thick in centimeter!
std::cout<<"Enter energy in keV: ";
std::cin>>Energy;
// meyer's functions
double g1,g2;
double f1,f2;
// EXPRESSION OF MEYER's PARAMETERS
// The screening parameter
// (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9)
Z1 = 1; Z2 = 6;
a0=0.529e-8;//unit centimeter
D= exp(2/3*log(Z1))+exp(2/3*log(Z2));
a=0.885*a0/sqrt(D);//the screening parameter
// The reduced energy
mass1=1/9;
mass2=12;
// b= 2*Z1*Z2*eSquare*(mass1+mass2)/(mass1*mass2*v*v);
//b= Z1*Z2 * e²[keV*cm] * (m1+m2)/m2 * 1/Energy[keV]
b= Z1*Z2*eSquare*(mass1+mass2)/(mass2*Energy);
epsilon = a/b;
std::cout<<"\n€: "<<epsilon <<std::endl;
// The variable eta
eta= epsilon*sin(theta/2);
// Number of target per unit of volume
// N= density of cfoil/atomicmassofcarbon
// density= 2g/cm³
// C_atomic_mass= 12 g/mole
// N= 2/12*6.02e+23=1.0e+17
N=1.0e+23;
// The reduced thickness
//a*a ~ 2.7e-17
//thickness ~ 1.e-6
//tau ~ e+23*e-17*e-6 ~ unit order
tau = M_PI*a*a*N*thick;// whith the thickness in centimeter
std::cout<<"a "<<a<<std::endl;
std::cout<<"tau "<<tau<<std::endl;
/* std::cout<< "theta~? " << std::endl;
std::cin>>thetaSchlange;
GET.GFunctions(&g1,&g2,tau);
std::cout<< "g1("<<tau<<")= "<< g1 << std::endl;
std::cout<< "g2("<<tau<<")= "<< g2 << std::endl;
// thetaSchlange=0;
GET.F_Functions_Meyer( tau,thetaSchlange,&f1,&f2);
std::cout<< "f1("<<tau<<","<<thetaSchlange<<")= "<< f1 << std::endl;
std::cout<< "f2("<<tau<<","<<thetaSchlange<<")= "<< f2 << std::endl;
*/
GET.Get_F_Function_Meyer( tau, epsilon, Z1,Z2,mass1,mass2);
return 0;
}
void GFunctions(double* g1,double *g2, const double tau)// PROVIDE VALUES OF G1 and G2 in function of TAU
{
//Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau'
//Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von
//Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts-
//breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253
//(1971))
double help;
int i;
double tau_[] = {0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0,
2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 12.0, 14.0, 16.0, 18.0, 20.0 };
double g1_[] = {0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575,
0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850,
1.990,2.270,2.540,2.800,3.050,3.290 };
double g2_[] = {0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59,
0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32,
0.30,0.26,0.22,0.18,0.15,0.13 };
if (tau<tau_[1])
{
std::cout<<"SUBROUTINE G_Functions:"<<std::endl;
std::cout<<" Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:"<<std::endl;
std::cout<<" aktuelles tau ist kleiner als kleinster Tabellenwert:"<<std::endl;
std::cout<<" tau = "<< tau<<std::endl;
std::cout<<" tau_(1) = "<< tau_[1]<<std::endl;
return;
}
i = 1;
do
{
i = i + 1;
if (i==27)
{
std::cout<<"SUBROUTINE G_Functions:"<<std::endl;
std::cout<<" Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:"<<std::endl;
std::cout<<" aktuelles tau ist groesser als groesster Tabellenwert:"<<std::endl;
std::cout<<" tau = "<< tau <<std::endl;
std::cout<<" tau_[26] = "<< tau_[26] <<std::endl;
break;
}
}while(tau>tau_[i]);
//lineare Interpolation zwischen Tabellenwerten:
help = (tau-tau_[i-1])/(tau_[i]-tau_[i-1]);
std::cout<<"help: "<<help<<std::endl;
*g1 = g1_[i-1] + help*(g1_[i]-g1_[i-1]);
*g2 = g2_[i-1] + help*(g2_[i]-g2_[i-1]);
std::cout<<"g1: "<<*g1<<std::endl;
std::cout<<"g2: "<<*g2<<std::endl;
}

View File

@ -0,0 +1,194 @@
#include<stdlib.h>
#include<iostream>
#include<sstream>
#include<ios>
#include<fstream>
#include <iomanip>
#include <fstream>
#include <iostream>
#include <stdlib.h>
#include<ios>
#include"meyer.h"
void GFunctions(double*,double*, const double tau);
meyer GET;
int main()
{
// DECLARATION OF MEYER's PARAMETERS
/* Meyer's p255: "We consider a beam of initially parallel particles
with mass m1 and atomic number Z1 which penetrates a material
layer of thickness t with N atoms per unit volume of mass m2 and
atomic number Z2. We assume that each scattering centre will be
effective according to the scattering cross section
dsigma/dŋ=¶a²f(ŋ)/ŋ² within a spherical volume of radius r0
*/
double a, a0, N; // screnqing parameter a
double Z1, Z2, D; // charges numbers Z
double epsilon, b; // reduced energy epsilon
double mass1, mass2; // masses of incident & target particles
double v; // velocity of incident particle
double eta, theta; // eta = epsilon*sin(theta/2), (theta, scatt. angle)
// cross section variable by Lindhard, Nielsen and Scharff
double eSquare = 1.44E-10; // squared electric charge of electron in keV*cm
double tau,thetaSchlange, thick;
double Energy;
std::cout<< "thickness? in µm" << std::endl;
std::cin>>thick;
thick=thick*1.0e-6;
std::cout<<"Enter energy in keV: ";
std::cin>>Energy;
// meyer's functions
double g1,g2;
double f1,f2;
// EXPRESSION OF MEYER's PARAMETERS
// The screening parameter
// (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9)
Z1 = 1; Z2 = 6;
a0=0.529e-8;//unit centimeter
D= exp(2/3*log(Z1))+exp(2/3*log(Z2));
a=0.885*a0/sqrt(D);//the screening parameter
// The reduced energy
mass1=1/9;
mass2=12;
// b= 2*Z1*Z2*eSquare*(mass1+mass2)/(mass1*mass2*v*v);
//b= Z1*Z2 * e²[keV*cm] * (m1+m2)/m2 * 1/Energy[keV]
b= Z1*Z2*eSquare*(mass1+mass2)/(mass2*Energy);
epsilon = a/b;
std::cout<<"\n€: "<<epsilon <<std::endl;
// The variable eta
eta= epsilon*sin(theta/2);
// Number of target per unit of volume
// N= density of cfoil/atomicmassofcarbon
// density= 2g/cm³
// C_atomic_mass= 12 g/mole
// N= 2/12*6.02e+23=1.0e+17
N=1.0e+23;
// The reduced thickness
//a*a ~ 2.7e-17
//thickness ~ 1.e-6
//tau ~ e+23*e-17*e-6 ~ unit order
tau = M_PI*a*a*N*thick;// whith the thickness in centimeter
std::cout<<"a "<<a<<std::endl;
std::cout<<"tau "<<tau<<std::endl;
/* std::cout<< "theta~? " << std::endl;
std::cin>>thetaSchlange;
GET.GFunctions(&g1,&g2,tau);
std::cout<< "g1("<<tau<<")= "<< g1 << std::endl;
std::cout<< "g2("<<tau<<")= "<< g2 << std::endl;
// thetaSchlange=0;
GET.F_Functions_Meyer( tau,thetaSchlange,&f1,&f2);
std::cout<< "f1("<<tau<<","<<thetaSchlange<<")= "<< f1 << std::endl;
std::cout<< "f2("<<tau<<","<<thetaSchlange<<")= "<< f2 << std::endl;
*/
GET.Get_F_Function_Meyer( tau, epsilon, Z1,Z2,mass1,mass2);
return 0;
}
void GFunctions(double* g1,double *g2, const double tau)// PROVIDE VALUES OF G1 and G2 in function of TAU
{
//Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau'
//Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von
//Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts-
//breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253
//(1971))
double help;
int i;
double tau_[] = {0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0,
2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 12.0, 14.0, 16.0, 18.0, 20.0 };
double g1_[] = {0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575,
0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850,
1.990,2.270,2.540,2.800,3.050,3.290 };
double g2_[] = {0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59,
0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32,
0.30,0.26,0.22,0.18,0.15,0.13 };
if (tau<tau_[1])
{
std::cout<<"SUBROUTINE G_Functions:"<<std::endl;
std::cout<<" Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:"<<std::endl;
std::cout<<" aktuelles tau ist kleiner als kleinster Tabellenwert:"<<std::endl;
std::cout<<" tau = "<< tau<<std::endl;
std::cout<<" tau_(1) = "<< tau_[1]<<std::endl;
return;
}
i = 1;
do
{
i = i + 1;
if (i==27)
{
std::cout<<"SUBROUTINE G_Functions:"<<std::endl;
std::cout<<" Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:"<<std::endl;
std::cout<<" aktuelles tau ist groesser als groesster Tabellenwert:"<<std::endl;
std::cout<<" tau = "<< tau <<std::endl;
std::cout<<" tau_[26] = "<< tau_[26] <<std::endl;
break;
}
}while(tau>tau_[i]);
//lineare Interpolation zwischen Tabellenwerten:
help = (tau-tau_[i-1])/(tau_[i]-tau_[i-1]);
std::cout<<"help: "<<help<<std::endl;
*g1 = g1_[i-1] + help*(g1_[i]-g1_[i-1]);
*g2 = g2_[i-1] + help*(g2_[i]-g2_[i-1]);
std::cout<<"g1: "<<*g1<<std::endl;
std::cout<<"g2: "<<*g2<<std::endl;
}

View File

@ -0,0 +1,730 @@
%!PS-Adobe-2.0
%%Title: testmeyer.eps
%%Creator: gnuplot 3.7 patchlevel 3
%%CreationDate: Mon Apr 11 19:32:51 2005
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 554 770
%%Orientation: Landscape
%%Pages: (atend)
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color true def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
0 vshift R show } def
/Rshow { currentpoint stroke M
dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
{pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
/C1 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill
Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore } def
/CircE { stroke [] 0 setdash
hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore } def
/CircW { stroke [] 0 setdash
hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
50 50 translate
0.100 0.100 scale
90 rotate
0 -5040 translate
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
1.000 UL
LTb
1.000 UL
LTa
574 280 M
6388 0 V
1.000 UL
LTb
574 280 M
63 0 V
6325 0 R
-63 0 V
490 280 M
( 0) Rshow
1.000 UL
LTa
574 739 M
6388 0 V
1.000 UL
LTb
574 739 M
63 0 V
6325 0 R
-63 0 V
490 739 M
( 0.1) Rshow
1.000 UL
LTa
574 1198 M
6388 0 V
1.000 UL
LTb
574 1198 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 0.2) Rshow
1.000 UL
LTa
574 1658 M
6388 0 V
1.000 UL
LTb
574 1658 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 0.3) Rshow
1.000 UL
LTa
574 2117 M
6388 0 V
1.000 UL
LTb
574 2117 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 0.4) Rshow
1.000 UL
LTa
574 2576 M
6388 0 V
1.000 UL
LTb
574 2576 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 0.5) Rshow
1.000 UL
LTa
574 3035 M
6388 0 V
1.000 UL
LTb
574 3035 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 0.6) Rshow
1.000 UL
LTa
574 3494 M
6388 0 V
1.000 UL
LTb
574 3494 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 0.7) Rshow
1.000 UL
LTa
574 3954 M
6388 0 V
1.000 UL
LTb
574 3954 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 0.8) Rshow
1.000 UL
LTa
574 4413 M
6388 0 V
1.000 UL
LTb
574 4413 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 0.9) Rshow
1.000 UL
LTa
574 4872 M
6388 0 V
1.000 UL
LTb
574 4872 M
63 0 V
6325 0 R
-63 0 V
-6409 0 R
( 1) Rshow
1.000 UL
LTa
574 280 M
0 4592 V
1.000 UL
LTb
574 280 M
0 63 V
0 4529 R
0 -63 V
574 140 M
( 0) Cshow
1.000 UL
LTa
1284 280 M
0 4592 V
1.000 UL
LTb
1284 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 5) Cshow
1.000 UL
LTa
1994 280 M
0 4592 V
1.000 UL
LTb
1994 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 10) Cshow
1.000 UL
LTa
2703 280 M
0 4592 V
1.000 UL
LTb
2703 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 15) Cshow
1.000 UL
LTa
3413 280 M
0 4592 V
1.000 UL
LTb
3413 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 20) Cshow
1.000 UL
LTa
4123 280 M
0 4592 V
1.000 UL
LTb
4123 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 25) Cshow
1.000 UL
LTa
4833 280 M
0 4249 V
0 280 R
0 63 V
1.000 UL
LTb
4833 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 30) Cshow
1.000 UL
LTa
5542 280 M
0 4249 V
0 280 R
0 63 V
1.000 UL
LTb
5542 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 35) Cshow
1.000 UL
LTa
6252 280 M
0 4249 V
0 280 R
0 63 V
1.000 UL
LTb
6252 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 40) Cshow
1.000 UL
LTa
6962 280 M
0 4592 V
1.000 UL
LTb
6962 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 45) Cshow
1.000 UL
LTb
574 280 M
6388 0 V
0 4592 V
-6388 0 V
574 280 L
1.000 UP
1.000 UL
LT0
6311 4739 M
('testmeyer.out' us 1:2) Rshow
645 4872 Pls
716 4842 Pls
787 4812 Pls
858 4782 Pls
929 4753 Pls
1000 4707 Pls
1071 4611 Pls
1142 4516 Pls
1213 4420 Pls
1284 4325 Pls
1355 4217 Pls
1426 4097 Pls
1497 3975 Pls
1568 3837 Pls
1639 3698 Pls
1710 3560 Pls
1781 3423 Pls
1852 3285 Pls
1923 3147 Pls
1994 3010 Pls
2065 2877 Pls
2136 2745 Pls
2206 2613 Pls
2277 2480 Pls
2348 2353 Pls
2419 2242 Pls
2490 2131 Pls
2561 2020 Pls
2632 1910 Pls
2703 1809 Pls
2774 1722 Pls
2845 1634 Pls
2916 1546 Pls
2987 1458 Pls
3058 1382 Pls
3129 1311 Pls
3200 1243 Pls
3271 1184 Pls
3342 1124 Pls
3413 1076 Pls
3484 1029 Pls
3555 982 Pls
3626 935 Pls
3697 890 Pls
3768 855 Pls
3839 821 Pls
3910 787 Pls
3981 753 Pls
4052 723 Pls
4123 698 Pls
4194 674 Pls
4265 649 Pls
4336 625 Pls
4407 605 Pls
4478 586 Pls
4549 568 Pls
4620 550 Pls
4691 532 Pls
4762 519 Pls
4833 507 Pls
4904 495 Pls
4975 483 Pls
5046 471 Pls
5117 461 Pls
5188 452 Pls
5259 442 Pls
5330 433 Pls
5400 425 Pls
5471 418 Pls
5542 411 Pls
5613 404 Pls
5684 397 Pls
5755 392 Pls
5826 388 Pls
5897 383 Pls
5968 379 Pls
6039 375 Pls
6110 371 Pls
6181 367 Pls
6252 362 Pls
6323 358 Pls
6394 354 Pls
6465 350 Pls
6536 345 Pls
6607 343 Pls
6678 340 Pls
6749 338 Pls
6820 336 Pls
6891 334 Pls
6962 332 Pls
6594 4739 Pls
1.000 UL
LT1
6311 4599 M
(exp\(-x*x/200.\)) Rshow
6395 4599 M
399 0 V
574 4872 M
65 -5 V
64 -14 V
65 -23 V
64 -33 V
65 -42 V
64 -51 V
65 -59 V
64 -67 V
65 -75 V
64 -82 V
65 -89 V
64 -95 V
65 -101 V
64 -106 V
65 -110 V
64 -115 V
65 -118 V
64 -121 V
65 -123 V
65 -125 V
64 -126 V
65 -127 V
64 -126 V
65 -126 V
64 -125 V
65 -124 V
64 -122 V
65 -119 V
64 -117 V
65 -114 V
64 -110 V
65 -108 V
64 -103 V
65 -100 V
64 -96 V
65 -91 V
64 -88 V
65 -83 V
64 -79 V
65 -75 V
65 -70 V
64 -67 V
65 -62 V
64 -59 V
65 -54 V
64 -51 V
65 -47 V
64 -44 V
65 -41 V
64 -37 V
65 -34 V
64 -32 V
65 -29 V
64 -26 V
65 -24 V
64 -22 V
65 -20 V
64 -18 V
65 -16 V
65 -15 V
64 -13 V
65 -11 V
64 -11 V
65 -9 V
64 -9 V
65 -7 V
64 -7 V
65 -5 V
64 -5 V
65 -5 V
64 -4 V
65 -3 V
64 -3 V
65 -3 V
64 -2 V
65 -2 V
64 -2 V
65 -1 V
64 -2 V
65 -1 V
65 -1 V
64 -1 V
65 0 V
64 -1 V
65 0 V
64 -1 V
65 0 V
64 0 V
65 -1 V
64 0 V
65 0 V
64 0 V
65 0 V
64 -1 V
65 0 V
64 0 V
65 0 V
64 0 V
65 0 V
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

View File

@ -0,0 +1,168 @@
0.25 1 0
0.5 0.992913 0.0225723
0.75 0.985827 0.0448219
1 0.97874 0.0667484
1.25 0.971653 0.0883516
1.5 0.964567 0.109631
1.75 0.95748 0.130586
2 0.950393 0.151216
2.25 0.943307 0.171522
2.5 0.93622 0.191502
2.75 0.929133 0.211157
3 0.922047 0.230486
3.25 0.914747 0.24943
3.5 0.901904 0.266401
3.75 0.88906 0.282784
4 0.876217 0.298578
4.25 0.863373 0.313784
4.5 0.85053 0.328402
4.75 0.837686 0.34243
5 0.824843 0.355871
5.25 0.811999 0.368722
5.5 0.799156 0.380985
5.75 0.786313 0.392659
6 0.773469 0.403744
6.25 0.760398 0.414117
6.5 0.744472 0.422272
6.75 0.728546 0.429698
7 0.71262 0.436397
7.25 0.696695 0.442369
7.5 0.680769 0.447613
7.75 0.664843 0.452131
8 0.648917 0.455922
8.25 0.632991 0.458987
8.5 0.617066 0.461327
8.75 0.60114 0.46294
9 0.585214 0.463829
9.25 0.569446 0.464122
9.5 0.554942 0.464757
9.75 0.540438 0.464732
10 0.525934 0.464048
10.25 0.51143 0.462705
10.5 0.496926 0.460704
10.75 0.482422 0.458045
11 0.467918 0.454729
11.25 0.453414 0.450756
11.5 0.438911 0.446128
11.75 0.424407 0.440844
12 0.409903 0.434906
12.25 0.395826 0.428777
12.5 0.384215 0.424738
12.75 0.372603 0.420176
13 0.360992 0.41509
13.25 0.349381 0.409482
13.5 0.337769 0.403351
13.75 0.326158 0.396699
14 0.314547 0.389526
14.25 0.302935 0.381832
14.5 0.291324 0.37362
14.75 0.279713 0.364888
15 0.268101 0.355638
15.25 0.257257 0.346906
15.5 0.2498 0.342331
15.75 0.242342 0.337423
16 0.234884 0.332182
16.25 0.227427 0.326608
16.5 0.219969 0.320703
16.75 0.212512 0.314465
17 0.205054 0.307896
17.25 0.197597 0.300997
17.5 0.190139 0.293768
17.75 0.182681 0.286209
18 0.175224 0.278322
18.25 0.168288 0.270946
18.5 0.163185 0.266255
18.75 0.158081 0.261339
19 0.152978 0.256198
19.25 0.147875 0.250832
19.5 0.142771 0.245242
19.75 0.137668 0.239428
20 0.132565 0.233391
20.25 0.127461 0.227131
20.5 0.122358 0.220649
20.75 0.117254 0.213945
21 0.112151 0.20702
21.25 0.107525 0.200765
21.5 0.104268 0.196895
21.75 0.101012 0.192883
22 0.0977547 0.18873
22.25 0.0944979 0.184436
22.5 0.0912411 0.180001
22.75 0.0879843 0.175425
23 0.0847275 0.17071
23.25 0.0814706 0.165854
23.5 0.0782138 0.160859
23.75 0.074957 0.155725
24 0.0717002 0.150453
24.25 0.0687955 0.145788
24.5 0.0667302 0.142796
24.75 0.0646649 0.139715
25 0.0625997 0.136547
25.25 0.0605344 0.13329
25.5 0.0584691 0.129946
25.75 0.0564039 0.126515
26 0.0543386 0.122996
26.25 0.0522733 0.11939
26.5 0.0502081 0.115698
26.75 0.0481428 0.11192
27 0.0460775 0.108055
27.25 0.044267 0.104707
27.5 0.0429681 0.102504
27.75 0.0416691 0.100246
28 0.0403702 0.0979343
28.25 0.0390712 0.0955684
28.5 0.0377723 0.0931484
28.75 0.0364734 0.0906747
29 0.0351744 0.0881474
29.25 0.0338755 0.0855666
29.5 0.0325765 0.0829325
29.75 0.0312776 0.0802453
30 0.0299787 0.0775052
30.25 0.0288986 0.0752825
30.5 0.0281921 0.0739965
30.75 0.0274857 0.0726814
31 0.0267793 0.0713373
31.25 0.0260729 0.0699641
31.5 0.0253664 0.0685622
31.75 0.02466 0.0671314
32 0.0239536 0.065672
32.25 0.0232471 0.064184
32.5 0.0225407 0.0626676
32.75 0.0218343 0.0611228
33 0.0211279 0.0595497
33.25 0.0204214 0.0579485
33.5 0.019715 0.0563193
33.75 0.0190086 0.0546621
34 0.0183021 0.0529771
34.25 0.0175957 0.0512644
34.5 0.0168893 0.0495241
34.75 0.0161829 0.0477563
35 0.0154764 0.0459611
35.25 0.01477 0.0441387
35.5 0.0140636 0.0422891
35.75 0.0133571 0.0404124
36 0.0126507 0.0385089
36.25 0.0121367 0.0371678
36.5 0.0118644 0.0365518
36.75 0.0115921 0.0359251
37 0.0113198 0.0352878
37.25 0.0110475 0.0346398
37.5 0.0107752 0.0339814
37.75 0.0105029 0.0333124
38 0.0102307 0.032633
38.25 0.00995837 0.0319431
38.5 0.00968607 0.0312429
38.75 0.00941378 0.0305324
39 0.00914149 0.0298116
39.25 0.0088692 0.0290806
39.5 0.0085969 0.0283394
39.75 0.00832461 0.0275881
40 0.00805232 0.0268267
40.25 0.00778003 0.0260553
40.5 0.00750774 0.0252739
40.75 0.00723544 0.0244826
41 0.00696315 0.0236814
41.25 0.00669086 0.0228703
41.5 0.00641857 0.0220495
41.75 0.00614628 0.021219
42 0.00587398 0.0203787

Binary file not shown.

View File

@ -0,0 +1,703 @@
%!PS-Adobe-2.0
%%Title: testmeyer2.eps
%%Creator: gnuplot 3.7 patchlevel 3
%%CreationDate: Mon Apr 11 15:40:40 2005
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 554 770
%%Orientation: Landscape
%%Pages: (atend)
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color true def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
0 vshift R show } def
/Rshow { currentpoint stroke M
dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
{pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
/C1 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath } bind def
/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill
Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore } def
/CircE { stroke [] 0 setdash
hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore } def
/CircW { stroke [] 0 setdash
hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
50 50 translate
0.100 0.100 scale
90 rotate
0 -5040 translate
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
1.000 UL
LTb
1.000 UL
LTa
490 280 M
6472 0 V
1.000 UL
LTb
490 280 M
63 0 V
6409 0 R
-63 0 V
406 280 M
(-5) Rshow
1.000 UL
LTa
490 1045 M
6472 0 V
1.000 UL
LTb
490 1045 M
63 0 V
6409 0 R
-63 0 V
-6493 0 R
( 0) Rshow
1.000 UL
LTa
490 1811 M
6472 0 V
1.000 UL
LTb
490 1811 M
63 0 V
6409 0 R
-63 0 V
-6493 0 R
( 5) Rshow
1.000 UL
LTa
490 2576 M
6472 0 V
1.000 UL
LTb
490 2576 M
63 0 V
6409 0 R
-63 0 V
-6493 0 R
( 10) Rshow
1.000 UL
LTa
490 3341 M
6472 0 V
1.000 UL
LTb
490 3341 M
63 0 V
6409 0 R
-63 0 V
-6493 0 R
( 15) Rshow
1.000 UL
LTa
490 4107 M
6472 0 V
1.000 UL
LTb
490 4107 M
63 0 V
6409 0 R
-63 0 V
-6493 0 R
( 20) Rshow
1.000 UL
LTa
490 4872 M
6472 0 V
1.000 UL
LTb
490 4872 M
63 0 V
6409 0 R
-63 0 V
-6493 0 R
( 25) Rshow
1.000 UL
LTa
490 280 M
0 4592 V
1.000 UL
LTb
490 280 M
0 63 V
0 4529 R
0 -63 V
490 140 M
( 0) Cshow
1.000 UL
LTa
1299 280 M
0 4592 V
1.000 UL
LTb
1299 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 1) Cshow
1.000 UL
LTa
2108 280 M
0 4592 V
1.000 UL
LTb
2108 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 2) Cshow
1.000 UL
LTa
2917 280 M
0 4592 V
1.000 UL
LTb
2917 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 3) Cshow
1.000 UL
LTa
3726 280 M
0 4592 V
1.000 UL
LTb
3726 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 4) Cshow
1.000 UL
LTa
4535 280 M
0 4249 V
0 280 R
0 63 V
1.000 UL
LTb
4535 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 5) Cshow
1.000 UL
LTa
5344 280 M
0 4249 V
0 280 R
0 63 V
1.000 UL
LTb
5344 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 6) Cshow
1.000 UL
LTa
6153 280 M
0 4249 V
0 280 R
0 63 V
1.000 UL
LTb
6153 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 7) Cshow
1.000 UL
LTa
6962 280 M
0 4592 V
1.000 UL
LTb
6962 280 M
0 63 V
0 4529 R
0 -63 V
0 -4669 R
( 8) Cshow
1.000 UL
LTb
490 280 M
6472 0 V
0 4592 V
-6472 0 V
490 280 L
1.000 UP
1.000 UL
LT0
6311 4739 M
('testmeyer.out' us 1:3) Rshow
541 1045 Pls
591 1624 Pls
642 2186 Pls
692 2715 Pls
743 3186 Pls
793 3596 Pls
844 3932 Pls
895 4180 Pls
945 4352 Pls
996 4445 Pls
1046 4475 Pls
1097 4447 Pls
1147 4374 Pls
1198 4268 Pls
1248 4126 Pls
1299 3965 Pls
1350 3804 Pls
1400 3635 Pls
1451 3436 Pls
1501 3255 Pls
1552 3090 Pls
1602 2908 Pls
1653 2740 Pls
1704 2590 Pls
1754 2431 Pls
1805 2286 Pls
1855 2166 Pls
1906 2043 Pls
1956 1929 Pls
2007 1836 Pls
2057 1743 Pls
2108 1657 Pls
2159 1595 Pls
2209 1533 Pls
2260 1472 Pls
2310 1412 Pls
2361 1355 Pls
2411 1303 Pls
2462 1271 Pls
2513 1241 Pls
2563 1211 Pls
2614 1184 Pls
2664 1158 Pls
2715 1135 Pls
2765 1119 Pls
2816 1104 Pls
2866 1090 Pls
2917 1077 Pls
2968 1066 Pls
3018 1056 Pls
3069 1047 Pls
3119 1040 Pls
3170 1034 Pls
3220 1028 Pls
3271 1023 Pls
3322 1020 Pls
3372 1016 Pls
3423 1013 Pls
3473 1011 Pls
3524 1009 Pls
3574 1008 Pls
3625 1007 Pls
3675 1006 Pls
3726 1005 Pls
3777 1004 Pls
3827 1003 Pls
3878 1003 Pls
3928 1003 Pls
3979 1003 Pls
4029 1004 Pls
4080 1005 Pls
4131 1006 Pls
4181 1007 Pls
4232 1009 Pls
4282 1010 Pls
4333 1012 Pls
4383 1014 Pls
4434 1016 Pls
4484 1017 Pls
4535 1019 Pls
4586 1020 Pls
4636 1021 Pls
4687 1023 Pls
4737 1024 Pls
4788 1026 Pls
4838 1027 Pls
4889 1029 Pls
4940 1030 Pls
4990 1032 Pls
5041 1033 Pls
5091 1035 Pls
5142 1036 Pls
5192 1037 Pls
5243 1039 Pls
5293 1040 Pls
5344 1041 Pls
5395 1042 Pls
5445 1042 Pls
5496 1043 Pls
5546 1044 Pls
5597 1045 Pls
5647 1046 Pls
5698 1046 Pls
5749 1047 Pls
5799 1047 Pls
5850 1048 Pls
5900 1048 Pls
5951 1049 Pls
6001 1049 Pls
6052 1049 Pls
6102 1050 Pls
6153 1050 Pls
6204 1050 Pls
6254 1050 Pls
6305 1051 Pls
6355 1051 Pls
6406 1051 Pls
6456 1051 Pls
6507 1051 Pls
6558 1051 Pls
6608 1051 Pls
6659 1051 Pls
6709 1050 Pls
6594 4739 Pls
1.000 UL
LT1
6311 4599 M
(sin\(x\)*exp\(-x*x/1.\)*56) Rshow
6395 4599 M
399 0 V
490 1045 M
65 688 V
66 656 V
65 597 V
65 512 V
66 410 V
65 295 V
66 179 V
65 63 V
65 -42 V
66 -132 V
65 -206 V
65 -259 V
66 -294 V
65 -310 V
66 -310 V
65 -298 V
65 -275 V
66 -247 V
65 -216 V
65 -182 V
66 -151 V
65 -122 V
66 -96 V
65 -74 V
65 -55 V
66 -41 V
65 -30 V
65 -20 V
66 -14 V
65 -10 V
66 -6 V
65 -4 V
65 -2 V
66 -2 V
65 -1 V
65 0 V
66 0 V
65 -1 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
66 0 V
65 0 V
65 0 V
66 0 V
65 0 V
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

Binary file not shown.

View File

@ -0,0 +1,168 @@
0.125 1 0
0.25 0.99446 0.11462
0.375 0.98892 0.227963
0.5 0.98338 0.340027
0.625 0.97784 0.450813
0.75 0.97009 0.559046
0.875 0.954263 0.659905
1 0.938436 0.757112
1.125 0.922609 0.850668
1.25 0.906782 0.940572
1.375 0.888828 1.02437
1.5 0.86805 1.10045
1.625 0.847094 1.17149
1.75 0.821486 1.23072
1.875 0.795879 1.28405
2 0.769708 1.3305
2.125 0.743225 1.37033
2.25 0.716743 1.40406
2.375 0.690261 1.43169
2.5 0.663779 1.4532
2.625 0.636879 1.46765
2.75 0.609912 1.47574
2.875 0.582944 1.4776
3 0.555976 1.47325
3.125 0.529194 1.46319
3.25 0.50473 1.45364
3.375 0.480266 1.43846
3.5 0.455803 1.41763
3.625 0.431339 1.39117
3.75 0.408111 1.3632
3.875 0.387928 1.34041
4 0.367745 1.31296
4.125 0.347561 1.28086
4.25 0.327378 1.24412
4.375 0.308453 1.20766
4.5 0.29077 1.17184
4.625 0.27339 1.13321
4.75 0.258448 1.10097
4.875 0.243505 1.06529
5 0.230337 1.03414
5.125 0.217864 1.00316
5.25 0.205391 0.969306
5.375 0.192919 0.932588
5.5 0.180446 0.893002
5.625 0.171018 0.865965
5.75 0.161808 0.837893
5.875 0.152598 0.807704
6 0.143389 0.7754
6.125 0.134521 0.742867
6.25 0.127624 0.71941
6.375 0.120728 0.694369
6.5 0.113832 0.667745
6.625 0.106935 0.639537
6.75 0.100686 0.613696
6.875 0.0955769 0.593493
7 0.0904673 0.572119
7.125 0.0853578 0.549572
7.25 0.0802482 0.525853
7.375 0.0758915 0.505983
7.5 0.0720861 0.488852
7.625 0.0682807 0.47085
7.75 0.0644753 0.451975
7.875 0.0606698 0.432229
8 0.0576442 0.417255
8.125 0.0548232 0.403094
8.25 0.0520023 0.388287
8.375 0.0491813 0.372835
8.5 0.046365 0.356773
8.625 0.0442261 0.345356
8.75 0.0420871 0.33345
8.875 0.0399482 0.321055
9 0.0378092 0.308171
9.125 0.0358519 0.2963
9.25 0.0345323 0.289324
9.375 0.0332127 0.282047
9.5 0.0318931 0.274469
9.625 0.0305735 0.266588
9.75 0.0292539 0.258407
9.875 0.0279343 0.249925
10 0.0266147 0.241141
10.125 0.0252951 0.232057
10.25 0.0239756 0.222672
10.375 0.022656 0.212986
10.5 0.0213364 0.203
10.625 0.0201776 0.194263
10.75 0.01948 0.189754
10.875 0.0187824 0.185086
11 0.0180849 0.180259
11.125 0.0173873 0.175274
11.25 0.0166897 0.17013
11.375 0.0159921 0.164827
11.5 0.0152945 0.159366
11.625 0.0145969 0.153746
11.75 0.0138993 0.147968
11.875 0.0132018 0.142032
12 0.0125042 0.135938
12.125 0.0118979 0.130688
12.25 0.0115092 0.127716
12.375 0.0111205 0.124656
12.5 0.0107319 0.121507
12.625 0.0103432 0.118271
12.75 0.00995451 0.114946
12.875 0.00956583 0.111534
13 0.00917716 0.108034
13.125 0.00878848 0.104445
13.25 0.00839981 0.100769
13.375 0.00801114 0.0970055
13.5 0.00762246 0.093154
13.625 0.0072864 0.0898638
13.75 0.00705598 0.0878127
13.875 0.00682557 0.0857095
14 0.00659516 0.0835544
14.125 0.00636474 0.0813473
14.25 0.00613433 0.0790882
14.375 0.00590392 0.0767773
14.5 0.0056735 0.0744145
14.625 0.00544309 0.0719999
14.75 0.00521268 0.0695336
14.875 0.00498226 0.0670155
15 0.00475185 0.0644458
15.125 0.00453543 0.0620157
15.25 0.0043429 0.0598664
15.375 0.00415037 0.0576741
15.5 0.00395783 0.0554386
15.625 0.0037653 0.0531601
15.75 0.00357277 0.0508385
15.875 0.00338024 0.048474
16 0.00318771 0.0460665
16.125 0.00299517 0.0436161
16.25 0.00280264 0.0411229
16.375 0.00261011 0.0385868
16.5 0.00241758 0.0360079
16.625 0.00222505 0.0333863
16.75 0.00203251 0.0307219
16.875 0.00183998 0.0280149
17 0.00164745 0.0252652
17.125 0.00145492 0.022473
17.25 0.00126239 0.0196382
17.375 0.00106985 0.0167609
17.5 0.000877323 0.0138411
17.625 0.000684791 0.0108789
17.75 0.000492259 0.00787437
17.875 0.000299727 0.00482747
18 0.000107195 0.00173827
18.125 0 0
18.25 0 0
18.375 0 0
18.5 0 0
18.625 0 0
18.75 0 0
18.875 0 0
19 0 0
19.125 0 0
19.25 0 0
19.375 0 0
19.5 0 0
19.625 0 0
19.75 0 0
19.875 0 0
20 0 0
20.125 0 0
20.25 0 0
20.375 0 0
20.5 0 0
20.625 0 0
20.75 0 0
20.875 0 0
21 0 0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
Geant4 ElectricField update files:
Copy files in the following directories:
G4El_EqRhs -----> $G4Install/source/geometry/magneticfield /src and /include
G4El_UsualEqRhs -----> $G4Install/source/geometry/magneticfield /src and /include
G4ChordFinder -----> $G4Install/source/geometry/magneticfield /src and /include
G4ParticleGun -----> $G4Install/source/event /src and /include
track/ is the geant4.6.2 version of $G4Install/source/track directory and should be updated

18
geant4/TaoLEMuSR/allmk.sh Normal file
View File

@ -0,0 +1,18 @@
cd $G4INSTALL/source/particles/management
gmake
cd $G4INSTALL/source/particles/leptons
gmake
cd $G4INSTALL/source/run/
gmake
cd $G4INSTALL/source/geometry/magneticfield/
gmake
cd $G4INSTALL/source/track/
gmake
cd $G4INSTALL/source/tracking/
gmake
cd $G4INSTALL/source/processes/management/
gmake
cd $G4INSTALL/source/processes/decay/
gmake
cd $wlem
gmake

13
geant4/TaoLEMuSR/asym.sh Normal file
View File

@ -0,0 +1,13 @@
export ASYM_USE_LEMU=1
unset LEMU_TEST_FIELD
unset LEMU_TEST_CFOIL
unset LEMU_TEST_FOCAL_LENGTH
export LEMU_TEST_ASYM=1
rm ~/geant4/tmp/Linux-g++/LEMuSR/exe/*
rm ~/geant4/tmp/Linux-g++/LEMuSR/LEMuSRDetectorConstruction.*
rm ~/geant4/tmp/Linux-g++/LEMuSR/LEMuSRPrimaryGeneratorAction.*
rm ~/geant4/tmp/Linux-g++/LEMuSR/LEMuSRMuonPhysics.*

4
geant4/TaoLEMuSR/dawn.sh Normal file
View File

@ -0,0 +1,4 @@
export G4DAWN_NAMED_PIPE=1
export G4DAWN_GUI_ALWAYS=1

View File

@ -0,0 +1,24 @@
/*! @page About About Geant4
<BR>
<B> Previous:</B> @ref Intro
<B> Up:</B> @ref Intro
<B> Next:</B> @ref Voc
<BR>
<HR>
@section sAbout What is Geant4?
<P>
<A HREF="http://www.geant4.cern.ch/"><STRONG>Geant4</STRONG></A> is a C++ set of libraries designed for Monte-Carlo simultation. This <I><B>GE</B></I>ometry <I><B>AN</B></I>d <I><B>T</B></I>racking toolkit was developped at CERN initially for high energy physics. It contains a large amount of data about particles, interactions and materials inputed according to the standard model. Nowaday, the package is used in a wide range of applications, from DNA modeling to astrophysics.
<P>
In order to build a simple simulation, one just has to define a geometry and choose the interactions to consider. For non trivial experiments like \lemu, one may have to personalize some aspects of the original Geant4 code like physics processes or electromagnetic fields. It is now widely used in all kind of fields from dna modelling to astrophysics.
<P>
The simulation can be interactive thanks to a user interface already included in Geant4. The possibilities of geometry visualization, histogramming and code personalization are key elements of Geant4.
<P>
<BR>
*/

View File

@ -0,0 +1,27 @@
/*! @page Mandatory LEMuSR Mandatory Classes
<BR>
<B> Previous:</B> @ref lemusetup
<B> Up:</B> @ref Main
<B> Next:</B> @ref runmgr
<BR>
<HR>
<UL>
<LI>@ref runmgr
<LI>@ref geometry
<LI>@ref physicsref
<LI>@ref pga
</UL>
*/

View File

@ -0,0 +1,75 @@
/*! @page Useraction The User Action Classes
<BR>
<B> Previous:</B> @ref Mandatory
<B> Up:</B> @ref Main
<B> Next:</B> @ref howg4
<BR>
<HR>
\anchor useraction_intro
<UL>
<LI>@ref useractintro
<LI>@ref runaction
<LI>@ref eventaction
<LI>@ref trackingaction
<LI>@ref stackingaction
<LI>@ref steppingaction
</UL>
\section useractintro Introduction
The user action classes are very useful monitoring features of \gf. Thanks to these classes, it is possible to operate actions at different stages of the simulation.
The user is completely free in the implementation of the actions to take, and therefore the possibilities offered by this feature are innumerable, from interactivity to histogramming, debugging, visualization or even direct optimization of the simulation parameters etc.
In the following pages, we describe the use of those classes for the \lemu simulation.
\section runaction User Run Action
The user run action class operates actions at the beginning and at the end of each run. In LEMuSRRunAction.cc, one can see that it is only used to initialize and update the visualization manager.
An interesting thing to notice is that some commands can be sent directly to the user interaction manager without going through the terminal. This can be of special utility when running the simulation in batch mode.
\section eventaction User Event Action
The user event action class operates actions at the beginnig and at the end of each event of a given run. Initially used for the hits collection, we left its implementation open.
The two main classes are BeginOfEventAction and EndOfEventAction. For the implementation refer to the LEMuSREventAction.cc file.
\section trackingaction User Tracking Action
The tracking action class is implemented in the LEMuSRTrackingAction.cc file. The two main methods are PreUserTrackingAction and PostUserTrackingAction. In \lemu simulation, we first used the tracking action to get the gyromagnetic parameters of the tracked particle. They can be accessed by any other class via a pointer to the tracking action instance.
This is very useful in particular for spin precession calculations. Indeed, \gf do not handle yet different gyromagnetic ratios or precession of neutral particles. The muonium data can be highly biased by this.
However, this procedure is not very "nice" because the tracking action should remain an optional class i.e. should not be necessary to run the simulation. Now the code uses the G4TrackingManager class from geant4, which is a top executive class together with the G4RunManager, G4EventManager and G4SteppingManager classes.
Here is a short overview on the hierarchy organisation of thoses classes.
\section stackingaction User Stacking Action
The user action class can be implemented to select the tracks to consider or not in order to gain calculation time. One can also use it for statistics or to take actions on the tracks to be simulated.
\section steppingaction User Stepping Action
The most important user action class of the \lemu simulation is the stepping action. Five different stepping action classes were implemented:
<ul>
<li>AsymCheck: for tests of the asymmetry.
<li>FieldCheck: for tests of electromagnetic fields.
<li>FocalLengthTest: for tests of the focal length.
<li>TDCheck: for tests of the trigger detector.
<li>LEMuSRSteppingAction for a usual run.
</ul>
The stepping action has to be set in the LEMuSR.cc file. Only one stepping action can be enabled at once. Therefore, we defined environement variables in order to select under which form the code should be compiled.
After important modification of the code it is useful to go through all the tests in order to verify that everything still runs correctly.
In the following, we describe the actions of those different stepping actions.
*/

View File

@ -0,0 +1,132 @@
/*! @page commands Commands
<BR>
<B> Previous:</B> @ref
<B> Up:</B> @ref
<B> Next:</B> @ref
<BR>
<HR>
We present here the most useful commands to run the simulation. Some additional commands can be accessed entering <b>help</b> in the run terminal or on the <A href="http://geant4.web.cern.ch/geant4/G4UsersDocuments/UsersGuides/ForApplicationDeveloper/html/Control/UIcommands/_.html">web</A>. We do not put them here because they are not necessary for the \lemu simulation.
\section coms_config UI control commands
* - <b>/control/execute macrofile </b> : execute a macro file. The macro files are edited as a list of commands.
*
* - <b>/control/verbose </b> : set the verbose level
*
* - <b>/control/shell </b> : access the shell
*
* - <b>/help </b> : call interactive help with all the commands.
\section coms_run Run control commands
* - <b>/run/beamOn #n</b> : simulate n particles
*
* - <b>/run/verbose </b> : set the verbose level
\section coms_det Geometry control commands
\subsection com_Mode Detector Mode
* - <b>/Detector/Mode [cryo/mcp] </b> :
*
* - <b>/Detector/CfoilThickness [\f$ \mu g / cm^{2}\f$] </b> : set the thickness of the carbon foil
*
* - <b>/Detector/MaxStepInField [\f$ mm \f$]</b> : set a cut on the maximal step size in the regions with field.
*
\subsection com_sample Sample Specifications
* - <b>/Detector/Sample/Grid [on/off]</b> : <b>NB!</b> the command is not working because no field map was generated for this case.
*
* - <b>/Detector/Sample/Guards [on/off]</b> : enable or disable the guard rings in sample cryostat
*
* - <b>/Detector/Sample/HolderMaterial [material]</b> : to change the material of the sample holder plate.
*
\subsection com_volt Electric Fields and Voltage Settings
* - <b>/Detector/ElectricField [on/off]</b> : enables fiels at trigger detector or disables all electric fields.
*
In order to set the electric field for the third lense and the conical anode one should enter a voltage value. The fields maps were generated for 1 kV. During the initialization they are scaled according to the entered voltage.
* - <b>/Detector/Voltage/ThirdLens [Third Lens Voltage kV]</b> : Third lens voltage in kilovolt
*
* - <b>/Detector/Voltage/ConicalAnode [RA-Left Voltage [kV]] [RA-Right Voltage [kV]] [Build]</b> : Ring anode voltage in kilovolt. The built variable is 1 or 0 and specifies if the detector is rebuilt after the values are changed or later.
*
* - <b>/Detector/Voltage/Cryo [kV]</b> : Sample voltage in kilovolt
*
\subsection com_mag Magnetic Field
* - <b>/Detector/MagneticField [Gauss] </b> : set the value of the magnetic field
*
\subsection com_vis Visualization Mode
* - <b>/Detector/View [total/half/quarter]</b> : build the detector with half cut or quarter cut. <i>The detector must be built in total view to run the simulation.</i>
\section coms_pga Particle gun control commands
* - <b>/lemuGun/gunPosition [X [cm]] [Y [cm]] [Z [cm]]</b> : the gun position in centimeters. Note that the origin of the geometry is the mcp detector and the carbon foil is at -113.7cm
*
* - <b>/lemuGun/MomentumDirection [momX ] [momY ] [momZ ] </b> : a unitary vector for the particles momentum direction.
*
* - <b>/lemuGun/particle particle </b> : Particle types: mu+/Mu or other.
*
* - <b>/lemuGun/scan/square [X Y B]</b> : flat distribution of B bins in a rectangle 2X x 2Y. Distances are in centimeters.
*
* - <b>/lemuGun/scan/circular [R N M] </b> : circular distribution with N steps along the radius R and M steps along the \f$ 2\pi\f$ angle. Radius in cemtimeters.
*
* - <b>/lemuGun/gauss </b> : gaussian distribution of x and y.
*
* - <b>/lemuGun/reset </b> : reset the counters for the scan mode.
\section coms_vis Visualization control commands
To start a visualization driver and draw the geometry one may follow the following four step procedure:
*
* -# <b>/vis/scene/create </b> : to create a scene to draw.
*
* -# <b>/vis/open [vis_engine] </b> : to open the visualisation engine vis_engine (recommended OGLIX for x-window or DAWNFILE for *.eps file and DANW *.prim file output).
*
* -# <b>/vis/sceneHandler/attach </b> : to link the scene the the engine.
*
* -# <b>/vis/viewer/flush </b> : to draw the geometry.
*.
* The visualization angles and camera position can be set in many different ways. The command should be accessed entering <tt<help</tt> in the terminal. Among those commands one would find:
*
* - <b>/vis/viewer/set/viewpointThetaPhi \f$ \alpha \ \beta \f$ </b> : set camera angle in deg.
*
* - <b>/vis/viewer/refresh </b> : to redraw the geometry.
*
* - <b>/vis/drawTree </b> : print out the hierarchical tree of the geometry. If a physical volume name is specified, the tree will be printed from the correspondant volume.
*
* - <b>/vis/ASCITree/verbose [level]</b> : set verbose level for the <b>/vis/drawTree </b> command. The verbose level goes from 0 to 15.
\section coms_sensidet Sensitive detection control commands
*
* - <b>/hits/list </b> : get the list of the different sensitive detectors available
*
* - <b>/hits/activate [sd_name]</b> : activate the sensitive detector sd_name
*
* - <b>/hits/inactivate [sd_name] </b> : inactivate the sensitive detector sd_name
*
* - <b>/hits/verbose [level]</b> : set the verbose level.
\section coms_misc Miscanellous control commands
*
* - <b>/tracking/storeTrajectory 1 </b> : to store the trajectories in order to be able to plot them in the visualisation for example.
*
* - <b>/process/(in)activate [particle_name]</b> : (in)activate the particle particle_name
*
* - <b>/particle/(in)activate [process_name]</b> : (in)activate the process process_name.
*
*.
In the help directory, one would find some guidance providing the use of the command with the arguments description: what argument to enter, which unit, which format (<b>s</b>tring, <b>d</b>ouble, <b>i</b>nt ...), is the argument ommitable etc.).
A comprehensive list of all the commands can be found in the annexe @ref annexe_commands.
*/

View File

@ -0,0 +1,37 @@
/* @page annexe_commands List of the Commands
<html><head><title>Commands in /</title></head>
<body bgcolor="#ffffff"><h2>/</h2><p>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_control_.html">/control/</a>
<p><dd>UI control commands.
<p><br><p><dt><a href="_units_.html">/units/</a>
<p><dd>Available units.
<p><br><p><dt><a href="_geometry_.html">/geometry/</a>
<p><dd>Geometry control commands.
<p><br><p><dt><a href="_tracking_.html">/tracking/</a>
<p><dd>TrackingManager and SteppingManager control commands.
<p><br><p><dt><a href="_event_.html">/event/</a>
<p><dd>EventManager control commands.
<p><br><p><dt><a href="_run_.html">/run/</a>
<p><dd>Run control commands.
<p><br><p><dt><a href="_random_.html">/random/</a>
<p><dd>Random number status control commands.
<p><br><p><dt><a href="_particle_.html">/particle/</a>
<p><dd>Particle control commands.
<p><br><p><dt><a href="_process_.html">/process/</a>
<p><dd>Process Table control commands.
<p><br><p><dt><a href="_Detector_.html">/Detector/</a>
<p><dd>Set detector parameters
<p><br><p><dt><a href="_lemuGun_.html">/lemuGun/</a>
<p><dd>LEMuSR particle shooting control commands.
<p><br><p><dt><a href="_gun_.html">/gun/</a>
<p><dd>Particle Gun control commands.
<p><br><p><dt><a href="_vis_.html">/vis/</a>
<p><dd>Visualization commands.
<p><br><p><dt><a href="_hits_.html">/hits/</a>
<p><dd>Sensitive detectors and Hits
</dl><p><hr><p>
<h2>Commands : </h2><dl>
</dl></body></html>
*/

View File

@ -0,0 +1,87 @@
<html><head><title>Commands in /Detector/</title></head>
<body bgcolor="#ffffff"><h2>/Detector/</h2><p>
Set detector parameters<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_Detector_Sample_.html">/Detector/Sample/</a>
<p><dd>...Title not available...
<p><br><p><dt><a href="_Detector_Voltage_.html">/Detector/Voltage/</a>
<p><dd>...Title not available...
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>Mode [<i>mode</i>]</b>
<p><dd>
mcp: multiple channel mode
cryo: cryostat mode <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>mode
<td>type s
<td><td></table>
<p><br><p><dt><b>ElectricField [<i>field</i>]</b>
<p><dd>
on: electric field on
off: electric field off <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>field
<td>type s
<td><td></table>
<p><br><p><dt><b>AsymCheck [<i>asym</i>]</b>
<p><dd>
on: asym on
off:asym off <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>asym
<td>type s
<td><td></table>
<p><br><p><dt><b>MagneticField [<i>f</i>]</b>
<p><dd>
Magnetic Field Max Value &gt;&gt;&gt; in GAUSS <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>f
<td>type d
<td><td></table>
<p><br><p><dt><b>View [<i>view</i>]</b>
<p><dd>
quarter: quarter cut view of the detector
half: half cut view of the detector
total: view of the total detector <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>view
<td>type s
<td><td></table>
<p><br><p><dt><b>MaxStepInField [<i>usl</i>]</b>
<p><dd>
The user step limitation in third lense and conical anode [mm] <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>usl
<td>type d
<td><td></table>
<p><br><p><dt><b>CfoilThickness [<i>f</i>]</b>
<p><dd>
Carbon foil thickness; unit is mug/cm2 <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>f
<td>type d
<td><td></table>
</dl></body></html>

View File

@ -0,0 +1,39 @@
<html><head><title>Commands in /Detector/Sample/</title></head>
<body bgcolor="#ffffff"><h2>/Detector/Sample/</h2><p>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>Grid [<i>grid</i>]</b>
<p><dd>
on: Sample Grid on
off: Sample Grid off <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>grid
<td>type s
<td><td></table>
<p><br><p><dt><b>Guards [<i>guards</i>]</b>
<p><dd>
on: Sample Guards Rings on
off: Sample Guards off <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>guards
<td>type s
<td><td></table>
<p><br><p><dt><b>HolderMaterial [<i>material</i>]</b>
<p><dd>
Sample material<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>material
<td>type s
<td><td></table>
</dl></body></html>

View File

@ -0,0 +1,42 @@
<html><head><title>Commands in /Detector/Voltage/</title></head>
<body bgcolor="#ffffff"><h2>/Detector/Voltage/</h2><p>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>ThirdLense [<i>f</i>]</b>
<p><dd>
Third Lense Middle Cylinder Voltage Value &gt;&gt; IN KILOVOLT <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>f
<td>type d
<td><td></table>
<p><br><p><dt><b>ConicalAnode [<i>RA-Left Voltage [kV]</i>] [<i>RA-Right Voltage [kV]</i>] [<i>Build</i>]</b>
<p><dd>
Conical anode left and right side Voltage Values &gt;&gt; IN KILOVOLT; set build to !=0 to build the detector <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>RA-Left Voltage [kV]
<td>type d
<td><td><tr><td>RA-Right Voltage [kV]
<td>type d
<td><td><tr><td>Build
<td>type d
<td><td></table>
<p><br><p><dt><b>Cryo [<i>Voltage [kV]</i>]</b>
<p><dd>
Cryo voltage in kV <br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>Voltage [kV]
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
</dl></body></html>

View File

@ -0,0 +1,155 @@
<html><head><title>Commands in /control/</title></head>
<body bgcolor="#ffffff"><h2>/control/</h2><p>
UI control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>execute [<i>fileName</i>]</b>
<p><dd>
Execute a macro file.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>fileName
<td>type s
<td><td></table>
<p><br><p><dt><b>loop [<i>macroFile</i>] [<i>counterName</i>] [<i>initialValue</i>] [<i>finalValue</i>] [<i>stepSize</i>]</b>
<p><dd>
Execute a macro file more than once.<br>
Loop counter can be used as an aliased variable.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>macroFile
<td>type s
<td><td><tr><td>counterName
<td>type s
<td><td><tr><td>initialValue
<td>type d
<td><td><tr><td>finalValue
<td>type d
<td><td><tr><td>stepSize
<td>type d
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>foreach [<i>macroFile</i>] [<i>counterName</i>] [<i>valueList</i>]</b>
<p><dd>
Execute a macro file more than once.<br>
Loop counter can be used as an aliased variable.<br>
Values must be separated by a space.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>macroFile
<td>type s
<td><td><tr><td>counterName
<td>type s
<td><td><tr><td>valueList
<td>type s
<td><td></table>
<p><br><p><dt><b>suppressAbortion [<i>level</i>]</b>
<p><dd>
Suppress the program abortion caused by G4Exception.<br>
Suppression level = 0 : no suppression<br>
= 1 : suppress during EventProc state<br>
= 2 : full suppression, i.e. no abortion by G4Exception<br>
When abortion is suppressed, you will get error messages issued by G4Exception,<br>
and there is NO guarantee for the correct result after the G4Exception error message.<br>
<p><dd>Range : level &gt;= 0 &amp;&amp; level &lt;= 2
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>level
<td>type i
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>verbose [<i>switch</i>]</b>
<p><dd>
Applied command will also be shown on screen.<br>
This command is useful with MACRO file.<br>
0 : silent<br>
1 : only the valid commands are shown.<br>
2 : comment lines are also shown (default).<br>
<p><dd>Range : switch &gt;= 0 &amp;&amp; switch &lt;=2
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>switch
<td>type i
<td>Omittable : default value = 2
<td></table>
<p><br><p><dt><b>saveHistory [<i>fileName</i>]</b>
<p><dd>
Store command history to a file.<br>
Defaul file name is G4history.macro.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>fileName
<td>type s
<td>Omittable : default value = G4History.macro
<td></table>
<p><br><p><dt><b>stopSavingHistory</b>
<p><dd>
Stop saving history file.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>alias [<i>aliasName</i>] [<i>aliasValue</i>]</b>
<p><dd>
Set an alias.<br>
String can be aliased by this command.<br>
The string may contain one or more spaces,<br>
the string must be enclosed by double quotes (").<br>
To use an alias, enclose the alias name with<br>
parenthis "{" and "}".<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>aliasName
<td>type s
<td><td><tr><td>aliasValue
<td>type s
<td><td></table>
<p><br><p><dt><b>unalias [<i>aliasName</i>]</b>
<p><dd>
Remove an alias.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>aliasName
<td>type s
<td><td></table>
<p><br><p><dt><b>listAlias</b>
<p><dd>
List aliases.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>shell [<i></i>]</b>
<p><dd>
Execute a (Unix) SHELL command.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>
<td>type s
<td><td></table>
<p><br><p><dt><b>manual [<i>dirPath</i>]</b>
<p><dd>
Display all of sub-directories and commands.<br>
Directory path should be given by FULL-PATH.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>dirPath
<td>type s
<td>Omittable : default value = /
<td></table>
<p><br><p><dt><b>createHTML [<i>dirPath</i>]</b>
<p><dd>
Generate HTML files for all of sub-directories and commands.<br>
Directory path should be given by FULL-PATH.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>dirPath
<td>type s
<td>Omittable : default value = /
<td></table>
<p><br><p><dt><b>maximumStoredHistory [<i>max</i>]</b>
<p><dd>
Set maximum number of stored UI commands.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>max
<td>type i
<td>Omittable : default value = 20
<td></table>
</dl></body></html>

View File

@ -0,0 +1,26 @@
<html><head><title>Commands in /event/</title></head>
<body bgcolor="#ffffff"><h2>/event/</h2><p>
EventManager control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_event_stack_.html">/event/stack/</a>
<p><dd>Stack control commands.
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>abort</b>
<p><dd>
Abort current event.<br>
<p><dd>Available Geant4 state(s) : EventProc
<p><br><p><dt><b>verbose [<i>level</i>]</b>
<p><dd>
Set Verbose level of event management category.<br>
0 : Silent<br>
1 : Stacking information<br>
2 : More...<br>
<p><dd>Range : level&gt;=0
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>level
<td>type i
<td><td></table>
</dl></body></html>

View File

@ -0,0 +1,28 @@
<html><head><title>Commands in /event/stack/</title></head>
<body bgcolor="#ffffff"><h2>/event/stack/</h2><p>
Stack control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>status</b>
<p><dd>
List current status of the stack.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>clear [<i>level</i>]</b>
<p><dd>
Clear stacked tracks.<br>
2 : clear all tracks in all stacks<br>
1 : clear tracks in the urgent and waiting stacks<br>
0 : clear tracks in the waiting stack (default)<br>
-1 : clear tracks in the urgent stack<br>
-2 : clear tracks in the postponed stack<br>
<p><dd>Range : level&gt;=-2&amp;&amp;level&lt;=2
<p><dd>Available Geant4 state(s) : GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>level
<td>type i
<td>Omittable : default value = 0
<td></table>
</dl></body></html>

View File

@ -0,0 +1,12 @@
<html><head><title>Commands in /geometry/</title></head>
<body bgcolor="#ffffff"><h2>/geometry/</h2><p>
Geometry control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_geometry_navigator_.html">/geometry/navigator/</a>
<p><dd>Geometry navigator control setup.
<p><br><p><dt><a href="_geometry_test_.html">/geometry/test/</a>
<p><dd>Geometry verification control setup.
</dl><p><hr><p>
<h2>Commands : </h2><dl>
</dl></body></html>

View File

@ -0,0 +1,46 @@
<html><head><title>Commands in /geometry/navigator/</title></head>
<body bgcolor="#ffffff"><h2>/geometry/navigator/</h2><p>
Geometry navigator control setup.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>reset</b>
<p><dd>
Reset navigator and navigation history.<br>
NOTE: must be called only after kernel has been<br>
initialized once through the run manager!<br>
<p><dd>Available Geant4 state(s) : Idle
<p><br><p><dt><b>verbose [<i>level</i>]</b>
<p><dd>
Set run-time verbosity for the navigator.<br>
0 : Silent (default)<br>
1 : Display volume positioning and step lengths<br>
2 : Display step/safety info on point location<br>
3 : Display minimal state at -every- step<br>
4 : Maximum verbosity (very detailed!)<br>
NOTE: this command has effect -only- if Geant4 has<br>
been installed with the G4VERBOSE flag set!<br>
<p><dd>Range : level &gt;=0 &amp;&amp; level &lt;=4
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>level
<td>type i
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>check_mode [<i>checkFlag</i>]</b>
<p><dd>
Set navigator in -check_mode- state.<br>
This will cause extra checks to be applied during<br>
navigation. More strict and less tolerant conditions<br>
are applied. A run-time performance penalty may be<br>
observed when the -check_mode- state is activated.<br>
NOTE: this command has effect -only- if Geant4 has<br>
been installed with the G4VERBOSE flag set!<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>checkFlag
<td>type b
<td>Omittable : default value = 0
<td></table>
</dl></body></html>

View File

@ -0,0 +1,208 @@
<html><head><title>Commands in /geometry/test/</title></head>
<body bgcolor="#ffffff"><h2>/geometry/test/</h2><p>
Geometry verification control setup.<br>
Helps in detecting possible overlapping regions.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>tolerance [<i>Tolerance</i>] [<i>Unit</i>]</b>
<p><dd>
Set error tolerance value.<br>
Initial default value: 1E-4*mm.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Tolerance
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Unit
<td>type s
<td>Omittable : default value = mm
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
<p><br><p><dt><b>position [<i>X</i>] [<i>Y</i>] [<i>Z</i>] [<i>Unit</i>]</b>
<p><dd>
Set starting position for the line_test.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>X
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Y
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Z
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Unit
<td>type s
<td>Omittable : default value = cm
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
<p><br><p><dt><b>direction [<i>Px</i>] [<i>Py</i>] [<i>Pz</i>] [<i>Unit</i>]</b>
<p><dd>
Set momentum direction for the line_test.<br>
Direction needs not to be a unit vector.<br>
<p><dd>Range : Px != 0 || Py != 0 || Pz != 0
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Px
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Py
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Pz
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Unit
<td>type s
<td><td></table>
<p><br><p><dt><b>line_test [<i>recursionFlag</i>]</b>
<p><dd>
Performs test along a single specified direction/position.<br>
Use position and direction commands to change default.<br>
Initial default: position(0,0,0), direction(0,0,1).<br>
If recursion flag is set to TRUE, the intersection checks<br>
will be performed recursively in the geometry tree.<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>recursionFlag
<td>type b
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>grid_cells [<i>X</i>] [<i>Y</i>] [<i>Z</i>]</b>
<p><dd>
Define resolution of grid geometry as number of cells,<br>
specifying them for each dimension, X, Y and Z.<br>
Will be applied to grid_test and recursive_test commands.<br>
Initial default values: X=100, Y=100, Z=100.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>X
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Y
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Z
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
<p><br><p><dt><b>grid_test [<i>recursionFlag</i>]</b>
<p><dd>
Start running the default grid test.<br>
A grid of lines parallel to a cartesian axis is used;<br>
By default, only direct daughters of the mother volumes are checked.<br>
If recursion flag is set to TRUE, the intersection checks<br>
will be performed recursively in the geometry tree.<br>
NOTE: the recursion may take a very long time,<br>
depending on the geometry complexity !<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>recursionFlag
<td>type b
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>cylinder_geometry [<i>nPhi</i>] [<i>nZ</i>] [<i>nRho</i>]</b>
<p><dd>
Define details of the cylinder geometry, specifying:<br>
nPhi - number of lines per Phi<br>
nZ - number of Z points<br>
nRho - number of Rho points<br>
Will be applied to the cylinder_test command.<br>
Initial default values: nPhi=90, nZ=50, nRho=50.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>nPhi
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>nZ
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>nRho
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
<p><br><p><dt><b>cylinder_scaleZ [<i>fracZ</i>]</b>
<p><dd>
Define the resolution of the cylinder geometry, specifying<br>
the fraction scale for points along Z.<br>
Initial default values: fracZ=0.8<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>fracZ
<td>type d
<td>Omittable : default value = 0.8
<td></table>
<p><br><p><dt><b>cylinder_scaleRho [<i>fracRho</i>]</b>
<p><dd>
Define the resolution of the cylinder geometry, specifying<br>
the fraction scale for points along Rho.<br>
Initial default values: fracRho=0.8<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>fracRho
<td>type d
<td>Omittable : default value = 0.8
<td></table>
<p><br><p><dt><b>cylinder_test [<i>recursionFlag</i>]</b>
<p><dd>
Start running the cylinder test.<br>
A set of lines in a cylindrical pattern of gradually<br>
increasing mesh size.<br>
By default, only direct daughters of the mother volumes are checked.<br>
If recursion flag is set to TRUE, the intersection checks<br>
will be performed recursively in the geometry tree.<br>
NOTE: the recursion may take a very long time,<br>
depending on the geometry complexity !<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>recursionFlag
<td>type b
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>recursion_start [<i>initial_level</i>]</b>
<p><dd>
Set the initial level in the geometry tree for recursion.<br>
recursive_test will then start from the specified level.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>initial_level
<td>type i
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>recursion_depth [<i>recursion_depth</i>]</b>
<p><dd>
Set the depth in the geometry tree for recursion.<br>
recursive_test will then stop after reached the specified depth.<br>
By default, recursion will proceed for the whole depth.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>recursion_depth
<td>type i
<td>Omittable : default value = -1
<td></table>
<p><br><p><dt><b>run [<i>recursionFlag</i>]</b>
<p><dd>
Start running the default grid test.<br>
Same as the grid_test command.<br>
If recursion flag is set to TRUE, the intersection checks<br>
will be performed recursively in the geometry tree.<br>
NOTE: the recursion may take a very long time,<br>
depending on the geometry complexity !<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>recursionFlag
<td>type b
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>recursive_test</b>
<p><dd>
Start running the recursive grid test.<br>
A grid of lines along a cartesian axis is recursively<br>
to all daughters and daughters of daughters, etc.<br>
NOTE: it may take a very long time,<br>
depending on the geometry complexity !<br>
<p><dd>Available Geant4 state(s) : Idle
</dl></body></html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,38 @@
<html><head><title>Commands in /hits/</title></head>
<body bgcolor="#ffffff"><h2>/hits/</h2><p>
Sensitive detectors and Hits<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>list</b>
<p><dd>
List sensitive detector tree.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>activate [<i>detector</i>]</b>
<p><dd>
Activate sensitive detector(s).<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>detector
<td>type s
<td>Omittable : default value = /
<td></table>
<p><br><p><dt><b>inactivate [<i>detector</i>]</b>
<p><dd>
Inactivate sensitive detector(s).<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>detector
<td>type s
<td>Omittable : default value = /
<td></table>
<p><br><p><dt><b>verbose [<i>level</i>]</b>
<p><dd>
Set the Verbose level.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>level
<td>type i
<td><td></table>
</dl></body></html>

View File

@ -0,0 +1,51 @@
<html><head><title>Commands in /lemuGun/</title></head>
<body bgcolor="#ffffff"><h2>/lemuGun/</h2><p>
LEMuSR particle shooting control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_lemuGun_scan_.html">/lemuGun/scan/</a>
<p><dd>...Title not available...
<p><br><p><dt><a href="_lemuGun_energy_.html">/lemuGun/energy/</a>
<p><dd>...Title not available...
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>gunPosition [<i>X [cm]</i>] [<i>Y [cm]</i>] [<i>Z [cm]</i>]</b>
<p><dd>
Set Gun Position &gt;&gt; IN CENTIMETERS.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>X [cm]
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Y [cm]
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Z [cm]
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
<p><br><p><dt><b>MomentumDirection [<i>momX </i>] [<i>momY </i>] [<i>momZ </i>]</b>
<p><dd>
Set momentum direction &gt;&gt; sum must equal one.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>momX
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>momY
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>momZ
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
<p><br><p><dt><b>particle [<i>Particle types: mu+/Mu or other.</i>]</b>
<p><dd>
Particles to be shot<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Particle types: mu+/Mu or other.
<td>type s
<td>Omittable : default value = mu+
<td></table>
</dl></body></html>

View File

@ -0,0 +1,54 @@
<html><head><title>Commands in /lemuGun/energy/</title></head>
<body bgcolor="#ffffff"><h2>/lemuGun/energy/</h2><p>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>defined [<i>Energy in [keV]</i>]</b>
<p><dd>
Energy Value &gt;&gt; IN keV
<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>Energy in [keV]
<td>type d
<td><td></table>
<p><br><p><dt><b>offset [<i>KEoffset in [keV]; default value 3.73</i>]</b>
<p><dd>
KEoffset Value &gt;&gt; IN keV
<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>KEoffset in [keV]; default value 3.73
<td>type d
<td><td></table>
<p><br><p><dt><b>random [<i>Random Energy: on/off</i>]</b>
<p><dd>
Gaussian energy distribution with default mean 20 kev and 0.5 kev deviation<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Random Energy: on/off
<td>type s
<td>Omittable : default value = on
<td></table>
<p><br><p><dt><b>gauss [<i>Mean Energy</i>] [<i>Standard Deviation</i>] [<i></i>]</b>
<p><dd>
Gaussian energy distribution with specified mean and standard deviation
ENTER VALUES &gt;&gt; IN keV <br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Mean Energy
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Standard Deviation
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
</dl></body></html>

View File

@ -0,0 +1,61 @@
<html><head><title>Commands in /lemuGun/scan/</title></head>
<body bgcolor="#ffffff"><h2>/lemuGun/scan/</h2><p>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>square [<i>X range [cm]</i>] [<i>Y range [cm]</i>] [<i>Number of bins</i>]</b>
<p><dd>
Gun scan: xrange yrange nbins
Shoot right number of particles to fill.
xrange and yrange are divided in nbins.
<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>X range [cm]
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Y range [cm]
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Number of bins
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
<p><br><p><dt><b>circular [<i>Radius [cm]</i>] [<i>Number of step along radius</i>] [<i>Number of steps along angle</i>]</b>
<p><dd>
Gun scan: radius Rsteps ThetaSteps
Shoot Rsteps*Thetasteps particles to fill.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Radius [cm]
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Number of step along radius
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Number of steps along angle
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
<p><br><p><dt><b>gauss [<i>Radius [cm]</i>] [<i>Number of step along radius</i>] [<i>Number of steps along angle</i>]</b>
<p><dd>
Gun gauss scan:.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Radius [cm]
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Number of step along radius
<td>type d
<td>Omittable : current value is used as the default value.
<td><tr><td>Number of steps along angle
<td>type d
<td>Omittable : current value is used as the default value.
<td></table>
<p><br><p><dt><b>reset</b>
<p><dd>
Reset the counters for scanning<br>
<p><dd>Available at all Geant4 states.
</dl></body></html>

View File

@ -0,0 +1,39 @@
<html><head><title>Commands in /particle/</title></head>
<body bgcolor="#ffffff"><h2>/particle/</h2><p>
Particle control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_particle_property_.html">/particle/property/</a>
<p><dd>Paricle Table control commands.
<p><br><p><dt><a href="_particle_process_.html">/particle/process/</a>
<p><dd>Process Manager control commands.
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>select [<i>particle name</i>]</b>
<p><dd>
Select particle <br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>particle name
<td>type s
<td><td></table>
<p><br><p><dt><b>list [<i>particle type</i>]</b>
<p><dd>
List name of particles.<br>
all(default)/lepton/baryon/meson/nucleus/quarks<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>particle type
<td>type s
<td>Omittable : default value = all
<td>Parameter candidates : all lepton baryon meson nucleus quarks
</table>
<p><br><p><dt><b>find [<i>encoding</i>]</b>
<p><dd>
Find particle by encoding<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>encoding
<td>type i
<td><td></table>
</dl></body></html>

View File

@ -0,0 +1,61 @@
<html><head><title>Commands in /particle/process/</title></head>
<body bgcolor="#ffffff"><h2>/particle/process/</h2><p>
Process Manager control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>dump [<i>index</i>]</b>
<p><dd>
dump process manager or process information<br>
dump [process index]<br>
process index: -1 for process manager<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>index
<td>type i
<td>Omittable : default value = -1
<td></table>
<p><br><p><dt><b>verbose [<i>Verbose</i>] [<i>index</i>]</b>
<p><dd>
Set Verbose Level for Process or Process Manager<br>
Verbose [Verbose] [process index]<br>
process index: -1 for process manager<br>
<p><dd>Available Geant4 state(s) : PreInit
Init
Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>Verbose
<td>type i
<td>Omittable : default value = 1
<td><tr><td>index
<td>type i
<td>Omittable : default value = -1
<td></table>
<p><br><p><dt><b>activate [<i>index</i>]</b>
<p><dd>
Activate process <br>
Activate [process index]<br>
<p><dd>Range : index &gt;=0
<p><dd>Available Geant4 state(s) : Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>index
<td>type i
<td><td></table>
<p><br><p><dt><b>inactivate [<i>index</i>]</b>
<p><dd>
Inactivate process <br>
inactivate [process index]<br>
<p><dd>Range : index &gt;=0
<p><dd>Available Geant4 state(s) : Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>index
<td>type i
<td><td></table>
</dl></body></html>

View File

@ -0,0 +1,55 @@
<html><head><title>Commands in /particle/property/</title></head>
<body bgcolor="#ffffff"><h2>/particle/property/</h2><p>
Paricle Table control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_particle_property_decay_.html">/particle/property/decay/</a>
<p><dd>Decay Table control commands.
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>dump</b>
<p><dd>
dump particle properties.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>stable [<i>stable</i>]</b>
<p><dd>
Set stable flag.<br>
false: Unstable true: Stable<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
GeomClosed
<p><dd>Parameters<table border=1>
<tr><td>stable
<td>type b
<td><td></table>
<p><br><p><dt><b>lifetime [<i>life</i>] [<i>Unit</i>]</b>
<p><dd>
Set life time.<br>
Unit of the time can be :<br>
s, ms, ns (default)<br>
<p><dd>Range : life &gt;0.0
<p><dd>Available Geant4 state(s) : PreInit
Idle
GeomClosed
<p><dd>Parameters<table border=1>
<tr><td>life
<td>type d
<td><td><tr><td>Unit
<td>type s
<td>Omittable : default value = ns
<td>Parameter candidates : s ms mus ns ps second millisecond microsecond nanosecond picosecond
</table>
<p><br><p><dt><b>verbose [<i>verbose_level</i>]</b>
<p><dd>
Set Verbose level of particle property.<br>
0 : Silent (default)<br>
1 : Display warning messages<br>
2 : Display more<br>
<p><dd>Range : verbose_level &gt;=0
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>verbose_level
<td>type i
<td>Omittable : default value = 0
<td></table>
</dl></body></html>

View File

@ -0,0 +1,31 @@
<html><head><title>Commands in /particle/property/decay/</title></head>
<body bgcolor="#ffffff"><h2>/particle/property/decay/</h2><p>
Decay Table control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>select [<i>mode</i>]</b>
<p><dd>
Enter index of decay mode.<br>
<p><dd>Range : mode &gt;=0
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>mode
<td>type i
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>dump</b>
<p><dd>
Dump decay mode information.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>br [<i>br</i>]</b>
<p><dd>
Set branching ratio. [0&lt; BR &lt;1.0]<br>
<p><dd>Range : (br &gt;=0.0) &amp;&amp; (br &lt;=1.0)
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>br
<td>type d
<td><td></table>
</dl></body></html>

View File

@ -0,0 +1,106 @@
<html><head><title>Commands in /process/</title></head>
<body bgcolor="#ffffff"><h2>/process/</h2><p>
Process Table control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_process_eLoss_.html">/process/eLoss/</a>
<p><dd>Commands for G4VEnergyLoss.
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>list [<i>type</i>]</b>
<p><dd>
List up process names<br>
list [type] <br>
type: process type [all:for all proceeses]<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>type
<td>type s
<td>Omittable : default value = all
<td>Parameter candidates : all NotDefined Transportation Electromagnetic Optical Hadronic Photolepton_hadron Decay General Parameterisation UserDefined
</table>
<p><br><p><dt><b>verbose [<i>verbose</i>]</b>
<p><dd>
Set Verbose Level for Process Table<br>
verbose [level]<br>
level: verbose level<br>
<p><dd>Range : verbose &gt;=0
<p><dd>Available Geant4 state(s) : PreInit
Init
Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>verbose
<td>type i
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>setVerbose [<i>verbose</i>] [<i>type</i>]</b>
<p><dd>
Set verbose level for processes<br>
setVerbose level [type or name] <br>
level: verbose level <br>
name : process name <br>
type : process type <br>
[all] for all proceeses <br>
<p><dd>Available Geant4 state(s) : Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>verbose
<td>type i
<td><td><tr><td>type
<td>type s
<td>Omittable : default value = all
<td></table>
<p><br><p><dt><b>dump [<i>procName</i>] [<i>particle</i>]</b>
<p><dd>
Dump process information<br>
dump name [particle]<br>
name: process name or type name<br>
particle: particle name [all: for all particles]<br>
<p><dd>Available Geant4 state(s) : Init
Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>procName
<td>type s
<td><td><tr><td>particle
<td>type s
<td>Omittable : default value = all
<td></table>
<p><br><p><dt><b>activate [<i>procName</i>] [<i>particle</i>]</b>
<p><dd>
Activate processes <br>
Activate name [particle]<br>
name: process name or type name<br>
particle: particle name [all: for all particles]<br>
<p><dd>Available Geant4 state(s) : Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>procName
<td>type s
<td><td><tr><td>particle
<td>type s
<td>Omittable : default value = all
<td></table>
<p><br><p><dt><b>inactivate [<i>procName</i>] [<i>particle</i>]</b>
<p><dd>
Inactivate process <br>
Inactivate processes <br>
Inactivate name [particle]<br>
name: process name or type name<br>
particle: particle name [all: for all particles]<br>
<p><dd>Available Geant4 state(s) : Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>procName
<td>type s
<td><td><tr><td>particle
<td>type s
<td>Omittable : default value = all
<td></table>
</dl></body></html>

View File

@ -0,0 +1,125 @@
<html><head><title>Commands in /process/eLoss/</title></head>
<body bgcolor="#ffffff"><h2>/process/eLoss/</h2><p>
Commands for G4VEnergyLoss.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>rndmStep [<i>choice</i>]</b>
<p><dd>
Randomize the proposed step by eLoss.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>choice
<td>type b
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>fluct [<i>choice</i>]</b>
<p><dd>
Switch true/false the energy loss fluctuations.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>choice
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>subsec [<i>choice</i>]</b>
<p><dd>
Switch true/false the subcutoff generation.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>choice
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>minsubsec [<i>rcmin</i>] [<i>Unit</i>]</b>
<p><dd>
Set the min. cut for subcutoff delta in range.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>rcmin
<td>type d
<td>Omittable : default value =
<td><tr><td>Unit
<td>type s
<td><td></table>
<p><br><p><dt><b>StepFunction [<i>dRoverR</i>] [<i>finalRange</i>] [<i>unit</i>]</b>
<p><dd>
Set the energy loss step limitation parameters.<br>
dRoverR : max Range variation per step<br>
finalRange: range for final step<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>dRoverR
<td>type d
<td><td>Parameter range : dRoverR&gt;0. &amp;&amp; dRoverR&lt;=1.
<tr><td>finalRange
<td>type d
<td><td>Parameter range : finalRange&gt;0.
<tr><td>unit
<td>type s
<td>Omittable : default value = mm
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
<p><br><p><dt><b>minKinEnergy [<i>emin</i>] [<i>Unit</i>]</b>
<p><dd>
Set the min kinetic energy<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>emin
<td>type d
<td>Omittable : default value =
<td><tr><td>Unit
<td>type s
<td><td>Parameter candidates : eV keV MeV GeV TeV PeV J electronvolt kiloelectronvolt megaelectronvolt gigaelectronvolt teraelectronvolt petaelectronvolt joule
</table>
<p><br><p><dt><b>maxKinEnergy [<i>emax</i>] [<i>Unit</i>]</b>
<p><dd>
Set the max kinetic energy<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>emax
<td>type d
<td>Omittable : default value =
<td><tr><td>Unit
<td>type s
<td><td>Parameter candidates : eV keV MeV GeV TeV PeV J electronvolt kiloelectronvolt megaelectronvolt gigaelectronvolt teraelectronvolt petaelectronvolt joule
</table>
<p><br><p><dt><b>integral [<i>integ</i>]</b>
<p><dd>
Switch true/false the integration of cross section over step.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>integ
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>preciseRange [<i>range</i>]</b>
<p><dd>
Switch true/false the precise range calculation.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>range
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>verbose [<i>verb</i>]</b>
<p><dd>
Set verbose level for EM physics.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>verb
<td>type i
<td>Omittable : default value = 1
<td></table>
</dl></body></html>

View File

@ -0,0 +1,54 @@
<html><head><title>Commands in /random/</title></head>
<body bgcolor="#ffffff"><h2>/random/</h2><p>
Random number status control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>setDirectoryName [<i>fileName</i>]</b>
<p><dd>
Define the directory name of the rndm status files.<br>
Directory must be creates before storing the files.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
GeomClosed
<p><dd>Parameters<table border=1>
<tr><td>fileName
<td>type s
<td>Omittable : default value = ./
<td></table>
<p><br><p><dt><b>setSavingFlag [<i>flag</i>]</b>
<p><dd>
The randomNumberStatus will be saved at :<br>
begining of run (currentRun.rndm) and begining of event (currentEvent.rndm) <br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>saveThisRun</b>
<p><dd>
copy currentRun.rndm to runXXX.rndm<br>
<p><dd>Available Geant4 state(s) : Idle
GeomClosed
EventProc
<p><br><p><dt><b>saveThisEvent</b>
<p><dd>
copy currentEvent.rndm to runXXXevtYYY.rndm<br>
<p><dd>Available Geant4 state(s) : EventProc
<p><br><p><dt><b>resetEngineFrom [<i>fileName</i>]</b>
<p><dd>
Reset the status of the rndm engine from a file.<br>
See CLHEP manual for detail.<br>
The engine status must be stored beforehand.<br>
Directory of the status file should be set by /random/setDirectoryName.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
GeomClosed
<p><dd>Parameters<table border=1>
<tr><td>fileName
<td>type s
<td>Omittable : default value = currentRun.rndm
<td></table>
</dl></body></html>

View File

@ -0,0 +1,206 @@
<html><head><title>Commands in /run/</title></head>
<body bgcolor="#ffffff"><h2>/run/</h2><p>
Run control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_run_particle_.html">/run/particle/</a>
<p><dd>Commands for G4VUserPhysicsList.
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>initialize</b>
<p><dd>
Initialize G4 kernel.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><br><p><dt><b>beamOn [<i>numberOfEvent</i>] [<i>macroFile</i>] [<i>nSelect</i>]</b>
<p><dd>
Start a Run.<br>
If G4 kernel is not initialized, it will be initialized.<br>
Default number of events to be processed is 1.<br>
The second and third arguments can be used for<br>
executing a macro file at the end of each event.<br>
If the second argument, i.e. name of the macro<br>
file, is given but the third argument is not,<br>
the macro file will be executed for all of the<br>
event.<br>
If the third argument (nSelect) is given, the<br>
macro file will be executed only for the first<br>
nSelect events.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>numberOfEvent
<td>type i
<td>Omittable : default value = 1
<td>Parameter range : numberOfEvent &gt;= 0
<tr><td>macroFile
<td>type s
<td>Omittable : default value = ***NULL***
<td><tr><td>nSelect
<td>type i
<td>Omittable : default value = -1
<td>Parameter range : nSelect&gt;=-1
</table>
<p><br><p><dt><b>verbose [<i>level</i>]</b>
<p><dd>
Set the Verbose level of G4RunManager.<br>
0 : Silent (default)<br>
1 : Display main topics<br>
2 : Display main topics and run summary<br>
<p><dd>Range : level &gt;=0 &amp;&amp; level &lt;=2
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>level
<td>type i
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>dumpRegion [<i>regionName</i>]</b>
<p><dd>
Dump region information.<br>
In case name of a region is not given, all regions will be displayed.<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>regionName
<td>type s
<td>Omittable : default value = **ALL**
<td></table>
<p><br><p><dt><b>dumpCouples</b>
<p><dd>
Dump material-cuts-couple information.<br>
Note that material-cuts-couple information is updated<br>
after BeamOn has started.<br>
<p><dd>Available Geant4 state(s) : Idle
<p><br><p><dt><b>optimizeGeometry [<i>optimizeFlag</i>]</b>
<p><dd>
Set the optimization flag for geometry.<br>
If it is set to TRUE, G4GeometryManager will optimize<br>
the geometry definitions.<br>
GEANT4 is initialized with this flag as TRUE.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>optimizeFlag
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>breakAtBeginOfEvent [<i>flag</i>]</b>
<p><dd>
Set a break point at the begining of every event.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>breakAtEndOfEvent [<i>flag</i>]</b>
<p><dd>
Set a break point at the end of every event.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>abort [<i>softAbort</i>]</b>
<p><dd>
Abort current run processing.<br>
If softAbort is false (default), currently processing event will be immediately aborted,<br>
while softAbort is true, abortion occurs after processing the current event.<br>
<p><dd>Available Geant4 state(s) : GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>softAbort
<td>type b
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>abortCurrentEvent</b>
<p><dd>
Abort currently processing event.<br>
<p><dd>Available Geant4 state(s) : EventProc
<p><br><p><dt><b>geometryModified</b>
<p><dd>
Force geometry to be closed again.<br>
This command must be applied<br>
if geometry has been modified after the<br>
first initialization (or BeamOn).<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><br><p><dt><b>physicsModified</b>
<p><dd>
Force all physics tables recalculated again.<br>
This command must be applied<br>
if physics process has been modified after the<br>
first initialization (or BeamOn).<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><br><p><dt><b>cutoffModified</b>
<p><dd>
/run/cutoffModified becomes obsolete.<br>
It is safe to remove invoking this command.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>randomNumberStatusDirectory [<i>fileName</i>]</b>
<p><dd>
Define the directory name of the rndm status files.<br>
Directory must be creates before storing the files.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
GeomClosed
<p><dd>Parameters<table border=1>
<tr><td>fileName
<td>type s
<td>Omittable : default value = ./
<td></table>
<p><br><p><dt><b>storeRandomNumberStatus [<i>flag</i>]</b>
<p><dd>
The randomNumberStatus will be saved at :<br>
begining of run (currentRun.rndm) and begining of event (currentEvent.rndm) <br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type i
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>restoreRandomNumberStatus [<i>fileName</i>]</b>
<p><dd>
Reset the status of the rndm engine from a file.<br>
See CLHEP manual for detail.<br>
The engine status must be stored beforehand.<br>
Directory of the status file should be set by /random/setDirectoryName.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
GeomClosed
<p><dd>Parameters<table border=1>
<tr><td>fileName
<td>type s
<td>Omittable : default value = currentRun.rndm
<td></table>
<p><br><p><dt><b>setCut [<i>cut</i>] [<i>Unit</i>]</b>
<p><dd>
Set default cut value <br>
<p><dd>Range : cut &gt;0.0
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>cut
<td>type d
<td><td><tr><td>Unit
<td>type s
<td>Omittable : default value = mm
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
<p><br><p><dt><b>setCutForRegion [<i>Region</i>] [<i>cut</i>] [<i>Unit</i>]</b>
<p><dd>
Set cut value for a region<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>Region
<td>type s
<td><td><tr><td>cut
<td>type d
<td><td>Parameter range : cut &gt;0.0
<tr><td>Unit
<td>type s
<td>Omittable : default value = mm
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
</dl></body></html>

View File

@ -0,0 +1,140 @@
<html><head><title>Commands in /run/particle/</title></head>
<body bgcolor="#ffffff"><h2>/run/particle/</h2><p>
Commands for G4VUserPhysicsList.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>verbose [<i>level</i>]</b>
<p><dd>
Set the Verbose level of G4VUserPhysicsList.<br>
0 : Silent (default)<br>
1 : Display warning messages<br>
2 : Display more<br>
<p><dd>Range : level &gt;=0 &amp;&amp; level &lt;=3
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>level
<td>type i
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>setCut [<i>cut</i>] [<i>Unit</i>]</b>
<p><dd>
Set default cut value <br>
This command is equivallent to /run/setCut command.<br>
This command is kept for backward compatibility.<br>
<p><dd>Range : cut &gt;0.0
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>cut
<td>type d
<td><td><tr><td>Unit
<td>type s
<td>Omittable : default value = mm
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
<p><br><p><dt><b>dumpList</b>
<p><dd>
Dump List of particles in G4VUserPhysicsList. <br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>addProcManager [<i>particleType</i>]</b>
<p><dd>
add process manager to specified particle type<br>
<p><dd>Available Geant4 state(s) : Init
Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>particleType
<td>type s
<td>Omittable : default value =
<td></table>
<p><br><p><dt><b>buildPhysicsTable [<i>particleType</i>]</b>
<p><dd>
build physics table of specified particle type<br>
<p><dd>Available Geant4 state(s) : Init
Idle
GeomClosed
EventProc
<p><dd>Parameters<table border=1>
<tr><td>particleType
<td>type s
<td>Omittable : default value =
<td></table>
<p><br><p><dt><b>storePhysicsTable [<i>dirName</i>]</b>
<p><dd>
Store Physics Table<br>
Enter directory name<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>dirName
<td>type s
<td>Omittable : default value =
<td></table>
<p><br><p><dt><b>retrievePhysicsTable [<i>dirName</i>]</b>
<p><dd>
Retrieve Physics Table<br>
Enter directory name or OFF to switch off<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>dirName
<td>type s
<td>Omittable : default value =
<td></table>
<p><br><p><dt><b>setStoredInAscii [<i>ascii</i>]</b>
<p><dd>
Switch on/off ascii mode in store/retreive Physics Table<br>
Enter 0(binary) or 1(ascii)<br>
<p><dd>Range : ascii ==0 || ascii ==1
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>ascii
<td>type i
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>applyCuts [<i>Flag</i>] [<i>Particle</i>]</b>
<p><dd>
Set applyCuts flag for a particle.<br>
Some EM processes which do not have infrared divergence<br>
may generate gamma, e- and/or e+ with kinetic energies<br>
below the production threshold. By setting this flag,<br>
such secondaries below threshold are eliminated and<br>
kinetic energies of such secondaries are accumulated<br>
to the energy deposition of their mother.<br>
Note that 'applyCuts' makes sense only for gamma,<br>
e- and e+. If this command is issued for other particle,<br>
a warning message is displayed and the command is<br>
ignored.<br>
If particle name is 'all', this command affects on<br>
gamma, e- and e+.<br>
<p><dd>Available Geant4 state(s) : PreInit
Init
Idle
<p><dd>Parameters<table border=1>
<tr><td>Flag
<td>type s
<td>Omittable : default value = true
<td><tr><td>Particle
<td>type s
<td>Omittable : default value = all
<td></table>
<p><br><p><dt><b>dumpCutValues [<i>particle</i>]</b>
<p><dd>
Dump a list of production threshold values in range and energy<br>
for all registered material-cuts-couples.<br>
Dumping a list takes place when you issue 'beamOn' and<br>
actual conversion tables from range to energy are available.<br>
If you want a list 'immediately', use '/run/dumpRegion' for threshold<br>
list given in gange only. Also, '/run/dumpCouples' gives you the<br>
current list if you have already issued 'run/beamOn' at least once.<br>
<p><dd>Available Geant4 state(s) : PreInit
Idle
<p><dd>Parameters<table border=1>
<tr><td>particle
<td>type s
<td>Omittable : default value = all
<td></table>
</dl></body></html>

View File

@ -0,0 +1,47 @@
<html><head><title>Commands in /tracking/</title></head>
<body bgcolor="#ffffff"><h2>/tracking/</h2><p>
TrackingManager and SteppingManager control commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>abort</b>
<p><dd>
Abort current G4Track processing.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>resume</b>
<p><dd>
Resume current G4Track processing.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>storeTrajectory [<i>Store</i>]</b>
<p><dd>
Store trajectories or not.<br>
1 : Store trajectories.<br>
0 : Don't Store trajectories.<br>
<p><dd>Range : Store &gt;=0 &amp;&amp; Store &lt;= 1
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Store
<td>type i
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>verbose [<i>verbose_level</i>]</b>
<p><dd>
Set Verbose level of tracking category.<br>
0 : Silent.<br>
1 : Minium information of each Step.<br>
2 : Addition to Level=1, info of secondary particles.<br>
3 : Addition to Level=1, pre/postStepoint information<br>
after all AlongStep/PostStep process executions.<br>
4 : Addition to Level=3, pre/postStepoint information<br>
at each AlongStepPostStep process execuation.<br>
5 : Addition to Level=4, proposed Step length information<br>
from each AlongStepPostStep process.<br>
<p><dd>Range : verbose_level &gt;=0
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>verbose_level
<td>type i
<td>Omittable : default value = 0
<td></table>
</dl></body></html>

View File

@ -0,0 +1,12 @@
<html><head><title>Commands in /units/</title></head>
<body bgcolor="#ffffff"><h2>/units/</h2><p>
Available units.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>list</b>
<p><dd>
full list of available units.<br>
<p><dd>Available at all Geant4 states.
</dl></body></html>

View File

@ -0,0 +1,145 @@
<html><head><title>Commands in /vis/</title></head>
<body bgcolor="#ffffff"><h2>/vis/</h2><p>
Visualization commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_vis_ASCIITree_.html">/vis/ASCIITree/</a>
<p><dd>Commands for ASCIITree control.
<p><br><p><dt><a href="_vis_GAGTree_.html">/vis/GAGTree/</a>
<p><dd>Commands for GAGTree control.
<p><br><p><dt><a href="_vis_heprep_.html">/vis/heprep/</a>
<p><dd>HepRep commands.
<p><br><p><dt><a href="_vis_rayTracer_.html">/vis/rayTracer/</a>
<p><dd>RayTracer commands.
<p><br><p><dt><a href="_vis_scene_.html">/vis/scene/</a>
<p><dd>Operations on Geant4 scenes.
<p><br><p><dt><a href="_vis_sceneHandler_.html">/vis/sceneHandler/</a>
<p><dd>Operations on Geant4 scene handlers.
<p><br><p><dt><a href="_vis_viewer_.html">/vis/viewer/</a>
<p><dd>Operations on Geant4 viewers.
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>enable [<i>enabled</i>]</b>
<p><dd>
Enables/disables visualization system.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>enabled
<td>type b
<td>Omittable : default value = 1
<td></table>
<p><br><p><dt><b>disable</b>
<p><dd>
Disables visualization system.<br>
<p><dd>Available at all Geant4 states.
<p><br><p><dt><b>verbose [<i>verbosity</i>]</b>
<p><dd>
Simple graded message scheme - digit or string (1st character defines):<br>
0) quiet, // Nothing is printed.<br>
1) startup, // Startup and endup messages are printed...<br>
2) errors, // ...and errors...<br>
3) warnings, // ...and warnings...<br>
4) confirmations, // ...and confirming messages...<br>
5) parameters, // ...and parameters of scenes and views...<br>
6) all // ...and everything available.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>verbosity
<td>type s
<td>Omittable : default value = warnings
<td></table>
<p><br><p><dt><b>drawTree [<i>physical-volume-name</i>] [<i>system</i>]</b>
<p><dd>
(DTREE) Creates a scene consisting of this physical volume and
produces a representation of the geometry hieracrhy.<br>
The scene becomes current.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>physical-volume-name
<td>type s
<td>Omittable : default value = world
<td><tr><td>system
<td>type s
<td>Omittable : default value = ATree
<td></table>
<p><br><p><dt><b>drawView [<i>theta-degrees</i>] [<i>phi-degrees</i>] [<i>pan-right</i>] [<i>pan-up</i>] [<i>pan-unit</i>] [<i>zoom-factor</i>] [<i>dolly</i>] [<i>dolly-unit</i>]</b>
<p><dd>
Draw view from this angle, etc.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>theta-degrees
<td>type d
<td>Omittable : default value = 0
<td><tr><td>phi-degrees
<td>type d
<td>Omittable : default value = 0
<td><tr><td>pan-right
<td>type d
<td>Omittable : default value = 0
<td><tr><td>pan-up
<td>type d
<td>Omittable : default value = 0
<td><tr><td>pan-unit
<td>type s
<td>Omittable : default value = cm
<td><tr><td>zoom-factor
<td>type d
<td>Omittable : default value = 1
<td><tr><td>dolly
<td>type d
<td>Omittable : default value = 0
<td><tr><td>dolly-unit
<td>type s
<td>Omittable : default value = cm
<td></table>
<p><br><p><dt><b>drawVolume [<i>physical-volume-name</i>]</b>
<p><dd>
Creates a scene consisting of this physical volume and asks the
current viewer to draw it.<br>
The scene becomes current.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>physical-volume-name
<td>type s
<td>Omittable : default value = world
<td></table>
<p><br><p><dt><b>open [<i>graphics-system-name</i>] [<i>window-size-hint</i>]</b>
<p><dd>
Creates a scene handler ready for drawing.<br>
The scene handler becomes current (the name is auto-generated).<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>graphics-system-name
<td>type s
<td><td>Parameter candidates : ATree DAWNFILE GAGTree HepRepFile HepRepXML RayTracer VRML1FILE VRML2FILE DAWN OGLIX OGLSX
<tr><td>window-size-hint
<td>type i
<td>Omittable : default value = 600
<td></table>
<p><br><p><dt><b>specify [<i>logical-volume-name</i>] [<i>depth-of-descent</i>] [<i>booleans-flag</i>] [<i>voxels-flag</i>] [<i>readout-flag</i>]</b>
<p><dd>
Draws logical volume with Boolean components, voxels and readout geometry.<br>
Creates a scene consisting of this logical volume and asks the
current viewer to draw it to the specified depth of descent
showing boolean components (if any), voxels (if any)
and readout geometry (if any), under control of the appropriate flag.<br>
Note: voxels are not constructed until start of run - /run/beamOn.<br>
The scene becomes current.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>logical-volume-name
<td>type s
<td><td><tr><td>depth-of-descent
<td>type i
<td>Omittable : default value = 1
<td><tr><td>booleans-flag
<td>type b
<td>Omittable : default value = 1
<td><tr><td>voxels-flag
<td>type b
<td>Omittable : default value = 1
<td><tr><td>readout-flag
<td>type b
<td>Omittable : default value = 1
<td></table>
</dl></body></html>

View File

@ -0,0 +1,35 @@
<html><head><title>Commands in /vis/ASCIITree/</title></head>
<body bgcolor="#ffffff"><h2>/vis/ASCIITree/</h2><p>
Commands for ASCIITree control.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
<p><br><p><dt><a href="_vis_ASCIITree_set_.html">/vis/ASCIITree/set/</a>
<p><dd>Settings for ASCIITree control.
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>verbose [<i>verbosity</i>]</b>
<p><dd>
&lt; 10: - does not print daughters of repeated placements, does not repeat replicas.<br>
&gt;= 10: prints all physical volumes.<br>
The level of detail is given by the units (verbosity%10):<br>
&gt;= 0: prints physical volume name.<br>
&gt;= 1: prints logical volume name (and names of sensitive detector and readout geometry, if any).<br>
&gt;= 2: prints solid name and type.<br>
&gt;= 3: prints volume and density.<br>
&gt;= 4: prints mass of each top physical volume in scene to depth specified.<br>
&gt;= 5: prints mass of branch at each volume (can be time consuming).<br>
Note: by default, culling is switched off so all volumes are seen.<br>
Note: the mass calculation takes into account daughters, normally to unlimited depth, which can be time consuuming. If you want the mass of a particular subtree to a particular depth:<br>
/vis/open ATree<br>
/vis/ASCIITree/verbose 14<br>
/vis/scene/create<br>
/vis/scene/add/volume &lt;subtree-physical-volume&gt; ! &lt;depth&gt;<br>
/vis/sceneHandler/attach<br>
/vis/viewer/flush<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>verbosity
<td>type i
<td>Omittable : default value = 0
<td></table>
</dl></body></html>

View File

@ -0,0 +1,17 @@
<html><head><title>Commands in /vis/ASCIITree/set/</title></head>
<body bgcolor="#ffffff"><h2>/vis/ASCIITree/set/</h2><p>
Settings for ASCIITree control.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>outFile [<i>out-filename</i>]</b>
<p><dd>
Set name of output file.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>out-filename
<td>type s
<td>Omittable : default value = G4cout
<td></table>
</dl></body></html>

View File

@ -0,0 +1,18 @@
<html><head><title>Commands in /vis/GAGTree/</title></head>
<body bgcolor="#ffffff"><h2>/vis/GAGTree/</h2><p>
Commands for GAGTree control.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>verbose [<i>verbosity</i>]</b>
<p><dd>
/vis/GAGTree/verbose [&lt;verbosity&gt;]<br>
0 (default) mimimum - 10 maximum printing.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>verbosity
<td>type i
<td>Omittable : current value is used as the default value.
<td></table>
</dl></body></html>

View File

@ -0,0 +1,41 @@
<html><head><title>Commands in /vis/heprep/</title></head>
<body bgcolor="#ffffff"><h2>/vis/heprep/</h2><p>
HepRep commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>setEventNumberSuffix [<i>suffix</i>]</b>
<p><dd>
Write separate event files, appended with given suffix.<br>
Define the suffix with a pattern such as '-0000'.<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>suffix
<td>type s
<td><td></table>
<p><br><p><dt><b>appendGeometry [<i>flag</i>]</b>
<p><dd>
Appends copy of geometry to every event.<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type b
<td><td></table>
<p><br><p><dt><b>addPointAttributes [<i>flag</i>]</b>
<p><dd>
Adds point attributes to the points of trajectories.<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type b
<td><td></table>
<p><br><p><dt><b>useSolids [<i>flag</i>]</b>
<p><dd>
Use HepRep Solids, rather than Geant4 Primitives.<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type b
<td><td></table>
</dl></body></html>

View File

@ -0,0 +1,169 @@
<html><head><title>Commands in /vis/rayTracer/</title></head>
<body bgcolor="#ffffff"><h2>/vis/rayTracer/</h2><p>
RayTracer commands.<br>
<p><hr><p>
<h2>Sub-directories : </h2><dl>
</dl><p><hr><p>
<h2>Commands : </h2><dl>
<p><br><p><dt><b>trace [<i>fileName</i>]</b>
<p><dd>
Start the ray tracing.<br>
Define the name of output JPEG file.<br>
<p><dd>Available Geant4 state(s) : Idle
<p><dd>Parameters<table border=1>
<tr><td>fileName
<td>type s
<td>Omittable : default value = g4RayTracer.jpeg
<td></table>
<p><br><p><dt><b>column [<i>nPixel</i>]</b>
<p><dd>
Define the number of horizontal pixels.<br>
<p><dd>Range : nPixel &gt; 0
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>nPixel
<td>type i
<td><td></table>
<p><br><p><dt><b>row [<i>nPixel</i>]</b>
<p><dd>
Define the number of virtical pixels.<br>
<p><dd>Range : nPixel &gt; 0
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>nPixel
<td>type i
<td><td></table>
<p><br><p><dt><b>target [<i>X</i>] [<i>Y</i>] [<i>Z</i>] [<i>Unit</i>]</b>
<p><dd>
Define the center position of the target.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>X
<td>type d
<td>Omittable : default value = 0
<td><tr><td>Y
<td>type d
<td>Omittable : default value = 0
<td><tr><td>Z
<td>type d
<td>Omittable : default value = 0
<td><tr><td>Unit
<td>type s
<td>Omittable : default value = m
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
<p><br><p><dt><b>eyePosition [<i>X</i>] [<i>Y</i>] [<i>Z</i>] [<i>Unit</i>]</b>
<p><dd>
Define the eye position.<br>
Eye direction is calsurated from (target - eyePosition).<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>X
<td>type d
<td>Omittable : default value = 0
<td><tr><td>Y
<td>type d
<td>Omittable : default value = 0
<td><tr><td>Z
<td>type d
<td>Omittable : default value = 0
<td><tr><td>Unit
<td>type s
<td>Omittable : default value = m
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
<p><br><p><dt><b>lightDirection [<i>Px</i>] [<i>Py</i>] [<i>Pz</i>]</b>
<p><dd>
Define the direction of illumination light.<br>
The vector needs not to be a unit vector, but it must not be a zero vector.<br>
<p><dd>Range : Px != 0 || Py != 0 || Pz != 0
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Px
<td>type d
<td>Omittable : default value = 0.1
<td><tr><td>Py
<td>type d
<td>Omittable : default value = 0.2
<td><tr><td>Pz
<td>type d
<td>Omittable : default value = 0.3
<td></table>
<p><br><p><dt><b>span [<i>span</i>] [<i>Unit</i>]</b>
<p><dd>
Define the angle per 100 pixels.<br>
<p><dd>Range : span&gt;0.
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>span
<td>type d
<td>Omittable : default value = 50
<td><tr><td>Unit
<td>type s
<td>Omittable : default value = deg
<td>Parameter candidates : rad mrad sr deg radian milliradian steradian degree
</table>
<p><br><p><dt><b>headAngle [<i>headAngle</i>] [<i>Unit</i>]</b>
<p><dd>
Define the head direction.<br>
<p><dd>Range : headAngle&gt;=0. &amp;&amp; headAngle&lt;360.
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>headAngle
<td>type d
<td>Omittable : default value = 270
<td><tr><td>Unit
<td>type s
<td>Omittable : default value = deg
<td>Parameter candidates : rad mrad sr deg radian milliradian steradian degree
</table>
<p><br><p><dt><b>attenuation [<i>Length</i>] [<i>Unit</i>]</b>
<p><dd>
Define the attenuation length for transparent material.<br>
Note that this value is independent to the attenuation length for the optical photon processes.<br>
<p><dd>Range : Length &gt; 0.
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>Length
<td>type d
<td>Omittable : default value = 1
<td><tr><td>Unit
<td>type s
<td>Omittable : default value = m
<td>Parameter candidates : pc km m cm mm mum nm Ang fm parsec kilometer meter centimeter millimeter micrometer nanometer angstrom fermi
</table>
<p><br><p><dt><b>distortion [<i>flag</i>]</b>
<p><dd>
Distortion effect of the fish eye lens.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type b
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>ignoreTransparency [<i>flag</i>]</b>
<p><dd>
Ignore transparency even if the alpha of G4Colour &lt; 1.<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>flag
<td>type b
<td>Omittable : default value = 0
<td></table>
<p><br><p><dt><b>backgroundColour [<i>red</i>] [<i>green</i>] [<i>blue</i>]</b>
<p><dd>
Set background colour: red green blue: range 0.-&gt;1.<br>
E.g: /vis/rayTracer/backgroundColour 0 0 0<br>
<p><dd>Available at all Geant4 states.
<p><dd>Parameters<table border=1>
<tr><td>red
<td>type d
<td>Omittable : default value = 1
<td><tr><td>green
<td>type d
<td>Omittable : default value = 1
<td><tr><td>blue
<td>type d
<td>Omittable : default value = 1
<td></table>
</dl></body></html>

Some files were not shown because too many files have changed in this diff Show More