![]() |
![]() |
#include <Alignment/CommonAlignmentParametrization/interface/CompositeAlignmentParameters.h>
Public Types | |
typedef std::map < AlignableDetOrUnitPtr, Alignable * > | AlignableDetToAlignableMap |
typedef std::map< Alignable *, int > | Alilenmap |
typedef std::map< Alignable *, int > | Aliposmap |
typedef std::vector< Alignable * > | Components |
vector of alignable components | |
Public Member Functions | |
Alignable * | alignableFromAlignableDet (AlignableDetOrUnitPtr adet) const |
Get relevant Alignable from AlignableDet. | |
CompositeAlignmentParameters * | clone (const AlgebraicVector &par, const AlgebraicSymMatrix &cov, const AlignableDetToAlignableMap &alimap, const Aliposmap &aliposmap, const Alilenmap &alilenmap) const |
Clone parameters. | |
CompositeAlignmentParameters * | clone (const AlgebraicVector &par, const AlgebraicSymMatrix &cov) const |
Clone method (for compatibility with base class). | |
CompositeAlignmentParameters * | cloneFromSelected (const AlgebraicVector &par, const AlgebraicSymMatrix &cov, const AlignableDetToAlignableMap &alimap, const Aliposmap &aliposmap, const Alilenmap &alilenmap) const |
Clone parameters (same as clone()). | |
CompositeAlignmentParameters * | cloneFromSelected (const AlgebraicVector &par, const AlgebraicSymMatrix &cov) const |
Clone method (for compatibility with base class, same as clone()). | |
Components | components () const |
Get vector of alignable components. | |
CompositeAlignmentParameters (const DataContainer &data, const Components &comp, const AlignableDetToAlignableMap &alimap, const Aliposmap &aliposmap, const Alilenmap &alilenmap) | |
CompositeAlignmentParameters (const AlgebraicVector &par, const AlgebraicSymMatrix &cov, const Components &comp, const AlignableDetToAlignableMap &alimap, const Aliposmap &aliposmap, const Alilenmap &alilenmap) | |
CompositeAlignmentParameters (const AlgebraicVector &par, const AlgebraicSymMatrix &cov, const Components &comp) | |
constructors | |
AlgebraicVector | correctionTerm (const std::vector< TrajectoryStateOnSurface > &tsosvec, const std::vector< AlignableDetOrUnitPtr > &alidetvec) const |
AlgebraicVector | correctionTerm (const std::vector< TrajectoryStateOnSurface > &tsosvec, const std::vector< AlignableDet * > &alidetvec) const |
for backward compatibility, use std::vector<AlignableDetOrUnitPtr> | |
AlgebraicMatrix | covarianceSubset (const std::vector< Alignable * > &veci, const std::vector< Alignable * > &vecj) const |
Extract covariance matrix elements between two subsets of alignables. | |
AlgebraicSymMatrix | covarianceSubset (const std::vector< Alignable * > &vec) const |
Extract covariance matrix for subset of alignables. | |
AlgebraicMatrix | derivatives (const std::vector< TrajectoryStateOnSurface > &tsosvec, const std::vector< AlignableDetOrUnitPtr > &alidetvec) const |
AlgebraicMatrix | derivatives (const std::vector< TrajectoryStateOnSurface > &tsosvec, const std::vector< AlignableDet * > &alidetvec) const |
for backward compatibility, use std::vector<AlignableDetOrUnitPtr> | |
AlgebraicMatrix | derivatives (const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &alidet) const |
Get derivatives. | |
AlgebraicMatrix | derivativesLegacy (const std::vector< TrajectoryStateOnSurface > &tsosvec, const std::vector< AlignableDet * > &alidetvec) const |
deprecated due to 'AlignableDet*' interface (legacy code should not be needed anymore) | |
AlgebraicMatrix | derivativesLegacy (const TrajectoryStateOnSurface &tsos, AlignableDet *alidet) const |
deprecated due to 'AlignableDet*' interface (legacy code should not be needed anymore) | |
AlgebraicVector | parameterSubset (const std::vector< Alignable * > &vec) const |
Extract parameters for subset of alignables. | |
AlgebraicMatrix | selectedDerivatives (const std::vector< TrajectoryStateOnSurface > &tsosvec, const std::vector< AlignableDetOrUnitPtr > &alidetvec) const |
AlgebraicMatrix | selectedDerivatives (const std::vector< TrajectoryStateOnSurface > &tsosvec, const std::vector< AlignableDet * > &alidetvec) const |
for backward compatibility, use std::vector<AlignableDetOrUnitPtr> | |
AlgebraicMatrix | selectedDerivatives (const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &alidet) const |
Get derivatives for selected alignables. | |
AlgebraicMatrix | selectedDerivativesLegacy (const std::vector< TrajectoryStateOnSurface > &tsosvec, const std::vector< AlignableDet * > &alidetvec) const |
deprecated due to 'AlignableDet*' interface (legacy code should not be needed anymore) | |
AlgebraicMatrix | selectedDerivativesLegacy (const TrajectoryStateOnSurface &tsos, AlignableDet *alidet) const |
deprecated due to 'AlignableDet*' interface (legacy code should not be needed anymore) | |
virtual | ~CompositeAlignmentParameters () |
destructor | |
Private Member Functions | |
void | convert (const std::vector< AlignableDet * > &input, std::vector< AlignableDetOrUnitPtr > &output) const |
backward compatibility method to convert vectors from specific AlignableDet to more general AlignableDetOrUnitPtr | |
std::vector< Alignable * > | extractAlignables (const std::vector< Alignable * > &alignables) const |
Return vector of alignables without multiple occurences. | |
bool | extractPositionAndLength (const std::vector< Alignable * > &alignables, std::vector< int > &posvec, std::vector< int > &lenvec, int &length) const |
Extract position and length of parameters for a subset of Alignables. | |
Private Attributes | |
AlignableDetToAlignableMap | theAlignableDetToAlignableMap |
Relate Alignable's and AlignableDet's. | |
Alilenmap | theAlilenmap |
Aliposmap | theAliposmap |
Maps to find parameters/covariance elements for given alignable. | |
Components | theComponents |
Vector of alignable components. |
Provided by AlignmentParameterStore.
Definition at line 15 of file CompositeAlignmentParameters.h.
typedef std::map<AlignableDetOrUnitPtr,Alignable*> CompositeAlignmentParameters::AlignableDetToAlignableMap |
Definition at line 23 of file CompositeAlignmentParameters.h.
typedef std::map<Alignable*,int> CompositeAlignmentParameters::Alilenmap |
Definition at line 25 of file CompositeAlignmentParameters.h.
typedef std::map<Alignable*,int> CompositeAlignmentParameters::Aliposmap |
Definition at line 24 of file CompositeAlignmentParameters.h.
typedef std::vector<Alignable*> CompositeAlignmentParameters::Components |
CompositeAlignmentParameters::CompositeAlignmentParameters | ( | const AlgebraicVector & | par, | |
const AlgebraicSymMatrix & | cov, | |||
const Components & | comp | |||
) |
constructors
Definition at line 14 of file CompositeAlignmentParameters.cc.
Referenced by clone().
00015 : 00016 AlignmentParameters(0,par,cov) , 00017 theComponents(comp) 00018 {}
CompositeAlignmentParameters::CompositeAlignmentParameters | ( | const AlgebraicVector & | par, | |
const AlgebraicSymMatrix & | cov, | |||
const Components & | comp, | |||
const AlignableDetToAlignableMap & | alimap, | |||
const Aliposmap & | aliposmap, | |||
const Alilenmap & | alilenmap | |||
) |
Definition at line 23 of file CompositeAlignmentParameters.cc.
00025 : 00026 AlignmentParameters(0,par,cov) , 00027 theComponents(comp) , 00028 theAlignableDetToAlignableMap(alimap), 00029 theAliposmap(aliposmap), 00030 theAlilenmap(alilenmap) 00031 {}
CompositeAlignmentParameters::CompositeAlignmentParameters | ( | const DataContainer & | data, | |
const Components & | comp, | |||
const AlignableDetToAlignableMap & | alimap, | |||
const Aliposmap & | aliposmap, | |||
const Alilenmap & | alilenmap | |||
) |
Definition at line 36 of file CompositeAlignmentParameters.cc.
00038 : 00039 AlignmentParameters(0,data) , 00040 theComponents(comp) , 00041 theAlignableDetToAlignableMap(alimap), 00042 theAliposmap(aliposmap), 00043 theAlilenmap(alilenmap) 00044 {}
CompositeAlignmentParameters::~CompositeAlignmentParameters | ( | ) | [virtual] |
Alignable * CompositeAlignmentParameters::alignableFromAlignableDet | ( | AlignableDetOrUnitPtr | adet | ) | const |
Get relevant Alignable from AlignableDet.
Definition at line 285 of file CompositeAlignmentParameters.cc.
References theAlignableDetToAlignableMap.
Referenced by correctionTerm(), derivatives(), derivativesLegacy(), and HIPAlignmentAlgorithm::run().
00286 { 00287 00288 AlignableDetToAlignableMap::const_iterator iali = 00289 theAlignableDetToAlignableMap.find(adet); 00290 if ( iali!=theAlignableDetToAlignableMap.end() ) return (*iali).second; 00291 else return 0; 00292 00293 }
CompositeAlignmentParameters * CompositeAlignmentParameters::clone | ( | const AlgebraicVector & | par, | |
const AlgebraicSymMatrix & | cov, | |||
const AlignableDetToAlignableMap & | alimap, | |||
const Aliposmap & | aliposmap, | |||
const Alilenmap & | alilenmap | |||
) | const |
Clone parameters.
Definition at line 78 of file CompositeAlignmentParameters.cc.
References clone(), components(), CompositeAlignmentParameters(), AlignmentParameters::setUserVariables(), and AlignmentParameters::userVariables().
00083 { 00084 CompositeAlignmentParameters* cap = 00085 new CompositeAlignmentParameters(par,cov,components(),alimap,aliposmap,alilenmap); 00086 00087 if ( userVariables() ) 00088 cap->setUserVariables(userVariables()->clone()); 00089 00090 return cap; 00091 }
CompositeAlignmentParameters * CompositeAlignmentParameters::clone | ( | const AlgebraicVector & | par, | |
const AlgebraicSymMatrix & | cov | |||
) | const [virtual] |
Clone method (for compatibility with base class).
Implements AlignmentParameters.
Definition at line 54 of file CompositeAlignmentParameters.cc.
References components(), CompositeAlignmentParameters(), AlignmentParameters::setUserVariables(), and AlignmentParameters::userVariables().
Referenced by clone(), cloneFromSelected(), and SingleTrajectoryUpdator::process().
00056 { 00057 CompositeAlignmentParameters* cap = 00058 new CompositeAlignmentParameters(par,cov,components()); 00059 00060 if ( userVariables() ) 00061 cap->setUserVariables(userVariables()->clone()); 00062 00063 return cap; 00064 }
CompositeAlignmentParameters * CompositeAlignmentParameters::cloneFromSelected | ( | const AlgebraicVector & | par, | |
const AlgebraicSymMatrix & | cov, | |||
const AlignableDetToAlignableMap & | alimap, | |||
const Aliposmap & | aliposmap, | |||
const Alilenmap & | alilenmap | |||
) | const |
Clone parameters (same as clone()).
Definition at line 96 of file CompositeAlignmentParameters.cc.
References clone().
00101 { 00102 return clone(par,cov,alimap,aliposmap,alilenmap); 00103 }
CompositeAlignmentParameters * CompositeAlignmentParameters::cloneFromSelected | ( | const AlgebraicVector & | par, | |
const AlgebraicSymMatrix & | cov | |||
) | const [virtual] |
Clone method (for compatibility with base class, same as clone()).
Implements AlignmentParameters.
Definition at line 69 of file CompositeAlignmentParameters.cc.
References clone().
00071 { 00072 return clone(par,cov); 00073 }
CompositeAlignmentParameters::Components CompositeAlignmentParameters::components | ( | ) | const |
Get vector of alignable components.
Definition at line 108 of file CompositeAlignmentParameters.cc.
References theComponents.
Referenced by clone(), SingleTrajectoryUpdator::process(), and AlignmentParameterStore::updateParameters().
00109 { 00110 return theComponents; 00111 }
void CompositeAlignmentParameters::convert | ( | const std::vector< AlignableDet * > & | input, | |
std::vector< AlignableDetOrUnitPtr > & | output | |||
) | const [private] |
backward compatibility method to convert vectors from specific AlignableDet to more general AlignableDetOrUnitPtr
Definition at line 492 of file CompositeAlignmentParameters.cc.
References it.
Referenced by correctionTerm(), and derivatives().
00494 { 00495 output.clear(); 00496 output.reserve(input.size()); 00497 00498 std::vector<AlignableDet*>::const_iterator it, itEnd; 00499 for (it = input.begin(), itEnd = input.end(); it != itEnd; ++it) 00500 output.push_back(AlignableDetOrUnitPtr(*it)); 00501 }
AlgebraicVector CompositeAlignmentParameters::correctionTerm | ( | const std::vector< TrajectoryStateOnSurface > & | tsosvec, | |
const std::vector< AlignableDetOrUnitPtr > & | alidetvec | |||
) | const |
Definition at line 151 of file CompositeAlignmentParameters.cc.
References alignableFromAlignableDet(), CompositeAlignmentDerivativesExtractor::correctionTerm(), and it.
00153 { 00154 std::vector<Alignable*> alivec; 00155 for (std::vector<AlignableDetOrUnitPtr>::const_iterator it=alidetvec.begin(); it!=alidetvec.end(); ++it ) 00156 alivec.push_back(alignableFromAlignableDet(*it)); 00157 00158 CompositeAlignmentDerivativesExtractor extractor(alivec,alidetvec,tsosvec); 00159 return extractor.correctionTerm(); 00160 }
AlgebraicVector CompositeAlignmentParameters::correctionTerm | ( | const std::vector< TrajectoryStateOnSurface > & | tsosvec, | |
const std::vector< AlignableDet * > & | alidetvec | |||
) | const |
for backward compatibility, use std::vector<AlignableDetOrUnitPtr>
Definition at line 140 of file CompositeAlignmentParameters.cc.
References convert().
00142 { 00143 std::vector<AlignableDetOrUnitPtr> detOrUnits; 00144 this->convert(alidetvec, detOrUnits); 00145 00146 return this->correctionTerm(tsosvec, detOrUnits); 00147 }
AlgebraicMatrix CompositeAlignmentParameters::covarianceSubset | ( | const std::vector< Alignable * > & | veci, | |
const std::vector< Alignable * > & | vecj | |||
) | const |
Extract covariance matrix elements between two subsets of alignables.
Definition at line 384 of file CompositeAlignmentParameters.cc.
References extractAlignables(), extractPositionAndLength(), HLT_VtxMuL3::result, and AlignmentParameters::theData.
00386 { 00387 const std::vector< Alignable* > seli = extractAlignables( veci ); 00388 const std::vector< Alignable* > selj = extractAlignables( vecj ); 00389 00390 int ndimi=0; 00391 int ndimj=0; 00392 00393 std::vector<int> posveci; 00394 std::vector<int> lenveci; 00395 std::vector<int> posvecj; 00396 std::vector<int> lenvecj; 00397 00398 posveci.reserve( seli.size() ); 00399 lenveci.reserve( seli.size() ); 00400 posvecj.reserve( selj.size() ); 00401 lenvecj.reserve( selj.size() ); 00402 00403 // iterate over input vectors of alignables 00404 // to determine dimensions of result matrix 00405 if ( !extractPositionAndLength( seli, posveci, lenveci, ndimi ) ) return AlgebraicSymMatrix(); 00406 // vector vecj 00407 if ( !extractPositionAndLength( selj, posvecj, lenvecj, ndimj ) ) return AlgebraicSymMatrix(); 00408 00409 // OK, let's do the real work now 00410 AlgebraicMatrix result( ndimi, ndimj ); 00411 00412 int resi = 0; 00413 for ( unsigned int iali = 0; iali < seli.size(); ++iali ) 00414 { 00415 int posi = posveci[iali]; 00416 int leni = lenveci[iali]; 00417 00418 int resj = 0; 00419 for ( unsigned int jali = 0; jali < selj.size(); ++jali ) 00420 { 00421 int posj = posvecj[jali]; 00422 int lenj = lenvecj[jali]; 00423 00424 for ( int ir = 0; ir < leni; ++ir ) 00425 for ( int ic = 0; ic < lenj; ++ic ) 00426 result[resi+ir][resj+ic] = theData->covariance()[posi-1+ir][posj-1+ic]; 00427 00428 resj += lenj; 00429 } 00430 resi += leni; 00431 } 00432 00433 return result; 00434 }
AlgebraicSymMatrix CompositeAlignmentParameters::covarianceSubset | ( | const std::vector< Alignable * > & | vec | ) | const |
Extract covariance matrix for subset of alignables.
Definition at line 336 of file CompositeAlignmentParameters.cc.
References extractAlignables(), extractPositionAndLength(), HLT_VtxMuL3::result, EgammaValidation_Zee_cff::sel, and AlignmentParameters::theData.
Referenced by SingleTrajectoryUpdator::process().
00337 { 00338 const std::vector< Alignable* > sel = extractAlignables( vec ); 00339 00340 const unsigned int nali = sel.size(); 00341 int ndim = 0; 00342 00343 std::vector<int> posvec; 00344 std::vector<int> lenvec; 00345 00346 posvec.reserve( nali ); 00347 lenvec.reserve( nali ); 00348 00349 // iterate over input vectors of alignables 00350 // to determine dimensions of result matrix 00351 if ( !extractPositionAndLength( sel, posvec, lenvec, ndim ) ) return AlgebraicSymMatrix(); 00352 00353 // OK, let's do the real work now 00354 AlgebraicSymMatrix result( ndim ); 00355 00356 int resi = 0; 00357 for ( unsigned int iali = 0; iali < nali; ++iali ) 00358 { 00359 int posi = posvec[iali]; 00360 int leni = lenvec[iali]; 00361 00362 int resj = 0; 00363 for ( unsigned int jali = 0; jali <= iali; ++jali ) 00364 { 00365 int posj = posvec[jali]; 00366 int lenj = lenvec[jali]; 00367 00368 for ( int ir = 0; ir < leni; ++ir ) 00369 for ( int ic = 0; ic < lenj; ++ic ) 00370 result[resi+ir][resj+ic] = theData->covariance()[posi-1+ir][posj-1+ic]; 00371 00372 resj += lenj; 00373 } 00374 resi += leni; 00375 } 00376 00377 return result; 00378 }
AlgebraicMatrix CompositeAlignmentParameters::derivatives | ( | const std::vector< TrajectoryStateOnSurface > & | tsosvec, | |
const std::vector< AlignableDetOrUnitPtr > & | alidetvec | |||
) | const |
Definition at line 127 of file CompositeAlignmentParameters.cc.
References alignableFromAlignableDet(), CompositeAlignmentDerivativesExtractor::derivatives(), and it.
00129 { 00130 std::vector<Alignable*> alivec; 00131 for (std::vector<AlignableDetOrUnitPtr>::const_iterator it=alidetvec.begin(); it!=alidetvec.end(); ++it) 00132 alivec.push_back(alignableFromAlignableDet(*it)); 00133 00134 CompositeAlignmentDerivativesExtractor extractor(alivec,alidetvec,tsosvec); 00135 return extractor.derivatives(); 00136 }
AlgebraicMatrix CompositeAlignmentParameters::derivatives | ( | const std::vector< TrajectoryStateOnSurface > & | tsosvec, | |
const std::vector< AlignableDet * > & | alidetvec | |||
) | const |
for backward compatibility, use std::vector<AlignableDetOrUnitPtr>
Definition at line 117 of file CompositeAlignmentParameters.cc.
References convert(), and derivatives().
00119 { 00120 std::vector<AlignableDetOrUnitPtr> detOrUnits; 00121 this->convert(alidetvec, detOrUnits); 00122 00123 return this->derivatives(tsosvec, detOrUnits); 00124 }
AlgebraicMatrix CompositeAlignmentParameters::derivatives | ( | const TrajectoryStateOnSurface & | tsos, | |
const AlignableDetOrUnitPtr & | alidet | |||
) | const [virtual] |
Get derivatives.
Implements AlignmentParameters.
Definition at line 182 of file CompositeAlignmentParameters.cc.
Referenced by derivatives(), and selectedDerivatives().
00184 { 00185 std::vector<TrajectoryStateOnSurface> tsosvec; 00186 std::vector<AlignableDetOrUnitPtr> alidetvec; 00187 tsosvec.push_back(tsos); 00188 alidetvec.push_back(alidet); 00189 return derivatives(tsosvec,alidetvec); 00190 }
AlgebraicMatrix CompositeAlignmentParameters::derivativesLegacy | ( | const std::vector< TrajectoryStateOnSurface > & | tsosvec, | |
const std::vector< AlignableDet * > & | alidetvec | |||
) | const |
deprecated due to 'AlignableDet*' interface (legacy code should not be needed anymore)
Definition at line 206 of file CompositeAlignmentParameters.cc.
References alignableFromAlignableDet(), Alignable::alignmentParameters(), it, and AlignmentParameters::selectedDerivatives().
00208 { 00209 // sanity check: length of parameter argument vectors must be equal 00210 if (alidetvec.size() != tsosvec.size()) 00211 { 00212 edm::LogError("BadArgument") << " Inconsistent length of argument vectors! "; 00213 AlgebraicMatrix selderiv(1,0); 00214 return selderiv; 00215 } 00216 00217 std::vector<AlgebraicMatrix> vecderiv; 00218 int nparam=0; 00219 00220 std::vector<TrajectoryStateOnSurface>::const_iterator itsos=tsosvec.begin(); 00221 for( std::vector<AlignableDet*>::const_iterator it=alidetvec.begin(); 00222 it!=alidetvec.end(); ++it, ++itsos ) 00223 { 00224 AlignableDet* ad = (*it); 00225 Alignable* ali = alignableFromAlignableDet(ad); 00226 AlignmentParameters* ap = ali->alignmentParameters(); 00227 AlgebraicMatrix thisselderiv = ap->selectedDerivatives(*itsos,ad); 00228 vecderiv.push_back(thisselderiv); 00229 nparam += thisselderiv.num_row(); 00230 } 00231 00232 int ipos=1; 00233 AlgebraicMatrix selderiv(nparam,2); 00234 for ( std::vector<AlgebraicMatrix>::const_iterator imat=vecderiv.begin(); 00235 imat!=vecderiv.end(); ++imat ) 00236 { 00237 AlgebraicMatrix thisselderiv=(*imat); 00238 int npar=thisselderiv.num_row(); 00239 selderiv.sub(ipos,1,thisselderiv); 00240 ipos += npar; 00241 } 00242 00243 return selderiv; 00244 }
AlgebraicMatrix CompositeAlignmentParameters::derivativesLegacy | ( | const TrajectoryStateOnSurface & | tsos, | |
AlignableDet * | alidet | |||
) | const |
deprecated due to 'AlignableDet*' interface (legacy code should not be needed anymore)
Definition at line 260 of file CompositeAlignmentParameters.cc.
Referenced by selectedDerivativesLegacy().
00262 { 00263 std::vector<TrajectoryStateOnSurface> tsosvec; 00264 std::vector<AlignableDet*> alidetvec; 00265 tsosvec.push_back(tsos); 00266 alidetvec.push_back(alidet); 00267 return derivativesLegacy(tsosvec,alidetvec); 00268 00269 }
std::vector< Alignable * > CompositeAlignmentParameters::extractAlignables | ( | const std::vector< Alignable * > & | alignables | ) | const [private] |
Return vector of alignables without multiple occurences.
Definition at line 477 of file CompositeAlignmentParameters.cc.
References find(), and HLT_VtxMuL3::result.
Referenced by covarianceSubset(), and parameterSubset().
00478 { 00479 std::vector< Alignable* > result; 00480 00481 std::vector< Alignable* >::const_iterator itA, itEnd; 00482 for ( itA = alignables.begin(), itEnd = alignables.end(); itA != itEnd; ++itA ) 00483 { 00484 if ( std::find( result.begin(), result.end(), *itA ) == result.end() ) result.push_back( *itA ); 00485 } 00486 00487 return result; 00488 }
bool CompositeAlignmentParameters::extractPositionAndLength | ( | const std::vector< Alignable * > & | alignables, | |
std::vector< int > & | posvec, | |||
std::vector< int > & | lenvec, | |||
int & | length | |||
) | const [private] |
Extract position and length of parameters for a subset of Alignables.
Definition at line 440 of file CompositeAlignmentParameters.cc.
References find(), it, theAlilenmap, theAliposmap, and theComponents.
Referenced by covarianceSubset(), and parameterSubset().
00444 { 00445 length = 0; 00446 00447 for ( std::vector<Alignable*>::const_iterator it = alignables.begin(); it != alignables.end(); ++it ) 00448 { 00449 // check if in components 00450 if ( std::find( theComponents.begin(), theComponents.end(), *it ) == theComponents.end() ) 00451 { 00452 edm::LogError( "NotFound" ) << "@SUB=CompositeAlignmentParameters::extractPositionAndLength" 00453 << "Alignable not found in components!"; 00454 return false; 00455 } 00456 00457 // get pos/length 00458 Aliposmap::const_iterator iposmap = theAliposmap.find( *it ); 00459 Alilenmap::const_iterator ilenmap = theAlilenmap.find( *it ); 00460 if ( iposmap == theAliposmap.end() || ilenmap == theAlilenmap.end() ) 00461 { 00462 edm::LogError( "NotFound" ) << "@SUB=CompositeAlignmentParameters::extractPositionAndLength" 00463 << "position/length not found for Alignable in maps!"; 00464 return false; 00465 } 00466 posvec.push_back( iposmap->second ); 00467 lenvec.push_back( ilenmap->second ); 00468 length += ilenmap->second; 00469 } 00470 00471 return true; 00472 }
AlgebraicVector CompositeAlignmentParameters::parameterSubset | ( | const std::vector< Alignable * > & | vec | ) | const |
Extract parameters for subset of alignables.
Definition at line 298 of file CompositeAlignmentParameters.cc.
References extractAlignables(), extractPositionAndLength(), HLT_VtxMuL3::result, EgammaValidation_Zee_cff::sel, and AlignmentParameters::theData.
00299 { 00300 const std::vector< Alignable* > sel = extractAlignables( vec ); 00301 00302 const unsigned int nali = sel.size(); 00303 int ndim = 0; 00304 00305 std::vector<int> posvec; 00306 std::vector<int> lenvec; 00307 00308 posvec.reserve( nali ); 00309 lenvec.reserve( nali ); 00310 00311 // iterate over input vector of alignables to determine size of result vector 00312 if ( !extractPositionAndLength( sel, posvec, lenvec, ndim ) ) return AlgebraicVector(); 00313 00314 // OK, let's do the real work now 00315 AlgebraicVector result( ndim ); 00316 00317 int resi = 0; 00318 for ( unsigned int iali = 0; iali < nali; ++iali ) 00319 { 00320 int posi = posvec[iali]; 00321 int leni = lenvec[iali]; 00322 00323 for ( int ir = 0; ir < leni; ++ir ) 00324 result[resi+ir] = theData->parameters()[posi-1+ir]; 00325 00326 resi += leni; 00327 } 00328 00329 return result; 00330 }
AlgebraicMatrix CompositeAlignmentParameters::selectedDerivatives | ( | const std::vector< TrajectoryStateOnSurface > & | tsosvec, | |
const std::vector< AlignableDetOrUnitPtr > & | alidetvec | |||
) | const |
Definition at line 173 of file CompositeAlignmentParameters.cc.
References derivatives().
00175 { 00176 return derivatives(tsosvec,alidetvec); 00177 }
AlgebraicMatrix CompositeAlignmentParameters::selectedDerivatives | ( | const std::vector< TrajectoryStateOnSurface > & | tsosvec, | |
const std::vector< AlignableDet * > & | alidetvec | |||
) | const |
for backward compatibility, use std::vector<AlignableDetOrUnitPtr>
Definition at line 165 of file CompositeAlignmentParameters.cc.
References derivatives().
00167 { 00168 return derivatives(tsosvec,alidetvec); 00169 }
AlgebraicMatrix CompositeAlignmentParameters::selectedDerivatives | ( | const TrajectoryStateOnSurface & | tsos, | |
const AlignableDetOrUnitPtr & | alidet | |||
) | const [virtual] |
Get derivatives for selected alignables.
Implements AlignmentParameters.
Definition at line 195 of file CompositeAlignmentParameters.cc.
References derivatives().
00197 { 00198 return derivatives(tsos,alidet); 00199 }
AlgebraicMatrix CompositeAlignmentParameters::selectedDerivativesLegacy | ( | const std::vector< TrajectoryStateOnSurface > & | tsosvec, | |
const std::vector< AlignableDet * > & | alidetvec | |||
) | const |
deprecated due to 'AlignableDet*' interface (legacy code should not be needed anymore)
Definition at line 250 of file CompositeAlignmentParameters.cc.
References derivativesLegacy().
00252 { 00253 return derivativesLegacy(tsosvec,alidetvec); 00254 }
AlgebraicMatrix CompositeAlignmentParameters::selectedDerivativesLegacy | ( | const TrajectoryStateOnSurface & | tsos, | |
AlignableDet * | alidet | |||
) | const |
deprecated due to 'AlignableDet*' interface (legacy code should not be needed anymore)
Definition at line 275 of file CompositeAlignmentParameters.cc.
References derivativesLegacy().
00277 { 00278 return derivativesLegacy(tsos,alidet); 00279 }
Relate Alignable's and AlignableDet's.
Definition at line 135 of file CompositeAlignmentParameters.h.
Referenced by alignableFromAlignableDet().
Definition at line 139 of file CompositeAlignmentParameters.h.
Referenced by extractPositionAndLength().
Maps to find parameters/covariance elements for given alignable.
Definition at line 138 of file CompositeAlignmentParameters.h.
Referenced by extractPositionAndLength().
Vector of alignable components.
Definition at line 132 of file CompositeAlignmentParameters.h.
Referenced by components(), and extractPositionAndLength().