62 EvtMap(0),weighted(true),divideByArea(true)
73 EvtMap(0),weighted(true),divideByArea(true)
105 if ( fDirection ==
fFlux_InOut || fDirection == dirFlag ){
120 G4double localdirL2 = localdir.
x()*localdir.
x()
121 +localdir.
y()*localdir.
y()
122 +localdir.
z()*localdir.
z();
126 G4double localR2 = localpos1.
x()*localpos1.
x()
127 +localpos1.
y()*localpos1.
y()
128 +localpos1.
z()*localpos1.
z();
129 G4double anglefactor = (localdir.
x()*localpos1.
x()
130 +localdir.
y()*localpos1.
y()
131 +localdir.
z()*localpos1.
z())
132 /std::sqrt(localdirL2)/std::sqrt(localR2);
133 if ( anglefactor < 0.0 ) anglefactor *= -1.0;
135 G4double current = 1.0 / anglefactor;
136 if ( weighted ) current *= thisStep->
GetWeight();
143 current /= radi*radi*dph*( -std::cos(enth) + std::cos(stth) );
147 EvtMap->
add(index,current);
165 G4double localR2 = localpos1.
x()*localpos1.
x()
166 +localpos1.
y()*localpos1.
y()
167 +localpos1.
z()*localpos1.
z();
183 G4double localR2 = localpos2.
x()*localpos2.
x()
184 +localpos2.
y()*localpos2.
y()
185 +localpos2.
z()*localpos2.
z();
221 std::map<G4int,G4double*>::iterator itr = EvtMap->
GetMap()->begin();
222 for(; itr != EvtMap->
GetMap()->end(); itr++) {
223 G4cout <<
" copy no.: " << itr->first
232 if ( divideByArea ) {
247 new G4UnitDefinition(
"percentimeter2",
"percm2",
"Per Unit Surface",(1./cm2));
248 new G4UnitDefinition(
"permillimeter2",
"permm2",
"Per Unit Surface",(1./mm2));
const G4double kCarTolerance
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4GLOB_DLL std::ostream G4cout
G4double GetSurfaceTolerance() const
static G4GeometryTolerance * GetInstance()
void AddHitsCollection(G4int HCID, G4VHitsCollection *aHC)
G4VSolid * GetSolid() const
const G4AffineTransform & GetTopTransform() const
virtual void EndOfEvent(G4HCofThisEvent *)
virtual void Initialize(G4HCofThisEvent *)
G4int IsSelectedSurface(G4Step *, G4Sphere *)
virtual void DefineUnitAndCategory()
virtual ~G4PSSphereSurfaceFlux()
G4PSSphereSurfaceFlux(G4String name, G4int direction, G4int depth=0)
virtual G4bool ProcessHits(G4Step *, G4TouchableHistory *)
virtual void SetUnit(const G4String &unit)
G4double GetDeltaPhiAngle() const
G4double GetInnerRadius() const
G4double GetDeltaThetaAngle() const
G4double GetStartThetaAngle() const
G4StepStatus GetStepStatus() const
const G4VTouchable * GetTouchable() const
const G4ThreeVector & GetPosition() const
const G4ThreeVector & GetMomentumDirection() const
const G4TouchableHandle & GetTouchableHandle() const
G4VPhysicalVolume * GetPhysicalVolume() const
G4double GetWeight() const
G4StepPoint * GetPreStepPoint() const
G4StepPoint * GetPostStepPoint() const
virtual G4VSolid * ComputeSolid(const G4int, G4VPhysicalVolume *)
G4LogicalVolume * GetLogicalVolume() const
virtual G4VPVParameterisation * GetParameterisation() const =0
virtual G4int GetIndex(G4Step *)
const G4String & GetUnit() const
G4MultiFunctionalDetector * detector
G4int GetCollectionID(G4int)
void CheckAndSetUnit(const G4String &unit, const G4String &category)
G4double GetUnitValue() const
virtual void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
size_t add(const G4int &key, U *&aHit) const
virtual const G4NavigationHistory * GetHistory() const