|
ATLAS Offline Software
|
#include <InDetAlignCog.h>
|
| InDetAlignCog (const std::string &name, ISvcLocator *pSvcLocator) |
|
StatusCode | initialize () |
|
StatusCode | execute () |
|
StatusCode | finalize () |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
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 | 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 |
|
|
StatusCode | getSiElements (const InDetDD::SiDetectorElementCollection *, const bool, InDetAlignCog::Params_t ¶ms) |
|
StatusCode | getTRT_Elements (const InDetDD::TRT_DetElementCollection *, const bool, InDetAlignCog::Params_t ¶ms) |
|
StatusCode | shiftIDbyCog () |
|
void | addL1 () |
|
void | enableCoG (Amg::Transform3D &, bool, bool, bool, bool, bool, bool) |
|
StatusCode | normalizeTransform (Amg::Transform3D &, const int) |
|
void | scaleTransform (Amg::Transform3D &, const float) |
|
Amg::Transform3D | sumTransforms (const Amg::Transform3D &, const Amg::Transform3D &) const |
|
void | prepareDerivative (const Amg::Transform3D &, const bool=false) |
|
void | accumulate (const Amg::Transform3D &, double *) |
|
void | accumulateChi2 (const Amg::Transform3D &, AmgSymMatrix(6)&, AmgVector(6)&, const double *) |
|
std::string | printTransform (const Amg::Transform3D &) const |
|
bool | testIdentity (const Amg::Transform3D &, double, double) const |
|
const Amg::Transform3D | getL1Transform (int bec) |
|
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...
|
|
|
const PixelID * | m_pixid |
|
const SCT_ID * | m_sctid |
|
const TRT_ID * | m_trtid |
|
ToolHandle< IInDetAlignDBTool > | m_IDAlignDBTool |
|
ServiceHandle< ITRT_AlignDbSvc > | m_TRTAlignDbTool |
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_pixelDetEleCollKey {this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"} |
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"} |
|
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainer > | m_trtDetEleContKey {this, "TRTDetEleContKey", "TRT_DetElementContainer", "Key of TRT_DetElementContainer for TRT"} |
|
int | m_det |
| Pixel=1, SCT=2, Pixel+SCT=12, TRT=3, all (silicon and TRT)=99. More...
|
|
int | m_Si_bec |
| Barrel=1, Endcaps=+-2, all (silicon)=99. More...
|
|
int | m_TRT_bec |
| Barrel=-1, Endcaps=+-2, all (TRT)=99. More...
|
|
int | m_Si_layer |
| a particular silicon layer or all (silicon)=99 More...
|
|
int | m_TRT_layer |
| a particular TRT layer or all (TRT)=99 More...
|
|
bool | m_firstEvent |
|
bool | m_fullMatrix |
|
bool | m_printDB |
|
bool | m_SiTxtOutput |
| output Si constants to txt file ? More...
|
|
bool | m_TRT_TxtOutput |
| output TRT constants to txt file ? More...
|
|
bool | m_useChi2 |
|
double | m_errTrans |
| acceptable value for residual global translation More...
|
|
double | m_errRot |
| acceptable value for residual global rotation angles More...
|
|
double | m_sigXpixB |
| assumed error for Pixel barrel local X matchnig in the Xi2 method More...
|
|
double | m_sigYpixB |
|
double | m_sigZpixB |
|
double | m_sigXpixE |
| assumed error for Pixel endcap local X matchnig in the Xi2 method More...
|
|
double | m_sigYpixE |
|
double | m_sigZpixE |
|
double | m_sigXsctB |
| assumed error for SCT barrel local X matchnig in the Xi2 method More...
|
|
double | m_sigYsctB |
|
double | m_sigZsctB |
|
double | m_sigXsctE |
|
double | m_sigYsctE |
|
double | m_sigZsctE |
|
double | m_sigXtrtB |
| assumed error for TRT barrel local X matchnig in the Xi2 method More...
|
|
double | m_sigYtrtB |
|
double | m_sigZtrtB |
|
double | m_sigXtrtE |
|
double | m_sigYtrtE |
|
double | m_sigZtrtE |
|
bool | m_doTX |
|
bool | m_doTY |
|
bool | m_doTZ |
| enable/disable writing of indivitual DoF's to the db More...
|
|
bool | m_doRX |
|
bool | m_doRY |
|
bool | m_doRZ |
|
bool | m_doCoG |
| enable/disable introducing the CoG correction to the output objects More...
|
|
bool | m_doL1 |
| enable/disable introducing the arbitrary L1 correction to the output objects More...
|
|
double | m_traX |
|
double | m_traY |
|
double | m_traZ |
| translation/rotation values (CLHEP::mm, CLHEP::rad) for the arbitrary transformation More...
|
|
double | m_rotX |
|
double | m_rotY |
|
double | m_rotZ |
|
int | m_counter |
| normalization factor More...
|
|
std::string | m_sitxtfile |
| text file with dump of Si alignment constants after cog shift More...
|
|
std::string | m_trt_txtfile |
| text file with dump of TRT alignment constants after cog shift More...
|
|
std::string | m_SQLiteTag |
| SQLite tag name. More...
|
|
Amg::Transform3D | m_glob_x |
|
Amg::Transform3D | m_glob_y |
|
Amg::Transform3D | m_glob_z |
|
Amg::Transform3D | m_grot_x |
|
Amg::Transform3D | m_grot_y |
|
Amg::Transform3D | m_grot_z |
|
double | m_cog [6] {} |
|
Amg::Transform3D | m_CoG |
|
double | m_resglob [6] {} |
|
Amg::Transform3D | m_ResGlob |
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 40 of file InDetAlignCog.h.
◆ StoreGateSvc_t
◆ InDetAlignCog()
InDetAlignCog::InDetAlignCog |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ accumulate()
Definition at line 681 of file InDetAlignCog.cxx.
688 for(
int i=0;
i<6;
i++){
702 x = translation_part[x_i];
703 y = translation_part[y_i];
704 z = translation_part[z_i];
718 val[0] += glob_x_trans[x_i]/tenmu*
x + glob_y_trans[x_i]/tenmu*
y + glob_z_trans[x_i]/tenmu*
z;
719 val[0] += grot_x_trans[x_i]/onemrad*
a + grot_y_trans[x_i]/onemrad*
b + grot_z_trans[x_i]/onemrad*
g;
721 val[1] += glob_x_trans[y_i]/tenmu*
x + glob_y_trans[y_i]/tenmu*
y + glob_z_trans[y_i]/tenmu*
z;
722 val[1] += grot_x_trans[y_i]/onemrad*
a + grot_y_trans[y_i]/onemrad*
b + grot_z_trans[y_i]/onemrad*
g;
724 val[2] += glob_x_trans[z_i]/tenmu*
x + glob_y_trans[z_i]/tenmu*
y + glob_z_trans[z_i]/tenmu*
z;
725 val[2] += grot_x_trans[z_i]/onemrad*
a + grot_y_trans[z_i]/onemrad*
b + grot_z_trans[z_i]/onemrad*
g;
735 val[3] += alpha[0]/tenmu*
x + alpha[1]/tenmu*
y + alpha[2]/tenmu*
z;
736 val[3] += alpha[3]/onemrad*
a + alpha[4]/onemrad*
b + alpha[5]/onemrad*
g;
◆ accumulateChi2()
Extract parameters from input transform
Extract Jacobian partial derivatives (dl/dG):
Increment the first and the second derivative
Definition at line 749 of file InDetAlignCog.cxx.
758 delta[0] = translation_part[0];
759 delta[1] = translation_part[1];
760 delta[2] = translation_part[2];
761 m_IDAlignDBTool->extractAlphaBetaGamma(trans ,delta[3],delta[4],delta[5]);
787 jacobian(0,0) = glob_x_trans[0]/tenmu;
788 jacobian(0,1) = glob_y_trans[0]/tenmu;
789 jacobian(0,2) = glob_z_trans[0]/tenmu;
790 jacobian(0,3) = grot_x_trans[0]/onemrad;
791 jacobian(0,4) = grot_y_trans[0]/onemrad;
792 jacobian(0,5) = grot_z_trans[0]/onemrad;
793 jacobian(1,0) = glob_x_trans[1]/tenmu;
794 jacobian(1,1) = glob_y_trans[1]/tenmu;
795 jacobian(1,2) = glob_z_trans[1]/tenmu;
796 jacobian(1,3) = grot_x_trans[1]/onemrad;
797 jacobian(1,4) = grot_y_trans[1]/onemrad;
798 jacobian(1,5) = grot_z_trans[1]/onemrad;
799 jacobian(2,0) = glob_x_trans[2]/tenmu;
800 jacobian(2,1) = glob_y_trans[2]/tenmu;
801 jacobian(2,2) = glob_z_trans[2]/tenmu;
802 jacobian(2,3) = grot_x_trans[2]/onemrad;
803 jacobian(2,4) = grot_y_trans[2]/onemrad;
804 jacobian(2,5) = grot_z_trans[2]/onemrad;
807 for (
unsigned int i=3;
i<6; ++
i) {
808 for (
unsigned int j=0; j<3; ++j) {
812 jacobian(3,3) = alpha[3]/onemrad;
813 jacobian(3,4) = alpha[4]/onemrad;
814 jacobian(3,5) = alpha[5]/onemrad;
815 jacobian(4,3) =
beta[3]/onemrad;
816 jacobian(4,4) =
beta[4]/onemrad;
817 jacobian(4,5) =
beta[5]/onemrad;
818 jacobian(5,3) =
gamma[3]/onemrad;
819 jacobian(5,4) =
gamma[4]/onemrad;
820 jacobian(5,5) =
gamma[5]/onemrad;
826 for (
int i=0;
i<6;
i++) {
827 for (
int k=0;
k<3;
k++) {
828 V[
i] -= 2./(sigmas[
k]*sigmas[
k])*jacobian(
k,
i)*delta[
k];
829 for (
int j=0; j<=
i; j++) {
830 M(
i,j) += 2./(sigmas[
k]*sigmas[
k])*jacobian(
k,
i)*jacobian(
k,j);
◆ addL1()
void InDetAlignCog::addL1 |
( |
| ) |
|
|
private |
◆ 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]
◆ detStore()
◆ enableCoG()
void InDetAlignCog::enableCoG |
( |
Amg::Transform3D & |
trans, |
|
|
bool |
dotx, |
|
|
bool |
doty, |
|
|
bool |
dotz, |
|
|
bool |
dorx, |
|
|
bool |
dory, |
|
|
bool |
dorz |
|
) |
| |
|
private |
Definition at line 924 of file InDetAlignCog.cxx.
926 ATH_MSG_DEBUG(
"in enableCoG with decisions " << dotx << doty << dotz << dorx << dory << dorz );
930 if( !dotx )
vec[0]=0.0;
931 if( !doty )
vec[1]=0.0;
932 if( !dotz )
vec[2]=0.0;
940 trans = makeAffine3d(
a,
b,
g,
vec);
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode InDetAlignCog::execute |
( |
| ) |
|
Definition at line 227 of file InDetAlignCog.cxx.
233 pixelElements = *pixelDetEleHandle;
234 if (not pixelDetEleHandle.isValid() or pixelElements==
nullptr) {
236 return StatusCode::FAILURE;
243 sctElements = *sctDetEleHandle;
244 if (not sctDetEleHandle.isValid() or sctElements==
nullptr) {
246 return StatusCode::FAILURE;
253 trtElements = trtDetEleHandle->getElements();
254 if (not trtDetEleHandle.isValid() or trtElements==
nullptr) {
256 return StatusCode::FAILURE;
293 for(
int i=0;
i<6;
i++){
m_cog[
i]=std::numeric_limits<double>::infinity();}
304 ATH_MSG_DEBUG(
"+++++++++++++++++++++++++++++++++++++++++++++" );
307 ATH_MSG_DEBUG(
"+++++++++++++++++++++++++++++++++++++++++++++" );
311 ATH_MSG_INFO(
"+++++++++++++++++++++++++++++++++++++++++++++" );
313 ATH_MSG_INFO(
"+++++++++++++++++++++++++++++++++++++++++++++" );
322 ATH_MSG_INFO(
"+++++++++++++++++++++++++++++++++++++++++++++" );
325 ATH_MSG_INFO(
"+++++++++++++++++++++++++++++++++++++++++++++" );
327 ATH_MSG_ERROR(
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
329 ATH_MSG_ERROR(
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
348 if (
m_counter==0)
throw std::logic_error(
"No Si-elements.");
357 ATH_MSG_DEBUG(
"+++++++++++++++++++++++++++++++++++++++++++++" );
360 ATH_MSG_DEBUG(
"+++++++++++++++++++++++++++++++++++++++++++++" );
364 ATH_MSG_INFO(
"+++++++++++++++++++++++++++++++++++++++++++++" );
366 ATH_MSG_INFO(
"+++++++++++++++++++++++++++++++++++++++++++++" );
373 ATH_MSG_INFO(
"+++++++++++++++++++++++++++++++++++++++++++++" );
376 ATH_MSG_INFO(
"+++++++++++++++++++++++++++++++++++++++++++++" );
378 ATH_MSG_ERROR(
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
380 ATH_MSG_ERROR(
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
392 ATH_MSG_INFO(
"<<< CoG correction will be applied. >>>" );
395 ATH_MSG_INFO(
"<<< CoG correction will be skipped. >>>" );
400 ATH_MSG_INFO(
"<<< Predefined L1 transformation will be added. >>>" );
405 ATH_MSG_ERROR(
"Problem updating ID level 1 constants !!!" );
406 return StatusCode::FAILURE;
411 return StatusCode::SUCCESS;
◆ 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
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode InDetAlignCog::finalize |
( |
| ) |
|
Definition at line 417 of file InDetAlignCog.cxx.
422 ATH_MSG_ERROR(
"Write of silicon alignableTransforms fails" );
423 return StatusCode::FAILURE;
439 return StatusCode::FAILURE;
445 ATH_MSG_ERROR(
"Write of TRT new constants txt file fails" );
454 return StatusCode::SUCCESS;
◆ getL1Transform()
◆ getSiElements()
Decide about the actual errors:
Definition at line 460 of file InDetAlignCog.cxx.
476 if(element->isPixel()) {
493 double sigmas[6]={0.1,0.1,0.1,1.,1.,1.};
515 if(element->isPixel())
527 << phi_module <<
" " << eta_module <<
" " <<
side <<
" "
533 << phi_module <<
" " << eta_module <<
" " <<
side <<
" "
540 << phi_module <<
" " << eta_module <<
" " <<
side <<
" "
545 if(!cog_already_calculated){
563 return StatusCode::SUCCESS;
◆ getTRT_Elements()
Decide about the actual errors:
Definition at line 582 of file InDetAlignCog.cxx.
601 if(
bec == 1)
continue;
609 double sigmas[6]={0.1,0.1,0.1,1.,1.,1.};
620 << layer_wheel <<
" " << straw_layer <<
" " <<
printTransform(defTransform));
638 << layer_wheel <<
" " << straw_layer <<
" " <<
printTransform(globalDelta));
641 const Amg::Transform3D localDelta = defTransform.inverse() * globalDelta * defTransform;
644 << layer_wheel <<
" " << straw_layer <<
" " <<
printTransform(localDelta));
648 if(!cog_already_calculated){
664 return StatusCode::SUCCESS;
◆ initialize()
StatusCode InDetAlignCog::initialize |
( |
| ) |
|
◆ 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.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ normalizeTransform()
Definition at line 967 of file InDetAlignCog.cxx.
973 return StatusCode::FAILURE;
985 trans = makeAffine3d(
a,
b,
g,
vec);
987 return StatusCode::SUCCESS;
◆ 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.
◆ prepareDerivative()
These represent small Local frame transformations transformed into Global:
These represent small Global frame transformations transformed into Local:
Definition at line 840 of file InDetAlignCog.cxx.
857 m_glob_x = trans * epsilon_x * inv_trans;
858 m_glob_y = trans * epsilon_y * inv_trans;
859 m_glob_z = trans * epsilon_z * inv_trans;
860 m_grot_x = trans * epsilon_a * inv_trans;
861 m_grot_y = trans * epsilon_b * inv_trans;
862 m_grot_z = trans * epsilon_g * inv_trans;
865 m_glob_x = inv_trans * epsilon_x * trans;
866 m_glob_y = inv_trans * epsilon_y * trans;
867 m_glob_z = inv_trans * epsilon_z * trans;
868 m_grot_x = inv_trans * epsilon_a * trans;
869 m_grot_y = inv_trans * epsilon_b * trans;
870 m_grot_z = inv_trans * epsilon_g * trans;
◆ printTransform()
Definition at line 1029 of file InDetAlignCog.cxx.
1030 std::ostringstream ostr;
1035 ostr.setf(std::ios::fixed);
1036 ostr.setf(std::ios::showpoint);
1038 ostr << std::endl << std::endl;
1039 ostr << std::setw(10) << std::setprecision(6) <<
rotation(0,0)
1040 << std::setw(12) << std::setprecision(6) <<
rotation(0,1)
1041 << std::setw(12) << std::setprecision(6) <<
rotation(0,2)
1042 <<
" Tx = " << std::setw(10) << std::setprecision(6) << translation[0] << std::endl;
1044 ostr << std::setw(10) << std::setprecision(6) <<
rotation(1,0)
1045 << std::setw(12) << std::setprecision(6) <<
rotation(1,1)
1046 << std::setw(12) << std::setprecision(6) <<
rotation(1,2)
1047 <<
" Ty = " << std::setw(10) << std::setprecision(6) << translation[1] << std::endl;
1049 ostr << std::setw(10) << std::setprecision(6) <<
rotation(2,0)
1050 << std::setw(12) << std::setprecision(6) <<
rotation(2,1)
1051 << std::setw(12) << std::setprecision(6) <<
rotation(2,2)
1052 <<
" Tz = " << std::setw(10) << std::setprecision(6) << translation[2];
1057 ostr <<
"(" << translation[0] <<
"," << translation[1] <<
"," << translation[2] <<
")mm ";
1060 ostr <<
"( A=" << 1000*alpha <<
", B=" << 1000*
beta <<
", G=" << 1000*
gamma <<
")mrad";
◆ renounce()
◆ renounceArray()
◆ scaleTransform()
◆ shiftIDbyCog()
StatusCode InDetAlignCog::shiftIDbyCog |
( |
| ) |
|
|
private |
Definition at line 878 of file InDetAlignCog.cxx.
886 ATH_MSG_DEBUG(
"Will try to update Pixel and SCT level 1 constants...");
893 ATH_MSG_ERROR(
"Could not update level 1 silicon constants !!" );
894 return StatusCode::FAILURE;
897 ATH_MSG_DEBUG(
"Successful update of level 1 silicon constants " );
903 ATH_MSG_DEBUG(
"Will try to update TRT level 1 constants...");
912 return StatusCode::FAILURE;
915 ATH_MSG_DEBUG(
"Successful update of level 1 TRT constants " );
918 return StatusCode::SUCCESS;
◆ sumTransforms()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ testIdentity()
bool InDetAlignCog::testIdentity |
( |
const Amg::Transform3D & |
transform, |
|
|
double |
errRot, |
|
|
double |
errTrans |
|
) |
| const |
|
private |
Definition at line 1071 of file InDetAlignCog.cxx.
1083 for (
int i=0;
i<3;
i++){
1084 for (
int j=0; j<3; j++){
1086 if (
diff > errRot) pass =
false;
1090 for (
int i=0;
i<3;
i++){
1092 if (
diff > errTrans) pass =
false;
1096 ATH_MSG_DEBUG(
"Remaining global transform within tolerances. Ok." );
1100 " No level 1 updates will be done" );
◆ updateVHKA()
◆ m_cog
double InDetAlignCog::m_cog[6] {} |
|
private |
◆ m_CoG
◆ m_counter
int InDetAlignCog::m_counter |
|
private |
◆ m_det
◆ m_detStore
◆ m_doCoG
bool InDetAlignCog::m_doCoG |
|
private |
enable/disable introducing the CoG correction to the output objects
Definition at line 150 of file InDetAlignCog.h.
◆ m_doL1
bool InDetAlignCog::m_doL1 |
|
private |
enable/disable introducing the arbitrary L1 correction to the output objects
Definition at line 151 of file InDetAlignCog.h.
◆ m_doRX
bool InDetAlignCog::m_doRX |
|
private |
◆ m_doRY
bool InDetAlignCog::m_doRY |
|
private |
◆ m_doRZ
bool InDetAlignCog::m_doRZ |
|
private |
◆ m_doTX
bool InDetAlignCog::m_doTX |
|
private |
◆ m_doTY
bool InDetAlignCog::m_doTY |
|
private |
◆ m_doTZ
bool InDetAlignCog::m_doTZ |
|
private |
enable/disable writing of indivitual DoF's to the db
Definition at line 145 of file InDetAlignCog.h.
◆ m_errRot
double InDetAlignCog::m_errRot |
|
private |
acceptable value for residual global rotation angles
Definition at line 123 of file InDetAlignCog.h.
◆ m_errTrans
double InDetAlignCog::m_errTrans |
|
private |
acceptable value for residual global translation
Definition at line 122 of file InDetAlignCog.h.
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_firstEvent
bool InDetAlignCog::m_firstEvent |
|
private |
◆ m_fullMatrix
bool InDetAlignCog::m_fullMatrix |
|
private |
◆ m_glob_x
◆ m_glob_y
◆ m_glob_z
◆ m_grot_x
◆ m_grot_y
◆ m_grot_z
◆ m_IDAlignDBTool
◆ m_pixelDetEleCollKey
◆ m_pixid
◆ m_printDB
bool InDetAlignCog::m_printDB |
|
private |
◆ m_resglob
double InDetAlignCog::m_resglob[6] {} |
|
private |
◆ m_ResGlob
◆ m_rotX
double InDetAlignCog::m_rotX |
|
private |
◆ m_rotY
double InDetAlignCog::m_rotY |
|
private |
◆ m_rotZ
double InDetAlignCog::m_rotZ |
|
private |
◆ m_SCTDetEleCollKey
◆ m_sctid
◆ m_Si_bec
int InDetAlignCog::m_Si_bec |
|
private |
◆ m_Si_layer
int InDetAlignCog::m_Si_layer |
|
private |
a particular silicon layer or all (silicon)=99
Definition at line 112 of file InDetAlignCog.h.
◆ m_sigXpixB
double InDetAlignCog::m_sigXpixB |
|
private |
◆ m_sigXpixE
double InDetAlignCog::m_sigXpixE |
|
private |
◆ m_sigXsctB
double InDetAlignCog::m_sigXsctB |
|
private |
assumed error for SCT barrel local X matchnig in the Xi2 method
Definition at line 130 of file InDetAlignCog.h.
◆ m_sigXsctE
double InDetAlignCog::m_sigXsctE |
|
private |
◆ m_sigXtrtB
double InDetAlignCog::m_sigXtrtB |
|
private |
assumed error for TRT barrel local X matchnig in the Xi2 method
Definition at line 136 of file InDetAlignCog.h.
◆ m_sigXtrtE
double InDetAlignCog::m_sigXtrtE |
|
private |
◆ m_sigYpixB
double InDetAlignCog::m_sigYpixB |
|
private |
◆ m_sigYpixE
double InDetAlignCog::m_sigYpixE |
|
private |
◆ m_sigYsctB
double InDetAlignCog::m_sigYsctB |
|
private |
◆ m_sigYsctE
double InDetAlignCog::m_sigYsctE |
|
private |
◆ m_sigYtrtB
double InDetAlignCog::m_sigYtrtB |
|
private |
◆ m_sigYtrtE
double InDetAlignCog::m_sigYtrtE |
|
private |
◆ m_sigZpixB
double InDetAlignCog::m_sigZpixB |
|
private |
◆ m_sigZpixE
double InDetAlignCog::m_sigZpixE |
|
private |
◆ m_sigZsctB
double InDetAlignCog::m_sigZsctB |
|
private |
◆ m_sigZsctE
double InDetAlignCog::m_sigZsctE |
|
private |
◆ m_sigZtrtB
double InDetAlignCog::m_sigZtrtB |
|
private |
◆ m_sigZtrtE
double InDetAlignCog::m_sigZtrtE |
|
private |
◆ m_sitxtfile
std::string InDetAlignCog::m_sitxtfile |
|
private |
text file with dump of Si alignment constants after cog shift
Definition at line 164 of file InDetAlignCog.h.
◆ m_SiTxtOutput
bool InDetAlignCog::m_SiTxtOutput |
|
private |
◆ m_SQLiteTag
std::string InDetAlignCog::m_SQLiteTag |
|
private |
◆ m_traX
double InDetAlignCog::m_traX |
|
private |
◆ m_traY
double InDetAlignCog::m_traY |
|
private |
◆ m_traZ
double InDetAlignCog::m_traZ |
|
private |
translation/rotation values (CLHEP::mm, CLHEP::rad) for the arbitrary transformation
Definition at line 156 of file InDetAlignCog.h.
◆ m_TRT_bec
int InDetAlignCog::m_TRT_bec |
|
private |
◆ m_TRT_layer
int InDetAlignCog::m_TRT_layer |
|
private |
◆ m_trt_txtfile
std::string InDetAlignCog::m_trt_txtfile |
|
private |
text file with dump of TRT alignment constants after cog shift
Definition at line 165 of file InDetAlignCog.h.
◆ m_TRT_TxtOutput
bool InDetAlignCog::m_TRT_TxtOutput |
|
private |
◆ m_TRTAlignDbTool
◆ m_trtDetEleContKey
◆ m_trtid
◆ m_useChi2
bool InDetAlignCog::m_useChi2 |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
double m_sigXpixB
assumed error for Pixel barrel local X matchnig in the Xi2 method
std::vector< D3PDTest::MyVec2 > vec2
Amg::Transform3D m_glob_z
static constexpr uint32_t MAXRUN
int m_TRT_layer
a particular TRT layer or all (TRT)=99
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
Amg::Transform3D m_glob_x
Amg::Transform3D m_grot_y
void accumulate(const Amg::Transform3D &, double *)
Amg::Transform3D m_glob_y
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
void enableCoG(Amg::Transform3D &, bool, bool, bool, bool, bool, bool)
std::vector< ALFA_RawDataCollection_p1 > t1
void prepareDerivative(const Amg::Transform3D &, const bool=false)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
bool m_doCoG
enable/disable introducing the CoG correction to the output objects
std::vector< SG::VarHandleKeyArray * > m_vhka
StatusCode getTRT_Elements(const InDetDD::TRT_DetElementCollection *, const bool, InDetAlignCog::Params_t ¶ms)
std::string m_sitxtfile
text file with dump of Si alignment constants after cog shift
std::vector< size_t > vec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int phi_module(const Identifier &id) const
#define ATH_MSG_VERBOSE(x)
bool const RAWDATA *ch2 const
std::string m_trt_txtfile
text file with dump of TRT alignment constants after cog shift
double m_traZ
translation/rotation values (CLHEP::mm, CLHEP::rad) for the arbitrary transformation
std::string m_SQLiteTag
SQLite tag name.
#define AmgMatrix(rows, cols)
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
bool m_doL1
enable/disable introducing the arbitrary L1 correction to the output objects
int m_counter
normalization factor
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
static constexpr uint32_t MINRUN
std::string printTransform(const Amg::Transform3D &) const
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainer > m_trtDetEleContKey
double m_errTrans
acceptable value for residual global translation
int m_Si_bec
Barrel=1, Endcaps=+-2, all (silicon)=99.
void scaleTransform(Amg::Transform3D &, const float)
virtual StatusCode sysInitialize() override
Override sysInitialize.
ToolHandle< IInDetAlignDBTool > m_IDAlignDBTool
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
bool m_SiTxtOutput
output Si constants to txt file ?
::StatusCode StatusCode
StatusCode definition for legacy code.
bool testIdentity(const Amg::Transform3D &, double, double) const
Eigen::Affine3d Transform3D
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Amg::Transform3D m_grot_z
StatusCode getSiElements(const InDetDD::SiDetectorElementCollection *, const bool, InDetAlignCog::Params_t ¶ms)
const Amg::Transform3D getL1Transform(int bec)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
int m_det
Pixel=1, SCT=2, Pixel+SCT=12, TRT=3, all (silicon and TRT)=99.
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int straw_layer(const Identifier &id) const
int layer_or_wheel(const Identifier &id) const
virtual void renounce()=0
static constexpr uint32_t MAXEVENT
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
int layer_disk(const Identifier &id) const
int eta_module(const Identifier &id) const
Definition of ATLAS Math & Geometry primitives (Amg)
int m_TRT_bec
Barrel=-1, Endcaps=+-2, all (TRT)=99.
Amg::Transform3D m_grot_x
int layer_disk(const Identifier &id) const
int m_Si_layer
a particular silicon layer or all (silicon)=99
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
int phi_module(const Identifier &id) const
static constexpr uint32_t MINEVENT
double m_sigXsctB
assumed error for SCT barrel local X matchnig in the Xi2 method
std::vector< ALFA_RawDataContainer_p1 > t2
DataObjIDColl m_extendedExtraObjects
double m_sigXpixE
assumed error for Pixel endcap local X matchnig in the Xi2 method
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
#define ATH_MSG_WARNING(x)
StatusCode shiftIDbyCog()
Amg::Transform3D m_ResGlob
int eta_module(const Identifier &id) const
Eigen::Translation< double, 3 > Translation3D
bool m_doTZ
enable/disable writing of indivitual DoF's to the db
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
ServiceHandle< ITRT_AlignDbSvc > m_TRTAlignDbTool
int side(const Identifier &id) const
AthAlgorithm()
Default constructor:
Class to hold collection of TRT detector elements.
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
int phi_module(const Identifier &id) const
void accumulateChi2(const Amg::Transform3D &, AmgSymMatrix(6)&, AmgVector(6)&, const double *)
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
double m_sigXtrtB
assumed error for TRT barrel local X matchnig in the Xi2 method
double m_errRot
acceptable value for residual global rotation angles
Amg::Transform3D sumTransforms(const Amg::Transform3D &, const Amg::Transform3D &) const
bool m_TRT_TxtOutput
output TRT constants to txt file ?
Identifier module_id(int barrel_ec, int phi_module, int layer_or_wheel) const
For an individual module phi sector.