28 assert( alphaVec.size() ==
k_nA ) ;
29 assert( betaVec.size() ==
k_nA ) ;
30 assert( gammaVec.size() ==
k_nA ) ;
31 assert( xtranslVec.size() ==
k_nA ) ;
32 assert( ytranslVec.size() ==
k_nA ) ;
33 assert( ztranslVec.size() ==
k_nA ) ;
36 AliVec& vali ( aliPtr->m_align ) ;
53 std::cout <<
"Uploading ES alignments to the database" << std::endl ;
58 <<
"PoolDBOutputService not available";
83 const AliVec& vaPrev ( pA->m_align ) ;
86 for(
unsigned int i ( 0 ) ;
i !=
k_nA ; ++
i )
94 const double zPlanePrev (
geom->getGeometry(
id )->getPosition().z() ) ;
95 const double zAlignPrev ( vaPrev[
i].translation().
z() ) ;
96 const Trl q_I ( 0, 0, zPlanePrev - zAlignPrev ) ;
97 const Trl& s_p ( vaPrev[
i].translation() ) ;
98 const Trl t_n ( x[
i], y[i], z[i] ) ;
100 const double gamma ( g[i] ) ;
101 const double alpha ( a[i] ) ;
102 const double beta ( b[i] ) ;
105 Rot(
Rot(
Rot().rotateZ( -gamma ) ).rotateX( -alpha ) ).rotateY( -beta ) ) ;
107 const Rot InvL_n ( L_n.inverse() ) ;
109 const Rot G_n ( InvL_n * G_p ) ;
111 const Trl s_n ( t_n + s_p + q_I - InvL_n*q_I ) ;
113 std::cout<<
"For i = "<<i<<
", q_I="<<q_I<<std::endl ;
114 std::cout<<
"For i = "<<i<<
", s_p="<<s_p<<std::endl ;
115 std::cout<<
"For i = "<<i<<
", alpha = "<<1000.*alpha<<
" mr"<<std::endl;
116 std::cout<<
"For i = "<<i<<
", beta = "<<1000.*beta <<
" mr"<<std::endl;
117 std::cout<<
"For i = "<<i<<
", gamma = "<<1000.*gamma<<
" mr"<<std::endl;
118 std::cout<<
" For i = "<<i<<
", L_n = "<< L_n
119 <<
" Euler angles="<<InvL_n.eulerAngles()<<
"\n"<<std::endl;
120 std::cout<<
"For i = "<<i<<
", t_n="<<t_n<<std::endl ;
122 <<
" Euler angles="<<G_p.eulerAngles()<<
"\n"<<std::endl ;
123 std::cout<<
" For i = "<<i<<
", InvL_n = "<< InvL_n
124 <<
" Euler angles="<<InvL_n.eulerAngles()<<
"\n"<<std::endl;
125 std::cout<<
" For i ="<<i<<
", G_n = "<< G_n
126 <<
" Euler angles="<<G_n.eulerAngles()<<
"\n"<<std::endl;
127 std::cout<<
" For i ="<<i<<
", s_n = "<< s_n<<std::endl;
128 std::cout<<
"++++++++++++++++++++++++++\n\n"<<std::endl;
AlignTransform::Rotation Rot
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
AlignTransform::Translation Trl
std::vector< AlignTransform > AliVec
void write(AliPtr aliPtr)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
WriteESAlignments(const edm::EventSetup &eventSetup, const DVec &alphaVec, const DVec &betaVec, const DVec &gammaVec, const DVec &xtranslVec, const DVec &ytranslVec, const DVec &ztranslVec)
static DetId detIdFromLocalAlignmentIndex(unsigned int iLoc)
void writeOne(T *payload, Time_t time, const std::string &recordName, bool withlogging=false)
static unsigned int numberOfAlignments()
static const unsigned int k_nA
cond::Time_t currentTime() const
std::vector< double > DVec
void convert(const edm::EventSetup &eS, const DVec &a, const DVec &b, const DVec &g, const DVec &x, const DVec &y, const DVec &z, AliVec &va)