BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmStsElement.h
Go to the documentation of this file.
1
/** @file CbmStsElement.h
2
** @author Volker Friese <v.friese@gsi.de>
3
** @date 27.05.2013
4
**/
5
6
#ifndef CBMSTSELEMENT_H
7
#define CBMSTSELEMENT_H 1
8
9
#include "
CbmStsAddress.h
"
10
#include "
TNamed.h
"
11
12
#include <vector>
13
14
class
TGeoPhysicalNode
;
15
16
using namespace
std
;
17
18
/** @class CbmStsElement
19
** @brief Class representing an element of the STS setup
20
** @author V.Friese <v.friese@gsi.de>
21
** @version 1.0
22
**
23
** A CbmStsElement represents an element in the STS setup
24
** hierarchy (e.g., station, ladder, module,...). It has
25
** a unique address, a level (enum CbmStsElementLevel),
26
** a pointer to a TGeoPhysicalNode and an array of daughter
27
** elements. It is thus an alignable object.
28
**/
29
class
CbmStsElement
:
public
TNamed
30
{
31
32
public
:
33
/** Default constructor **/
34
CbmStsElement
();
35
36
/** Standard constructor
37
** @param name Element name
38
** @param title Level name
39
** @param level Element level
40
** @param node Pointer to physical node in geometry
41
**/
42
CbmStsElement
(
const
char
* name,
const
char
* title,
Int_t
level,
TGeoPhysicalNode
* node = NULL);
43
44
/** Destructor **/
45
virtual
~CbmStsElement
() {};
46
47
/** Add a daughter element
48
** The daughter must be one element level higher than the mother.
49
** @param element Pointer to element to be added as daughter.
50
**/
51
virtual
void
AddDaughter
(
CbmStsElement
* element);
52
53
/** Get unique address
54
** @return Element address
55
**/
56
UInt_t
GetAddress
()
const
{
return
fAddress
; }
57
58
/** Get a daughter element
59
** @param index Index of daughter element
60
**/
61
CbmStsElement
*
GetDaughter
(
Int_t
index)
const
;
62
63
/** Get the index within the mother element
64
** @return Index of element in mother
65
**/
66
Int_t
GetIndex
()
const
{
return
CbmStsAddress::GetElementId
(
fAddress
,
fLevel
); }
67
68
/** Get the element level
69
** @return Element level (type enum StsElementLevel)
70
**/
71
StsElementLevel
GetLevel
()
const
{
return
fLevel
; }
72
73
/** Get number of daughter elements
74
** @return Number of daughters
75
**/
76
Int_t
GetNofDaughters
()
const
{
return
fDaughters
.size(); }
77
78
/** Initialise daughters from geometry **/
79
void
InitDaughters
();
80
81
/** Print **/
82
virtual
void
Print
(
Option_t
* opt =
""
)
const
;
83
84
protected
:
85
UInt_t
fAddress
;
///< Unique address
86
StsElementLevel
fLevel
;
///< Level in hierarchy
87
TGeoPhysicalNode
*
fNode
;
///< Pointer to geometry
88
vector<CbmStsElement*>
fDaughters
;
///< Array of daughters
89
90
/** Set the element level from integer
91
** Protection against being out of range.
92
** @param level Element level
93
**/
94
void
SetLevel
(
Int_t
level);
95
96
// --- Prevent usage of copy constructor and assignment operator
97
CbmStsElement
(
const
CbmStsElement
&);
98
CbmStsElement
&
operator=
(
const
CbmStsElement
&);
99
100
ClassDef
(
CbmStsElement
, 1);
101
};
102
103
#endif
/* CBMSTSELEMENT_H */
CbmStsAddress.h
Int_t
int Int_t
Option_t
const char Option_t
ClassDef
#define ClassDef(name, id)
TNamed.h
CbmStsAddress::GetElementId
static Int_t GetElementId(UInt_t address, Int_t level)
Get the index of an element.
Definition
CbmStsAddress.h:99
CbmStsElement
Class representing an element of the STS setup.
Definition
CbmStsElement.h:30
CbmStsElement::CbmStsElement
CbmStsElement(const CbmStsElement &)
CbmStsElement::SetLevel
void SetLevel(Int_t level)
Set the element level from integer Protection against being out of range.
Definition
CbmStsElement.cxx:114
CbmStsElement::GetAddress
UInt_t GetAddress() const
Get unique address.
Definition
CbmStsElement.h:56
CbmStsElement::AddDaughter
virtual void AddDaughter(CbmStsElement *element)
Add a daughter element The daughter must be one element level higher than the mother.
Definition
CbmStsElement.cxx:35
CbmStsElement::GetLevel
StsElementLevel GetLevel() const
Get the element level.
Definition
CbmStsElement.h:71
CbmStsElement::fAddress
UInt_t fAddress
Unique address.
Definition
CbmStsElement.h:85
CbmStsElement::fLevel
StsElementLevel fLevel
Level in hierarchy.
Definition
CbmStsElement.h:86
CbmStsElement::fDaughters
vector< CbmStsElement * > fDaughters
Array of daughters.
Definition
CbmStsElement.h:88
CbmStsElement::fNode
TGeoPhysicalNode * fNode
Pointer to geometry.
Definition
CbmStsElement.h:87
CbmStsElement::CbmStsElement
CbmStsElement()
Default constructor.
Definition
CbmStsElement.cxx:13
CbmStsElement::~CbmStsElement
virtual ~CbmStsElement()
Destructor.
Definition
CbmStsElement.h:45
CbmStsElement::Print
virtual void Print(Option_t *opt="") const
Print.
Definition
CbmStsElement.cxx:106
CbmStsElement::GetNofDaughters
Int_t GetNofDaughters() const
Get number of daughter elements.
Definition
CbmStsElement.h:76
CbmStsElement::operator=
CbmStsElement & operator=(const CbmStsElement &)
CbmStsElement::GetIndex
Int_t GetIndex() const
Get the index within the mother element.
Definition
CbmStsElement.h:66
CbmStsElement::InitDaughters
void InitDaughters()
Initialise daughters from geometry.
Definition
CbmStsElement.cxx:59
CbmStsElement::GetDaughter
CbmStsElement * GetDaughter(Int_t index) const
Get a daughter element.
Definition
CbmStsElement.cxx:50
TGeoPhysicalNode
TNamed::TNamed
TNamed()
std
Definition
json.hpp:4446
detectors
sts
setup
CbmStsElement.h
Generated on
for BmnRoot by
1.17.0