![]() |
Project
|
#include <Detector.h>
Inherits o2::base::DetImpl< Detector >.
Classes | |
| struct | TrackData |
| access to geometry details More... | |
Public Member Functions | |
| Detector (Bool_t active, TString name="ITS") | |
| Detector () | |
| Default constructor. | |
| ~Detector () override | |
| Default destructor. | |
| void | InitializeO2Detector () override |
| Initialization of the detector is done here. | |
| Bool_t | ProcessHits (FairVolume *v=nullptr) override |
| This method is called for each step during simulation (see FairMCApplication::Stepping()) | |
| void | Register () override |
| Registers the produced collections in FAIRRootManager. | |
| void | configOuterBarrelITS (int nInnerBarrelLayers, int buildLevel=0) |
| We need this as a method to access members. | |
| std::vector< o2::itsmft::Hit > * | getHits (Int_t iColl) const |
| Gets the produced collections. | |
| void | Reset () override |
| Has to be called after each event to reset the containers. | |
| void | ConstructGeometry () override |
| Base class to create the detector geometry. | |
| 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) override |
| virtual void | getLayerParameters (Int_t nlay, Double_t &phi0, Double_t &r, Int_t &nladd, Int_t &nmod, Double_t &width, Double_t &tilt, Double_t <hick, Double_t &mthick, UInt_t &dettype) const |
| o2::itsmft::Hit * | addHit (int trackID, int detID, const TVector3 &startPos, const TVector3 &endPos, const TVector3 &startMom, double startE, double endTime, double eLoss, unsigned char startStatus, unsigned char endStatus) |
| This method is an example of how to add your own point of type Hit to the clones array. | |
| void | defineWrapperVolume (Int_t id, Double_t rmin, Double_t rmax, Double_t zspan) override |
| Set per wrapper volume parameters. | |
| void | addAlignableVolumes () const override |
| Add alignable top volumes. | |
| void | fillParallelWorld () const override |
| Add ITS chip volumes to parallel world geometry. | |
| void | addAlignableVolumesLayer (Int_t lr, TString &parent, Int_t &lastUID) const |
| void | addAlignableVolumesHalfBarrel (Int_t lr, Int_t hb, TString &parent, Int_t &lastUID) const |
| void | addAlignableVolumesStave (Int_t lr, Int_t hb, Int_t st, TString &parent, Int_t &lastUID) const |
| void | addAlignableVolumesHalfStave (Int_t lr, Int_t hb, Int_t st, Int_t hst, TString &parent, Int_t &lastUID) const |
| void | addAlignableVolumesModule (Int_t lr, Int_t hb, Int_t st, Int_t hst, Int_t md, TString &parent, Int_t &lastUID) const |
| void | addAlignableVolumesChip (Int_t lr, Int_t hb, Int_t st, Int_t hst, Int_t md, Int_t ch, TString &parent, Int_t &lastUID) const |
| Int_t | chipVolUID (Int_t id) const |
| void | EndOfEvent () override |
| void | FinishPrimary () override |
| virtual void | finishRun () |
| void | BeginPrimary () override |
| void | PostTrack () override |
| void | PreTrack () override |
| Int_t | getNumberOfLayers () const |
| Returns the number of layers. | |
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 |
| 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) | |
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, Float_t theta1, Float_t phi1, Float_t theta2, Float_t phi2, Float_t theta3, Float_t phi3) const |
| void | SetSpecialPhysicsCuts () override |
| virtual void | setNumberOfWrapperVolumes (Int_t n) |
| Books arrays for wrapper volumes. | |
| 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 |
Static Public Member Functions | |
| static o2::base::Detector * | create (const char *name, bool active) |
Static Public Member Functions inherited from o2::base::Detector | |
| 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 () |
Public Attributes | |
| GeometryTGeo * | mGeometryTGeo |
Static Public Attributes | |
| static constexpr Int_t | sNumberOuterLayers = 4 |
| Number of outer layers in ITSU (fixed) | |
| static constexpr Int_t | sNumberOfWrapperVolumes = 3 |
| Number of wrapper volumes. | |
Protected Member Functions | |
| TGeoVolume * | createWrapperVolume (const Int_t nLay) |
| Creates an air-filled wrapper cylindrical volume. | |
| virtual void | createMaterials () |
| Create the detector materials. | |
| void | constructDetectorGeometry () |
| Construct the detector geometry. | |
| void | defineSensitiveVolumes () |
| Define the sensitive volumes of the geometry. | |
| void | createMiddlBarrelServices (TGeoVolume *motherVolume) |
| void | createOuterBarrelServices (TGeoVolume *motherVolume) |
| void | createOuterBarrelSupports (TGeoVolume *motherVolume) |
| void | createITSServices (TGeoVolume *motherVolume) |
| Detector (const Detector &) | |
| Detector & | operator= (const Detector &) |
| ClassDefOverride (Detector, 1) | |
Protected Member Functions inherited from o2::base::DetImpl< Detector > | |
| ClassDefOverride (DetImpl, 0) | |
| pointer to hit (collector) buffer location (strictly internal) | |
Protected Member Functions inherited from o2::base::Detector | |
| Detector (const Detector &origin) | |
| Detector & | operator= (const Detector &) |
Protected Attributes | |
| struct o2::its::Detector::TrackData | mTrackData |
| int | mNumberInnerLayers |
| int | mNumberLayers |
| Number of inner layers (depends on ITS version) | |
| std::vector< int > | mLayerID |
| Number of layers (depends on inner layer version) | |
| std::vector< TString > | mLayerName |
| layer identifiers | |
| Int_t | mNumberOfDetectors |
| layer names | |
| Bool_t | mModifyGeometry |
| Double_t | mWrapperMinRadius [sNumberOfWrapperVolumes] |
| Double_t | mWrapperMaxRadius [sNumberOfWrapperVolumes] |
| Min radius of wrapper volume. | |
| Double_t | mWrapperZSpan [sNumberOfWrapperVolumes] |
| Max radius of wrapper volume. | |
| std::vector< int > | mWrapperLayerId |
| Z span of wrapper volume. | |
| std::vector< bool > | mTurboLayer |
| Id of wrapper layer to which layer belongs (-1 if not wrapped) | |
| std::vector< double > | mLayerPhi0 |
| True for "turbo" layers. | |
| std::vector< double > | mLayerRadii |
| Vector of layer's 1st stave phi in lab. | |
| std::vector< int > | mStavePerLayer |
| Vector of layer radii. | |
| std::vector< int > | mUnitPerStave |
| Vector of number of staves per layer. | |
| std::vector< double > | mChipThickness |
| Vector of number of "units" per stave. | |
| std::vector< double > | mStaveWidth |
| Vector of chip thicknesses. | |
| std::vector< double > | mStaveTilt |
| Vector of stave width (only used for turbo) | |
| std::vector< double > | mDetectorThickness |
| Vector of stave tilt (only used for turbo) | |
| std::vector< uint > | mChipTypeID |
| Vector of detector thicknesses. | |
| std::vector< int > | mBuildLevel |
| Vector of detector type id. | |
| std::vector< o2::itsmft::Hit > * | mHits |
| Vector of Material Budget Studies. | |
| std::vector< V3Layer * > | mGeometry |
| V3Services * | mServicesGeometry |
| Geometry. | |
| std::shared_ptr< DescriptorInnerBarrel > | mDescriptorIB |
| Services Geometry. | |
Protected Attributes inherited from o2::base::DetImpl< Detector > | |
| bool * | mShmBusy [NHITBUFFERS] |
| std::vector< void * > | mCachedPtr [NHITBUFFERS] |
| pointer to bool in shared mem indicating of IO busy | |
| int | mCurrentBuffer |
| int | mInitialized |
| char * | mHitCollectorBufferPtr |
Friends | |
| template<typename Det > | |
| class | o2::base::DetImpl |
| Descriptor of Inner Barrel geometry. | |
Additional Inherited Members | |
Static Protected Attributes inherited from o2::base::DetImpl< Detector > | |
| static constexpr int | NHITBUFFERS |
Definition at line 71 of file Detector.h.
| Detector::Detector | ( | Bool_t | active, |
| TString | name = "ITS" |
||
| ) |
Name : Detector Name Active: kTRUE for active detectors (ProcessHits() will be called) kFALSE for inactive detectors
Definition at line 132 of file Detector.cxx.
| Detector::Detector | ( | ) |
Default constructor.
Definition at line 67 of file Detector.cxx.
|
override |
Default destructor.
Definition at line 251 of file Detector.cxx.
|
protected |
Definition at line 220 of file Detector.cxx.
|
overridevirtual |
Add alignable top volumes.
Reimplemented from o2::base::Detector.
Definition at line 1090 of file Detector.cxx.
| void Detector::addAlignableVolumesChip | ( | Int_t | lr, |
| Int_t | hb, | ||
| Int_t | st, | ||
| Int_t | hst, | ||
| Int_t | md, | ||
| Int_t | ch, | ||
| TString & | parent, | ||
| Int_t & | lastUID | ||
| ) | const |
Add alignable Chip volumes
| lr | layer number |
| hb | half barrel number |
| st | stave number |
| hst | half stave number |
| md | module number |
| ch | chip number |
| parent | path of the parent volume |
| lastUID | on output, UID of the last volume |
Definition at line 1272 of file Detector.cxx.
| void Detector::addAlignableVolumesHalfBarrel | ( | Int_t | lr, |
| Int_t | hb, | ||
| TString & | parent, | ||
| Int_t & | lastUID | ||
| ) | const |
Add alignable Half Barrel volumes
| lr | layer number |
| hb | half barrel number |
| parent | path of the parent volume |
| lastUID | on output, UID of the last volume |
Definition at line 1154 of file Detector.cxx.
| void Detector::addAlignableVolumesHalfStave | ( | Int_t | lr, |
| Int_t | hb, | ||
| Int_t | st, | ||
| Int_t | hst, | ||
| TString & | parent, | ||
| Int_t & | lastUID | ||
| ) | const |
Add alignable HalfStave volumes
| lr | layer number |
| hb | half barrel number |
| st | stave number |
| hst | half stave number |
| parent | path of the parent volume |
| lastUID | on output, UID of the last volume |
Definition at line 1211 of file Detector.cxx.
| void Detector::addAlignableVolumesLayer | ( | Int_t | lr, |
| TString & | parent, | ||
| Int_t & | lastUID | ||
| ) | const |
Add alignable Layer volumes
| lr | layer number |
| parent | path of the parent volume |
| lastUID | on output, UID of the last volume |
Definition at line 1130 of file Detector.cxx.
| void Detector::addAlignableVolumesModule | ( | Int_t | lr, |
| Int_t | hb, | ||
| Int_t | st, | ||
| Int_t | hst, | ||
| Int_t | md, | ||
| TString & | parent, | ||
| Int_t & | lastUID | ||
| ) | const |
Add alignable Module volumes
| lr | layer number |
| hb | half barrel number |
| st | stave number |
| hst | half stave number |
| md | module number |
| parent | path of the parent volume |
| lastUID | on output, UID of the last volume |
Definition at line 1242 of file Detector.cxx.
| void Detector::addAlignableVolumesStave | ( | Int_t | lr, |
| Int_t | hb, | ||
| Int_t | st, | ||
| TString & | parent, | ||
| Int_t & | lastUID | ||
| ) | const |
Add alignable Stave volumes
| lr | layer number |
| hb | half barrel number |
| st | stave number |
| parent | path of the parent volume |
| lastUID | on output, UID of the last volume |
Definition at line 1183 of file Detector.cxx.
| Hit * Detector::addHit | ( | int | trackID, |
| int | detID, | ||
| const TVector3 & | startPos, | ||
| const TVector3 & | endPos, | ||
| const TVector3 & | startMom, | ||
| double | startE, | ||
| double | endTime, | ||
| double | eLoss, | ||
| unsigned char | startStatus, | ||
| unsigned char | endStatus | ||
| ) |
This method is an example of how to add your own point of type Hit to the clones array.
Definition at line 1360 of file Detector.cxx.
|
inlineoverride |
Definition at line 225 of file Detector.h.
|
inline |
|
protected |
We need this as a method to access members.
Definition at line 86 of file Detector.cxx.
|
protected |
Construct the detector geometry.
Definition at line 857 of file Detector.cxx.
|
override |
Base class to create the detector geometry.
Definition at line 848 of file Detector.cxx.
|
inlinestatic |
Definition at line 83 of file Detector.h.
|
protected |
Creates the ITS Services (tubes, cables, and the like)
| motherVolume | the TGeoVolume owing the volume supports |
Definition at line 1072 of file Detector.cxx.
|
protectedvirtual |
Create the detector materials.
Definition at line 412 of file Detector.cxx.
|
protected |
Creates the Middle Barrel Services
| motherVolume | the TGeoVolume owing the volume structure |
Definition at line 1002 of file Detector.cxx.
|
protected |
Creates the Outer Barrel Services
| motherVolume | the TGeoVolume owing the volume structure |
Definition at line 1024 of file Detector.cxx.
|
protected |
Creates the Outer Barrel Supports
| motherVolume | the TGeoVolume owing the volume supports |
Definition at line 1046 of file Detector.cxx.
|
protected |
Creates an air-filled wrapper cylindrical volume.
Definition at line 781 of file Detector.cxx.
|
overridevirtual |
Sets the layer parameters
| nlay | layer number |
| phi0 | layer phi0 |
| r | layer radius |
| nstav | number of staves |
| nunit | IB: number of chips per stave |
| OB | number of modules per half stave |
| lthick | stave thickness (if omitted, defaults to 0) |
| dthick | detector thickness (if omitted, defaults to 0) |
| dettypeID | ?? |
| buildLevel | (if 0, all geometry is build, used for material budget studies) |
Reimplemented from o2::base::Detector.
Definition at line 706 of file Detector.cxx.
|
protected |
Define the sensitive volumes of the geometry.
Definition at line 1293 of file Detector.cxx.
|
overridevirtual |
Set per wrapper volume parameters.
Reimplemented from o2::base::Detector.
Definition at line 694 of file Detector.cxx.
|
override |
Definition at line 674 of file Detector.cxx.
|
overridevirtual |
Add ITS chip volumes to parallel world geometry.
Reimplemented from o2::base::Detector.
Definition at line 1313 of file Detector.cxx.
|
inlineoverride |
Definition at line 223 of file Detector.h.
|
inlinevirtual |
Definition at line 224 of file Detector.h.
|
inline |
Gets the produced collections.
Definition at line 107 of file Detector.h.
|
virtual |
Gets the layer parameters
| nlay | layer number |
| phi0 | phi of 1st stave |
| r | layer radius |
| nstav | number of staves |
| nmod | IB: number of chips per stave |
| OB | number of modules per half stave |
| width | stave width |
| tilt | stave tilt angle |
| lthick | stave thickness |
| dthick | detector thickness |
| dettype | detector type |
Definition at line 745 of file Detector.cxx.
|
inline |
Returns the number of layers.
Definition at line 230 of file Detector.h.
|
overridevirtual |
Initialization of the detector is done here.
Implements o2::base::Detector.
Definition at line 302 of file Detector.cxx.
Container for data points
Definition at line 260 of file Detector.cxx.
|
inlineoverride |
Definition at line 226 of file Detector.h.
|
inlineoverride |
Definition at line 227 of file Detector.h.
|
override |
This method is called for each step during simulation (see FairMCApplication::Stepping())
Definition at line 317 of file Detector.cxx.
|
override |
Registers the produced collections in FAIRRootManager.
Definition at line 676 of file Detector.cxx.
|
override |
Has to be called after each event to reset the containers.
Definition at line 687 of file Detector.cxx.
|
friend |
Descriptor of Inner Barrel geometry.
Definition at line 312 of file Detector.h.
|
protected |
Vector of detector type id.
Definition at line 269 of file Detector.h.
|
protected |
Vector of number of "units" per stave.
Definition at line 264 of file Detector.h.
|
protected |
Vector of detector thicknesses.
Definition at line 268 of file Detector.h.
|
protected |
Services Geometry.
Definition at line 309 of file Detector.h.
|
protected |
Vector of stave tilt (only used for turbo)
Definition at line 267 of file Detector.h.
|
protected |
Definition at line 306 of file Detector.h.
| GeometryTGeo* o2::its::Detector::mGeometryTGeo |
Definition at line 232 of file Detector.h.
|
protected |
Vector of Material Budget Studies.
Container for hit data
Definition at line 272 of file Detector.h.
|
protected |
Number of layers (depends on inner layer version)
Definition at line 247 of file Detector.h.
|
protected |
layer identifiers
Definition at line 248 of file Detector.h.
|
protected |
True for "turbo" layers.
Definition at line 260 of file Detector.h.
|
protected |
Vector of layer's 1st stave phi in lab.
Definition at line 261 of file Detector.h.
|
protected |
Definition at line 252 of file Detector.h.
|
protected |
Definition at line 244 of file Detector.h.
|
protected |
Number of inner layers (depends on ITS version)
Definition at line 245 of file Detector.h.
|
protected |
layer names
Definition at line 250 of file Detector.h.
|
protected |
Geometry.
Definition at line 307 of file Detector.h.
|
protected |
Vector of layer radii.
Definition at line 262 of file Detector.h.
|
protected |
Vector of stave width (only used for turbo)
Definition at line 266 of file Detector.h.
|
protected |
Vector of chip thicknesses.
Definition at line 265 of file Detector.h.
|
protected |
|
protected |
Id of wrapper layer to which layer belongs (-1 if not wrapped)
Definition at line 259 of file Detector.h.
|
protected |
Vector of number of staves per layer.
Definition at line 263 of file Detector.h.
|
protected |
Z span of wrapper volume.
Definition at line 257 of file Detector.h.
|
protected |
Min radius of wrapper volume.
Definition at line 255 of file Detector.h.
|
protected |
Definition at line 254 of file Detector.h.
|
protected |
Max radius of wrapper volume.
Definition at line 256 of file Detector.h.
|
staticconstexpr |
Number of wrapper volumes.
Definition at line 75 of file Detector.h.
|
staticconstexpr |
Number of outer layers in ITSU (fixed)
Definition at line 74 of file Detector.h.