![]() |
Project
|
Detector class for the PHOS detector. More...
#include <Detector.h>
Inherits o2::base::DetImpl< Detector >.
Public Types | |
enum | { ID_PWO = 1 , ID_AL = 2 , ID_TYVEK = 3 , ID_POLYFOAM = 4 , ID_APD = 5 , ID_THERMOINS = 6 , ID_TEXTOLIT = 7 , ID_PRINTCIRC = 8 , ID_FE = 9 , ID_FIBERGLASS = 10 , ID_CABLES = 11 , ID_AIR = 12 } |
Public Member Functions | |
Detector ()=default | |
Detector (Bool_t isActive) | |
~Detector () override | |
void | InitializeO2Detector () final |
Bool_t | ProcessHits (FairVolume *v=nullptr) final |
Hit * | addHit (Int_t trackID, Int_t detID, const math_utils::Point3D< float > &pos, const math_utils::Vector3D< float > &mom, Double_t totE, Double_t time, Double_t eLoss) |
void | Register () override |
std::vector< Hit > * | getHits (Int_t iColl) const |
void | Reset () final |
void | FinishEvent () final |
Sort final hist. | |
void | EndOfEvent () final |
Geometry * | getGeometry () |
void | addAlignableVolumes () const override |
![]() | |
std::string | getHitBranchNames (int probe) const override |
void | updateHitTrackIndices (std::map< int, int > const &indexmapping) override |
void | attachHits (fair::mq::Channel &channel, fair::mq::Parts &parts) override |
void | mergeAndAdjustHits (std::string const &brname, TTree &origin, TTree &target, std::vector< int > const &trackoffsets, std::vector< int > const &nprimaries, std::vector< int > const &subevtsOrdered) |
void | mergeAndAdjustHits (std::string const &brname, L &hitbuffervector, TTree &target, std::vector< int > const &trackoffsets, std::vector< int > const &nprimaries, std::vector< int > const &subevtsOrdered) |
void | mergeHitEntries (TTree &origin, TTree &target, std::vector< int > const &trackoffsets, std::vector< int > const &nprimaries, std::vector< int > const &subevtsOrdered) final |
void | mergeHitEntriesAndFlush (int eventID, TTree &target, std::vector< int > const &trackoffsets, std::vector< int > const &nprimaries, std::vector< int > const &subevtsOrdered) final |
void | collectHits (int eventID, fair::mq::Parts &parts, int &index) override |
void | fillHitBranch (TTree &tr, fair::mq::Parts &parts, int &index) override |
FairModule * | CloneModule () const final |
void | freeHitBuffers () |
bool | setHits (int i, std::vector< Hit_t > *ptr) |
void | createHitBuffers () |
void | initializeLate () final |
void | BeginEvent () final |
~DetImpl () override | |
Detector (const char *name, Bool_t Active) | |
Detector () | |
Default Constructor. | |
Detector (const Detector &origin) | |
![]() | |
Detector (const char *name, Bool_t Active) | |
Detector () | |
Default Constructor. | |
~Detector () override | |
Default Destructor. | |
void | Material (Int_t imat, const char *name, Float_t a, Float_t z, Float_t dens, Float_t radl, Float_t absl, Float_t *buf=nullptr, Int_t nwbuf=0) |
void | Mixture (Int_t imat, const char *name, Float_t *a, Float_t *z, Float_t dens, Int_t nlmat, Float_t *wmat) |
void | Medium (Int_t numed, const char *name, Int_t nmat, Int_t isvol, Int_t ifield, Float_t fieldm, Float_t tmaxfd, Float_t stemax, Float_t deemax, Float_t epsil, Float_t stmin, Float_t *ubuf=nullptr, Int_t nbuf=0) |
void | SpecialCuts (Int_t numed, const std::initializer_list< std::pair< ECut, Float_t > > &parIDValMap) |
Custom processes and transport cuts. | |
void | SpecialCut (Int_t numed, ECut parID, Float_t val) |
Set cut by name and value. | |
void | SpecialProcesses (Int_t numed, const std::initializer_list< std::pair< EProc, int > > &parIDValMap) |
void | SpecialProcess (Int_t numed, EProc parID, int val) |
Set process by name and value. | |
void | Matrix (Int_t &nmat, Float_t theta1, Float_t phi1, Float_t theta2, Float_t phi2, Float_t theta3, Float_t phi3) const |
void | SetSpecialPhysicsCuts () override |
virtual void | fillParallelWorld () const |
fill parallel geometry with sensitive volumes of detector | |
virtual void | defineWrapperVolume (Int_t id, Double_t rmin, Double_t rmax, Double_t zspan) |
Sets per wrapper volume parameters. | |
virtual void | setNumberOfWrapperVolumes (Int_t n) |
Books arrays for wrapper volumes. | |
virtual void | defineLayer (Int_t nlay, Double_t phi0, Double_t r, Int_t nladd, Int_t nmod, Double_t lthick=0., Double_t dthick=0., UInt_t detType=0, Int_t buildFlag=0) |
virtual void | defineLayerTurbo (Int_t nlay, Double_t phi0, Double_t r, Int_t nladd, Int_t nmod, Double_t width, Double_t tilt, Double_t lthick=0., Double_t dthick=0., UInt_t detType=0, Int_t buildFlag=0) |
int | getMaterialID (int imat) const |
int | getMediumID (int imed) const |
void | getMediumIDMappingAsVector (std::vector< int > &mapping) |
std::string | addNameTo (const char *ext) const |
void | Initialize () final |
int | registerSensitiveVolumeAndGetVolID (std::string const &name) |
int | registerSensitiveVolumeAndGetVolID (TGeoVolume const *vol) |
TClonesArray * | GetCollection (int iColl) const final |
Protected Member Functions | |
void | CreateMaterials () |
void | ConstructGeometry () override |
void | ConstructSupportGeometry () |
Creating PHOS/support description for Geant. | |
void | ConstructEMCGeometry () |
Creating calo for Geant. | |
![]() | |
ClassDefOverride (DetImpl, 0) | |
pointer to hit (collector) buffer location (strictly internal) | |
![]() | |
Detector (const Detector &origin) | |
Detector & | operator= (const Detector &) |
Friends | |
template<typename Det > | |
class | o2::base::DetImpl |
current Hit | |
Additional Inherited Members | |
![]() | |
static void | setDensityFactor (Float_t density) |
static Float_t | getDensityFactor () |
static void | initFieldTrackingParams (int &mode, float &maxfield) |
static void | setDetId2HitBitIndex (std::vector< int > const &v) |
set the DetID to HitBitIndex mapping. Succeeds if not already set. | |
static std::vector< int > const & | getDetId2HitBitIndex () |
![]() | |
bool * | mShmBusy [NHITBUFFERS] |
std::vector< void * > | mCachedPtr [NHITBUFFERS] |
pointer to bool in shared mem indicating of IO busy | |
int | mCurrentBuffer |
int | mInitialized |
char * | mHitCollectorBufferPtr |
![]() | |
static constexpr int | NHITBUFFERS |
Detector class for the PHOS detector.
The detector class handles the implementation of the PHOS detector within the virtual Monte-Carlo framework and the simulation of the PHOS detector up to hit generation
Definition at line 41 of file Detector.h.
anonymous enum |
Enumerator | |
---|---|
ID_PWO | |
ID_AL | |
ID_TYVEK | |
ID_POLYFOAM | |
ID_APD | |
ID_THERMOINS | |
ID_TEXTOLIT | |
ID_PRINTCIRC | |
ID_FE | |
ID_FIBERGLASS | |
ID_CABLES | |
ID_AIR |
Definition at line 45 of file Detector.h.
|
default |
Default constructor
Detector::Detector | ( | Bool_t | isActive | ) |
Main constructor
[in] | isActive | Switch whether detector is active in simulation |
Definition at line 41 of file Detector.cxx.
|
override |
Destructor
Definition at line 61 of file Detector.cxx.
|
overridevirtual |
Specifies PHOS modules as alignable volumes
Reimplemented from o2::base::Detector.
Definition at line 921 of file Detector.cxx.
Hit * Detector::addHit | ( | Int_t | trackID, |
Int_t | detID, | ||
const math_utils::Point3D< float > & | pos, | ||
const math_utils::Vector3D< float > & | mom, | ||
Double_t | totE, | ||
Double_t | time, | ||
Double_t | eLoss | ||
) |
Add PHOS hit Internally adding hits coming from the same track
[in] | trackID | Index of the track in the MC stack first entered PHOS |
[in] | detID | Index of the detector (cell) for which the hit is created |
[in] | pos | Position vector of the particle first entered PHOS |
[in] | mom | Momentum vector of the particle first entered PHOS |
[in] | totE | Total energy of the particle entered PHOS |
[in] | time | Time of the hit |
[in] | energyloss | Energy deposited in this step |
Definition at line 220 of file Detector.cxx.
|
protected |
Creating calo for Geant.
Definition at line 437 of file Detector.cxx.
|
overrideprotected |
Creating PHOS description for Geant
Definition at line 230 of file Detector.cxx.
|
protected |
Creating PHOS/support description for Geant.
Definition at line 803 of file Detector.cxx.
|
protected |
Creating detector materials for the PHOS detector and space frame
Definition at line 299 of file Detector.cxx.
|
final |
Steps to be carried out at the end of the event For PHOS cleaning the hit collection and the lookup table
Definition at line 74 of file Detector.cxx.
|
final |
Sort final hist.
Definition at line 78 of file Detector.cxx.
Geometry * o2::phos::Detector::getGeometry | ( | ) |
Get the PHOS geometry desciption Will be created the first time the function is called
|
inline |
Get access to the hits
Definition at line 110 of file Detector.h.
|
finalvirtual |
|
final |
Processing hit creation in the PHOS crystalls
[in] | v | Current sensitive volume |
Definition at line 130 of file Detector.cxx.
|
override |
Register vector with hits
Definition at line 128 of file Detector.cxx.
|
final |
Reset Clean Hits collection
Definition at line 116 of file Detector.cxx.
|
friend |
current Hit
Definition at line 196 of file Detector.h.