33 #include "G4StepStatus.hh" 60 weighted(true),divideByArea(true)
82 G4StepPoint* preStep = aStep->GetPreStepPoint();
107 if (
weighted ) current = preStep->GetWeight();
112 current = current/square;
127 aStep->GetPreStepPoint()->GetTouchableHandle();
130 if (aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary ){
132 G4ThreeVector stppos1= aStep->GetPreStepPoint()->GetPosition();
135 if ( std::fabs(localpos1.
z()) > tubsSolid->
GetZHalfLength() )
return -1;
136 G4double localR2 = localpos1.
x()*localpos1.
x()+localpos1.
y()*localpos1.
y();
138 if (localR2 > (InsideRadius-kCarTolerance)*(InsideRadius-kCarTolerance)
139 &&localR2 < (InsideRadius+kCarTolerance)*(InsideRadius+kCarTolerance)){
144 if (aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary ){
146 G4ThreeVector stppos2= aStep->GetPostStepPoint()->GetPosition();
149 if ( std::fabs(localpos2.
z()) > tubsSolid->
GetZHalfLength() )
return -1;
150 G4double localR2 = localpos2.
x()*localpos2.
x()+localpos2.
y()*localpos2.
y();
152 if (localR2 > (InsideRadius-kCarTolerance)*(InsideRadius-kCarTolerance)
153 &&localR2 < (InsideRadius+kCarTolerance)*(InsideRadius+kCarTolerance)){
183 std::map<G4int,G4double*>::iterator itr =
EvtMap->
GetMap()->begin();
185 G4cout <<
" copy no.: " << itr->first
191 G4cout << *(itr->second) <<
" [tracks]";
207 G4Exception(
"G4PSCylinderSurfaceCurrent::SetUnit",
"DetPS0002",
virtual void Initialize(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)
G4int IsSelectedSurface(G4Step *, G4Tubs *)
virtual G4VSolid * ComputeSolid(const G4int, G4VPhysicalVolume *)
G4double GetSurfaceTolerance() const
void CheckAndSetUnit(const G4String &unit, const G4String &category)
virtual void SetUnit(const G4String &unit)
virtual void EndOfEvent(G4HCofThisEvent *)
virtual ~G4PSCylinderSurfaceCurrent()
G4double GetZHalfLength() const
G4GLOB_DLL std::ostream G4cout
virtual void DefineUnitAndCategory()
virtual G4VPVParameterisation * GetParameterisation() const =0
virtual G4int GetIndex(G4Step *)
virtual const G4NavigationHistory * GetHistory() const
G4int GetCollectionID(G4int)
G4THitsMap< G4double > * EvtMap
void AddHitsCollection(G4int HCID, G4VHitsCollection *aHC)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
virtual G4bool ProcessHits(G4Step *, G4TouchableHistory *)
G4PSCylinderSurfaceCurrent(G4String name, G4int direction, G4int depth=0)
const G4AffineTransform & GetTopTransform() const
static const double radian
G4MultiFunctionalDetector * detector
G4double GetInnerRadius() const
G4LogicalVolume * GetLogicalVolume() const
G4VSolid * GetSolid() const
G4double GetDeltaPhiAngle() const
const G4String & GetUnit() const
static G4GeometryTolerance * GetInstance()