ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
StandaloneBunchgroupHandler.BunchgroupHandler Class Reference
Inheritance diagram for StandaloneBunchgroupHandler.BunchgroupHandler:
Collaboration diagram for StandaloneBunchgroupHandler.BunchgroupHandler:

Public Member Functions

def __init__ (self)
 
def openDB (self)
 
def closeDB (self)
 
def loadRunData (self, run)
 
def loadBunchgroups (self, run)
 
def getTrainPosition (self, run, lb, bcid)
 
def getNeighbourBcids (self, run, lb, bcid)
 
def getNeighbourPattern (self, run, lb, bcid)
 

Public Attributes

 trigProdDbName
 
 bunchGroupContentFolder
 
 bunchGroupDescFolder
 
 trigProdDb
 
 verbose
 
 physicsBunchgroupBit
 
 runObjects
 
 runArchive
 
 runsToArchive
 
 bcidRange
 

Detailed Description

Definition at line 69 of file StandaloneBunchgroupHandler.py.

Constructor & Destructor Documentation

◆ __init__()

def StandaloneBunchgroupHandler.BunchgroupHandler.__init__ (   self)

Definition at line 71 of file StandaloneBunchgroupHandler.py.

71  def __init__(self):
72 
73  # Database parameters
74  self.trigProdDbName = 'COOLONL_TRIGGER/COMP200'
75  self.bunchGroupContentFolder = '/TRIGGER/LVL1/BunchGroupContent'
76  self.bunchGroupDescFolder = '/TRIGGER/LVL1/BunchGroupDescription'
77 
78  # Database handle
79  self.trigProdDb = None
80 
81  # self.verbose = False
82  self.verbose = True
83 
84  # set physics bunch group
85  self.physicsBunchgroupBit = 1
86 
87  # run objects
88  self.runObjects = dict()
89 
90  # remember how many runs we have, keep only runsToArchive in memory
91  self.runArchive = []
92  # number of runs we keep in memory
93  self.runsToArchive = 20
94 
95  # BCID range
96  self.bcidRange = 32
97 

Member Function Documentation

◆ closeDB()

def StandaloneBunchgroupHandler.BunchgroupHandler.closeDB (   self)

Definition at line 108 of file StandaloneBunchgroupHandler.py.

108  def closeDB(self):
109  # Close the database
110  if self.trigProdDb is not None:
111  self.trigProdDb.closeDatabase()
112  self.trigProdDb = None
113 

◆ getNeighbourBcids()

def StandaloneBunchgroupHandler.BunchgroupHandler.getNeighbourBcids (   self,
  run,
  lb,
  bcid 
)

Definition at line 153 of file StandaloneBunchgroupHandler.py.

153  def getNeighbourBcids(self,run,lb,bcid):
154 
155  if self.verbose:
156  print('getNeighbourBcids called')
157 
158  before, after = self.getNeighbourPattern(run,lb,bcid)
159 
160  l1 = []
161  for bcidOffset in range(len(before)):
162  checkBcid = bcid - (bcidOffset+1)
163  if checkBcid < 0: checkBcid += 3564
164  if before[bcidOffset]:
165  if self.verbose:
166  print("BCID",checkBcid,"is filled")
167  l1.append(checkBcid)
168  l2 = []
169  for bcidOffset in range(len(after)):
170  checkBcid = bcid + (bcidOffset+1)
171  if checkBcid > 3563: checkBcid -= 3564
172  if after[bcidOffset]:
173  if self.verbose:
174  print("BCID",checkBcid,"is filled")
175  l2.append(checkBcid)
176  return l1, l2
177 
178 

◆ getNeighbourPattern()

def StandaloneBunchgroupHandler.BunchgroupHandler.getNeighbourPattern (   self,
  run,
  lb,
  bcid 
)

Definition at line 179 of file StandaloneBunchgroupHandler.py.

179  def getNeighbourPattern(self,run,lb,bcid):
180 
181  if self.verbose:
182  print('getNeighbourPattern called')
183 
184  lbList = []
185  try:
186  lbList = list(self.runObjects[run].physicsBunchgroupBcids.keys())
187  except KeyError:
188  self.loadRunData(run)
189  lbList = list(self.runObjects[run].physicsBunchgroupBcids.keys())
190 
191  latestLb = -1
192  try:
193  latestLb = self.runObjects[run].lbLookup[lb]
194  except KeyError:
195  for testLb in sorted(lbList):
196  if latestLb < 0: latestLb = testLb
197  if lb > testLb: latestLb = testLb
198  if self.verbose:
199  print("LB",lb,"latest LB",latestLb)
200  self.runObjects[run].lbLookup[lb] = latestLb
201 
202  return (self.runObjects[run].bcidLookupBefore[latestLb][bcid], self.runObjects[run].bcidLookupAfter[latestLb][bcid])
203 

◆ getTrainPosition()

def StandaloneBunchgroupHandler.BunchgroupHandler.getTrainPosition (   self,
  run,
  lb,
  bcid 
)

Definition at line 146 of file StandaloneBunchgroupHandler.py.

146  def getTrainPosition(self,run,lb,bcid):
147 
148  if self.verbose:
149  print('getTrainPosition called')
150  before, after = self.getNeighbourBcids(run,lb,bcid)
151  return (len(before)+1)
152 

◆ loadBunchgroups()

def StandaloneBunchgroupHandler.BunchgroupHandler.loadBunchgroups (   self,
  run 
)

Definition at line 124 of file StandaloneBunchgroupHandler.py.

124  def loadBunchgroups(self, run):
125 
126  self.runObjects[run] = BunchgroupRunData(run)
127  self.runArchive.append(run)
128  self.runObjects[run].verbose = self.verbose
129 
130  if self.verbose:
131  print('loadBounchgroups called, run',run)
132 
133  bgFolder = self.trigProdDb.getFolder(self.bunchGroupContentFolder)
134  itr = bgFolder.browseObjects(run << 32,(run+1) << 32,cool.ChannelSelection.all())
135  while itr.goToNext() :
136  obj=itr.currentRef()
137  lb=(obj.since() & 0xffff)
138  self.runObjects[run].physicsBunchgroupBcids[lb] = []
139  bgcont = obj.payload()['BunchCode']
140  for bcid in range(3564):
141  if(bgcont[bcid]>>self.physicsBunchgroupBit & 1): self.runObjects[run].physicsBunchgroupBcids[lb].append(bcid)
142  self.runObjects[run].createLookup(lb,self.bcidRange)
143  if self.verbose:
144  print("LB",lb,"BCIDs",self.runObjects[run].physicsBunchgroupBcids[lb])
145 

◆ loadRunData()

def StandaloneBunchgroupHandler.BunchgroupHandler.loadRunData (   self,
  run 
)

Definition at line 114 of file StandaloneBunchgroupHandler.py.

114  def loadRunData(self, run):
115  self.openDB()
116  self.loadBunchgroups(run)
117  self.closeDB()
118  if len(self.runArchive) > self.runsToArchive:
119  if self.verbose:
120  print("Remove run",self.runArchive[0],"from memory")
121  del self.runObjects[self.runArchive[0]]
122  self.runArchive.pop(0)
123 

◆ openDB()

def StandaloneBunchgroupHandler.BunchgroupHandler.openDB (   self)

Definition at line 98 of file StandaloneBunchgroupHandler.py.

98  def openDB(self):
99  # Open the trigger COOL database
100  try:
101  self.trigProdDb = indirectOpen(self.trigProdDbName, True, False)
102  if self.verbose: print('Connected to', self.trigProdDbName, 'for Trigger data')
103  except Exception as e:
104  print(e)
105  return False
106  return True
107 

Member Data Documentation

◆ bcidRange

StandaloneBunchgroupHandler.BunchgroupHandler.bcidRange

Definition at line 96 of file StandaloneBunchgroupHandler.py.

◆ bunchGroupContentFolder

StandaloneBunchgroupHandler.BunchgroupHandler.bunchGroupContentFolder

Definition at line 75 of file StandaloneBunchgroupHandler.py.

◆ bunchGroupDescFolder

StandaloneBunchgroupHandler.BunchgroupHandler.bunchGroupDescFolder

Definition at line 76 of file StandaloneBunchgroupHandler.py.

◆ physicsBunchgroupBit

StandaloneBunchgroupHandler.BunchgroupHandler.physicsBunchgroupBit

Definition at line 85 of file StandaloneBunchgroupHandler.py.

◆ runArchive

StandaloneBunchgroupHandler.BunchgroupHandler.runArchive

Definition at line 91 of file StandaloneBunchgroupHandler.py.

◆ runObjects

StandaloneBunchgroupHandler.BunchgroupHandler.runObjects

Definition at line 88 of file StandaloneBunchgroupHandler.py.

◆ runsToArchive

StandaloneBunchgroupHandler.BunchgroupHandler.runsToArchive

Definition at line 93 of file StandaloneBunchgroupHandler.py.

◆ trigProdDb

StandaloneBunchgroupHandler.BunchgroupHandler.trigProdDb

Definition at line 79 of file StandaloneBunchgroupHandler.py.

◆ trigProdDbName

StandaloneBunchgroupHandler.BunchgroupHandler.trigProdDbName

Definition at line 74 of file StandaloneBunchgroupHandler.py.

◆ verbose

StandaloneBunchgroupHandler.BunchgroupHandler.verbose

Definition at line 82 of file StandaloneBunchgroupHandler.py.


The documentation for this class was generated from the following file:
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename R::value_type > sorted(const R &r, PROJ proj={})
Helper function to create a sorted vector from an unsorted range.
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
python.AtlCoolLib.indirectOpen
def indirectOpen(coolstr, readOnly=True, debug=False)
Definition: AtlCoolLib.py:129