33 #include "G4StepStatus.hh" 61 weighted(true),divideByArea(true)
83 G4StepPoint* preStep = aStep->GetPreStepPoint();
107 G4StepPoint* thisStep=0;
111 thisStep = aStep->GetPostStepPoint();
123 G4double angleFactor = (localdir.
x()*localpos.
x()+localdir.
y()*localpos.
y())
124 /std::sqrt(localdir.
x()*localdir.
x()
125 +localdir.
y()*localdir.
y()+localdir.
z()*localdir.
z())
126 /std::sqrt(localpos.
x()*localpos.
x()+localpos.
y()*localpos.
y());
128 if ( angleFactor < 0 ) angleFactor *= -1.;
133 if (
weighted ) flux *=preStep->GetWeight();
136 flux = flux/angleFactor;
153 aStep->GetPreStepPoint()->GetTouchableHandle();
156 if (aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary ){
158 G4ThreeVector stppos1= aStep->GetPreStepPoint()->GetPosition();
161 if ( std::fabs(localpos1.
z()) > tubsSolid->
GetZHalfLength() )
return -1;
165 G4double localR2 = localpos1.
x()*localpos1.
x()+localpos1.
y()*localpos1.
y();
167 if (localR2 > (InsideRadius-kCarTolerance)*(InsideRadius-kCarTolerance)
168 &&localR2 < (InsideRadius+kCarTolerance)*(InsideRadius+kCarTolerance)){
173 if (aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary ){
175 G4ThreeVector stppos2= aStep->GetPostStepPoint()->GetPosition();
178 if ( std::fabs(localpos2.
z()) > tubsSolid->
GetZHalfLength() )
return -1;
182 G4double localR2 = localpos2.
x()*localpos2.
x()+localpos2.
y()*localpos2.
y();
184 if (localR2 > (InsideRadius-kCarTolerance)*(InsideRadius-kCarTolerance)
185 &&localR2 < (InsideRadius+kCarTolerance)*(InsideRadius+kCarTolerance)){
216 std::map<G4int,G4double*>::iterator itr =
EvtMap->
GetMap()->begin();
218 G4cout <<
" copy no.: " << itr->first
virtual void EndOfEvent(G4HCofThisEvent *)
G4double GetUnitValue() const
std::map< G4int, T * > * GetMap() const
G4int add(const G4int &key, T *&aHit) const
virtual void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
virtual G4VSolid * ComputeSolid(const G4int, G4VPhysicalVolume *)
G4double GetSurfaceTolerance() const
G4THitsMap< G4double > * EvtMap
void CheckAndSetUnit(const G4String &unit, const G4String &category)
G4double GetZHalfLength() const
G4GLOB_DLL std::ostream G4cout
virtual G4VPVParameterisation * GetParameterisation() const =0
virtual G4int GetIndex(G4Step *)
G4MultiFunctionalDetector * GetMultiFunctionalDetector() const
virtual const G4NavigationHistory * GetHistory() const
virtual void Initialize(G4HCofThisEvent *)
G4int GetCollectionID(G4int)
void AddHitsCollection(G4int HCID, G4VHitsCollection *aHC)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
virtual void SetUnit(const G4String &unit)
const G4AffineTransform & GetTopTransform() const
G4PSCylinderSurfaceFlux(G4String name, G4int direction, G4int depth=0)
static const double radian
G4MultiFunctionalDetector * detector
G4double GetInnerRadius() const
G4int IsSelectedSurface(G4Step *, G4Tubs *)
G4LogicalVolume * GetLogicalVolume() const
virtual void DefineUnitAndCategory()
virtual ~G4PSCylinderSurfaceFlux()
G4VSolid * GetSolid() const
G4double GetDeltaPhiAngle() const
const G4String & GetUnit() const
static G4GeometryTolerance * GetInstance()
virtual G4bool ProcessHits(G4Step *, G4TouchableHistory *)