ATLAS Offline Software
Loading...
Searching...
No Matches
TrigL2MuonSA::PtEndcapLUT Class Reference

#include <PtEndcapLUT.h>

Inheritance diagram for TrigL2MuonSA::PtEndcapLUT:
Collaboration diagram for TrigL2MuonSA::PtEndcapLUT:

Classes

struct  KeyType
struct  TableType

Public Types

enum  DataType {
  INVALID , ALPHAPOL2 , BETAPOL2 , TGCALPHAPOL2 ,
  INVRADIUSPOL2 , CSCPOL2
}

Public Member Functions

 PtEndcapLUT (const std::string &type, const std::string &name, const IInterface *parent)
 ~PtEndcapLUT (void)
StatusCode readLUT (const std::string &lut_fileName)
StatusCode readLUTSigmaMean (const std::string &lut_mean, const std::string &lut_sigma)
double alpha (double z1, double r1, double z2, double r2) const
double radius (double z1, double r1, double s1, double z2, double r2, double s2, double deltar) const
double lookup (int side, int charge, DataType type, int iEta, int iPhi, double value) const
double ptcombined (int iEta, int iPhi, double ApT, double BpT, double &CApT, double &CBpT) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Attributes

static constexpr std::size_t ETAS1 =5
static constexpr std::size_t PHIS1 =6
static constexpr std::size_t PTS1 =3

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

enum  sizes { ETAS = 30 , PHIS = 12 , PHISEE = 192 }
typedef std::map< KeyType, TableType * > TableMap
typedef ServiceHandle< StoreGateSvc > StoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Static Private Member Functions

static DataType s2dt (const char *type)
static const char * dt2s (DataType type)

Private Attributes

double m_meana [ETAS1][PHIS1][PTS1] {}
double m_meanb [ETAS1][PHIS1][PTS1] {}
double m_meanc [ETAS1][PHIS1][PTS1] {}
double m_sigmaa [ETAS1][PHIS1][PTS1] {}
double m_sigmab [ETAS1][PHIS1][PTS1] {}
double m_sigmac [ETAS1][PHIS1][PTS1] {}
TableMap m_tables
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 19 of file PtEndcapLUT.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 376 of file AthCommonDataStore.h.

◆ TableMap

Definition at line 70 of file PtEndcapLUT.h.

Member Enumeration Documentation

◆ DataType

◆ sizes

Enumerator
ETAS 
PHIS 
PHISEE 

Definition at line 51 of file PtEndcapLUT.h.

Constructor & Destructor Documentation

◆ PtEndcapLUT()

TrigL2MuonSA::PtEndcapLUT::PtEndcapLUT ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 15 of file PtEndcapLUT.cxx.

17 :
18 AthAlgTool(type, name, parent)
19{
20}
AthAlgTool()
Default constructor:

◆ ~PtEndcapLUT()

TrigL2MuonSA::PtEndcapLUT::~PtEndcapLUT ( void )

Definition at line 25 of file PtEndcapLUT.cxx.

26{
27 for (TableMap::iterator it = m_tables.begin(); it != m_tables.end(); ++it) {
28 delete it->second;
29 }
30}

Member Function Documentation

◆ alpha()

double TrigL2MuonSA::PtEndcapLUT::alpha ( double z1,
double r1,
double z2,
double r2 ) const

Definition at line 123 of file PtEndcapLUT.cxx.

124{
125 CLHEP::Hep2Vector mid1(z1, r1);
126 CLHEP::Hep2Vector mid2(z2, r2);
127 CLHEP::Hep2Vector dir = mid2 - mid1;
128
129 if(std::abs(mid1.unit() * dir.unit()) > 1.) return 0;
130
131 double a = std::acos(mid1.unit() * dir.unit());
132
133 return a;
134}
static Double_t a

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ dt2s()

const char * TrigL2MuonSA::PtEndcapLUT::dt2s ( DataType type)
staticprivate

Definition at line 280 of file PtEndcapLUT.cxx.

281{
282 switch (type) {
283
284 case ALPHAPOL2:
285 return ("alphapol2"); break;
286
287 case BETAPOL2:
288 return ("betapol2"); break;
289
290 case TGCALPHAPOL2:
291 return ("tgcalphapol2"); break;
292
293 case INVRADIUSPOL2:
294 return ("invradiuspol2"); break;
295
296 case CSCPOL2:
297 return ("cscpol2"); break;
298
299 case INVALID:
300 return ("invalid"); break;
301
302 default:
303 return ("invalid"); break;
304 }
305}

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ lookup()

double TrigL2MuonSA::PtEndcapLUT::lookup ( int side,
int charge,
DataType type,
int iEta,
int iPhi,
double value ) const

Definition at line 180 of file PtEndcapLUT.cxx.

181{
182 ATH_MSG_DEBUG("lookup(side=" << side << ",charge=" << charge
183 << ",type=" << dt2s(type) << ",iEta=" << iEta
184 << ",iPhi=" << iPhi << ",value=" << value << ")");
185
186 if (iEta == -1) iEta = 0;
187 if (iEta == 30) iEta = 29;
188
189 if (iEta < 0 || iEta >= ETAS || iPhi < 0 || iPhi >= PHISEE) {
190 ATH_MSG_WARNING("lookup(" << side << ", " << charge << ", " << dt2s(type)
191 << ", " << iEta << ", " << iPhi << ") Invalid indices");
192 return 0.0;
193 }
194
195 TableMap::const_iterator it = m_tables.find(KeyType(side, charge, type));
196
197 if (it == m_tables.end()) {
198 ATH_MSG_ERROR("lookup(" << side << ", " << charge << ", " << dt2s(type)
199 << ", " << iEta << ", " << iPhi << ") Invalid key");
200 return 0.0;
201 }
202
203 double pt = 0;
204 TableType* table = it->second;
205
206 double b = table->m_xcepts[iEta][iPhi];
207 double c = table->m_slopes[iEta][iPhi];
208 const double PT_MAX = 500; // 500 GeV upper limit
209 const double ZERO_LIMIT = 1e-5;
210
211 if( std::abs(c) < ZERO_LIMIT ) {
212
213 if( std::abs(b) < ZERO_LIMIT ) {
214
215 pt = PT_MAX;
216
217 } else {
218
219 double ptinv = value / b;
220
221 if( ptinv < 0 ) {
222
223 ATH_MSG_WARNING("Pol2: ptinv < 0, ptinv=" << ptinv);
224
225 } else {
226
227 if( ptinv < (1/PT_MAX) ) pt = PT_MAX;
228 else { pt = 1/ptinv; }
229
230 }
231 }
232
233 } else {
234
235 double judge = b*b + 4*c*value;
236
237 if( judge > 0 ) {
238
239 double ptinv = (-b + pow(judge,0.5)) / c / 2;
240
241 if( ptinv < 0 ) {
242
243 ATH_MSG_WARNING("Pol2: ptinv < 0, ptinv=" << ptinv);
244
245 } else {
246
247 if( ptinv < (1/PT_MAX) ) {
248 pt = PT_MAX;
249 } else {
250 pt = 1/ptinv;
251 }
252 }
253 }
254 }
255
256 ATH_MSG_DEBUG("Pol2: value=" << value);
257 ATH_MSG_DEBUG("Pol2: b=" << b << " c=" << c << " pt=" << pt);
258 pt *= 1000; // convert to MeV
259
260 return pt;
261}
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
#define ATH_MSG_WARNING(x,...)
double charge(const T &p)
Definition AtlasPID.h:1003
static const double ZERO_LIMIT
static const char * dt2s(DataType type)
@ iPhi
Definition ParamDefs.h:47
constexpr int pow(int x)
Definition conifer.h:27
setScale setgFexType iEta

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ ptcombined()

double TrigL2MuonSA::PtEndcapLUT::ptcombined ( int iEta,
int iPhi,
double ApT,
double BpT,
double & CApT,
double & CBpT ) const

Definition at line 310 of file PtEndcapLUT.cxx.

312{
313 ATH_MSG_DEBUG("pTcombined("
314 << "iEta=" << iEta
315 << "iPhi=" << iPhi
316 << "Alpha pT=" << ApT
317 << "Beta pT=" << BpT
318 << ")" );
319
320 if (iEta == -1) iEta = 0;
321 if (iEta == 30) iEta = 29;
322
323 if (iEta < 0 || iEta >= ETAS || iPhi < 0 || iPhi >= PHIS) {
324 ATH_MSG_WARNING("pTcombined("<< iEta << ", " << iPhi << ") Invalid indices");
325 return 0.0;
326 }
327
328 constexpr double ZERO_LIMIT = 1e-5;
329 int iphibin=iPhi;
330 int ietabin=iEta/6;
331 if(iPhi==5||iPhi==6)iphibin=5;
332 if(iPhi==4||iPhi==7)iphibin=4;
333 if(iPhi==3||iPhi==8)iphibin=3;
334 if(iPhi==2||iPhi==9)iphibin=2;
335 if(iPhi==1||iPhi==10)iphibin=1;
336 if(iPhi==0||iPhi==11)iphibin=0;
337 CApT=0.;
338 CBpT=0.;
339 double Ameana = m_meana[ietabin][iphibin][0];
340 double Ameanb = m_meanb[ietabin][iphibin][0];
341 double Ameanc = m_meanc[ietabin][iphibin][0];
342 double Bmeana = m_meana[ietabin][iphibin][1];
343 double Bmeanb = m_meanb[ietabin][iphibin][1];
344 double Bmeanc = m_meanc[ietabin][iphibin][1];
345
346 double Asigmaa = m_sigmaa[ietabin][iphibin][0];
347 double Asigmab = m_sigmab[ietabin][iphibin][0];
348 double Asigmac = m_sigmac[ietabin][iphibin][0];
349 double Bsigmaa = m_sigmaa[ietabin][iphibin][1];
350 double Bsigmab = m_sigmab[ietabin][iphibin][1];
351 double Bsigmac = m_sigmac[ietabin][iphibin][1];
352
353 auto notZero =[](double v){ return (std::abs(v) > ZERO_LIMIT);};
354 double MeanAP = notZero(ApT) ? (Ameana + Ameanb * std::exp( Ameanc / ApT)) : 1.0;
355 double MeanBP = notZero(BpT) ? (Bmeana + Bmeanb * std::exp( Bmeanc / BpT)) : 1.0;
356 double ApT_tmp = notZero(1-MeanAP) ? (std::abs(ApT) / (1-MeanAP)) : 1.0;
357 ApT_tmp = std::abs(ApT_tmp);
358 if(ApT_tmp >= 500) ApT_tmp = 500;
359 double BpT_tmp = notZero(1-MeanBP) ? (std::abs(BpT) / (1-MeanBP)) : 1.0;
360 BpT_tmp = std::abs(BpT_tmp);
361 if(BpT_tmp >= 500) BpT_tmp = 500;
362
363 CApT = ApT_tmp;
364 CBpT = BpT_tmp;
365
366 if(ApT == 0. ) CApT = 0.;
367 if(BpT == 0. ) CBpT = 0.;
368 double NSigmaA= Asigmaa * ApT_tmp * ApT_tmp + Asigmab * ApT_tmp + Asigmac;
369 double NSigmaB= Bsigmaa * BpT_tmp * BpT_tmp + Bsigmab * BpT_tmp + Bsigmac;
370 //coverity[DIVIDE_BY_ZERO:FALSE]
371 double NVsigpTA = notZero(NSigmaA * ApT_tmp) ? (1./(NSigmaA * ApT_tmp) ): 1.0;
372 //coverity[DIVIDE_BY_ZERO:FALSE]
373 double NVsigpTB = notZero(NSigmaB * BpT_tmp) ? (1./(NSigmaB * BpT_tmp) ): 1.0;
374 double NVsigAsq = notZero(NSigmaA * NSigmaA) ? (1./(NSigmaA * NSigmaA)) : 1.0; //should check the multiple, not individually
375 double NVsigBsq = notZero(NSigmaB * NSigmaB) ? (1./(NSigmaB * NSigmaB)) : 1.0; //should check the multiple, not individually
376
377 double NVsigpTAsq = NVsigpTA * NVsigpTA;
378 double NVsigpTBsq = NVsigpTB * NVsigpTB;
379 double pt = notZero(NVsigAsq + NVsigBsq)? (1./std::sqrt((NVsigpTAsq + NVsigpTBsq)/(NVsigAsq + NVsigBsq))) : 0.;//mad
380 if(pt>500) pt = 500.;
381 return pt;
382}
double m_sigmaa[ETAS1][PHIS1][PTS1]
Definition PtEndcapLUT.h:47
double m_sigmab[ETAS1][PHIS1][PTS1]
Definition PtEndcapLUT.h:48
double m_sigmac[ETAS1][PHIS1][PTS1]
Definition PtEndcapLUT.h:49
double m_meanc[ETAS1][PHIS1][PTS1]
Definition PtEndcapLUT.h:46
double m_meana[ETAS1][PHIS1][PTS1]
Definition PtEndcapLUT.h:44
double m_meanb[ETAS1][PHIS1][PTS1]
Definition PtEndcapLUT.h:45

◆ radius()

double TrigL2MuonSA::PtEndcapLUT::radius ( double z1,
double r1,
double s1,
double z2,
double r2,
double s2,
double deltar ) const

Definition at line 139 of file PtEndcapLUT.cxx.

140{
141 float cr1 = 0.080/400;
142 float cr2 = cr1;
143 double x1 = z1;
144
145 if (std::abs(x1)>=0.1) {
146 double x2 = z2;
147 double y1 = r1;
148 double y2 = r2;
149 double A1 = s1;
150 double A2 = s2;
151 if(!(std::abs(s2+999)<0.1)) {
152 A2 = s2;
153 cr2 = cr1/10;
154 }
155
156 // find centre of circonference
157 double xm = (x1+x2)/2.;
158 double ym = (y1+y2)/2.;
159 double c1 = (x2-x1)*xm+(y2-y1)*ym;
160 double c2_1 = -x1-A1*y1;
161 double c2_2 = -x2-A2*y2;
162 double yR1 = (-c1-c2_1*(x2-x1))/(A1*(x2-x1)-(y2-y1));
163 double yR2 = (-c1-c2_2*(x2-x1))/(A2*(x2-x1)-(y2-y1));
164 double xR1 = -A1*yR1-c2_1;
165 double xR2 = -A2*yR2-c2_2;
166
167 double xR = ((1./cr1)*xR1+(1./cr2)*xR2)/((1./cr1)+(1./cr2));
168 double yR = ((1./cr1)*yR1+(1./cr2)*yR2)/((1./cr1)+(1./cr2));
169 double sign = deltar / std::abs(deltar);
170 double radius = 0.5*(std::sqrt((xR-x1)*(xR-x1)+(yR-y1)*(yR-y1))+std::sqrt((xR-x2)*(xR-x2)+(yR-y2)*(yR-y2)));
171 return(sign * radius);
172 } else {
173 return 0.0;
174 }
175}
int sign(int a)
double radius(double z1, double r1, double s1, double z2, double r2, double s2, double deltar) const

◆ readLUT()

StatusCode TrigL2MuonSA::PtEndcapLUT::readLUT ( const std::string & lut_fileName)

Definition at line 59 of file PtEndcapLUT.cxx.

60{
61 std::ifstream ifs(lut_fileName.c_str());
62 if (!ifs.is_open()) {
63 ATH_MSG_ERROR("Cannot open EndcapLUT file " << lut_fileName);
64 return StatusCode::FAILURE;
65 }
66
67 m_tables.clear();
68 std::string line;
69 int line_no = 0;
70 TableType* table = NULL;
71
72 while (!ifs.eof()) {
73
74 getline(ifs, line);
75 line_no++;
76
77 if (line.empty()) continue;
78
79 if (line.substr(0, 5) == "side=") {
80 char side, charge, ctype[15];
81
82 if (sscanf(line.c_str(), "side=%c charge=%c %14s", &side, &charge, ctype) != 3) {
83 ATH_MSG_ERROR("Invalid header line " << line_no << " in EndcapLUT file " << lut_fileName);
84 return StatusCode::FAILURE;
85 }
86
87 DataType type = s2dt(ctype);
88 if ((side != '-' && side != '+') || (charge != '-' && charge != '+') || type == INVALID) {
89 ATH_MSG_ERROR("Invalid header line " << line_no << " in EndcapLUT file " << lut_fileName);
90 return StatusCode::FAILURE;
91 }
92
93 KeyType key(side == '+' ? 1 : 0, charge == '+' ? 1 : 0, type);
94 table = new TableType();
95 m_tables.insert(TableMap::value_type(key, table));
96 ATH_MSG_DEBUG("Created table for " << key.toString());
97
98 } else {
99
100 if (table == NULL) {
101 ATH_MSG_ERROR("Missing header line " << line_no << " in EndcapLUT file " << lut_fileName);
102 return StatusCode::FAILURE;
103 }
104
105 int iEta, iPhi;
106 double xcept, slope;
107 if (sscanf(line.c_str(), "%3d %3d %15lf %15lf", &iEta, &iPhi, &xcept, &slope) != 4) {
108 ATH_MSG_ERROR("Invalid data line " << line_no << " in EndcapLUT file " << lut_fileName);
109 return StatusCode::FAILURE;
110 }
111 table->m_xcepts[iEta-1][iPhi] = xcept;
112 table->m_slopes[iEta-1][iPhi] = slope;
113 }
114 }
115 ifs.close();
116
117 return StatusCode::SUCCESS;
118}
static DataType s2dt(const char *type)

◆ readLUTSigmaMean()

StatusCode TrigL2MuonSA::PtEndcapLUT::readLUTSigmaMean ( const std::string & lut_mean,
const std::string & lut_sigma )

Definition at line 386 of file PtEndcapLUT.cxx.

387{
388 std::ifstream ifsmean(lut_mean.c_str());
389 std::ifstream ifssigma(lut_sigma.c_str());
390 if (!ifsmean.is_open()) {
391 ATH_MSG_ERROR("Cannot open EndcapLUT Mean file " << lut_mean);
392 return StatusCode::FAILURE;
393 }
394 if (!ifssigma.is_open()) {
395 ATH_MSG_ERROR("Cannot open EndcapLUT Sigma file " << lut_sigma);
396 return StatusCode::FAILURE;
397 }
398
399 std::string line;
400
401 for(std::size_t ei=0; ei < ETAS1; ei++){
402 for(std::size_t pi=0; pi < PHIS1; pi++){
403 for(std::size_t pti=0; pti < PTS1; pti++){
404 m_meana[ei][pi][pti] =0.;
405 m_meanb[ei][pi][pti] =0.;
406 m_meanc[ei][pi][pti] =0.;
407 m_sigmaa[ei][pi][pti]=0.;
408 m_sigmab[ei][pi][pti]=0.;
409 m_sigmac[ei][pi][pti]=0.;
410 }
411 }
412 }
413
414 while (!ifsmean.eof()) {
415 getline(ifsmean, line);
416 if (line.empty()) continue;
417
418 int iEta, iPhi, iNP;
419 double tmp_par1, tmp_par2, tmp_par3;
420 if (sscanf(line.c_str(), "%d %d %d %lf %lf %lf", &iEta, &iPhi, &iNP, &tmp_par1, &tmp_par2, &tmp_par3) != 6) {
421 ATH_MSG_ERROR(" Invalid data in mean EndcapLUT file " << lut_mean);
422 return StatusCode::FAILURE;
423 }
424
425 m_meana[iEta][iPhi][iNP] = tmp_par1;
426 m_meanb[iEta][iPhi][iNP] = tmp_par2;
427 m_meanc[iEta][iPhi][iNP] = tmp_par3;
428 }
429 ifsmean.close();
430 std::string line2;
431 while (!ifssigma.eof()) {
432 getline(ifssigma, line2);
433 if (line2.empty()) continue;
434
435 int iEta, iPhi, iNP;
436 double tmp_par1, tmp_par2, tmp_par3;
437 if (sscanf(line2.c_str(), "%d %d %d %lf %lf %lf", &iEta, &iPhi, &iNP, &tmp_par1, &tmp_par2, &tmp_par3) != 6) {
438 ATH_MSG_ERROR(" Invalid data in mean EndcapLUT file " << lut_mean);
439 return StatusCode::FAILURE;
440 }
441
442 m_sigmaa[iEta][iPhi][iNP] = tmp_par1;
443 m_sigmab[iEta][iPhi][iNP] = tmp_par2;
444 m_sigmac[iEta][iPhi][iNP] = tmp_par3;
445 }
446 ifssigma.close();
447
448 return StatusCode::SUCCESS;
449}
#define pi
static constexpr std::size_t ETAS1
Definition PtEndcapLUT.h:23
static constexpr std::size_t PHIS1
Definition PtEndcapLUT.h:24
static constexpr std::size_t PTS1
Definition PtEndcapLUT.h:25

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 368 of file AthCommonDataStore.h.

369 {
370 h.renounce();
372 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 352 of file AthCommonDataStore.h.

352 {
354 }

◆ s2dt()

TrigL2MuonSA::PtEndcapLUT::DataType TrigL2MuonSA::PtEndcapLUT::s2dt ( const char * type)
staticprivate

Definition at line 266 of file PtEndcapLUT.cxx.

267{
268 std::string stype(type);
269 if (stype == "alphapol2") return (ALPHAPOL2);
270 if (stype == "betapol2") return (BETAPOL2);
271 if (stype == "tgcalphapol2") return (TGCALPHAPOL2);
272 if (stype == "invradiuspol2") return (INVRADIUSPOL2);
273 if (stype == "cscpol2") return (CSCPOL2);
274 return (INVALID);
275}

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, and AthCheckedComponent<::AthAlgTool >.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 298 of file AthCommonDataStore.h.

298 {
299 for (auto &a : m_vhka) {
301 for (auto k : keys) {
302 k->setOwner(this);
303 }
304 }
305 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ ETAS1

std::size_t TrigL2MuonSA::PtEndcapLUT::ETAS1 =5
staticconstexpr

Definition at line 23 of file PtEndcapLUT.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 381 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 378 of file AthCommonDataStore.h.

◆ m_meana

double TrigL2MuonSA::PtEndcapLUT::m_meana[ETAS1][PHIS1][PTS1] {}
private

Definition at line 44 of file PtEndcapLUT.h.

44{};

◆ m_meanb

double TrigL2MuonSA::PtEndcapLUT::m_meanb[ETAS1][PHIS1][PTS1] {}
private

Definition at line 45 of file PtEndcapLUT.h.

45{};

◆ m_meanc

double TrigL2MuonSA::PtEndcapLUT::m_meanc[ETAS1][PHIS1][PTS1] {}
private

Definition at line 46 of file PtEndcapLUT.h.

46{};

◆ m_sigmaa

double TrigL2MuonSA::PtEndcapLUT::m_sigmaa[ETAS1][PHIS1][PTS1] {}
private

Definition at line 47 of file PtEndcapLUT.h.

47{};

◆ m_sigmab

double TrigL2MuonSA::PtEndcapLUT::m_sigmab[ETAS1][PHIS1][PTS1] {}
private

Definition at line 48 of file PtEndcapLUT.h.

48{};

◆ m_sigmac

double TrigL2MuonSA::PtEndcapLUT::m_sigmac[ETAS1][PHIS1][PTS1] {}
private

Definition at line 49 of file PtEndcapLUT.h.

49{};

◆ m_tables

TableMap TrigL2MuonSA::PtEndcapLUT::m_tables
private

Definition at line 75 of file PtEndcapLUT.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 387 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 386 of file AthCommonDataStore.h.

◆ PHIS1

std::size_t TrigL2MuonSA::PtEndcapLUT::PHIS1 =6
staticconstexpr

Definition at line 24 of file PtEndcapLUT.h.

◆ PTS1

std::size_t TrigL2MuonSA::PtEndcapLUT::PTS1 =3
staticconstexpr

Definition at line 25 of file PtEndcapLUT.h.


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