BLCMDgeometry Class Reference

Inheritance diagram for BLCMDgeometry:

BLCommand BLCallback

List of all members.


Detailed Description

class BLCMDgeometry defines parameters for the geometry test.

The actual test is in BLGroupElement::testGeometry().

Public Member Functions

 BLCMDgeometry ()
G4String commandName ()
int command (BLArgumentVector &argv, BLArgumentMap &namedArgs)
void defineNamedArgs ()
void callback (int type)

Private Attributes

G4int nPoints
G4int printGeometry
G4int visual
G4double tolerance
G4bool registered


Constructor & Destructor Documentation

BLCMDgeometry::BLCMDgeometry (  ) 

References BLCMDTYPE_CONTROL, nPoints, printGeometry, BLCommand::registerCommand(), registered, BLCommand::setDescription(), BLCommand::setSynopsis(), tolerance, and visual.

00050                              : BLCommand(), BLCallback()
00051 {
00052         registerCommand(BLCMDTYPE_CONTROL);
00053         setSynopsis("Arranges to perform a geometry test.");
00054         setDescription("The geometry test checks nPoints points on the surface of\n"
00055                 "each element, verifying that they are inside the parent\n"
00056                 "element and that they are not inside any sibling element.\n"
00057                 "The default of 100 points is usually sufficient; 0 means\n"
00058                 "omit the geometry test. The first 20-40 points (depending\n"
00059                 "on element) test 'corners', the rest are randomly distributed\n"
00060                 "on the surface. The default tolerance is 0.002 mm.");
00061 
00062         nPoints = 100;
00063         printGeometry = 0;
00064         visual = 0;
00065         tolerance = 0.002 * mm;
00066         registered = false;
00067 }


Member Function Documentation

G4String BLCMDgeometry::commandName (  )  [inline, virtual]

Implements BLCommand.

00039 { return "geometry"; }

int BLCMDgeometry::command ( BLArgumentVector argv,
BLArgumentMap namedArgs 
) [virtual]

Implements BLCommand.

References BLManager::getObject(), BLCommand::handleNamedArgs(), BLCommand::print(), BLManager::registerCallback(), registered, and visual.

00070 {
00071         handleNamedArgs(namedArgs);
00072 
00073         if(!registered) {
00074                 BLManager::getObject()->registerCallback(this,0);
00075                 if(visual) BLManager::getObject()->registerCallback(this,4);
00076                 registered = true;
00077         }
00078 
00079         print("");
00080 
00081         return 0;
00082 }

void BLCMDgeometry::defineNamedArgs (  )  [virtual]

Reimplemented from BLCommand.

References BLCommand::argDouble(), BLCommand::argInt(), nPoints, printGeometry, tolerance, and visual.

00085 {
00086         argInt(nPoints,"nPoints","The number of surface points to test per element");
00087         argInt(printGeometry,"printGeometry","Set nonzero to print the entire geometry.");
00088         argInt(visual,"visual","Set nonzero to display the geometry test points.");
00089         argDouble(tolerance,"tolerance","Tolerance for inside/outside tests (mm).");
00090 }

void BLCMDgeometry::callback ( int  type  )  [virtual]

Reimplemented from BLCallback.

References BLManager::displayGeometry(), BLManager::getObject(), BLGroup::getWorld(), nPoints, printGeometry, BLGroupElement::testGeometry(), and tolerance.

00093 {
00094         if(printGeometry) {
00095                 printf("\nGeometry display:\n");
00096                 BLManager::getObject()->displayGeometry();
00097         }
00098 
00099         if(nPoints > 0) {
00100                 printf("\nGeometry test nPoints=%d tolerance=%.3f mm:\n",
00101                                         nPoints,tolerance);
00102                 int start=time(0);
00103                 int err = BLGroup::getWorld()->testGeometry(nPoints,tolerance,
00104                                                                 type==4);
00105                 printf("Total geometry errors = %d  %ld seconds\n\n",
00106                                         err,time(0)-start);
00107 
00108         }
00109 }


Member Data Documentation

G4int BLCMDgeometry::nPoints [private]

G4int BLCMDgeometry::visual [private]

G4double BLCMDgeometry::tolerance [private]

G4bool BLCMDgeometry::registered [private]

Referenced by BLCMDgeometry(), and command().


The documentation for this class was generated from the following file:
g4beamline