Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <CscBipolarStripFitter.h>
|
| CscBipolarStripFitter (const std::string &, const std::string &, const IInterface *) |
|
| ~CscBipolarStripFitter ()=default |
|
StatusCode | initialize () override |
|
Result | fit (const ChargeList &charges, double samplingTime, Identifier &stripId) const |
|
virtual Result | fit (const ChargeList &ChargeList, double samplingTime, bool samplingPhase, Identifier &sid) const |
|
virtual Result | fit (const Muon::CscStripPrepData &strip) const |
|
virtual Result | fit (const ChargeList &ChargeList, double samplingTime, bool samplingPhase, Identifier &sid) const |
|
virtual Result | fit (const Muon::CscStripPrepData &strip) const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
double | FindPow (double z) const |
|
void | Derivative (double A[][3], double fp[][1], double p0[][1], int imeas, const int *meas) const |
|
int | TheFitter (double *x, const double ex, const double *initValues, int imeas, int *meas, int ipar, int *par, double *chi2, double *result) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
Definition at line 27 of file CscBipolarStripFitter.h.
◆ ChargeList
◆ StoreGateSvc_t
◆ CscBipolarStripFitter()
CscBipolarStripFitter::CscBipolarStripFitter |
( |
const std::string & |
type, |
|
|
const std::string & |
aname, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~CscBipolarStripFitter()
CscBipolarStripFitter::~CscBipolarStripFitter |
( |
| ) |
|
|
default |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ Derivative()
void CscBipolarStripFitter::Derivative |
( |
double |
A[][3], |
|
|
double |
fp[][1], |
|
|
double |
p0[][1], |
|
|
int |
imeas, |
|
|
const int * |
meas |
|
) |
| const |
|
private |
Definition at line 267 of file CscBipolarStripFitter.cxx.
272 for (
int i = 0;
i < imeas;
i++) {
275 double repquant = 0.;
276 double dFdzNormalized = 0.;
279 dFdzNormalized = repquant * (
m_n /
z +
z / (
m_n2 + 1) - (
m_n + 1.) / (
m_n2 + 1.) - 1.);
282 A[ii][0] = repquant * (1. -
z / (
m_n2 + 1.));
287 double commonpart =
norm * dFdzNormalized;
289 A[ii][2] = commonpart * (-
z /
p0[2][0]);
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ FindInitValues()
double CscBipolarStripFitter::FindInitValues |
( |
double * |
x, |
|
|
double * |
initValues, |
|
|
int * |
maxsample |
|
) |
| |
|
staticprivate |
Definition at line 129 of file CscBipolarStripFitter.cxx.
131 double peakingTime = -99.;
132 double amplitude = -99.;
135 const int numSample = 4;
138 for (
int j = 1; j < numSample; j++) {
143 if (amin >
x[j]) amin =
x[j];
148 if ((
imax == 0) || (
imax == numSample - 1))
159 peakingTime = -0.5 *
b /
a;
160 amplitude =
a * peakingTime * peakingTime +
b * peakingTime +
c;
164 initValues[0] = amplitude;
165 initValues[1] = peakingTime;
◆ FindPow()
double CscBipolarStripFitter::FindPow |
( |
double |
z | ) |
const |
|
private |
◆ fit() [1/5]
◆ fit() [2/5]
◆ fit() [3/5]
Definition at line 74 of file CscBipolarStripFitter.cxx.
76 ATH_MSG_DEBUG(
" Number of charges =" << chgs.size() <<
" Charges: " << chgs);
82 <<
" the identifier is ");
85 ATH_MSG_DEBUG(
"CalibCscStripFitter:: " << stripId <<
" " << (
unsigned int)stripHash);
92 for (
int i = 0;
i < 3; ++
i) { initValues[
i] = 0.; }
105 res.charge = initValues[0];
106 res.time = initValues[1];
108 initValues[1] =
res.time - 2.5;
119 res.dcharge = sqrt(
res.dcharge *
res.dcharge + dqprop * dqprop);
◆ fit() [4/5]
◆ fit() [5/5]
◆ initialize()
StatusCode CscBipolarStripFitter::initialize |
( |
| ) |
|
|
override |
CSC calibratin tool for the Condtiions Data base access
Definition at line 41 of file CscBipolarStripFitter.cxx.
69 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ interfaceID()
static const InterfaceID& ICscStripFitter::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
Must declare this, with name of interface
Definition at line 59 of file ICscStripFitter.h.
60 static const InterfaceID IID_ICscStripFitter(
"ICscStripFitter", 1, 0);
61 return IID_ICscStripFitter;
◆ InvertMatrix()
void CscBipolarStripFitter::InvertMatrix |
( |
double |
matrix[][3], |
|
|
const int |
dim, |
|
|
const int * |
correspdim |
|
) |
| |
|
staticprivate |
Definition at line 175 of file CscBipolarStripFitter.cxx.
178 int ii = correspdim[0];
181 }
else if (
dim == 2) {
182 int ii = correspdim[0];
183 int jj = correspdim[1];
187 double i00 =
matrix[ii][ii];
189 matrix[jj][jj] = i00 / determinant;
193 }
else if (
dim == 3) {
212 matrix[0][0] = i00 / determinant;
213 matrix[1][1] = i11 / determinant;
214 matrix[2][2] = i22 / determinant;
219 printf(
"this is not a 1x1 or 2x2 or 3x3 matrix\n");
◆ InvertSymmetric4x4()
void CscBipolarStripFitter::InvertSymmetric4x4 |
( |
double |
W[][4] | ) |
|
|
staticprivate |
Definition at line 223 of file CscBipolarStripFitter.cxx.
225 W[0][3] *
W[0][3] *
W[1][2] *
W[1][2] - 2. *
W[0][2] *
W[0][3] *
W[1][2] *
W[1][3] +
W[0][2] *
W[0][2] *
W[1][3] *
W[1][3] -
226 W[0][3] *
W[0][3] *
W[1][1] *
W[2][2] + 2. *
W[0][1] *
W[0][3] *
W[1][3] *
W[2][2] -
W[0][0] *
W[1][3] *
W[1][3] *
W[2][2] +
227 2. *
W[0][2] *
W[0][3] *
W[1][1] *
W[2][3] - 2. *
W[0][1] *
W[0][3] *
W[1][2] *
W[2][3] -
228 2. *
W[0][1] *
W[0][2] *
W[1][3] *
W[2][3] + 2. *
W[0][0] *
W[1][2] *
W[1][3] *
W[2][3] +
W[0][1] *
W[0][1] *
W[2][3] *
W[2][3] -
229 W[0][0] *
W[1][1] *
W[2][3] *
W[2][3] -
W[0][2] *
W[0][2] *
W[1][1] *
W[3][3] + 2. *
W[0][1] *
W[0][2] *
W[1][2] *
W[3][3] -
230 W[0][0] *
W[1][2] *
W[1][2] *
W[3][3] -
W[0][1] *
W[0][1] *
W[2][2] *
W[3][3] +
W[0][0] *
W[1][1] *
W[2][2] *
W[3][3];
232 W[0][1] =
W[3][0] *
W[3][1] *
W[2][2] -
W[3][0] *
W[2][1] *
W[3][2] -
W[2][0] *
W[3][1] *
W[3][2] +
W[1][0] *
W[3][2] *
W[3][2] +
233 W[2][0] *
W[2][1] *
W[3][3] -
W[1][0] *
W[2][2] *
W[3][3];
234 W[0][2] = -
W[3][0] *
W[2][1] *
W[3][1] +
W[2][0] *
W[3][1] *
W[3][1] +
W[3][0] *
W[1][1] *
W[3][2] -
W[1][0] *
W[3][1] *
W[3][2] -
235 W[2][0] *
W[1][1] *
W[3][3] +
W[1][0] *
W[2][1] *
W[3][3];
236 W[0][3] =
W[3][0] *
W[2][1] *
W[2][1] -
W[2][0] *
W[2][1] *
W[3][1] -
W[3][0] *
W[1][1] *
W[2][2] +
W[1][0] *
W[3][1] *
W[2][2] +
237 W[2][0] *
W[1][1] *
W[3][2] -
W[1][0] *
W[2][1] *
W[3][2];
238 W[1][2] =
W[3][0] *
W[3][0] *
W[2][1] -
W[2][0] *
W[3][0] *
W[3][1] -
W[1][0] *
W[3][0] *
W[3][2] +
W[0][0] *
W[3][1] *
W[3][2] +
239 W[1][0] *
W[2][0] *
W[3][3] -
W[0][0] *
W[2][1] *
W[3][3];
241 W[1][3] = -
W[2][0] *
W[3][0] *
W[2][1] +
W[2][0] *
W[2][0] *
W[3][1] +
W[1][0] *
W[3][0] *
W[2][2] -
W[0][0] *
W[3][1] *
W[2][2] -
242 W[1][0] *
W[2][0] *
W[3][2] +
W[0][0] *
W[2][1] *
W[3][2];
243 W[2][3] =
W[2][0] *
W[3][0] *
W[1][1] -
W[1][0] *
W[3][0] *
W[2][1] -
W[1][0] *
W[2][0] *
W[3][1] +
W[0][0] *
W[2][1] *
W[3][1] +
244 W[1][0] *
W[1][0] *
W[3][2] -
W[0][0] *
W[1][1] *
W[3][2];
246 double W00 = -
W[3][1] *
W[3][1] *
W[2][2] + 2. *
W[2][1] *
W[3][1] *
W[3][2] -
W[1][1] *
W[3][2] *
W[3][2] -
247 W[2][1] *
W[2][1] *
W[3][3] +
W[1][1] *
W[2][2] *
W[3][3];
248 double W11 = -
W[3][0] *
W[3][0] *
W[2][2] + 2. *
W[2][0] *
W[3][0] *
W[3][2] -
W[0][0] *
W[3][2] *
W[3][2] -
249 W[2][0] *
W[2][0] *
W[3][3] +
W[0][0] *
W[2][2] *
W[3][3];
250 double W22 = -
W[3][0] *
W[3][0] *
W[1][1] + 2. *
W[1][0] *
W[3][0] *
W[3][1] -
W[0][0] *
W[3][1] *
W[3][1] -
251 W[1][0] *
W[1][0] *
W[3][3] +
W[0][0] *
W[1][1] *
W[3][3];
252 double W33 = -
W[2][0] *
W[2][0] *
W[1][1] + 2. *
W[1][0] *
W[2][0] *
W[2][1] -
W[0][0] *
W[2][1] *
W[2][1] -
253 W[1][0] *
W[1][0] *
W[2][2] +
W[0][0] *
W[1][1] *
W[2][2];
255 for (
int i = 0;
i < 3;
i++) {
256 for (
int j = 1; j < 4; j++) {
257 if (
i >= j)
continue;
258 W[
i][j] =
W[
i][j] / Determinant;
262 W[0][0] = W00 / Determinant;
263 W[1][1] = W11 / Determinant;
264 W[2][2] = W22 / Determinant;
265 W[3][3] = W33 / Determinant;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ TheFitter()
int CscBipolarStripFitter::TheFitter |
( |
double * |
x, |
|
|
const double |
ex, |
|
|
const double * |
initValues, |
|
|
int |
imeas, |
|
|
int * |
meas, |
|
|
int |
ipar, |
|
|
int * |
par, |
|
|
double * |
chi2, |
|
|
double * |
result |
|
) |
| const |
|
private |
Definition at line 294 of file CscBipolarStripFitter.cxx.
297 const int maxIter = 7;
299 double fitTolerance0 = 0.1;
300 double fitTolerance1 = 0.01;
303 for (
int j = 0; j < 3; j++)
p0[j][0] = initValues[j];
309 for (
int i = 0;
i < 4;
i++) {
314 W[0][1] = 0.03 * ex * ex;
315 W[0][2] = -0.411 * ex * ex;
316 W[0][3] = -0.188 * ex * ex;
317 W[1][2] = 0.0275 * ex * ex;
318 W[1][3] = -0.4303 * ex * ex;
319 W[2][3] = 0. * ex * ex;
336 for (
int i = 0;
i < 4; ++
i) {
338 for (
int j = 0; j < 3; ++j) {
A[
i][j] = 0.; }
345 bool converged =
false;
346 double amplitudeChangeOld = 0.;
347 bool diverganceCandidate =
false;
355 double residFactor[3][4];
357 for (
int i = 0;
i < 3; ++
i) {
358 for (
int j = 0; j < 4; ++j) {
359 if (j < 3) {
weight[
i][j] = 0.; }
360 residFactor[
i][j] = 0.;
367 while (!converged &&
counter < maxIter)
374 double helpmatrix[4][3];
375 for (
int i = 0;
i < 4; ++
i) {
376 for (
int j = 0; j < 3; ++j) { helpmatrix[
i][j] = 0.; }
379 for (
int i = 0;
i < imeas;
i++) {
381 for (
int j = 0; j < ipar; j++) {
383 for (
int k = 0;
k < imeas;
k++) {
385 helpmatrix[ii][jj] +=
W[ii][
kk] *
A[
kk][jj];
389 for (
int i = 0;
i < ipar;
i++) {
391 for (
int j =
i; j < ipar; j++) {
394 for (
int k = 0;
k < imeas;
k++) {
408 double helpmatrix2[3][4];
409 for (
int i = 0;
i < 3; ++
i) {
410 for (
int j = 0; j < 4; ++j) { helpmatrix2[
i][j] = 0.; }
413 for (
int i = 0;
i < ipar;
i++) {
415 for (
int j = 0; j < imeas; j++) {
417 for (
int k = 0;
k < imeas;
k++) {
419 helpmatrix2[ii][jj] +=
A[
kk][ii] *
W[
kk][jj];
424 for (
int i = 0;
i < ipar;
i++) {
426 for (
int j = 0; j < imeas; j++) {
428 residFactor[ii][jj] = 0.;
429 for (
int k = 0;
k < ipar;
k++) {
431 residFactor[ii][jj] +=
weight[ii][
kk] * helpmatrix2[
kk][jj];
438 for (
int i = 0;
i < 3; ++
i) { paramDiff[
i] = 0.; }
440 for (
int i = 0;
i < ipar;
i++) {
444 for (
int j = 0; j < imeas; j++) {
446 paramDiff[ii] += residFactor[ii][jj] * (
m[jj][0] -
fp[jj][0]);
448 p0[ii][0] += paramDiff[ii];
450 std::cout <<
"##### " <<
p0[0][0] <<
" " <<
p0[1][0] <<
" " <<
p0[2][0] << std::endl;
454 if (peakingTime < -0.5 || peakingTime > 3.)
p0[1][0] = initValues[1];
456 if (
p0[0][0] < 0.)
p0[0][0] = initValues[0];
457 double amplitudeChangeNew = std::abs(paramDiff[0]);
458 if (std::abs(paramDiff[0]) < fitTolerance0 && std::abs(paramDiff[1]) < fitTolerance1) {
465 for (
int i = 0;
i < imeas;
i++) {
471 double helpmatrixchi2[4][1];
472 for (
int i = 0;
i < 4; ++
i) { helpmatrixchi2[
i][0] = 0.; }
473 for (
int i = 0;
i < imeas;
i++) {
475 for (
int k = 0;
k < imeas;
k++) {
480 for (
int k = 0;
k < imeas;
k++) {
487 }
else if (
counter > 4 && (amplitudeChangeNew > 4. * amplitudeChangeOld)) {
488 if (diverganceCandidate) {
491 printf(
"%3.2f %3.2f %3.2f %3.2f\n ",
x[0],
x[1],
x[2],
x[3]);
492 printf(
"Diverging fit\n");
495 diverganceCandidate =
true;
506 if (
p0[0][0] < 20.) {
508 fitTolerance1 = 0.05;
510 amplitudeChangeOld = amplitudeChangeNew;
527 if (
counter == maxIter)
return 3;
◆ updateVHKA()
◆ m_bipolarNormalization
double CscBipolarStripFitter::m_bipolarNormalization |
|
private |
◆ m_cscCalibTool
◆ m_detStore
◆ m_evtStore
◆ m_n
double CscBipolarStripFitter::m_n |
|
private |
◆ m_n2
double CscBipolarStripFitter::m_n2 |
|
private |
◆ m_phelper
◆ m_qerr
double CscBipolarStripFitter::m_qerr |
|
private |
◆ m_qerr_fail
double CscBipolarStripFitter::m_qerr_fail |
|
private |
◆ m_qerrprop
double CscBipolarStripFitter::m_qerrprop |
|
private |
◆ m_terr
double CscBipolarStripFitter::m_terr |
|
private |
◆ m_terr_fail
double CscBipolarStripFitter::m_terr_fail |
|
private |
◆ m_tsampling
double CscBipolarStripFitter::m_tsampling |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_zmax
double CscBipolarStripFitter::m_zmax |
|
private |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
Result fit(const ChargeList &charges, double samplingTime, Identifier &stripId) const
ToolHandle< ICscCalibTool > m_cscCalibTool
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual Result fit(const ChargeList &ChargeList, double samplingTime, bool samplingPhase, Identifier &sid) const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
#define ATH_CHECK_RECOVERABLE
Evaluate an expression and check for errors.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
std::pair< std::vector< unsigned int >, bool > res
double m_bipolarNormalization
void Derivative(double A[][3], double fp[][1], double p0[][1], int imeas, const int *meas) const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
static void InvertSymmetric4x4(double W[][4])
void show() const
Print out in hex form.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
virtual int get_channel_hash(const Identifier &id, IdentifierHash &hash_id) const
static void InvertMatrix(double matrix[][3], const int dim, const int *)
const CscIdHelper * m_phelper
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const CscIdHelper * cscIdHelper() const
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
double FindPow(double z) const
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>