18 #include "G4ChargedGeantino.hh"
19 #include "G4Geantino.hh"
20 #include "G4SDManager.hh"
22 #include "G4ThreeVector.hh"
25 #include "CLHEP/Geometry/Transform3D.h"
26 #include "CLHEP/Units/SystemOfUnits.h"
28 #include <GeoModelKernel/GeoFullPhysVol.h>
29 #include <GeoModelRead/ReadGeoModel.h>
38 : G4VSensitiveDetector(
name )
39 , m_HitColl( hitCollectionName )
53 if (verboseLevel>5) G4cout <<
"Process Hit" << G4endl;
55 G4double edep = aStep->GetTotalEnergyDeposit();
58 if(aStep->GetTrack()->GetDefinition() != G4Geantino::GeantinoDefinition() &&
59 aStep->GetTrack()->GetDefinition() != G4ChargedGeantino::ChargedGeantinoDefinition())
67 const G4TouchableHistory *myTouch =
dynamic_cast<const G4TouchableHistory*
>(aStep->GetPreStepPoint()->GetTouchable());
69 G4cout <<
"PixelSensorGmxSD::ProcessHits bad dynamic_cast" << G4endl;
73 for (
int i=0;
i<myTouch->GetHistoryDepth();
i++){
74 std::string detname=myTouch->GetVolume(
i)->GetLogicalVolume()->GetName();
75 int copyno=myTouch->GetVolume(
i)->GetCopyNo();
76 G4cout <<
"Volume " <<detname <<
" Copy Nr. " << copyno << G4endl;
82 G4ThreeVector coord1 = aStep->GetPreStepPoint()->GetPosition();
83 G4ThreeVector coord2 = aStep->GetPostStepPoint()->GetPosition();
89 const G4AffineTransform transformation = myTouch->GetHistory()->GetTopTransform();
90 G4ThreeVector localPosition1 = transformation.TransformPoint(coord1);
91 G4ThreeVector localPosition2 = transformation.TransformPoint(coord2);
93 HepGeom::Point3D<double> lP1,lP2;
106 std::string physVolName = myTouch->GetVolume(0)->GetName();
114 aStep->GetPreStepPoint()->GetGlobalTime(),
123 int id = myTouch->GetVolume()->GetCopyNo();
128 aStep->GetPreStepPoint()->GetGlobalTime(),