ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGeometry
scripts
util
geo_id.py
Go to the documentation of this file.
1
# import ROOT
2
3
import
sys
4
5
# file = sys.argv[1]
6
7
class
GeometryIdentifier
:
8
volume_mask = 0xff00000000000000
9
boundary_mask = 0x00ff000000000000
10
layer_mask = 0x0000ff0000000000
11
approach_mask = 0x000000f000000000
12
sensitive_mask = 0x0000000ffff00000
13
channel_mask = 0x00000000000fffff
14
15
def
__init__
(self, value):
16
assert
type
(value) == long
17
self.
_value
= value
18
19
def
_ffs
(self, x):
20
"""Returns the index, counting from 0, of the
21
least significant set bit in `x`.
22
"""
23
return
(x&-x).bit_length()-1
24
25
@property
26
def
vol_id
(self):
27
return
self.
value
(self.
volume_mask
)
28
29
@property
30
def
bnd_id
(self):
31
return
self.
value
(self.
boundary_mask
)
32
33
@property
34
def
lay_id
(self):
35
return
self.
value
(self.
layer_mask
)
36
37
@property
38
def
app_id
(self):
39
return
self.
value
(self.
approach_mask
)
40
41
@property
42
def
sen_id
(self):
43
return
self.
value
(self.
sensitive_mask
)
44
45
@property
46
def
chn_id
(self):
47
return
self.
value
(self.
channel_mask
)
48
49
def
value
(self, mask = None):
50
if
mask ==
None
:
return
self.
_value
51
return
(self.
_value
& mask) >> self.
_ffs
(mask)
52
53
def
__repr__
(self):
54
fmt =
"GeometryIdentifier(vol={}, bnd={}, lay={}, app={}, sen={}, chn={})"
55
return
fmt.format(self.
vol_id
,
56
self.
bnd_id
,
57
self.
lay_id
,
58
self.
app_id
,
59
self.
sen_id
,
60
self.
chn_id
)
61
62
# infile = ROOT.TFile.Open(file)
63
64
# tree = infile.Get("MaterialTracks")
65
66
# for idx, event in enumerate(tree):
67
# for geo_id_ in event.step_geo_id:
68
# geo_id = GeometryIdentifier(geo_id_)
69
# print(geo_id)
70
71
# print("----")
72
73
geo_id.GeometryIdentifier
Definition
geo_id.py:7
geo_id.GeometryIdentifier.chn_id
chn_id
Definition
geo_id.py:60
geo_id.GeometryIdentifier._ffs
_ffs(self, x)
Definition
geo_id.py:19
geo_id.GeometryIdentifier.value
value(self, mask=None)
Definition
geo_id.py:49
geo_id.GeometryIdentifier._value
_value
Definition
geo_id.py:17
geo_id.GeometryIdentifier.approach_mask
int approach_mask
Definition
geo_id.py:11
geo_id.GeometryIdentifier.volume_mask
int volume_mask
Definition
geo_id.py:8
geo_id.GeometryIdentifier.sen_id
sen_id
Definition
geo_id.py:59
geo_id.GeometryIdentifier.__init__
__init__(self, value)
Definition
geo_id.py:15
geo_id.GeometryIdentifier.bnd_id
bnd_id
Definition
geo_id.py:56
geo_id.GeometryIdentifier.sensitive_mask
int sensitive_mask
Definition
geo_id.py:12
geo_id.GeometryIdentifier.channel_mask
int channel_mask
Definition
geo_id.py:13
geo_id.GeometryIdentifier.__repr__
__repr__(self)
Definition
geo_id.py:53
geo_id.GeometryIdentifier.app_id
app_id
Definition
geo_id.py:58
geo_id.GeometryIdentifier.vol_id
vol_id
Definition
geo_id.py:55
geo_id.GeometryIdentifier.layer_mask
int layer_mask
Definition
geo_id.py:10
geo_id.GeometryIdentifier.boundary_mask
int boundary_mask
Definition
geo_id.py:9
geo_id.GeometryIdentifier.lay_id
lay_id
Definition
geo_id.py:57
type
Generated on
for ATLAS Offline Software by
1.17.0