ATLAS Offline Software
Loading...
Searching...
No Matches
python.LArExtendedFTGrouping.LArExtendedFTGrouping Class Reference
Collaboration diagram for python.LArExtendedFTGrouping.LArExtendedFTGrouping:

Public Member Functions

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

Public Attributes

 size = l
 name = n
list counts = [0,0,0]

Protected Attributes

 _EMBC = range(3,35)
 _EMBA = range(35,67)
 _EMBCPS = range(117,149)
 _EMBAPS = range(149,181)
 _EMECC = EMEC+(231,233,235,237)
tuple _EMECA = ()
tuple _EMECCPS = ()
tuple _EMECAPS = ()
tuple _HECC = (70,77,83,89)
tuple _HECA = ()
tuple _FCALC = (73,)
tuple _FCALA = (73+25,)
tuple _emptyC = (184,187,191,197,203)
tuple _emptyA = (209,212,216,222,228)
tuple _empty = self._emptyC + self._emptyA
bool _withCorr = True
 _partitions = dict()
 _corr = dict()
 _revLookup = dict()

Detailed Description

Definition at line 4 of file LArExtendedFTGrouping.py.

Constructor & Destructor Documentation

◆ __init__()

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()

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
void print(char *figname, TCanvas *c1)

◆ getChannelList()

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()

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()

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()

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()

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()

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()

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 = dict()
protected

Definition at line 57 of file LArExtendedFTGrouping.py.

◆ _EMBA

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBA = range(35,67)
protected

Definition at line 7 of file LArExtendedFTGrouping.py.

◆ _EMBAPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBAPS = range(149,181)
protected

Definition at line 9 of file LArExtendedFTGrouping.py.

◆ _EMBC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBC = range(3,35)
protected

Definition at line 6 of file LArExtendedFTGrouping.py.

◆ _EMBCPS

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMBCPS = range(117,149)
protected

Definition at line 8 of file LArExtendedFTGrouping.py.

◆ _EMECA

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECA = ()
protected

Definition at line 14 of file LArExtendedFTGrouping.py.

◆ _EMECAPS

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECAPS = ()
protected

Definition at line 20 of file LArExtendedFTGrouping.py.

◆ _EMECC

python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECC = EMEC+(231,233,235,237)
protected

Definition at line 13 of file LArExtendedFTGrouping.py.

◆ _EMECCPS

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._EMECCPS = ()
protected

Definition at line 19 of file LArExtendedFTGrouping.py.

◆ _empty

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._empty = self._emptyC + self._emptyA
protected

Definition at line 35 of file LArExtendedFTGrouping.py.

◆ _emptyA

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._emptyA = (209,212,216,222,228)
protected

Definition at line 34 of file LArExtendedFTGrouping.py.

◆ _emptyC

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._emptyC = (184,187,191,197,203)
protected

Definition at line 33 of file LArExtendedFTGrouping.py.

◆ _FCALA

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._FCALA = (73+25,)
protected

Definition at line 31 of file LArExtendedFTGrouping.py.

◆ _FCALC

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._FCALC = (73,)
protected

Definition at line 30 of file LArExtendedFTGrouping.py.

◆ _HECA

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._HECA = ()
protected

Definition at line 26 of file LArExtendedFTGrouping.py.

◆ _HECC

tuple python.LArExtendedFTGrouping.LArExtendedFTGrouping._HECC = (70,77,83,89)
protected

Definition at line 25 of file LArExtendedFTGrouping.py.

◆ _partitions

python.LArExtendedFTGrouping.LArExtendedFTGrouping._partitions = dict()
protected

Definition at line 40 of file LArExtendedFTGrouping.py.

◆ _revLookup

python.LArExtendedFTGrouping.LArExtendedFTGrouping._revLookup = dict()
protected

Definition at line 72 of file LArExtendedFTGrouping.py.

◆ _withCorr

python.LArExtendedFTGrouping.LArExtendedFTGrouping._withCorr = True
protected

Definition at line 37 of file LArExtendedFTGrouping.py.

◆ counts

list python.LArExtendedFTGrouping.LArExtendedFTGrouping.counts = [0,0,0]

Definition at line 183 of file LArExtendedFTGrouping.py.

◆ name

python.LArExtendedFTGrouping.LArExtendedFTGrouping.name = n

Definition at line 182 of file LArExtendedFTGrouping.py.

◆ size

python.LArExtendedFTGrouping.LArExtendedFTGrouping.size = l

Definition at line 181 of file LArExtendedFTGrouping.py.


The documentation for this class was generated from the following file: