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 5 of file LArExtendedFTGrouping.py.

Constructor & Destructor Documentation

◆ __init__()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.__init__ (   self)

Definition at line 6 of file LArExtendedFTGrouping.py.

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

Member Function Documentation

◆ channelsPerPartition()

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

Definition at line 179 of file LArExtendedFTGrouping.py.

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

◆ getChannelList()

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

Definition at line 87 of file LArExtendedFTGrouping.py.

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

◆ getChannelSelection()

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

Definition at line 149 of file LArExtendedFTGrouping.py.

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

◆ getChannelSelectionAllGains()

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

Definition at line 152 of file LArExtendedFTGrouping.py.

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

◆ getGain()

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

Definition at line 159 of file LArExtendedFTGrouping.py.

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

◆ makeRange()

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

Definition at line 122 of file LArExtendedFTGrouping.py.

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

◆ Print()

def python.LArExtendedFTGrouping.LArExtendedFTGrouping.Print (   self)

Definition at line 82 of file LArExtendedFTGrouping.py.

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

◆ setWithCorr()

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

Definition at line 79 of file LArExtendedFTGrouping.py.

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

Member Data Documentation

◆ _corr

python.LArExtendedFTGrouping.LArExtendedFTGrouping._corr
private

Definition at line 58 of file LArExtendedFTGrouping.py.

◆ _EMBA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBA
private

Definition at line 8 of file LArExtendedFTGrouping.py.

◆ _EMBAPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBAPS
private

Definition at line 10 of file LArExtendedFTGrouping.py.

◆ _EMBC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBC
private

Definition at line 7 of file LArExtendedFTGrouping.py.

◆ _EMBCPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBCPS
private

Definition at line 9 of file LArExtendedFTGrouping.py.

◆ _EMECA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECA
private

Definition at line 15 of file LArExtendedFTGrouping.py.

◆ _EMECAPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECAPS
private

Definition at line 21 of file LArExtendedFTGrouping.py.

◆ _EMECC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECC
private

Definition at line 14 of file LArExtendedFTGrouping.py.

◆ _EMECCPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECCPS
private

Definition at line 20 of file LArExtendedFTGrouping.py.

◆ _empty

python.LArExtendedFTGrouping.LArExtendedFTGrouping._empty
private

Definition at line 36 of file LArExtendedFTGrouping.py.

◆ _emptyA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._emptyA
private

Definition at line 35 of file LArExtendedFTGrouping.py.

◆ _emptyC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._emptyC
private

Definition at line 34 of file LArExtendedFTGrouping.py.

◆ _FCALA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._FCALA
private

Definition at line 32 of file LArExtendedFTGrouping.py.

◆ _FCALC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._FCALC
private

Definition at line 31 of file LArExtendedFTGrouping.py.

◆ _HECA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._HECA
private

Definition at line 27 of file LArExtendedFTGrouping.py.

◆ _HECC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._HECC
private

Definition at line 26 of file LArExtendedFTGrouping.py.

◆ _partitions

python.LArExtendedFTGrouping.LArExtendedFTGrouping._partitions
private

Definition at line 41 of file LArExtendedFTGrouping.py.

◆ _revLookup

python.LArExtendedFTGrouping.LArExtendedFTGrouping._revLookup
private

Definition at line 73 of file LArExtendedFTGrouping.py.

◆ _withCorr

python.LArExtendedFTGrouping.LArExtendedFTGrouping._withCorr
private

Definition at line 38 of file LArExtendedFTGrouping.py.

◆ counts

python.LArExtendedFTGrouping.LArExtendedFTGrouping.counts

Definition at line 184 of file LArExtendedFTGrouping.py.

◆ name

python.LArExtendedFTGrouping.LArExtendedFTGrouping.name

Definition at line 183 of file LArExtendedFTGrouping.py.

◆ size

python.LArExtendedFTGrouping.LArExtendedFTGrouping.size

Definition at line 182 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:812
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
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
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
dqm_persistency::Print
void Print(const PParameter *param, TDirectory *topdir, Option_t *opt="")
Definition: dqm_persistency_impl.cxx:161
str
Definition: BTagTrackIpAccessor.cxx:11