ATLAS Offline Software
Public Member Functions | Public Attributes | Private Attributes | List of all members
python.LArExtendedFTGrouping.LArExtendedFTGrouping Class Reference
Collaboration diagram for python.LArExtendedFTGrouping.LArExtendedFTGrouping:

Public Member Functions

def __init__ (self)
 
def setWithCorr (self, val)
 
def Print (self)
 
def getChannelList (self, partitions, gains=[0])
 
def makeRange (self, chans)
 
def getChannelSelection (self, partitions, gains)
 
def getChannelSelectionAllGains (self, partitions)
 
def getGain (self, c)
 
def channelsPerPartition (self, chans, show=True)
 

Public Attributes

 size
 
 name
 
 counts
 

Private Attributes

 _EMBC
 
 _EMBA
 
 _EMBCPS
 
 _EMBAPS
 
 _EMECC
 
 _EMECA
 
 _EMECCPS
 
 _EMECAPS
 
 _HECC
 
 _HECA
 
 _FCALC
 
 _FCALA
 
 _emptyC
 
 _emptyA
 
 _empty
 
 _withCorr
 
 _partitions
 
 _corr
 
 _revLookup
 

Detailed Description

Definition at line 4 of file LArExtendedFTGrouping.py.

Constructor & Destructor Documentation

◆ __init__()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.__init__ (   self)

Definition at line 5 of file LArExtendedFTGrouping.py.

5  def __init__(self):
6  self._EMBC=range(3,35)#+[1006]
7  self._EMBA=range(35,67)#+[1005]
8  self._EMBCPS=range(117,149)#+[]
9  self._EMBAPS=range(149,181)#+[]
10 
11  #List of EMEC OW channels (C-side)
12  EMEC=(67, 68, 69, 71, 72, 74, 75, 76, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 90, 91)
13  self._EMECC=EMEC+(231,233,235,237) # EMEC C OW + IW
14  self._EMECA=()
15  for i in EMEC: #EMECA OW is EMECC OW +25
16  self._EMECA+=(i+25,)
17  self._EMECA+=(232,234,236,238) #EMECA OW + EMECA IW
18 
19  self._EMECCPS=()
20  self._EMECAPS=()
21  for i in EMEC:
22  self._EMECCPS+=(i+114,)
23  self._EMECAPS+=(i+139,)
24 
25  self._HECC=(70,77,83,89)
26  self._HECA=()
27  for i in self._HECC:
28  self._HECA+=(i+25,)
29 
30  self._FCALC=(73,)
31  self._FCALA=(73+25,)
32 
33  self._emptyC=(184,187,191,197,203)
34  self._emptyA=(209,212,216,222,228)
35  self._empty=self._emptyC + self._emptyA
36 
37  self._withCorr=True
38 
39  #Build dictionary:
40  self._partitions=dict()
41  self._partitions['EMBAPS'] = self._EMBAPS
42  self._partitions['EMBCPS'] = self._EMBCPS
43  self._partitions['EMECAPS'] = self._EMECAPS
44  self._partitions['EMECCPS'] = self._EMECCPS
45  self._partitions['EMBA'] = self._EMBA
46  self._partitions['EMBC'] = self._EMBC
47  self._partitions['EMECA']= self._EMECA
48  self._partitions['EMECC'] = self._EMECC
49  self._partitions['HECA'] = self._HECA
50  self._partitions['HECC'] = self._HECC
51  self._partitions['FCALA'] = self._FCALA
52  self._partitions['FCALC'] = self._FCALC
53  self._partitions['EMPTYA'] = self._emptyA
54  self._partitions['EMPTYC'] = self._emptyC
55 
56  #Correction Channels:
57  self._corr=dict()
58  self._corr['EMBAPS'] = 1001
59  self._corr['EMBCPS'] = 1002
60  self._corr['EMECAPS'] = 1003
61  self._corr['EMECCPS'] = 1004
62  self._corr['EMBA'] = 1005
63  self._corr['EMBC'] = 1006
64  self._corr['EMECA'] = 1007
65  self._corr['EMECC'] = 1008
66  self._corr['HECA'] = 1009
67  self._corr['HECC'] = 1010
68  self._corr['FCALA'] = 1011
69  self._corr['FCALC'] = 1012
70 
71  #Lookup-dict indexed by channel (partition is the payload)
72  self._revLookup=dict()
73  for (p, chs) in self._partitions.iteritems():
74  for c in chs:
75  self._revLookup[c]=p
76 
77 

Member Function Documentation

◆ channelsPerPartition()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.channelsPerPartition (   self,
  chans,
  show = True 
)

Definition at line 178 of file LArExtendedFTGrouping.py.

178  def channelsPerPartition(self,chans,show=True):
179  class counterElem:
180  def __init__(self,l,n):
181  self.size=l
182  self.name=n
183  self.counts=[0,0,0]
184  def inc(self,g):
185  self.counts[g]=1+self.counts[g]
186 
187  def show(self):
188  print("%7s: " % self.name, end="")
189  print("HIGH:%2i/%2i" % (self.counts[0],self.size),)
190  if self.counts[0] != self.size:
191  print ("* ",end="")
192  else:
193  print (" ",end="")
194  print ("MED:%2i/%2i" % (self.counts[1],self.size),)
195  if self.counts[1] != self.size:
196  print ("* ",end="")
197  else:
198  print (" ",end="")
199  print ("LOW:%2i/%2i" % (self.counts[2],self.size),)
200  if self.counts[2] != self.size:
201  print ("* ")
202  else:
203  print (" ")
204 
205  partCounter=dict()
206  for (p, chs) in self._partitions.iteritems():
207  partCounter[p]=counterElem(len(chs),p)
208 
209  for c in chans:
210  (gain,cs)=self.getGain(c)
211  if cs is None:
212  print("ERROR: Unkown channel",c)
213  else:
214  if (c<711):
215  p=self._revLookup[cs]
216  partCounter[p].inc(gain)
217 
218  return partCounter
219 
220 

◆ getChannelList()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.getChannelList (   self,
  partitions,
  gains = [0] 
)

Definition at line 86 of file LArExtendedFTGrouping.py.

86  def getChannelList(self,partitions,gains=[0]):
87  chans=list()
88  for g in gains:
89  if g<0 or g>2:
90  print("ERROR: Unkown gain",g)
91  return None
92 
93  extPart=list()
94  for partition in partitions:
95  p=partition.upper()
96  if (p=="ECC"):
97  extPart+=["EMECCPS","EMECC","HECC","FCALC"]
98  elif (p=="ECA"):
99  extPart+=["EMECAPS","EMECA","HECA","FCALA"]
100  elif (p=="EC"):
101  extPart+=["EMECAPS","EMECA","HECA","FCALA",
102  "EMECCPS","EMECC","HECC","FCALC"]
103  elif (p=="EMB"):
104  extPart+=["EMBA","EMBAPS","EMBC","EMBCPS"]
105  else:
106  extPart+=[p]
107 
108  for p in extPart:
109  if p in self._partitions:
110  for g in gains:
111  for c in self._partitions[p]:
112  chans+=[c+(g*236)]
113  if (self._withCorr):
114  for g in gains:
115  chans+=[self._corr[p]+g*12]
116  else:
117  print("ERROR: Unkown partition '",partition,"'")
118 
119  return chans
120 

◆ getChannelSelection()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.getChannelSelection (   self,
  partitions,
  gains 
)

Definition at line 148 of file LArExtendedFTGrouping.py.

148  def getChannelSelection(self,partitions,gains):
149  return self.makeRange(self.getChannelList(partitions,gains))
150 

◆ getChannelSelectionAllGains()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.getChannelSelectionAllGains (   self,
  partitions 
)

Definition at line 151 of file LArExtendedFTGrouping.py.

151  def getChannelSelectionAllGains(self,partitions):
152  chans=list()
153  for p in partitions:
154  chans+=self.getChannelList([p],[0,1,2])
155  return self.makeRange(chans)
156 
157 

◆ getGain()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.getGain (   self,
  c 
)

Definition at line 158 of file LArExtendedFTGrouping.py.

158  def getGain(self,c):
159  if c<2:
160  return (0,None)
161  if c<239:
162  return (0,c)
163  if c<475:
164  return (1,c-236)
165  if c<711:
166  return (2,c-472)
167  if c<1001:
168  return (0,None)
169  if c<1013:
170  return (0,c)
171  if c<1025:
172  return (1,c-12)
173  if c<1037:
174  return (2,c-24)
175  return (0,None)
176 
177 

◆ makeRange()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.makeRange (   self,
  chans 
)

Definition at line 121 of file LArExtendedFTGrouping.py.

121  def makeRange(self,chans):
122  chans.sort()
123  retVal=""
124  if (len(chans)==0):
125  return retVal
126  retVal=str(chans[0])
127  c1=chans[0]
128  series=False
129  for c2 in chans[1:]:
130  if c1 == c2:
131  print("Duplicated entry",c2)
132  continue
133  if c2-1 == c1 or c2-1 in self._empty:
134  series=True
135  else:
136  if series:
137  retVal+=":"+str(c1)+","+str(c2)
138  series=False
139  else:
140  retVal+=","+str(c2)
141 # print ("c1=",c1,"c2=",c2,"sep=",sep)
142  c1=c2
143  if series: retVal+=":"+str(c1)
144  return retVal
145 
146 
147 

◆ Print()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.Print (   self)

Definition at line 81 of file LArExtendedFTGrouping.py.

81  def Print(self):
82  print(self._EMBC)
83  print(self._EMBA)
84 
85 

◆ setWithCorr()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.setWithCorr (   self,
  val 
)

Definition at line 78 of file LArExtendedFTGrouping.py.

78  def setWithCorr(self,val):
79  self._withCorr=val
80 

Member Data Documentation

◆ _corr

python.LArExtendedFTGrouping.LArExtendedFTGrouping._corr
private

Definition at line 57 of file LArExtendedFTGrouping.py.

◆ _EMBA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBA
private

Definition at line 7 of file LArExtendedFTGrouping.py.

◆ _EMBAPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBAPS
private

Definition at line 9 of file LArExtendedFTGrouping.py.

◆ _EMBC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBC
private

Definition at line 6 of file LArExtendedFTGrouping.py.

◆ _EMBCPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBCPS
private

Definition at line 8 of file LArExtendedFTGrouping.py.

◆ _EMECA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECA
private

Definition at line 14 of file LArExtendedFTGrouping.py.

◆ _EMECAPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECAPS
private

Definition at line 20 of file LArExtendedFTGrouping.py.

◆ _EMECC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECC
private

Definition at line 13 of file LArExtendedFTGrouping.py.

◆ _EMECCPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECCPS
private

Definition at line 19 of file LArExtendedFTGrouping.py.

◆ _empty

python.LArExtendedFTGrouping.LArExtendedFTGrouping._empty
private

Definition at line 35 of file LArExtendedFTGrouping.py.

◆ _emptyA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._emptyA
private

Definition at line 34 of file LArExtendedFTGrouping.py.

◆ _emptyC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._emptyC
private

Definition at line 33 of file LArExtendedFTGrouping.py.

◆ _FCALA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._FCALA
private

Definition at line 31 of file LArExtendedFTGrouping.py.

◆ _FCALC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._FCALC
private

Definition at line 30 of file LArExtendedFTGrouping.py.

◆ _HECA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._HECA
private

Definition at line 26 of file LArExtendedFTGrouping.py.

◆ _HECC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._HECC
private

Definition at line 25 of file LArExtendedFTGrouping.py.

◆ _partitions

python.LArExtendedFTGrouping.LArExtendedFTGrouping._partitions
private

Definition at line 40 of file LArExtendedFTGrouping.py.

◆ _revLookup

python.LArExtendedFTGrouping.LArExtendedFTGrouping._revLookup
private

Definition at line 72 of file LArExtendedFTGrouping.py.

◆ _withCorr

python.LArExtendedFTGrouping.LArExtendedFTGrouping._withCorr
private

Definition at line 37 of file LArExtendedFTGrouping.py.

◆ counts

python.LArExtendedFTGrouping.LArExtendedFTGrouping.counts

Definition at line 183 of file LArExtendedFTGrouping.py.

◆ name

python.LArExtendedFTGrouping.LArExtendedFTGrouping.name

Definition at line 182 of file LArExtendedFTGrouping.py.

◆ size

python.LArExtendedFTGrouping.LArExtendedFTGrouping.size

Definition at line 181 of file LArExtendedFTGrouping.py.


The documentation for this class was generated from the following file:
python.Bindings.iteritems
iteritems
Definition: Control/AthenaPython/python/Bindings.py:823
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
IOVDbNamespace::makeRange
IOVRange makeRange(const cool::ValidityKey since, const cool::ValidityKey until, const bool timeIsEpoch)
Make an IOVRange from two validity keys.
Definition: IOVDbCoolFunctions.cxx:113
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
dqm_persistency::Print
void Print(const PParameter *param, TDirectory *topdir, Option_t *opt="")
Definition: dqm_persistency_impl.cxx:161
str
Definition: BTagTrackIpAccessor.cxx:11