|
ATLAS Offline Software
|
#include <LArHVScaleCorrTool.h>
Definition at line 20 of file LArHVScaleCorrTool.h.
◆ voltageCell_t
◆ LArHVScaleCorrTool() [1/2]
LArHVScaleCorrTool::LArHVScaleCorrTool |
( |
const CaloCell_ID * |
caloCellID, |
|
|
MsgStream & |
msg, |
|
|
const std::vector< std::string > & |
fixHVStrings |
|
) |
| |
◆ LArHVScaleCorrTool() [2/2]
LArHVScaleCorrTool::LArHVScaleCorrTool |
( |
| ) |
|
|
delete |
◆ ~LArHVScaleCorrTool()
virtual LArHVScaleCorrTool::~LArHVScaleCorrTool |
( |
| ) |
|
|
virtualdefault |
◆ buildFixHVList()
void LArHVScaleCorrTool::buildFixHVList |
( |
const std::vector< std::string > & |
fixHVStrings, |
|
|
MsgStream & |
msg |
|
) |
| |
|
private |
Definition at line 312 of file LArHVScaleCorrTool.cxx.
316 for (
const std::string& theString : fixHVStrings) {
317 std::stringstream is;
318 is << theString << std::endl;
320 unsigned int iDetector, ilayer_min, ilayer_max;
321 float eta_min, eta_max, phi_min, phi_max, corr;
322 is >> iDetector >> ilayer_min >> ilayer_max >> eta_min >> eta_max >>
323 phi_min >> phi_max >> corr;
325 m_HVfix.push_back({.subdet = iDetector,
326 .layer_min = ilayer_min,
327 .layer_max = ilayer_max,
336 <<
" Number of regions with overwritten HV corrections from jobOptions "
◆ champ_e()
float LArHVScaleCorrTool::champ_e |
( |
float |
hv, |
|
|
float |
d |
|
) |
| const |
|
private |
◆ EMEC_gap()
float LArHVScaleCorrTool::EMEC_gap |
( |
const float |
eta_r, |
|
|
float |
Zeta |
|
) |
| const |
|
private |
Definition at line 244 of file LArHVScaleCorrTool.cxx.
247 if (aeta<=2.5 ) EMECg = 0.9 +1.9*( ( Zeta - 40. )/(10*std::sinh(aeta)) - 60.)/140.;
248 else EMECg = 1.8 + 1.3*( ( Zeta - 40. )/(10*std::sinh(aeta)) - 30.)/40.;
◆ EMEC_nominal()
float LArHVScaleCorrTool::EMEC_nominal |
( |
const float |
eta_r | ) |
const |
|
private |
Definition at line 231 of file LArHVScaleCorrTool.cxx.
233 if ( aeta<1.5 )
return 2500.;
234 else if (aeta<1.6)
return 2300.;
235 else if (aeta<1.8 )
return 2100.;
236 else if (aeta < 2.0 )
return 1700.;
237 else if (aeta < 2.1 )
return 1500.;
238 else if (aeta < 2.3 )
return 1250.;
239 else if (aeta < 2.5 )
return 1000.;
240 else if (aeta < 2.8 )
return 2300.;
◆ getHVScale()
Definition at line 26 of file LArHVScaleCorrTool.cxx.
33 bool isbarrelEM=
false;
36 unsigned int subdet=99;
37 unsigned int layer=99;
40 const float eta_raw = calodde->
eta_raw();
41 const float phi_raw = calodde->
phi_raw();
62 if (ieta>=0 && ieta<16)
d = 0.196;
63 else if (ieta>=16 && ieta<32)
d = 0.193;
64 else if (ieta>=32 && ieta<48)
d = 0.2;
81 float aeta_raw = std::abs(eta_raw);
85 else if(aeta_raw< 2.) Zsamp=4200.-40.*(aeta_raw-1.5);
86 else Zsamp = 4180. - 160.*(aeta_raw-2.);
121 const double E_nominal =
champ_e(nominal,
d);
125 for (
unsigned int i=0;
i<hvlist.size();
i++) {
135 for (
unsigned int i=0;
i<hvlist.size();
i++) {
139 if (std::abs(E_nominal)>1
e-3) {
140 const double deviation = std::abs((
E-E_nominal)/E_nominal);
141 if (deviation<1
e-3)
E = E_nominal;
146 const double corr = this->
Scale_barrel(hvlist[
i].hv)*hvlist[
i].weight;
151 const double corr = this->
Scale_FCAL1(hvlist[
i].hv) * hvlist[
i].weight;
156 const double corr =
Respo(
E,E_nominal,
T)*hvlist[
i].weight;
159 mynorm += hvlist[
i].weight;
163 if (mycorr>1
e-2) mycorr = mynorm/mycorr;
173 for (
unsigned int ii=0;ii<
m_HVfix.size();ii++) {
175 eta_raw >=
m_HVfix[ii].eta_min && eta_raw <
m_HVfix[ii].eta_max &&
176 phi_raw >=
m_HVfix[ii].phi_min && phi_raw <
m_HVfix[ii].phi_max ) {
◆ InvCharge()
float LArHVScaleCorrTool::InvCharge |
( |
float |
e | ) |
const |
|
private |
◆ Respo()
float LArHVScaleCorrTool::Respo |
( |
float |
e, |
|
|
float |
e_nominal, |
|
|
float |
tempe |
|
) |
| const |
|
private |
Definition at line 215 of file LArHVScaleCorrTool.cxx.
217 if (
e < -999.)
return 1.;
218 if (
e < 0.01)
return 0;
219 if (
e > e_nominal )
return 1;
◆ Scale_barrel()
float LArHVScaleCorrTool::Scale_barrel |
( |
const float |
hv | ) |
const |
|
private |
Definition at line 264 of file LArHVScaleCorrTool.cxx.
266 const float hvref[18]={1.,50.,100.,150.,200.,300.,400.,500.,600.,700.,800.,900.,1000.,1200.,1400.,1600.,1800.,2000.};
267 const float hvmax = 1998.;
268 const float facteur[18]={0.,0.1209,0.2135,0.2829,0.3390,0.4270,0.4961,0.5556,0.6065,0.6527,0.6906,
269 0.7290,0.7626,0.8224,0.8754,0.9190,0.9606,1.};
275 else if (hv<hvref[0]) {
276 float resp=facteur[0];
281 float resp=facteur[17];
288 for (
int i=0;
i<18;
i++) {
305 resp=facteur[0]*(hv/hvref[0]);
◆ Scale_FCAL1()
float LArHVScaleCorrTool::Scale_FCAL1 |
( |
const float |
hv | ) |
const |
|
private |
Definition at line 252 of file LArHVScaleCorrTool.cxx.
254 if (hv<5.0)
return 0;
255 const float R0=-2.612;
256 const float alpha=2.336;
257 const float beta=0.079;
◆ t_drift()
float LArHVScaleCorrTool::t_drift |
( |
float |
e, |
|
|
float |
e_nominal, |
|
|
float |
d, |
|
|
float |
tempe |
|
) |
| const |
|
private |
◆ vdrift()
float LArHVScaleCorrTool::vdrift |
( |
float |
e, |
|
|
float |
tempe |
|
) |
| const |
|
private |
Definition at line 197 of file LArHVScaleCorrTool.cxx.
199 const float T = tempe;
200 static const float P[6] = {-0.01481,-0.0075,0.141,12.4,1.627,0.317};
201 if (
e < -999.)
return 0.;
◆ m_HVfix
std::vector<HVfix_t> LArHVScaleCorrTool::m_HVfix |
|
private |
◆ m_larem_id
◆ m_larfcal_id
◆ m_larhec_id
◆ m_T0
const float LArHVScaleCorrTool::m_T0 |
|
private |
The documentation for this class was generated from the following files:
bool is_lar_fcal(Identifier id) const
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
int module(const Identifier id) const
module [1,3]
int region(const Identifier id) const
return region according to :
int sampling(const Identifier id) const
return sampling according to :
int eta(const Identifier id) const
return eta according to :
float eta_raw() const
cell eta_raw
Identifier identify() const override final
cell identifier
bool is_lar_hec(Identifier id) const
int barrel_ec(const Identifier id) const
return barrel_ec according to :
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
int sampling(const Identifier id) const
return sampling [0,3] (only 0 for supercells)
bool is_lar_em(Identifier id) const
float phi_raw() const
cell phi_raw