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

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

Location:
trunk/source/geometry/navigation
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/geometry/navigation/History

    r1228 r1315  
    1 $Id: History,v 1.138 2009/12/11 05:48:53 japost Exp $
     1$Id: History,v 1.139 2010/03/08 13:57:48 gcosmo Exp $
    22-------------------------------------------------------------------
    33
     
    1717     * Reverse chronological order (last date on top), please *
    1818     ----------------------------------------------------------
    19 Dec 11th, 2009 - J.Apostolakis (geomnav-V09-02-11)
    20 ------------------------------
    21 - G4PropagatorInField
    22   * Implementation field by Region
    23       - with extra checking of logical volume
    24 
    25 Nov 30th, 2009 - J.Apostolakis (geomnav-V09-02-10)
    26 ------------------------------
    27 - G4VIntersectionLocator
    28   * Fix problem in ReEstimateEndPoint() behaviour for very small steps.
    29 
    30   * Corrected constructor to ensure that it initialises all data members.
    31   * Labelled the methods (in header) to make noticable those that
    32       must changed at every step.
    33       ( attributes: ChordFinder,  EpsilonStep,  Navigator )
     19
     20March 8th, 2010 - G.Cosmo (geomnav-V09-03-00)
     21-------------------------
     22- Avoid unnecessary creation of string for debug purposes in G4PropagatorInField.
     23  Courtesy of P.Elmer (CMS).
     24- Some printout formatting...
     25
     26December 11th, 2009 - J.Apostolakis (geomnav-V09-02-11)
     27-----------------------------------
     28- Implemented field by region in G4PropagatorInField, with extra checking of
     29  logical volume.
     30
     31November 30th, 2009 - J.Apostolakis (geomnav-V09-02-10)
     32-----------------------------------
     33- Fixes in G4VIntersectionLocator:
     34   * Fixed problem in ReEstimateEndPoint() behaviour for very small steps.
     35   * Corrected constructor to ensure that it initialises all data members.
     36   * Labelled the methods (in header) to make noticable those that must change
     37     at every step (attributes: 'ChordFinder', 'EpsilonStep', 'Navigator').
    3438
    3539Nov 23rd, 2009 - J.Apostolakis
    3640------------------------------
    37 - Fixed G4PropagatorInField.cc:
    38    * Revise condition for flagging ZeroStep to avoid fake triggering.
    39      Small proposed steps (from Physics) could trigger the previous
    40      simple condition for Tiny/Zero Problem steps.
    41    [ This was first commited on branch geomnav-V09-02-08_branch
    42        and tagged geomnav-V09-02-80  ]
    43 
    44 Nov 12th, 2009 - J.Apostolakis (geomnav-V09-02-09)
    45 ------------------------------
    46 - G4PropagatorInField: cleanup of minor methods:
    47    Added new method RefreshIntersectionLocator to update the state of
    48        Use this method to synchronise with IntersectionLocator.
    49    Deleted long obsolete methods: SetAccuraciesWithDeltaOneStep
    50            SetDeltaIntersection,  SetDeltaOneStep
    51    Revised implementation to avoid using the older methods
    52            GetDeltaIntersection   GetDeltaOneStep
    53 
    54 Nov 12th, 2009 - J.Apostolakis (geomnav-V09-02-08)
    55 ------------------------------
     41- Fixes in G4PropagatorInField.cc:
     42   * Revised condition for flagging ZeroStep to avoid fake triggering. Small
     43     proposed steps (from Physics) could trigger the previous simple condition
     44     for Tiny/Zero Problem steps.
     45
     46November 12th, 2009 - J.Apostolakis (geomnav-V09-02-09)
     47-----------------------------------
     48- Cleanup of minor methods in G4PropagatorInField:
     49   * Added new method RefreshIntersectionLocator() to update the state of locator.
     50     It is used to synchronise with G4IntersectionLocator.
     51   * Deleted long obsolete methods: SetAccuraciesWithDeltaOneStep(),
     52     SetDeltaIntersection() and SetDeltaOneStep().
     53   * Revised implementation to avoid using the older methods GetDeltaIntersection()
     54     and GetDeltaOneStep().
     55
     56November 12th, 2009 - J.Apostolakis (geomnav-V09-02-08)
     57-----------------------------------
    5658- Refined G4PropagatorInField.cc:
    5759   * Changed parameters for treating consecutive tiny/zero steps:
    5860     - the value of default decrease factor to 0.25 (from 0.1),
    59      - the value is not used when the step size falls below a certain threshold.s
    60        This threshold is changed. It is expressed as a multiple of fZeroStepThreshold 
    61        instead of kCarTolerance.  The reasons are:
    62          * the threshold were meant to refer to the  ZeroStepThreshold (it was kCarTolerance)
    63          * the values were now much larger than this ZeroStepThreshold.
    64      - The value given to the decrease factor after the first such thresholds is changed to 0.35
    65        instead of 0.25, 0.5. 
     61     - the value is not used when the step size falls below a certain thresholds
     62       This threshold is changed. It is expressed as a multiple of fZeroStepThreshold
     63       instead of kCarTolerance. This, since the thresholds were meant to refer to
     64       the  ZeroStepThreshold (it was kCarTolerance), and the values were now much
     65       larger than 'ZeroStepThreshold'.
     66     - The value given to the decrease factor after the first such thresholds is
     67       changed to 0.35 instead of 0.25, 0.5. 
    6668   * Improved printing of Diagnostic message.
    6769
    68 Nov  3rd, 2009 - J.Apostolakis (geomnav-V09-02-07)
    69 ------------------------------
     70November 3rd, 2009 - J.Apostolakis (geomnav-V09-02-07)
     71----------------------------------
    7072- Refined G4PropagatorInField.cc:
    71    * Added new member fZeroStepThreshold, to enable tuning of threshold for Tiny/Zero steps.
     73   * Added new member fZeroStepThreshold, to enable tuning of threshold for
     74     Tiny/Zero steps.
    7275   * Changed default value from 0.5 * kCarTolerance
    73                           to max (100,000 * kCarTolerance, 0.1 * micron )
    74    * This is first revision to address problem seen at boundary of volumes (Reports of Atlas) .
     76     to max (100,000 * kCarTolerance, 0.1 * micron )
     77   * This is first revision to address problem seen at boundary of volumes
     78     (Reports of ATLAS).
    7579
    7680June 2nd, 2009 - J.Apostolakis (geomnav-V09-02-06)
  • trunk/source/geometry/navigation/src/G4PropagatorInField.cc

    r1228 r1315  
    3636// 17.03.97 John Apostolakis,   renaming new set functions being added
    3737//
    38 // $Id: G4PropagatorInField.cc,v 1.50 2009/12/10 08:41:54 japost Exp $
     38// $Id: G4PropagatorInField.cc,v 1.51 2010/03/08 13:57:34 gcosmo Exp $
    3939// GEANT4 tag $ Name:  $
    4040// ---------------------------------------------------------------------------
     
    129129                G4double&          currentSafety,                // IN/OUT
    130130                G4VPhysicalVolume* pPhysVol)
    131 {
    132   const G4String MethodName("G4PropagatorInField::ComputeStep");
    133    
     131
    134132  // If CurrentProposedStepLength is too small for finding Chords
    135133  // then return with no action (for now - TODO: some action)
     
    238236
    239237#ifdef G4DEBUG_FIELD
    240      G4cout << MethodName << ": "
    241             << " Decreasing step -  "
     238     G4cout << " G4PropagatorInField::ComputeStep(): " << G4endl
     239            << "  Decreasing step -  "
    242240            << " decreaseFactor= " << std::setw(8) << decreaseFactor
    243241            << " stepTrial = "     << std::setw(18) << stepTrial << " "
     
    248246     if( stepTrial == 0.0 )  //  Change to make it < 0.1 * kCarTolerance ??
    249247     {
    250        G4cout << " G4PropagatorInField::ComputeStep "
    251               << " Particle abandoned due to lack of progress in field."
     248       G4cout << " G4PropagatorInField::ComputeStep(): " << G4endl
     249              << "  Particle abandoned due to lack of progress in field."
    252250              << G4endl
    253               << " Properties : " << pFieldTrack << " "
     251              << "  Properties : " << pFieldTrack << " "
    254252              << G4endl;
    255        G4cerr << " G4PropagatorInField::ComputeStep "
    256               << "  ERROR : attempting a zero step= " << stepTrial << G4endl
    257               << " while attempting to progress after " << fNoZeroStep
    258               << " trial steps.  Will abandon step." << G4endl;
     253       G4cerr << " G4PropagatorInField::ComputeStep() - ERROR " << G4endl
     254              << "  Attempting a zero step = " << stepTrial << G4endl
     255              << "  while attempting to progress after " << fNoZeroStep
     256              << " trial steps. Will abandon step." << G4endl;
    259257         fParticleIsLooping= true;
    260258         return 0;  // = stepTrial;
     
    351349    if( (fVerboseLevel > 1) && (do_loop_count > fMax_loop_count-10 )) {
    352350      if( do_loop_count == fMax_loop_count-9 ){
    353         G4cout << "G4PropagatorInField::ComputeStep "
    354                << " Difficult track - taking many sub steps." << G4endl;
     351        G4cout << " G4PropagatorInField::ComputeStep(): " << G4endl
     352               << "  Difficult track - taking many sub steps." << G4endl;
    355353      }
    356354      printStatus( SubStepStartState, CurrentState, CurrentProposedStepLength,
     
    369367    fParticleIsLooping = true;
    370368
    371     if ( fVerboseLevel > 0 ){
    372        G4cout << "G4PropagateInField: Killing looping particle "
     369    if ( fVerboseLevel > 0 )
     370    {
     371       G4cout << " G4PropagateInField::ComputeStep(): " << G4endl
     372              << "  Killing looping particle "
    373373              // << " of " << energy  << " energy "
    374374              << " after " << do_loop_count << " field substeps "
    375375              << " totaling " << StepTaken / mm << " mm " ;
    376376       if( pPhysVol )
    377           G4cout << " in the volume " << pPhysVol->GetName() ;
     377          G4cout << " in volume " << pPhysVol->GetName() ;
    378378       else
    379379         G4cout << " in unknown or null volume. " ;
     
    401401      - End_PointAndTangent.GetCurveLength()) > 3.e-4 * TruePathLength )
    402402  {
    403     G4cerr << " ERROR - G4PropagatorInField::ComputeStep():" << G4endl
    404            << " Curve length mis-match, is advancement wrong ? " << G4endl;
    405     G4cerr << " The curve length of the endpoint should be: "
     403    G4cerr << " G4PropagatorInField::ComputeStep() - ERROR" << G4endl
     404           << "  Curve length mis-match, is advancement wrong ? " << G4endl;
     405    G4cerr << "  The curve length of the endpoint should be: "
    406406           << OriginalState.GetCurveLength() + TruePathLength << G4endl
    407            << " and it is instead: "
     407           << "  and it is instead: "
    408408           << End_PointAndTangent.GetCurveLength() << "." << G4endl
    409            << " A difference of: "
     409           << "  A difference of: "
    410410           << OriginalState.GetCurveLength() + TruePathLength
    411411              - End_PointAndTangent.GetCurveLength() << G4endl;
    412     G4cerr << " Original state= " << OriginalState   << G4endl
    413            << " Proposed state= " << End_PointAndTangent << G4endl;
    414     G4Exception("G4PropagatorInField::ComputeStep()", "IncorrectProposedEndPoint",
    415                 FatalException,
     412    G4cerr << "  Original state = " << OriginalState   << G4endl
     413           << "  Proposed state = " << End_PointAndTangent << G4endl;
     414    G4Exception("G4PropagatorInField::ComputeStep()",
     415                "IncorrectProposedEndPoint", FatalException,
    416416                "Curve length mis-match between original state and proposed endpoint of propagation.");
    417417  }
     
    434434  }
    435435
    436   if( fNoZeroStep > fAbandonThreshold_NoZeroSteps ) {
     436  if( fNoZeroStep > fAbandonThreshold_NoZeroSteps )
     437  {
    437438     fParticleIsLooping = true;
    438      G4cout << " WARNING - G4PropagatorInField::ComputeStep():" << G4endl
    439             << " Zero progress for "  << fNoZeroStep << " attempted steps."
     439     G4cout << " G4PropagatorInField::ComputeStep() - WARNING" << G4endl
     440            << "  Zero progress for "  << fNoZeroStep << " attempted steps."
    440441            << G4endl;
    441      G4cout << "Proposed Step is "<<CurrentProposedStepLength <<" but Step Taken is "<< fFull_CurveLen_of_LastAttempt <<G4endl;
    442      G4cout << "For Particle with Charge ="<<fCharge
    443             << " Momentum="<< fInitialMomentumModulus<<" Mass="<< fMass<<G4endl;
     442     G4cout << "  Proposed Step is " << CurrentProposedStepLength
     443            << " but Step Taken is "<< fFull_CurveLen_of_LastAttempt << G4endl;
     444     G4cout << "  For Particle with Charge = " << fCharge
     445            << " Momentum = "<< fInitialMomentumModulus
     446            << " Mass = " << fMass << G4endl;
    444447       if( pPhysVol )
    445           G4cout << " in the volume " << pPhysVol->GetName() ;
     448         G4cout << " in volume " << pPhysVol->GetName() ;
    446449       else
    447450         G4cout << " in unknown or null volume. " ;
    448451       G4cout << G4endl;
    449452     if ( fVerboseLevel > 2 )
    450        G4cout << " Particle that is stuck will be killed." << G4endl;
     453       G4cout << " Particle is stuck; it will be killed." << G4endl;
    451454     fNoZeroStep = 0;
    452455  }
     
    558561       
    559562     G4cout << "Step taken was " << step_len 
    560             << " out of PhysicalStep= " <<  requestStep << G4endl;
     563            << " out of PhysicalStep = " <<  requestStep << G4endl;
    561564     G4cout << "Final safety is: " << safety << G4endl;
    562565
     
    579582{
    580583#if 0
    581   G4cout << " PiF: NoZeroStep= " << fNoZeroStep
    582          << " CurrentProposedStepLength= " << CurrentProposedStepLength
    583          << " Full_curvelen_last=" << fFull_CurveLen_of_LastAttempt
    584          << " last proposed step-length= " << fLast_ProposedStepLength
     584  G4cout << " PiF: NoZeroStep = " << fNoZeroStep
     585         << " CurrentProposedStepLength = " << CurrentProposedStepLength
     586         << " Full_curvelen_last =" << fFull_CurveLen_of_LastAttempt
     587         << " last proposed step-length = " << fLast_ProposedStepLength
    585588         << " decrease factor = " << decreaseFactor
    586589         << " step trial = " << stepTrial
     
    698701  //
    699702  G4MagInt_Driver* integrDriver= GetChordFinder()->GetIntegrationDriver();
    700   integrDriver->SetVerboseLevel( fVerboseLevel - 2 ); 
     703  integrDriver->SetVerboseLevel( fVerboseLevel - 2 );
    701704  G4cout << "Set Driver verbosity to " << fVerboseLevel - 2 << G4endl;
    702705
Note: See TracChangeset for help on using the changeset viewer.