ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
LArHVGainsPredictor.GainPredictor Class Reference
Collaboration diagram for LArHVGainsPredictor.GainPredictor:

Public Member Functions

def __init__ (self, mapping)
 
def GetGain (self, receiver, orig_gain, layer_corr_ref, layer_corr_new, layer_names)
 

Public Attributes

 geometry_convertor
 
 layer_weights_em
 
 layer_weights_had
 

Detailed Description

Definition at line 74 of file LArHVGainsPredictor.py.

Constructor & Destructor Documentation

◆ __init__()

def LArHVGainsPredictor.GainPredictor.__init__ (   self,
  mapping 
)

Definition at line 76 of file LArHVGainsPredictor.py.

76  def __init__(self, mapping):
77 
78  self.geometry_convertor = mapping
79 
80  self.layer_weights_em = {} # per eta bin
81  self.layer_weights_had = {} # per eta bin
82 
83  file_name= ROOT.PathResolver.find_calib_file("TrigT1Calo/HVcorrPhysicsWeights_v1.txt")
84 
85 
86 
87  try:
88 
89  file = open(file_name)
90 
91  except IOError:
92 
93  print ("\ncould not find file: %s ....exiting\n" % file_name)
94 
95  sys.exit()
96 
97  for line in file.readlines():
98 
99  parts = line.split()
100 
101  self.layer_weights_em [int(parts[0])] = [float(parts[1]),float(parts[2]),float(parts[3]),float(parts[4]),float(parts[5])]
102  self.layer_weights_had[int(parts[0])] = [float(parts[6]),float(parts[7]),float(parts[8]),float(parts[9])]
103 
104  file.close()
105 
106 

Member Function Documentation

◆ GetGain()

def LArHVGainsPredictor.GainPredictor.GetGain (   self,
  receiver,
  orig_gain,
  layer_corr_ref,
  layer_corr_new,
  layer_names 
)

Definition at line 107 of file LArHVGainsPredictor.py.

107  def GetGain(self, receiver, orig_gain, layer_corr_ref, layer_corr_new, layer_names):
108 
109  coolid = self.geometry_convertor.getPPMfromReceiver(receiver)
110 
111  eta_bin = self.geometry_convertor.getEtaBin(coolid)
112 
113  hv_coef_ref = 0. # ref hv coefficient
114  hv_coef_new = 0. # new hv coefficient
115 
116 
117 
118  if self.geometry_convertor.isCoolEm (coolid):
119 
120  is_overlap = self.geometry_convertor.isPPMOverlap(coolid)
121 
122 
123 
124  for n in range(len(layer_names)):
125 
126  layer = layer_names[n]
127 
129 
130  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_em [eta_bin][0]
131  hv_coef_new += layer_corr_new[n] * self.layer_weights_em [eta_bin][0]
132 
133  if PlotCalibrationHV.isEmFront(layer,is_overlap):
134 
135  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_em [eta_bin][1]
136  hv_coef_new += layer_corr_new[n] * self.layer_weights_em [eta_bin][1]
137 
138  if PlotCalibrationHV.isEmMiddle(layer,is_overlap):
139 
140  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_em [eta_bin][2]
141  hv_coef_new += layer_corr_new[n] * self.layer_weights_em [eta_bin][2]
142 
143  if PlotCalibrationHV.isEmBack(layer,is_overlap):
144 
145  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_em [eta_bin][3]
146  hv_coef_new += layer_corr_new[n] * self.layer_weights_em [eta_bin][3]
147 
148  if PlotCalibrationHV.isEmOverlapBack(layer,is_overlap):
149 
150  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_em [eta_bin][4]
151  hv_coef_new += layer_corr_new[n] * self.layer_weights_em [eta_bin][4]
152 
153 
154 
155  if self.geometry_convertor.isCoolHad(coolid):
156 
157  regions = "EmbFcalHighEta" # (?)
158 
159 
160 
161  for n in range(len(layer_names)):
162 
163  layer = layer_names[n]
164 
165  if PlotCalibrationHV.isHadFirstLayer(layer,regions):
166 
167  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_had[eta_bin][0]
168  hv_coef_new += layer_corr_new[n] * self.layer_weights_had[eta_bin][0]
169 
170  if PlotCalibrationHV.isHadSecondLayer(layer,regions):
171 
172  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_had[eta_bin][1]
173  hv_coef_new += layer_corr_new[n] * self.layer_weights_had[eta_bin][1]
174 
175  if PlotCalibrationHV.isHadThirdLayer(layer,regions):
176 
177  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_had[eta_bin][2]
178  hv_coef_new += layer_corr_new[n] * self.layer_weights_had[eta_bin][2]
179 
180  if PlotCalibrationHV.isHadFourthLayer(layer,regions):
181 
182  hv_coef_ref += layer_corr_ref[n] * self.layer_weights_had[eta_bin][3]
183  hv_coef_new += layer_corr_new[n] * self.layer_weights_had[eta_bin][3]
184 
185  pred_gain = orig_gain * (hv_coef_new/hv_coef_ref) # predicted gain
186 
187  return pred_gain
188 
189 

Member Data Documentation

◆ geometry_convertor

LArHVGainsPredictor.GainPredictor.geometry_convertor

Definition at line 78 of file LArHVGainsPredictor.py.

◆ layer_weights_em

LArHVGainsPredictor.GainPredictor.layer_weights_em

Definition at line 80 of file LArHVGainsPredictor.py.

◆ layer_weights_had

LArHVGainsPredictor.GainPredictor.layer_weights_had

Definition at line 81 of file LArHVGainsPredictor.py.


The documentation for this class was generated from the following file:
IDTPM::getEtaBin
unsigned int getEtaBin(const PARTICLE &p, const std::vector< float > &etaBins)
Definition: OfflineObjectDecorHelper.cxx:96
PlotCalibrationHV.isEmPresampler
def isEmPresampler(layerName)
Definition: PlotCalibrationHV.py:17
PlotCalibrationHV.isHadFirstLayer
def isHadFirstLayer(layerName, TT_part)
Definition: PlotCalibrationHV.py:84
PlotCalibrationHV.isHadSecondLayer
def isHadSecondLayer(layerName, TT_part)
Definition: PlotCalibrationHV.py:93
PlotCalibrationHV.isEmMiddle
def isEmMiddle(layerName, isOverlap)
Definition: PlotCalibrationHV.py:43
PlotCalibrationHV.isEmFront
def isEmFront(layerName, isOverlap)
Definition: PlotCalibrationHV.py:27
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
PlotCalibrationHV.isEmOverlapBack
def isEmOverlapBack(layerName, isOverlap)
Definition: PlotCalibrationHV.py:73
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
Trk::open
@ open
Definition: BinningType.h:40
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
PlotCalibrationHV.isHadThirdLayer
def isHadThirdLayer(layerName, TT_part)
Definition: PlotCalibrationHV.py:102
PlotCalibrationHV.isEmBack
def isEmBack(layerName, isOverlap)
Definition: PlotCalibrationHV.py:58
PlotCalibrationHV.isHadFourthLayer
def isHadFourthLayer(layerName, TT_part)
Definition: PlotCalibrationHV.py:111
python.LArMinBiasAlgConfig.float
float
Definition: LArMinBiasAlgConfig.py:65