BLVirtualDetectorNTuple Class Reference

Inheritance diagram for BLVirtualDetectorNTuple:

BLManager::SteppingAction

List of all members.


Detailed Description

class BLVirtualDetectorNTuple implements an NTuple for a BLCMDvirtualdetector.

Public Member Functions

 BLVirtualDetectorNTuple (G4String type, G4String category, G4String _name, G4VPhysicalVolume *pv, int _noSingles, G4String filename, G4String _require, BLCoordinateType _coordinateType, int _kill)
 constructor.
bool needsReference ()
void UserSteppingAction (const G4Step *step)
 UserSteppingAction() from BLManager::SteppingAction.

Private Attributes

G4String name
G4VPhysicalVolume * thisVol
BLCoordinateType coordinateType
int noSingles
G4String require
int kill
BLTrackNTuplentuple
bool verbose

Friends

class BLCMDvirtualdetector

Constructor & Destructor Documentation

BLVirtualDetectorNTuple::BLVirtualDetectorNTuple ( G4String  type,
G4String  category,
G4String  _name,
G4VPhysicalVolume *  pv,
int  _noSingles,
G4String  filename,
G4String  _require,
BLCoordinateType  _coordinateType,
int  _kill 
)

constructor.

References coordinateType, BLTrackNTuple::create(), BLManager::getObject(), BLManager::getSteppingVerbose(), kill, name, noSingles, ntuple, require, thisVol, and verbose.

00390 {
00391         name = _name;
00392         thisVol = pv;
00393         noSingles = _noSingles;
00394         coordinateType = _coordinateType;
00395         require = _require;
00396         ntuple = BLTrackNTuple::create(type,category,name,filename,
00397                         coordinateType,require,noSingles);
00398         kill = _kill;
00399         verbose = BLManager::getObject()->getSteppingVerbose() > 0;
00400 }


Member Function Documentation

bool BLVirtualDetectorNTuple::needsReference (  )  [inline]

References BLTrackNTuple::needsReference(), and ntuple.

Referenced by BLCMDvirtualdetector::construct().

00161                 { return ntuple ? ntuple->needsReference() : false; }

void BLVirtualDetectorNTuple::UserSteppingAction ( const G4Step *  step  )  [virtual]

UserSteppingAction() from BLManager::SteppingAction.

Implements BLManager::SteppingAction.

References BLTrackNTuple::appendTrack(), BEAM, BLCOORD_REFERENCE, coordinateType, BLManager::getObject(), BLManager::getState(), kill, name, ntuple, SPECIAL, thisVol, and verbose.

00403 {
00404         if(BLManager::getObject()->getState() == SPECIAL) return;
00405 
00406         // only use reference coordinates when they are valid
00407         BLManagerState state = BLManager::getObject()->getState();
00408         if(coordinateType == BLCOORD_REFERENCE && state != BEAM) return;
00409 
00410         // get basic physical-volume info
00411         G4StepPoint *prePoint = step->GetPreStepPoint();
00412         if(!prePoint) return;
00413         G4VPhysicalVolume *preVol = prePoint->GetPhysicalVolume();
00414         if(!preVol) return;
00415         G4StepPoint *postPoint = step->GetPostStepPoint();
00416         if(!postPoint) return;
00417         G4VPhysicalVolume *postVol = postPoint->GetPhysicalVolume();
00418         if(!postVol) return;
00419         
00420         // return if not entering thisVol
00421         if(preVol == postVol || postVol != thisVol) return;
00422 
00423         ntuple->appendTrack(step->GetTrack());
00424 
00425         if(kill) {
00426                 step->GetTrack()->SetTrackStatus(fStopAndKill);
00427                 if(verbose) printf("Track killed by '%s' with kill=1\n",
00428                         name.c_str());
00429         }
00430 }


Friends And Related Function Documentation

friend class BLCMDvirtualdetector [friend]


Member Data Documentation

G4String BLVirtualDetectorNTuple::name [private]

G4VPhysicalVolume* BLVirtualDetectorNTuple::thisVol [private]

Referenced by BLVirtualDetectorNTuple().

Referenced by BLVirtualDetectorNTuple().


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