Project
Loading...
Searching...
No Matches
o2::mft::Detector Class Reference

#include <Detector.h>

Inherits o2::base::DetImpl< Detector >.

Public Member Functions

 Detector (Bool_t active)
 
 Detector ()
 Default constructor.
 
 ~Detector () override
 Default destructor.
 
void InitializeO2Detector () override
 Initialization of the detector is done here.
 
bool isMTSafe () const override
 whether this detector may run in multithreaded Geant4, with one clone per worker thread
 
Bool_t ProcessHits (FairVolume *v=nullptr) override
 This method is called for each step during simulation (see FairMCApplication::Stepping())
 
void Reset () override
 Has to be called after each event to reset the containers.
 
void Register () override
 Registers the produced collections in FAIRRootManager.
 
std::vector< o2::itsmft::Hit > * getHits (Int_t iColl) const
 Gets the produced hits.
 
void EndOfEvent () override
 
void FinishPrimary () override
 
void FinishRun () override
 
void BeginPrimary () override
 
void PostTrack () override
 
void PreTrack () override
 
void ConstructGeometry () override
 
void addAlignableVolumes () const override
 Add alignable top volumes.
 
void addAlignableVolumesHalf (Int_t hf, TString &parent, Int_t &lastUID) const
 
void addAlignableVolumesDisk (Int_t hf, Int_t dk, TString &parent, Int_t &lastUID) const
 
void addAlignableVolumesLadder (Int_t hf, Int_t dk, Int_t lr, TString &parent, Int_t &lastUID) const
 
void addAlignableVolumesChip (Int_t hf, Int_t dk, Int_t lr, Int_t ms, TString &parent, Int_t &lastUID) const
 
Int_t isVersion () const
 
void createMaterials ()
 Creating materials for the detector.
 
void setDensitySupportOverSi (Double_t density)
 
void createGeometry ()
 
void defineSensitiveVolumes ()
 
- Public Member Functions inherited from o2::base::DetImpl< Detector >
 DetImpl (const DetImpl &rhs)
 copy for a worker thread of multithreaded Geant4; the copy creates its own hit buffers in initializeLate
 
DetImpl & operator= (const DetImpl &)=delete
 
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
 
auto & hitCollector ()
 
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, bool shm) 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
 
void Streamer (TBuffer &)
 
 Detector (const char *name, Bool_t Active)
 
 Detector ()
 Default Constructor.
 
 Detector (const Detector &origin)
 
- Public Member Functions inherited from o2::base::Detector
 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, Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_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
 
- Public Member Functions inherited from FairDetector
 FairDetector (const char *Name, Bool_t Active, Int_t DetId=0)
 
 FairDetector ()
 
virtual ~FairDetector ()
 
virtual TClonesArray * GetCollection (Int_t iColl) const =0
 
virtual void CopyClones (TClonesArray *, TClonesArray *, Int_t)
 
virtual void FinishEvent ()
 
void SaveGeoParams ()
 
Int_t GetDetId ()
 
- Public Member Functions inherited from FairModule
 FairModule ()
 
 FairModule (const char *Name, const char *title, Bool_t Active=kFALSE)
 
virtual ~FairModule ()
 
virtual void Print (Option_t *) const
 
virtual void SetGeometryFileName (TString fname, TString geoVer="0")
 
virtual TString GetGeometryFileName ()
 
virtual TString GetGeometryFileVer ()
 
virtual void ConstructOpGeometry ()
 
virtual void ConstructRootGeometry (TGeoMatrix *shiftM=nullptr)
 
virtual void ConstructASCIIGeometry ()
 
virtual void ModifyGeometry () __attribute__((deprecated("Use FairAlignmentHandler instead
 
virtual void RegisterAlignmentMatrices ()
 
virtual void ConstructGDMLGeometry (__attribute__((unused)) TGeoMatrix *posrot)
 
virtual void BeginWorkerRun () const
 
virtual void FinishWorkerRun () const
 
virtual Bool_t IsSensitive (const std::string &name)
 
virtual Bool_t CheckIfSensitive (__attribute__((unused)) std::string name) __attribute__((deprecated("The method CheckIfSensitive is deprecated. Implement IsSensitive in the detector classes.")))
 
virtual void ExpandNode (TGeoNode *Node)
 
virtual void ExpandNodeForGDML (__attribute__((unused)) TGeoNode *curNode)
 
virtual Int_t getVolId (const TString &) const
 
Int_t GetModId ()
 
void SetVerboseLevel (Int_t level)
 
Bool_t IsActive ()
 
void SetModId (Int_t id)
 
void SetMotherVolume (TString volName)
 
virtual void SetParContainers ()
 
virtual void InitParContainers ()
 
TList * GetListOfGeoPar ()
 
FairVolume * getFairVolume (FairGeoNode *fNode)
 
void AddSensitiveVolume (TGeoVolume *v)
 
void SetMC (TVirtualMC *mc)
 cahed pointer to MC (available only after initialization)
 
 ClassDef (FairModule, 4)
 

Public Attributes

GeometryTGeo * mGeometryTGeo
 
- Public Attributes inherited from FairModule
virtual void see Tutorial4 for examples
 
TString fMotherVolumeName
 

Protected Attributes

Int_t mVersion
 access to geometry details
 
Double_t mDensitySupportOverSi
 
- Protected Attributes inherited from o2::base::DetImpl< Detector >
ShmBusyFlag * mShmBusy [NHITBUFFERS]
 
std::vector< void * > mCachedPtr [NHITBUFFERS]
 pointer to flag in shared mem indicating of IO busy
 
int mCurrentBuffer
 
int mInitialized
 
std::shared_ptr< void > mHitCollector
 
- Protected Attributes inherited from FairDetector
Int_t fDetId
 
FairLogger * fLogger
 
- Protected Attributes inherited from FairModule
TString fgeoVer
 
TString fgeoName
 
Int_t fModId
 
Bool_t fActive
 
Int_t fNbOfSensitiveVol
 
Int_t fVerboseLevel
 
TList * flGeoPar
 
Bool_t fGeoSaved
 list of Detector Geometry parameters
 
TVirtualMC * fMC
 flag for initialisation
 

Friends

template<typename Det >
class o2::base::DetImpl
 

Additional Inherited Members

- Static Public Member Functions inherited from o2::base::Detector
static void setDensityFactor (Float_t density)
 
static Float_t getDensityFactor ()
 
static int updatedTrackIndex (std::map< int, int > const &indexmapping, int trackID)
 
static int offsetTrackIndex (int trackID, int nprimaries, int primaryOffset, int secondaryOffset)
 
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 ()
 
- Static Public Attributes inherited from FairModule
static thread_local FairVolumeList * vList = 0
 
static thread_local Int_t fNbOfVolumes = 0
 
static thread_local TRefArray * svList = 0
 
static thread_local TArrayI * volNumber = 0
 
- Protected Member Functions inherited from o2::base::DetImpl< Detector >
 ClassDefOverride (DetImpl, 0)
 type-erased hit buffers of this instance in the hit merger (see hitCollector())
 
- Protected Member Functions inherited from o2::base::Detector
 Detector (const Detector &origin)
 
Detector & operator= (const Detector &)
 
- Protected Member Functions inherited from FairDetector
 FairDetector (const FairDetector &)
 
FairDetector & operator= (const FairDetector &)
 
void DefineSensitiveVolumes ()
 
 ClassDef (FairDetector, 1)
 /// FairLogger
 
- Protected Member Functions inherited from FairModule
 FairModule (const FairModule &)
 
FairModule & operator= (const FairModule &)
 
- Static Protected Attributes inherited from o2::base::DetImpl< Detector >
static constexpr int NHITBUFFERS
 

Detailed Description

Definition at line 49 of file Detector.h.

Constructor & Destructor Documentation

◆ Detector() [1/2]

Detector::Detector ( Bool_t  active)

Name : Detector Name Active: kTRUE for active detectors (ProcessHits() will be called) kFALSE for inactive detectors

Definition at line 47 of file Detector.cxx.

◆ Detector() [2/2]

Detector::Detector ( )

Default constructor.

Definition at line 43 of file Detector.cxx.

◆ ~Detector()

Detector::~Detector ( )
override

Default destructor.

Definition at line 77 of file Detector.cxx.

Member Function Documentation

◆ addAlignableVolumes()

void Detector::addAlignableVolumes ( ) const
overridevirtual

Add alignable top volumes.

Reimplemented from o2::base::Detector.

Definition at line 624 of file Detector.cxx.

◆ addAlignableVolumesChip()

void Detector::addAlignableVolumesChip ( Int_t  hf,
Int_t  dk,
Int_t  lr,
Int_t  ms,
TString &  parent,
Int_t &  lastUID 
) const

Add alignable Sensor volumes

Parameters
hfhalf number
dkdisk number
lrladder number
mssensor number
parentpath of the parent volume
lastUIDon output, UID of the last volume

Definition at line 716 of file Detector.cxx.

◆ addAlignableVolumesDisk()

void Detector::addAlignableVolumesDisk ( Int_t  hf,
Int_t  dk,
TString &  parent,
Int_t &  lastUID 
) const

Add alignable Disk volumes

Parameters
hfhalf number
dkdisk number
parentpath of the parent volume
lastUIDon output, UID of the last volume

Definition at line 671 of file Detector.cxx.

◆ addAlignableVolumesHalf()

void Detector::addAlignableVolumesHalf ( Int_t  hf,
TString &  parent,
Int_t &  lastUID 
) const

Add alignable Half volumes

Parameters
hfHalf number
parentpath of the parent volume
lastUIDon output, UID of the last volume

Definition at line 652 of file Detector.cxx.

◆ addAlignableVolumesLadder()

void Detector::addAlignableVolumesLadder ( Int_t  hf,
Int_t  dk,
Int_t  lr,
TString &  parent,
Int_t &  lastUID 
) const

Add alignable Ladder volumes

Parameters
hfhalf number
dkdisk number
lrladder stave number
parentpath of the parent volume
lastUIDon output, UID of the last volume

Definition at line 695 of file Detector.cxx.

◆ BeginPrimary()

void o2::mft::Detector::BeginPrimary ( )
inlineoverridevirtual

User actions at beginning of a primary track

Reimplemented from FairDetector.

Definition at line 89 of file Detector.h.

◆ ConstructGeometry()

void Detector::ConstructGeometry ( )
overridevirtual

method called from the MC application to construct the geometry, has to be implimented by user

Reimplemented from FairModule.

Definition at line 602 of file Detector.cxx.

◆ createGeometry()

void Detector::createGeometry ( )

Definition at line 594 of file Detector.cxx.

◆ createMaterials()

void Detector::createMaterials ( )

Creating materials for the detector.

Definition at line 213 of file Detector.cxx.

◆ defineSensitiveVolumes()

void Detector::defineSensitiveVolumes ( )

Definition at line 610 of file Detector.cxx.

◆ EndOfEvent()

void Detector::EndOfEvent ( )
overridevirtual

this is called at the end of an event after the call to tree fill in the FairRootManager

Reimplemented from FairDetector.

Definition at line 733 of file Detector.cxx.

◆ FinishPrimary()

void o2::mft::Detector::FinishPrimary ( )
inlineoverridevirtual

User actions after finishing of a primary track

Reimplemented from FairDetector.

Definition at line 87 of file Detector.h.

◆ FinishRun()

void o2::mft::Detector::FinishRun ( )
inlineoverridevirtual

Finish MC Run

Reimplemented from FairDetector.

Definition at line 88 of file Detector.h.

◆ getHits()

std::vector< o2::itsmft::Hit > * o2::mft::Detector::getHits ( Int_t  iColl) const
inline

Gets the produced hits.

Definition at line 77 of file Detector.h.

◆ InitializeO2Detector()

void Detector::InitializeO2Detector ( )
overridevirtual

Initialization of the detector is done here.

Implements o2::base::Detector.

Definition at line 87 of file Detector.cxx.

◆ isMTSafe()

bool o2::mft::Detector::isMTSafe ( ) const
inlineoverridevirtual

whether this detector may run in multithreaded Geant4, with one clone per worker thread

Reimplemented from o2::base::Detector.

Definition at line 65 of file Detector.h.

◆ isVersion()

Int_t o2::mft::Detector::isVersion ( ) const
inline

Definition at line 127 of file Detector.h.

◆ PostTrack()

void o2::mft::Detector::PostTrack ( )
inlineoverridevirtual

User actions after finishing of each track

Reimplemented from FairDetector.

Definition at line 90 of file Detector.h.

◆ PreTrack()

void o2::mft::Detector::PreTrack ( )
inlineoverridevirtual

User actions at beginning of each track

Reimplemented from FairDetector.

Definition at line 91 of file Detector.h.

◆ ProcessHits()

Bool_t Detector::ProcessHits ( FairVolume *  v = nullptr)
overridevirtual

This method is called for each step during simulation (see FairMCApplication::Stepping())

Implements FairDetector.

Definition at line 95 of file Detector.cxx.

◆ Register()

void Detector::Register ( )
overridevirtual

Registers the produced collections in FAIRRootManager.

Implements FairDetector.

Definition at line 736 of file Detector.cxx.

◆ Reset()

void Detector::Reset ( )
overridevirtual

Has to be called after each event to reset the containers.

Implements FairDetector.

Definition at line 749 of file Detector.cxx.

◆ setDensitySupportOverSi()

void o2::mft::Detector::setDensitySupportOverSi ( Double_t  density)
inline

Definition at line 131 of file Detector.h.

Friends And Related Symbol Documentation

◆ o2::base::DetImpl

template<typename Det >
friend class o2::base::DetImpl
friend

Definition at line 170 of file Detector.h.

Member Data Documentation

◆ mDensitySupportOverSi

Double_t o2::mft::Detector::mDensitySupportOverSi
protected

Definition at line 147 of file Detector.h.

◆ mGeometryTGeo

GeometryTGeo* o2::mft::Detector::mGeometryTGeo

Definition at line 143 of file Detector.h.

◆ mVersion

Int_t o2::mft::Detector::mVersion
protected

access to geometry details

Definition at line 146 of file Detector.h.


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