63 EvtMap(0),weighted(true),divideByArea(true)
74 EvtMap(0),weighted(true),divideByArea(true)
106 if ( fDirection ==
fFlux_InOut || fDirection == dirFlag ){
121 G4double localdirL2 = localdir.
x()*localdir.
x()
122 +localdir.
y()*localdir.
y()
123 +localdir.
z()*localdir.
z();
127 G4double localR2 = localpos1.
x()*localpos1.
x()
128 +localpos1.
y()*localpos1.
y()
129 +localpos1.
z()*localpos1.
z();
130 G4double anglefactor = (localdir.
x()*localpos1.
x()
131 +localdir.
y()*localpos1.
y()
132 +localdir.
z()*localpos1.
z())
133 /std::sqrt(localdirL2)/std::sqrt(localR2);
134 if ( anglefactor < 0.0 ) anglefactor *= -1.0;
140 G4double square = radi*radi*dph*( -std::cos(enth) + std::cos(stth) );
144 if ( divideByArea ) current = current/square;
146 current /= anglefactor;
149 EvtMap->
add(index,current);
167 G4double localR2 = localpos1.
x()*localpos1.
x()
168 +localpos1.
y()*localpos1.
y()
169 +localpos1.
z()*localpos1.
z();
174 if ( localR2 > (InsideRadius-kCarTolerance)*(InsideRadius-kCarTolerance)
175 &&localR2 < (InsideRadius+kCarTolerance)*(InsideRadius+kCarTolerance)){
185 G4double localR2 = localpos2.
x()*localpos2.
x()
186 +localpos2.
y()*localpos2.
y()
187 +localpos2.
z()*localpos2.
z();
192 if ( localR2 > (InsideRadius-kCarTolerance)*(InsideRadius-kCarTolerance)
193 &&localR2 < (InsideRadius+kCarTolerance)*(InsideRadius+kCarTolerance)){
223 std::map<G4int,G4double*>::iterator itr = EvtMap->
GetMap()->begin();
224 for(; itr != EvtMap->
GetMap()->end(); itr++) {
225 G4cout <<
" copy no.: " << itr->first
234 if ( divideByArea ) {
G4double GetWeight() const
static constexpr double cm2
virtual void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
virtual G4VSolid * ComputeSolid(const G4int, G4VPhysicalVolume *)
G4StepStatus GetStepStatus() const
G4double GetSurfaceTolerance() const
G4VSolid * GetSolid() const
virtual const G4NavigationHistory * GetHistory() const
const G4VTouchable * GetTouchable() const
void CheckAndSetUnit(const G4String &unit, const G4String &category)
G4double GetDeltaPhiAngle() const
static constexpr double mm2
virtual void Initialize(G4HCofThisEvent *)
G4StepPoint * GetPreStepPoint() const
virtual void DefineUnitAndCategory()
virtual ~G4PSSphereSurfaceFlux()
const G4ThreeVector & GetMomentumDirection() const
G4GLOB_DLL std::ostream G4cout
G4VPhysicalVolume * GetPhysicalVolume() const
G4double GetStartThetaAngle() const
const G4ThreeVector & GetPosition() const
G4double GetUnitValue() const
virtual void SetUnit(const G4String &unit)
virtual G4VPVParameterisation * GetParameterisation() const =0
virtual G4int GetIndex(G4Step *)
G4int IsSelectedSurface(G4Step *, G4Sphere *)
const G4double kCarTolerance
G4int GetCollectionID(G4int)
G4PSSphereSurfaceFlux(G4String name, G4int direction, G4int depth=0)
G4double GetInnerRadius() const
void AddHitsCollection(G4int HCID, G4VHitsCollection *aHC)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static constexpr double radian
G4int add(const G4int &key, T *&aHit) const
G4LogicalVolume * GetLogicalVolume() const
G4StepPoint * GetPostStepPoint() const
virtual void EndOfEvent(G4HCofThisEvent *)
std::map< G4int, T * > * GetMap() const
G4MultiFunctionalDetector * detector
const G4AffineTransform & GetTopTransform() const
const G4String & GetUnit() const
G4double GetDeltaThetaAngle() const
static constexpr double m2
const G4TouchableHandle & GetTouchableHandle() const
static G4GeometryTolerance * GetInstance()
virtual G4bool ProcessHits(G4Step *, G4TouchableHistory *)