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

EM Calorimeter hit. More...

#include <Doxymodules_basic.h>

Inheritance diagram for B5::EmCalorimeterHit:
G4VHit

Public Member Functions

 EmCalorimeterHit ()=default
 
 EmCalorimeterHit (G4int cellID)
 
 EmCalorimeterHit (const EmCalorimeterHit &right)=default
 
 ~EmCalorimeterHit () override=default
 
EmCalorimeterHitoperator= (const EmCalorimeterHit &right)=default
 
G4bool operator== (const EmCalorimeterHit &right) const
 
void * operator new (size_t)
 
void operator delete (void *aHit)
 
void Draw () override
 
const std::map< G4String, G4AttDef > * GetAttDefs () const override
 
std::vector< G4AttValue > * CreateAttValues () const override
 
void Print () override
 
void SetCellID (G4int z)
 
G4int GetCellID () const
 
void SetEdep (G4double de)
 
void AddEdep (G4double de)
 
G4double GetEdep () const
 
void SetPos (G4ThreeVector xyz)
 
G4ThreeVector GetPos () const
 
void SetRot (G4RotationMatrix rmat)
 
G4RotationMatrix GetRot () const
 
void SetLogV (G4LogicalVolume *val)
 
const G4LogicalVolumeGetLogV () const
 

Private Attributes

G4int fCellID = -1
 
G4double fEdep = 0.
 
G4ThreeVector fPos
 
G4RotationMatrix fRot
 
const G4LogicalVolumefPLogV = nullptr
 

Detailed Description

EM Calorimeter hit.

It records:

Definition at line 189 of file Doxymodules_basic.h.

Constructor & Destructor Documentation

◆ EmCalorimeterHit() [1/3]

B5::EmCalorimeterHit::EmCalorimeterHit ( )
default

◆ EmCalorimeterHit() [2/3]

B5::EmCalorimeterHit::EmCalorimeterHit ( G4int  cellID)

Definition at line 52 of file EmCalorimeterHit.cc.

53: fCellID(cellID)
54{}

◆ EmCalorimeterHit() [3/3]

B5::EmCalorimeterHit::EmCalorimeterHit ( const EmCalorimeterHit right)
default

◆ ~EmCalorimeterHit()

B5::EmCalorimeterHit::~EmCalorimeterHit ( )
overridedefault

Member Function Documentation

◆ operator=()

EmCalorimeterHit & B5::EmCalorimeterHit::operator= ( const EmCalorimeterHit right)
default

◆ operator==()

G4bool B5::EmCalorimeterHit::operator== ( const EmCalorimeterHit right) const

Definition at line 58 of file EmCalorimeterHit.cc.

59{
60 return (fCellID==right.fCellID);
61}

◆ operator new()

void * B5::EmCalorimeterHit::operator new ( size_t  )
inline

Definition at line 101 of file EmCalorimeterHit.hh.

102{
105 }
106 return (void*)EmCalorimeterHitAllocator->MallocSingle();
107}
G4ThreadLocal G4Allocator< EmCalorimeterHit > * EmCalorimeterHitAllocator

◆ operator delete()

void B5::EmCalorimeterHit::operator delete ( void *  aHit)
inline

Definition at line 109 of file EmCalorimeterHit.hh.

110{
111 EmCalorimeterHitAllocator->FreeSingle((EmCalorimeterHit*) aHit);
112}
EmCalorimeterHit()=default

◆ Draw()

void B5::EmCalorimeterHit::Draw ( )
override

Definition at line 65 of file EmCalorimeterHit.cc.

66{
67 auto visManager = G4VVisManager::GetConcreteInstance();
68 if ( ! visManager || (fEdep==0.) ) return;
69
70 // Draw a calorimeter cell with a color corresponding to its energy deposit
71 G4Transform3D trans(fRot.inverse(),fPos);
72 G4VisAttributes attribs;
73 auto pVA = fPLogV->GetVisAttributes();
74 if (pVA) attribs = *pVA;
75 auto rcol = fEdep/(0.7*GeV);
76 if (rcol>1.) rcol = 1.;
77 if (rcol<0.4) rcol = 0.4;
78 G4Colour colour(rcol,0.,0.);
79 attribs.SetColour(colour);
80 attribs.SetForceSolid(true);
81 visManager->Draw(*fPLogV,attribs,trans);
82}
const G4LogicalVolume * fPLogV
G4RotationMatrix fRot

◆ GetAttDefs()

const std::map< G4String, G4AttDef > * B5::EmCalorimeterHit::GetAttDefs ( ) const
override

Definition at line 86 of file EmCalorimeterHit.cc.

87{
88 G4bool isNew;
89 auto store = G4AttDefStore::GetInstance("EmCalorimeterHit",isNew);
90
91 if (isNew) {
92 (*store)["HitType"]
93 = G4AttDef("HitType","Hit Type","Physics","","G4String");
94
95 (*store)["ID"]
96 = G4AttDef("ID","ID","Physics","","G4int");
97
98 (*store)["Energy"]
99 = G4AttDef("Energy", "Energy Deposited", "Physics", "G4BestUnit",
100 "G4double");
101
102 (*store)["Pos"]
103 = G4AttDef("Pos", "Position", "Physics","G4BestUnit",
104 "G4ThreeVector");
105
106 (*store)["LVol"]
107 = G4AttDef("LVol","Logical Volume","Physics","","G4String");
108 }
109 return store;
110}

◆ CreateAttValues()

std::vector< G4AttValue > * B5::EmCalorimeterHit::CreateAttValues ( ) const
override

Definition at line 114 of file EmCalorimeterHit.cc.

115{
116 auto values = new std::vector<G4AttValue>;
117
118 values
119 ->push_back(G4AttValue("HitType","EmCalorimeterHit",""));
120 values
121 ->push_back(G4AttValue("ID",G4UIcommand::ConvertToString(fCellID),""));
122 values
123 ->push_back(G4AttValue("Energy",G4BestUnit(fEdep,"Energy"),""));
124 values
125 ->push_back(G4AttValue("Pos",G4BestUnit(fPos,"Length"),""));
126
127 if (fPLogV)
128 values->push_back(G4AttValue("LVol",fPLogV->GetName(),""));
129 else
130 values->push_back(G4AttValue("LVol"," ",""));
131
132 return values;
133}

◆ Print()

void B5::EmCalorimeterHit::Print ( )
override

Definition at line 137 of file EmCalorimeterHit.cc.

138{
139 G4cout << " Cell[" << fCellID << "] " << fEdep/MeV << " (MeV)" << G4endl;
140}

◆ SetCellID()

void B5::EmCalorimeterHit::SetCellID ( G4int  z)
inline

Definition at line 73 of file EmCalorimeterHit.hh.

73{ fCellID = z; }

◆ GetCellID()

G4int B5::EmCalorimeterHit::GetCellID ( ) const
inline

Definition at line 74 of file EmCalorimeterHit.hh.

74{ return fCellID; }

◆ SetEdep()

void B5::EmCalorimeterHit::SetEdep ( G4double  de)
inline

Definition at line 76 of file EmCalorimeterHit.hh.

76{ fEdep = de; }

◆ AddEdep()

void B5::EmCalorimeterHit::AddEdep ( G4double  de)
inline

Definition at line 77 of file EmCalorimeterHit.hh.

77{ fEdep += de; }

◆ GetEdep()

G4double B5::EmCalorimeterHit::GetEdep ( ) const
inline

Definition at line 78 of file EmCalorimeterHit.hh.

78{ return fEdep; }

◆ SetPos()

void B5::EmCalorimeterHit::SetPos ( G4ThreeVector  xyz)
inline

Definition at line 80 of file EmCalorimeterHit.hh.

80{ fPos = xyz; }

◆ GetPos()

G4ThreeVector B5::EmCalorimeterHit::GetPos ( ) const
inline

Definition at line 81 of file EmCalorimeterHit.hh.

81{ return fPos; }

◆ SetRot()

void B5::EmCalorimeterHit::SetRot ( G4RotationMatrix  rmat)
inline

Definition at line 83 of file EmCalorimeterHit.hh.

83{ fRot = rmat; }

◆ GetRot()

G4RotationMatrix B5::EmCalorimeterHit::GetRot ( ) const
inline

Definition at line 84 of file EmCalorimeterHit.hh.

84{ return fRot; }

◆ SetLogV()

void B5::EmCalorimeterHit::SetLogV ( G4LogicalVolume val)
inline

Definition at line 86 of file EmCalorimeterHit.hh.

86{ fPLogV = val; }

◆ GetLogV()

const G4LogicalVolume * B5::EmCalorimeterHit::GetLogV ( ) const
inline

Definition at line 87 of file EmCalorimeterHit.hh.

87{ return fPLogV; }

Member Data Documentation

◆ fCellID

G4int B5::EmCalorimeterHit::fCellID = -1
private

Definition at line 90 of file EmCalorimeterHit.hh.

◆ fEdep

G4double B5::EmCalorimeterHit::fEdep = 0.
private

Definition at line 91 of file EmCalorimeterHit.hh.

◆ fPos

G4ThreeVector B5::EmCalorimeterHit::fPos
private

Definition at line 92 of file EmCalorimeterHit.hh.

◆ fRot

G4RotationMatrix B5::EmCalorimeterHit::fRot
private

Definition at line 93 of file EmCalorimeterHit.hh.

◆ fPLogV

const G4LogicalVolume* B5::EmCalorimeterHit::fPLogV = nullptr
private

Definition at line 94 of file EmCalorimeterHit.hh.


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

Applications | User Support | Publications | Collaboration