Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
UltraPMTSD Class Reference

#include <UltraPMTSD.hh>

Inheritance diagram for UltraPMTSD:
G4VSensitiveDetector

Public Member Functions

 UltraPMTSD (G4String)
 
 ~UltraPMTSD ()
 
void Initialize (G4HCofThisEvent *)
 
G4bool ProcessHits (G4Step *astep, G4TouchableHistory *ROHist)
 
void EndOfEvent (G4HCofThisEvent *)
 
void clear ()
 
void DrawAll ()
 
void PrintAll ()
 
- Public Member Functions inherited from G4VSensitiveDetector
 G4VSensitiveDetector (G4String name)
 
 G4VSensitiveDetector (const G4VSensitiveDetector &right)
 
virtual ~G4VSensitiveDetector ()
 
const G4VSensitiveDetectoroperator= (const G4VSensitiveDetector &right)
 
G4int operator== (const G4VSensitiveDetector &right) const
 
G4int operator!= (const G4VSensitiveDetector &right) const
 
G4bool Hit (G4Step *aStep)
 
void SetROgeometry (G4VReadOutGeometry *value)
 
void SetFilter (G4VSDFilter *value)
 
G4int GetNumberOfCollections () const
 
G4String GetCollectionName (G4int id) const
 
void SetVerboseLevel (G4int vl)
 
void Activate (G4bool activeFlag)
 
G4bool isActive () const
 
G4String GetName () const
 
G4String GetPathName () const
 
G4String GetFullPathName () const
 
G4VReadOutGeometryGetROgeometry () const
 
G4VSDFilterGetFilter () const
 
virtual G4VSensitiveDetectorClone () const
 

Additional Inherited Members

- Protected Member Functions inherited from G4VSensitiveDetector
virtual G4int GetCollectionID (G4int i)
 
- Protected Attributes inherited from G4VSensitiveDetector
G4CollectionNameVector collectionName
 
G4String SensitiveDetectorName
 
G4String thePathName
 
G4String fullPathName
 
G4int verboseLevel
 
G4bool active
 
G4VReadOutGeometryROgeometry
 
G4VSDFilterfilter
 

Detailed Description

Definition at line 55 of file UltraPMTSD.hh.

Constructor & Destructor Documentation

UltraPMTSD::UltraPMTSD ( G4String  name)

Definition at line 53 of file UltraPMTSD.cc.

References G4VSensitiveDetector::collectionName, and G4CollectionNameVector::insert().

54 {
55 
56  collectionName.insert("OpticalHitsCollection");
57 
58 }
G4VSensitiveDetector(G4String name)
G4CollectionNameVector collectionName
UltraPMTSD::~UltraPMTSD ( )

Definition at line 63 of file UltraPMTSD.cc.

64 {;}

Member Function Documentation

void UltraPMTSD::clear ( )
virtual

Reimplemented from G4VSensitiveDetector.

Definition at line 146 of file UltraPMTSD.cc.

147 {;}
void UltraPMTSD::DrawAll ( )
virtual

Reimplemented from G4VSensitiveDetector.

Definition at line 151 of file UltraPMTSD.cc.

152 {;}
void UltraPMTSD::EndOfEvent ( G4HCofThisEvent HCE)
virtual

Reimplemented from G4VSensitiveDetector.

Definition at line 133 of file UltraPMTSD.cc.

References G4HCofThisEvent::AddHitsCollection(), G4VSensitiveDetector::collectionName, G4SDManager::GetCollectionID(), and G4SDManager::GetSDMpointer().

134 {
135  static G4int HCID = -1;
136  if(HCID<0)
137  {
139  }
140  HCE->AddHitsCollection(HCID,OpticalHitsCollection);
141 
142 }
G4int GetCollectionID(G4String colName)
Definition: G4SDManager.cc:131
int G4int
Definition: G4Types.hh:78
void AddHitsCollection(G4int HCID, G4VHitsCollection *aHC)
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
G4CollectionNameVector collectionName
void UltraPMTSD::Initialize ( G4HCofThisEvent HCE)
virtual

Reimplemented from G4VSensitiveDetector.

Definition at line 68 of file UltraPMTSD.cc.

References G4HCofThisEvent::AddHitsCollection(), G4VSensitiveDetector::collectionName, G4VSensitiveDetector::GetCollectionID(), and G4VSensitiveDetector::SensitiveDetectorName.

69 {
70 
71 
72  static int HCID1 = -1;
73 
74 
75  // SensitiveDetectorName and collectionName are data members of G4VSensitiveDetector
76 
77  OpticalHitsCollection =
79 
80  if(HCID1<0)
81  { HCID1 = GetCollectionID(0); }
82  HCE->AddHitsCollection(HCID1,OpticalHitsCollection);
83 
84 }
G4THitsCollection< UltraOpticalHit > UltraOpticalHitsCollection
virtual G4int GetCollectionID(G4int i)
void AddHitsCollection(G4int HCID, G4VHitsCollection *aHC)
G4CollectionNameVector collectionName
void UltraPMTSD::PrintAll ( )
virtual

Reimplemented from G4VSensitiveDetector.

Definition at line 156 of file UltraPMTSD.cc.

157 {;}
G4bool UltraPMTSD::ProcessHits ( G4Step astep,
G4TouchableHistory ROHist 
)
virtual

Implements G4VSensitiveDetector.

Definition at line 88 of file UltraPMTSD.cc.

References G4OpticalPhoton::Definition(), python.hepunit::eV, fStopAndKill, G4cout, G4endl, G4Track::GetDefinition(), G4Track::GetKineticEnergy(), G4VPhysicalVolume::GetName(), G4StepPoint::GetPosition(), G4Step::GetPreStepPoint(), G4Step::GetTrack(), G4Track::GetVolume(), G4THitsCollection< T >::insert(), python.hepunit::mm, UltraOpticalHit::SetEnergy(), UltraOpticalHit::SetPosition(), G4Track::SetTrackStatus(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

89 {
90 
91  // Get Material
92 
93  G4String thisVolume = aStep->GetTrack()->GetVolume()->GetName() ;
94  const G4ParticleDefinition* particle = aStep->GetTrack()->GetDefinition();
95 
96 
97  if (thisVolume != "PMT1" && thisVolume != "PMT2")
98  return false;
99  if (particle != G4OpticalPhoton::Definition() )
100  return false;
101 
102  if(particle == G4OpticalPhoton::Definition())
103  aStep->GetTrack()->SetTrackStatus(fStopAndKill);
104 
105  G4double kineticEnergy = aStep->GetTrack()->GetKineticEnergy();
106  G4ThreeVector HitPosition = aStep->GetPreStepPoint()->GetPosition() ;
107 
108  UltraOpticalHit* OpticalHit = new UltraOpticalHit ;
109  OpticalHit->SetEnergy(kineticEnergy);
110  OpticalHit->SetPosition(HitPosition);
111 
112 
113  OpticalHitsCollection->insert(OpticalHit);
114 
115 
116 #ifdef ULTRA_VERBOSE
117  G4cout << "*******************************" << G4endl;
118  G4cout << " PMT HIT " << G4endl;
119  G4cout << " Volume: " << thisVolume << G4endl;
120  G4cout << " Photon energy (eV) : " << kineticEnergy/eV << G4endl;
121  G4cout << " POSITION (mm) : "
122  << HitPosition.x()/mm << " " << HitPosition.y()/mm << " " << HitPosition.z()/mm << G4endl;
123  G4cout << "*******************************" << G4endl;
124 #endif
125 
126 
127  return true;
128 }
double x() const
double z() const
G4GLOB_DLL std::ostream G4cout
void SetPosition(G4ThreeVector xyz)
void SetEnergy(G4double fEn)
double y() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
static G4OpticalPhoton * Definition()

The documentation for this class was generated from the following files: