Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
B5::EmCalorimeterSD Class Reference

EM calorimeter sensitive detector. More...

#include <Doxymodules_basic.h>

Inheritance diagram for B5::EmCalorimeterSD:
G4VSensitiveDetector

Public Member Functions

 EmCalorimeterSD (G4String name)
 
 ~EmCalorimeterSD () override=default
 
void Initialize (G4HCofThisEvent *HCE) override
 
G4bool ProcessHits (G4Step *aStep, G4TouchableHistory *ROhist) override
 

Private Attributes

EmCalorimeterHitsCollectionfHitsCollection = nullptr
 
G4int fHCID = -1
 

Detailed Description

EM calorimeter sensitive detector.

Definition at line 190 of file Doxymodules_basic.h.

Constructor & Destructor Documentation

◆ EmCalorimeterSD()

B5::EmCalorimeterSD::EmCalorimeterSD ( G4String  name)

Definition at line 46 of file EmCalorimeterSD.cc.

48{
49 collectionName.insert("EMcalorimeterColl");
50}

◆ ~EmCalorimeterSD()

B5::EmCalorimeterSD::~EmCalorimeterSD ( )
overridedefault

Member Function Documentation

◆ Initialize()

void B5::EmCalorimeterSD::Initialize ( G4HCofThisEvent HCE)
override

Definition at line 54 of file EmCalorimeterSD.cc.

55{
57 = new EmCalorimeterHitsCollection(SensitiveDetectorName,collectionName[0]);
58 if (fHCID<0) {
59 fHCID = G4SDManager::GetSDMpointer()->GetCollectionID(fHitsCollection);
60 }
61 hce->AddHitsCollection(fHCID,fHitsCollection);
62
63 // fill calorimeter hits with zero energy deposition
64 for (auto i=0;i<kNofEmCells;i++) {
65 fHitsCollection->insert(new EmCalorimeterHit(i));
66 }
67}
EmCalorimeterHitsCollection * fHitsCollection
constexpr G4int kNofEmCells
Definition Constants.hh:43
G4THitsCollection< EmCalorimeterHit > EmCalorimeterHitsCollection

◆ ProcessHits()

G4bool B5::EmCalorimeterSD::ProcessHits ( G4Step aStep,
G4TouchableHistory ROhist 
)
override

Definition at line 71 of file EmCalorimeterSD.cc.

72{
73 auto edep = step->GetTotalEnergyDeposit();
74 if (edep==0.) return true;
75
76 auto touchable = step->GetPreStepPoint()->GetTouchable();
77 auto physical = touchable->GetVolume();
78 auto copyNo = physical->GetCopyNo();
79
80 auto hit = (*fHitsCollection)[copyNo];
81 // check if it is first touch
82 if (!(hit->GetLogV())) {
83 // fill volume information
84 hit->SetLogV(physical->GetLogicalVolume());
85 G4AffineTransform transform = touchable->GetHistory()->GetTopTransform();
86 transform.Invert();
87 hit->SetRot(transform.NetRotation());
88 hit->SetPos(transform.NetTranslation());
89 }
90 // add energy deposition
91 hit->AddEdep(edep);
92
93 return true;
94}

Member Data Documentation

◆ fHitsCollection

EmCalorimeterHitsCollection* B5::EmCalorimeterSD::fHitsCollection = nullptr
private

Definition at line 56 of file EmCalorimeterSD.hh.

◆ fHCID

G4int B5::EmCalorimeterSD::fHCID = -1
private

Definition at line 57 of file EmCalorimeterSD.hh.


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

Applications | User Support | Publications | Collaboration