CbmRoot
Loading...
Searching...
No Matches
CbmPsdMC Class Reference

Class for the MC transport of the CBM-PSD. More...

#include <CbmPsdMC.h>

Inheritance diagram for CbmPsdMC:
[legend]
Collaboration diagram for CbmPsdMC:
[legend]

Public Member Functions

 CbmPsdMC (Bool_t active=kTRUE, const char *name="PSDMC")
 Constructor.
 
virtual ~CbmPsdMC ()
 
virtual Bool_t IsSensitive (const std::string &name)
 Check whether a volume is sensitive.
 
virtual Bool_t CheckIfSensitive (std::string name)
 Check whether a volume is sensitive.
 
virtual void ConstructGeometry ()
 Construct the PSD geometry in the TGeoManager.
 
virtual void EndOfEvent ()
 Action at end of event.
 
virtual TClonesArray * GetCollection (Int_t iColl) const
 Get output array of CbmPsdPoints.
 
virtual void Print (Option_t *opt="") const
 Screen log Prints current number of StsPoints in array. Virtual from TObject.
 
virtual Bool_t ProcessHits (FairVolume *volume=0)
 Stepping action.
 
virtual void Register ()
 Register the output array.
 
virtual void Reset ()
 Clear output array.
 
void SetPosition (Double_t xPos, Double_t zPos, Double_t rotY)
 Define the PSD position in the cave.
 

Private Member Functions

void RegisterSensitiveVolumes (TGeoNode *node)
 module ID
 
 CbmPsdMC (const CbmPsdMC &)=delete
 
CbmPsdMC operator= (const CbmPsdMC &)=delete
 

Private Attributes

Double_t fPosX
 
Double_t fPosZ
 
Double_t fRotY
 
Bool_t fUserPlacement
 
TClonesArray * fPsdPoints
 
Int_t fTrackID
 Output array.
 
Int_t fAddress
 track index
 
TLorentzVector fPos
 address (module and layer)
 
TLorentzVector fMom
 position
 
Double_t fTime
 momentum
 
Double_t fLength
 time
 
Double_t fEloss
 length
 
Int_t fLayerID
 energy loss
 
Int_t fModuleID
 layer ID
 

Detailed Description

Class for the MC transport of the CBM-PSD.

Author
V.Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Version
2.0

The CbmPsdMC defines the behaviour of the PSD system during transport simulation. It constructs the PSD transport geometry and creates objects of type CbmPsdPoints.

Definition at line 34 of file CbmPsdMC.h.

Constructor & Destructor Documentation

◆ CbmPsdMC() [1/2]

CbmPsdMC::CbmPsdMC ( Bool_t active = kTRUE,
const char * name = "PSDMC" )

Constructor.

Parameters
activeIf set true, ProcessHits will be called
nameName of detector object

Definition at line 31 of file CbmPsdMC.cxx.

◆ ~CbmPsdMC()

CbmPsdMC::~CbmPsdMC ( )
virtual

Destructor

Definition at line 53 of file CbmPsdMC.cxx.

References fPsdPoints.

◆ CbmPsdMC() [2/2]

CbmPsdMC::CbmPsdMC ( const CbmPsdMC & )
privatedelete

Prevent copy constructor and assignment operator

Member Function Documentation

◆ CheckIfSensitive()

virtual Bool_t CbmPsdMC::CheckIfSensitive ( std::string name)
inlinevirtual

Check whether a volume is sensitive.

Parameters
(name)Volume name @value kTRUE if volume is sensitive, else kFALSE

The decision is based on the volume name (has to contain "scint"). Virtual from FairModule.

Definition at line 67 of file CbmPsdMC.h.

References IsSensitive().

Referenced by RegisterSensitiveVolumes().

◆ ConstructGeometry()

void CbmPsdMC::ConstructGeometry ( )
virtual

Construct the PSD geometry in the TGeoManager.

Only ROOT geometries are supported. The file must contain a top volume the name of which starts with "psd" and a TGeoMatrix for the placement of the top psd volume in the cave. Virtual from FairModule.

Definition at line 64 of file CbmPsdMC.cxx.

References Cbm::GeometryUtils::ImportRootGeometry().

◆ EndOfEvent()

void CbmPsdMC::EndOfEvent ( )
virtual

Action at end of event.

Short status log and Reset(). Virtual from FairDetector.

Definition at line 156 of file CbmPsdMC.cxx.

References fPsdPoints, and Print().

◆ GetCollection()

virtual TClonesArray * CbmPsdMC::GetCollection ( Int_t iColl) const
inlinevirtual

Get output array of CbmPsdPoints.

Accessor to the hit collection

Parameters
iCollNumber of collection. Must be zero, since there is only one. @value Pointer to TClonesArray with CbmPsdPoints

Definition at line 93 of file CbmPsdMC.h.

References fPsdPoints.

◆ IsSensitive()

virtual Bool_t CbmPsdMC::IsSensitive ( const std::string & name)
inlinevirtual

Check whether a volume is sensitive.

Parameters
(name)Volume name @value kTRUE if volume is sensitive, else kFALSE

The decision is based on the volume name (has to contain "scint"). Virtual from FairModule.

Definition at line 55 of file CbmPsdMC.h.

Referenced by CheckIfSensitive().

◆ operator=()

CbmPsdMC CbmPsdMC::operator= ( const CbmPsdMC & )
privatedelete

◆ Print()

void CbmPsdMC::Print ( Option_t * opt = "") const
virtual

Screen log Prints current number of StsPoints in array. Virtual from TObject.

Definition at line 165 of file CbmPsdMC.cxx.

References fPsdPoints.

Referenced by EndOfEvent().

◆ ProcessHits()

Bool_t CbmPsdMC::ProcessHits ( FairVolume * volume = 0)
virtual

Stepping action.

Parameters
volumePointer to the current volume @value Always kTRUE

Defines the action to be taken when a step is inside the active volume. Creates CbmPsdPoints and adds them to the collection. Abstract from FairDetector.

Definition at line 173 of file CbmPsdMC.cxx.

References CbmStack::AddPoint(), fAddress, fEloss, fLayerID, fLength, fModuleID, fMom, fPos, fPsdPoints, fTime, fTrackID, kPsd, CbmPsdPoint::SetModuleID(), and size().

◆ Register()

virtual void CbmPsdMC::Register ( )
inlinevirtual

Register the output array.

Abstract from FairDetector.

Definition at line 119 of file CbmPsdMC.h.

References fPsdPoints.

◆ RegisterSensitiveVolumes()

void CbmPsdMC::RegisterSensitiveVolumes ( TGeoNode * node)
private

module ID

Register all sensitive volumes

Parameters
nodePointer to start node

Starting from the specified node, the entire node tree is expanded and all volumes which satisfy the CheckIfSensitive() criterion are added to the list of sensitive volumes.

Definition at line 220 of file CbmPsdMC.cxx.

References CheckIfSensitive(), and RegisterSensitiveVolumes().

Referenced by RegisterSensitiveVolumes().

◆ Reset()

virtual void CbmPsdMC::Reset ( )
inlinevirtual

Clear output array.

Abstract from FairDetector.

Definition at line 126 of file CbmPsdMC.h.

References fPsdPoints.

◆ SetPosition()

void CbmPsdMC::SetPosition ( Double_t xPos,
Double_t zPos,
Double_t rotY )
inline

Define the PSD position in the cave.

Parameters
xPosx Position in the cave [cm]
zPosz position in the cave [cm]
rotYRotation angle around y axis [degrees]

When this method is invoked, the transformation matrix read from the geometry file will be overridden with a translation by (xPos, 0, zPos) and a rotation around the y axis by rotY degrees.

Definition at line 138 of file CbmPsdMC.h.

References fPosX, fPosZ, fRotY, and fUserPlacement.

Member Data Documentation

◆ fAddress

Int_t CbmPsdMC::fAddress
private

track index

Definition at line 156 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fEloss

Double_t CbmPsdMC::fEloss
private

length

Definition at line 161 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fLayerID

Int_t CbmPsdMC::fLayerID
private

energy loss

Definition at line 162 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fLength

Double_t CbmPsdMC::fLength
private

time

Definition at line 160 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fModuleID

Int_t CbmPsdMC::fModuleID
private

layer ID

Definition at line 163 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fMom

TLorentzVector CbmPsdMC::fMom
private

position

Definition at line 158 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fPos

TLorentzVector CbmPsdMC::fPos
private

address (module and layer)

Definition at line 157 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fPosX

Double_t CbmPsdMC::fPosX
private

Definition at line 148 of file CbmPsdMC.h.

Referenced by SetPosition().

◆ fPosZ

Double_t CbmPsdMC::fPosZ
private

Definition at line 149 of file CbmPsdMC.h.

Referenced by SetPosition().

◆ fPsdPoints

TClonesArray* CbmPsdMC::fPsdPoints
private

Definition at line 152 of file CbmPsdMC.h.

Referenced by EndOfEvent(), GetCollection(), Print(), ProcessHits(), Register(), Reset(), and ~CbmPsdMC().

◆ fRotY

Double_t CbmPsdMC::fRotY
private

Definition at line 150 of file CbmPsdMC.h.

Referenced by SetPosition().

◆ fTime

Double_t CbmPsdMC::fTime
private

momentum

Definition at line 159 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fTrackID

Int_t CbmPsdMC::fTrackID
private

Output array.

Track information to be temporarily stored

Definition at line 155 of file CbmPsdMC.h.

Referenced by ProcessHits().

◆ fUserPlacement

Bool_t CbmPsdMC::fUserPlacement
private

Definition at line 151 of file CbmPsdMC.h.

Referenced by SetPosition().


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