53 y2016periodBD3 = 1 << 2
54 y2016periodD4plus = 1 << 3
55 y2017periodB1 = 1 << 4
56 y2017periodB2B4 = 1 << 5
57 y2017periodB5B7 = 1 << 6
58 y2017periodB8 = 1 << 7
60 y2017periodD1D5 = 1 << 9
61 y2017periodD6 = 1 << 10
62 y2017periodEF = 1 << 11
63 y2017periodGHIK = 1 << 12
65 y2018periodBE = 1 << 14
66 y2018periodFI = 1 << 15
68 y2018periodKQ = 1 << 17
71 future1p8e34 = 1 << 19
74 y2017periodB = y2017periodB1 | y2017periodB2B4 | y2017periodB5B7 | y2017periodB8
75 y2017periodD = y2017periodD1D5 | y2017periodD6
76 y2017periodAll = y2017periodB | y2017periodC | y2017periodD | y2017periodEF | y2017periodGHIK
77 y2018 = y2018periodBE | y2018periodFI | y2018periodKQ
78 y2017 = y2017periodAll
79 y2016 = y2016periodA | y2016periodBD3 | y2016periodD4plus
80 future = future1p8e34 | future2e34
83 return TriggerPeriod.isRunNumber(self)
or all([self & x == 0
or self & x == self
for x
in TriggerPeriod])
91 return (number==0
or (number > TriggerPeriod.runNumber
and number < TriggerPeriod.runNumber*2))
95 return [x
for x
in TriggerPeriod
if x.isBasePeriod()]
99 return p
if TriggerPeriod.isRunNumber(p)
else p.name
103 return p
if TriggerPeriod.isRunNumber(p)
else TriggerPeriod[p]