![]() |
Project
|
FOCAL detector simulation. More...
#include <Detector.h>
Inherits o2::base::DetImpl< Detector >.
Public Types | |
| enum | MediumType_t { ID_TUNGSTEN = 0 , ID_SIPAD = 1 , ID_SIPIX = 2 , ID_G10 = 3 , ID_COPPER = 4 , ID_STEEL = 5 , ID_ALLOY = 6 , ID_CERAMIC = 7 , ID_PB = 8 , ID_SC = 9 , ID_SIINSENS = 10 , ID_ALUMINIUM = 11 , ID_VAC = 12 , ID_AIR = 13 } |
Public Member Functions | |
| Detector ()=default | |
| Dummy constructor. | |
| Detector (Bool_t isActive, std::string geofilename="default") | |
| Main constructor. | |
| ~Detector () override | |
| Destructor. | |
| void | InitializeO2Detector () override |
| Initializing detector. | |
| Bool_t | ProcessHits (FairVolume *v=nullptr) final |
| Processing hit creation in the FOCAL sensitive volume. | |
| Hit * | AddHit (int trackID, int primary, double initialEnergy, int detID, o2::focal::Hit::Subsystem_t subsystem, const math_utils::Point3D< float > &pos, double time, double energyloss) |
| Add FOCAL hit. | |
| void | Register () override |
| register container with hits | |
| std::vector< Hit > * | getHits (Int_t iColl) const |
| Get access to the hits. | |
| void | Reset () final |
| Clean point collection. | |
| void | EndOfEvent () final |
| Steps to be carried out at the end of the event. | |
| void | BeginPrimary () override |
| Begin primaray. | |
| void | FinishPrimary () override |
| Finish current primary. | |
| Geometry * | getGeometry (std::string name="") |
| Get the FOCAL geometry desciption. | |
| Hit * | FindHit (int parentID, int col, int row, int layer) |
| Try to find hit with same cell and parent track ID. | |
Public Member Functions inherited from o2::base::DetImpl< Detector > | |
| 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 | |
| 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 |
Protected Member Functions | |
| void | CreateMaterials () |
| Creating detector materials for the FOCAL detector. | |
| virtual void | addAlignableVolumes () const override |
| declare alignable volumes of detector | |
| void | addAlignableVolumesHCAL () const |
| void | addAlignableVolumesECAL () const |
| void | ConstructGeometry () override |
| virtual void | CreateHCALSpaghetti () |
| virtual void | CreateHCALSandwich () |
| virtual void | CreateHCALSheets () |
| TGeoVolumeAssembly * | CreatePitchAssembly (double Lx=498.1, double Ly1=2.0, double Ly2=1.5, double Lz=1100.0, double hole_diameter=1.1, double hole_spacing=4.0, int nholes=124, double fiber_radius=0.5, std::string suffix="") |
| void | CreateECALGeometry () |
| Generate ECAL geometry. | |
| Parent * | AddSuperparent (int trackID, int pdg, double energy) |
| Add new superparent to the container. | |
| bool | ProcessHitsEPad (FairVolume *v=nullptr) |
| Processing hit creation in the ECAL Pad sensitive volume. | |
| bool | ProcessHitsEPix (FairVolume *v=nullptr) |
| Processing hit creation in the ECAL Pixel sensitive volume. | |
| bool | ProcessHitsHCAL (FairVolume *v=nullptr) |
| Processing hit creation in the HCAL sensitive volume. | |
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 &) |
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 () |
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 |
Static Protected Attributes inherited from o2::base::DetImpl< Detector > | |
| static constexpr int | NHITBUFFERS |
FOCAL detector simulation.
The detector class handles the implementation of the FOCAL detector within the virtual Monte-Carlo framework and the simulation of the FOCAL detector up to hit generation
Definition at line 54 of file Detector.h.
| Enumerator | |
|---|---|
| ID_TUNGSTEN | |
| ID_SIPAD | |
| ID_SIPIX | |
| ID_G10 | |
| ID_COPPER | |
| ID_STEEL | |
| ID_ALLOY | |
| ID_CERAMIC | |
| ID_PB | |
| ID_SC | |
| ID_SIINSENS | |
| ID_ALUMINIUM | |
| ID_VAC | |
| ID_AIR | |
Definition at line 57 of file Detector.h.
|
default |
Dummy constructor.
| o2::focal::Detector::Detector | ( | Bool_t | isActive, |
| std::string | geofilename = "default" |
||
| ) |
Main constructor.
| isActive | Switch whether detector is active in simulation |
|
override |
Destructor.
Definition at line 65 of file Detector.cxx.
|
overrideprotectedvirtual |
declare alignable volumes of detector
Reimplemented from o2::base::Detector.
Definition at line 395 of file Detector.cxx.
|
protected |
Definition at line 418 of file Detector.cxx.
|
protected |
Definition at line 407 of file Detector.cxx.
| Hit * Detector::AddHit | ( | int | trackID, |
| int | primary, | ||
| double | initialEnergy, | ||
| int | detID, | ||
| o2::focal::Hit::Subsystem_t | subsystem, | ||
| const math_utils::Point3D< float > & | pos, | ||
| double | time, | ||
| double | energyloss | ||
| ) |
Add FOCAL hit.
| trackID | Index of the track in the MC stack |
| primary | Index of the primary particle in the MC stack |
| initialEnergy | Energy of the particle entering the FOCAL |
| detID | Index of the detector (cell) for which the hit is created |
| pos | Position vector of the particle at the hit |
| mom | Momentum vector of the particle at the hit |
| time | Time of the hit |
| energyloss | Energy deposit in FOCAL |
Internally adding hits coming from the same track
Definition at line 163 of file Detector.cxx.
|
protected |
Add new superparent to the container.
| trackID | Track ID of the superparent |
| pdg | PDG code of the superparent |
| energy | Energy of the superparent |
Definition at line 188 of file Detector.cxx.
|
override |
Begin primaray.
Caching current primary ID and set current parent ID to the current primary ID
Definition at line 1280 of file Detector.cxx.
|
overrideprotected |
-1 means get all the material object
Definition at line 428 of file Detector.cxx.
|
protected |
Generate ECAL geometry.
make big volume containing all the longitudinal layers
Definition at line 1032 of file Detector.cxx.
|
protectedvirtual |
make big volume containing all the longitudinal layers
Definition at line 910 of file Detector.cxx.
|
protectedvirtual |
Definition at line 831 of file Detector.cxx.
|
protectedvirtual |
Definition at line 504 of file Detector.cxx.
|
protected |
Creating detector materials for the FOCAL detector.
Silicon
W plate -> idtmed[3599];
Si plate -> idtmed[3600];
Si plate
Pb plate --> idtmed[3608]
Scintillator --> idtmed[3609]
Si plate -> idtmed[3610];
idtmed[3697]
idtmed[3698]
Definition at line 216 of file Detector.cxx.
|
protected |
Definition at line 697 of file Detector.cxx.
|
final |
Steps to be carried out at the end of the event.
For FOCAL cleaning the hit collection and the lookup table
Definition at line 195 of file Detector.cxx.
| Hit * Detector::FindHit | ( | int | parentID, |
| int | col, | ||
| int | row, | ||
| int | layer | ||
| ) |
Try to find hit with same cell and parent track ID.
| parentID | ID of the parent track |
| col | Column of the cell |
| row | Row of the cell |
| Layer | Layer of cell |
Definition at line 176 of file Detector.cxx.
|
override |
Finish current primary.
Reset caches for current primary, current parent and current cell
Definition at line 1286 of file Detector.cxx.
| Geometry * Detector::getGeometry | ( | std::string | name = "" | ) |
Get the FOCAL geometry desciption.
Will be created the first time the function is called
Definition at line 70 of file Detector.cxx.
|
inline |
|
overridevirtual |
|
final |
Processing hit creation in the FOCAL sensitive volume.
| v | Current sensitive volume |
Definition at line 108 of file Detector.cxx.
|
protected |
Processing hit creation in the ECAL Pad sensitive volume.
| v | Current sensitive volume |
check handling of primary particles
Definition at line 1293 of file Detector.cxx.
|
protected |
Processing hit creation in the ECAL Pixel sensitive volume.
| v | Current sensitive volume |
check handling of primary particles
Definition at line 1391 of file Detector.cxx.
|
protected |
Processing hit creation in the HCAL sensitive volume.
| v | Current sensitive volume |
check handling of primary particles
Definition at line 1342 of file Detector.cxx.
|
override |
register container with hits
Definition at line 197 of file Detector.cxx.
|
final |
Clean point collection.
Definition at line 202 of file Detector.cxx.
|
friend |
Definition at line 222 of file Detector.h.