![]() |
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. | |
![]() | |
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 | 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 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) | |
![]() | |
ClassDefOverride (DetImpl, 0) | |
pointer to hit (collector) buffer location (strictly internal) | |
![]() | |
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. | |
![]() | |
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 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.