#include <MillePedeAlignmentAlgorithm.h>
Public Member Functions | |
virtual bool | addCalibrations (const std::vector< IntegratedCalibrationBase * > &iCals) override |
Pass integrated calibrations to Millepede (they are not owned by Millepede!) More... | |
virtual void | beginLuminosityBlock (const edm::EventSetup &) override |
called at begin of luminosity block (resets Mille binary in mille mode) More... | |
virtual void | endLuminosityBlock (const edm::EventSetup &) override |
called at end of luminosity block More... | |
virtual void | endRun (const EventInfo &, const EndRunInfo &, const edm::EventSetup &) |
Run on run products, e.g. TkLAS. More... | |
virtual void | endRun (const EndRunInfo &runInfo, const edm::EventSetup &setup) override |
called at end of run - order of arguments like in EDProducer etc. More... | |
virtual void | initialize (const edm::EventSetup &setup, AlignableTracker *tracker, AlignableMuon *muon, AlignableExtras *extras, AlignmentParameterStore *store) override |
Called at beginning of job. More... | |
MillePedeAlignmentAlgorithm (const edm::ParameterSet &cfg) | |
Constructor. More... | |
virtual bool | processesEvents () override |
Returns whether MP should process events in the current configuration. More... | |
virtual void | run (const edm::EventSetup &setup, const EventInfo &eventInfo) override |
Run the algorithm on trajectories and tracks. More... | |
virtual bool | setParametersForRunRange (const RunRange &runrange) override |
virtual bool | supportsCalibrations () override |
Returns whether MP supports calibrations. More... | |
virtual void | terminate (const edm::EventSetup &iSetup) override |
Called at end of job. More... | |
virtual void | terminate () override |
Called at end of job. More... | |
virtual | ~MillePedeAlignmentAlgorithm () |
Destructor. More... | |
Public Member Functions inherited from AlignmentAlgorithmBase | |
virtual bool | addCalibrations (const Calibrations &) |
AlignmentAlgorithmBase (const edm::ParameterSet &) | |
Constructor. More... | |
virtual void | beginRun (const edm::EventSetup &setup) |
called at begin of run More... | |
virtual void | startNewLoop () |
virtual | ~AlignmentAlgorithmBase () |
Destructor. More... | |
Private Types | |
enum | EModeBit { myMilleBit = 1 << 0, myPedeRunBit = 1 << 1, myPedeSteerBit = 1 << 2, myPedeReadBit = 1 << 3 } |
enum | MeasurementDirection { kLocalX = 0, kLocalY } |
Private Member Functions | |
int | addGlobalData (const edm::EventSetup &setup, const EventInfo &eventInfo, const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr, unsigned int iHit, gbl::GblPoint &gblPoint) |
unsigned int | addHitCount (const std::vector< AlignmentParameters * > &parVec, const std::vector< bool > &validHitVecY) const |
bool | addHits (const std::vector< Alignable * > &alis, const std::vector< AlignmentUserVariables * > &mpVars) const |
bool | addHitStatistics (int fromLoop, const std::string &outFile, const std::vector< std::string > &inFiles) const |
void | addLasBeam (const EventInfo &eventInfo, const TkFittedLasBeam &lasBeam, const std::vector< TrajectoryStateOnSurface > &tsoses) |
void | addLaserData (const EventInfo &eventInfo, const TkFittedLasBeamCollection &tkLasBeams, const TsosVectorCollection &tkLasBeamTsoses) |
int | addMeasurementData (const edm::EventSetup &setup, const EventInfo &eventInfo, const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr, unsigned int iHit, AlignmentParameters *¶ms) |
void | addPxbSurvey (const edm::ParameterSet &pxbSurveyCfg) |
add measurement data from PXB survey More... | |
std::pair< unsigned int, unsigned int > | addReferenceTrajectory (const edm::EventSetup &setup, const EventInfo &eventInfo, const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr) |
fill mille for a trajectory, returning number of x/y hits ([0,0] if 'bad' trajectory) More... | |
void | addRefTrackData2D (const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr, unsigned int iTrajHit, TMatrixDSym &aHitCovarianceM, TMatrixF &aHitResidualsM, TMatrixF &aLocalDerivativesM) |
adds data from reference trajectory from a specific Hit More... | |
void | addRefTrackVirtualMeas1D (const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr, unsigned int iVirtualMeas, TMatrixDSym &aHitCovarianceM, TMatrixF &aHitResidualsM, TMatrixF &aLocalDerivativesM) |
adds data for a specific virtual measurement from reference trajectory More... | |
void | addVirtualMeas (const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr, unsigned int iVirtualMeas) |
adds data for virtual measurements from reference trajectory More... | |
bool | areEmptyParams (const std::vector< Alignable * > &alignables) const |
void | buildUserVariables (const std::vector< Alignable * > &alignables) const |
add MillePedeVariables for each AlignmentParameters (exception if no parameters...) More... | |
int | callMille (const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr, unsigned int iTrajHit, const std::vector< int > &globalLabels, const std::vector< float > &globalDerivativesX, const std::vector< float > &globalDerivativesY) |
calls callMille1D or callMille2D More... | |
int | callMille1D (const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr, unsigned int iTrajHit, const std::vector< int > &globalLabels, const std::vector< float > &globalDerivativesX) |
calls Mille for 1D hits More... | |
int | callMille2D (const ReferenceTrajectoryBase::ReferenceTrajectoryPtr &refTrajPtr, unsigned int iTrajHit, const std::vector< int > &globalLabels, const std::vector< float > &globalDerivativesx, const std::vector< float > &globalDerivativesy) |
unsigned int | decodeMode (const std::string &mode) const |
void | diagonalize (TMatrixDSym &aHitCovarianceM, TMatrixF &aLocalDerivativesM, TMatrixF &aHitResidualsM, TMatrixF &theGlobalDerivativesM) const |
unsigned int | doIO (int loop) const |
std::vector< std::string > | getExistingFormattedFiles (const std::vector< std::string > &plainFiles, const std::string &theDir) |
void | globalDerivativesCalibration (const TransientTrackingRecHit::ConstRecHitPointer &recHit, const TrajectoryStateOnSurface &tsos, const edm::EventSetup &setup, const EventInfo &eventInfo, std::vector< float > &globalDerivativesX, std::vector< float > &globalDerivativesY, std::vector< int > &globalLabels) const |
adding derivatives from integrated calibrations More... | |
bool | globalDerivativesHierarchy (const EventInfo &eventInfo, const TrajectoryStateOnSurface &tsos, Alignable *ali, const AlignableDetOrUnitPtr &alidet, std::vector< float > &globalDerivativesX, std::vector< float > &globalDerivativesY, std::vector< int > &globalLabels, AlignmentParameters *&lowestParams) const |
recursively adding derivatives and labels, false if problems More... | |
bool | globalDerivativesHierarchy (const EventInfo &eventInfo, const TrajectoryStateOnSurface &tsos, Alignable *ali, const AlignableDetOrUnitPtr &alidet, std::vector< double > &globalDerivativesX, std::vector< double > &globalDerivativesY, std::vector< int > &globalLabels, AlignmentParameters *&lowestParams) const |
recursively adding derivatives (double) and labels, false if problems More... | |
bool | is2D (const TransientTrackingRecHit::ConstRecHitPointer &recHit) const |
true if hit belongs to 2D detector (currently tracker specific) More... | |
bool | isMode (unsigned int testMode) const |
void | makeGlobDerivMatrix (const std::vector< float > &globalDerivativesx, const std::vector< float > &globalDerivativesy, TMatrixF &aGlobalDerivativesM) |
bool | readFromPede (const edm::ParameterSet &mprespset, bool setUserVars, const RunRange &runrange) |
read pede input defined by 'psetName', flag to create/not create MillePedeVariables More... | |
Private Attributes | |
const bool | ignoreHitsWithoutGlobalDerivatives_ |
const bool | runAtPCL_ |
std::unique_ptr < AlignableNavigator > | theAlignableNavigator |
std::vector< Alignable * > | theAlignables |
AlignmentParameterStore * | theAlignmentParameterStore |
directory for all kind of files More... | |
std::unique_ptr< gbl::MilleBinary > | theBinary |
std::vector < IntegratedCalibrationBase * > | theCalibrations |
edm::ParameterSet | theConfig |
std::string | theDir |
bool | theDoSurveyPixelBarrel |
std::vector< float > | theFloatBufferX |
std::vector< float > | theFloatBufferY |
bool | theGblDoubleBinary |
std::vector< int > | theIntBuffer |
int | theLastWrittenIov |
double | theMaximalCor2D |
std::unique_ptr< Mille > | theMille |
unsigned int | theMinNumHits |
unsigned int | theMode |
std::unique_ptr< MillePedeMonitor > | theMonitor |
std::unique_ptr< PedeLabelerBase > | thePedeLabels |
std::unique_ptr< PedeSteerer > | thePedeSteer |
std::unique_ptr < TrajectoryFactoryBase > | theTrajectoryFactory |
Additional Inherited Members | |
Public Types inherited from AlignmentAlgorithmBase | |
typedef std::pair< const Trajectory *, const reco::Track * > | ConstTrajTrackPair |
typedef std::vector < ConstTrajTrackPair > | ConstTrajTrackPairCollection |
typedef cond::RealTimeType < cond::runnumber >::type | RunNumber |
typedef std::pair< RunNumber, RunNumber > | RunRange |
CMSSW interface to pede: produces pede's binary input and steering file(s)
(last update by
)
Definition at line 56 of file MillePedeAlignmentAlgorithm.h.
|
private |
Enumerator | |
---|---|
myMilleBit | |
myPedeRunBit | |
myPedeSteerBit | |
myPedeReadBit |
Definition at line 232 of file MillePedeAlignmentAlgorithm.h.
|
private |
Enumerator | |
---|---|
kLocalX | |
kLocalY |
Definition at line 109 of file MillePedeAlignmentAlgorithm.h.
MillePedeAlignmentAlgorithm::MillePedeAlignmentAlgorithm | ( | const edm::ParameterSet & | cfg | ) |
Constructor.
Definition at line 88 of file MillePedeAlignmentAlgorithm.cc.
|
virtual |
Destructor.
Definition at line 115 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
Pass integrated calibrations to Millepede (they are not owned by Millepede!)
Definition at line 291 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Add global data (labels, derivatives) to GBL trajectory Returns -1 if any problem (for params cf. globalDerivativesHierarchy)
Definition at line 638 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Increase hit counting of MillePedeVariables behind each parVec[i] (and also for parameters higher in hierarchy), assuming 'parVec' and 'validHitVecY' to be parallel. Returns number of valid y-hits.
Definition at line 538 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 1085 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 1058 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 1396 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 1377 of file MillePedeAlignmentAlgorithm.cc.
|
private |
If hit is usable: callMille for x and (probably) y direction. If globalDerivatives fine: returns 2 if 2D-hit, 1 if 1D-hit, 0 if no Alignable for hit. Returns -1 if any problem (for params cf. globalDerivativesHierarchy)
Definition at line 599 of file MillePedeAlignmentAlgorithm.cc.
|
private |
add measurement data from PXB survey
Definition at line 1442 of file MillePedeAlignmentAlgorithm.cc.
|
private |
fill mille for a trajectory, returning number of x/y hits ([0,0] if 'bad' trajectory)
Definition at line 452 of file MillePedeAlignmentAlgorithm.cc.
|
private |
adds data from reference trajectory from a specific Hit
Definition at line 1176 of file MillePedeAlignmentAlgorithm.cc.
|
private |
adds data for a specific virtual measurement from reference trajectory
Definition at line 1149 of file MillePedeAlignmentAlgorithm.cc.
|
private |
adds data for virtual measurements from reference trajectory
Definition at line 1353 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 927 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
called at begin of luminosity block (resets Mille binary in mille mode)
Reimplemented from AlignmentAlgorithmBase.
Definition at line 584 of file MillePedeAlignmentAlgorithm.cc.
|
private |
add MillePedeVariables for each AlignmentParameters (exception if no parameters...)
Definition at line 1009 of file MillePedeAlignmentAlgorithm.cc.
|
private |
calls callMille1D or callMille2D
Definition at line 1209 of file MillePedeAlignmentAlgorithm.cc.
|
private |
calls Mille for 1D hits
Definition at line 1227 of file MillePedeAlignmentAlgorithm.cc.
|
private |
calls Mille for x and possibly y component of hit, y is skipped for non-real 2D (e.g. SiStripRecHit2D), for TID/TEC first diagonalises if correlation is larger than configurable
Definition at line 1266 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 1034 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 1121 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 949 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
called at end of luminosity block
Reimplemented from AlignmentAlgorithmBase.
Definition at line 591 of file MillePedeAlignmentAlgorithm.cc.
|
virtual |
Run on run products, e.g. TkLAS.
Definition at line 568 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
called at end of run - order of arguments like in EDProducer etc.
Reimplemented from AlignmentAlgorithmBase.
Definition at line 579 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Generates list of files to read, given the list and dir from the configuration. This will automatically expand formatting directives, if they appear.
Definition at line 373 of file MillePedeAlignmentAlgorithm.cc.
|
private |
adding derivatives from integrated calibrations
Definition at line 816 of file MillePedeAlignmentAlgorithm.cc.
|
private |
recursively adding derivatives and labels, false if problems
Definition at line 698 of file MillePedeAlignmentAlgorithm.cc.
|
private |
recursively adding derivatives (double) and labels, false if problems
Definition at line 754 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
Called at beginning of job.
Implements AlignmentAlgorithmBase.
Definition at line 121 of file MillePedeAlignmentAlgorithm.cc.
|
private |
true if hit belongs to 2D detector (currently tracker specific)
Definition at line 871 of file MillePedeAlignmentAlgorithm.cc.
|
inlineprivate |
Definition at line 235 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 1108 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
Returns whether MP should process events in the current configuration.
Reimplemented from AlignmentAlgorithmBase.
Definition at line 299 of file MillePedeAlignmentAlgorithm.cc.
|
private |
read pede input defined by 'psetName', flag to create/not create MillePedeVariables
Definition at line 890 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
Run the algorithm on trajectories and tracks.
Implements AlignmentAlgorithmBase.
Definition at line 414 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
Called in order to pass parameters to alignables for a specific run range in case the algorithm supports run range dependent alignment.
Reimplemented from AlignmentAlgorithmBase.
Definition at line 309 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
Returns whether MP supports calibrations.
Reimplemented from AlignmentAlgorithmBase.
Definition at line 286 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
Called at end of job.
Implements AlignmentAlgorithmBase.
Definition at line 334 of file MillePedeAlignmentAlgorithm.cc.
|
overridevirtual |
Called at end of job.
Reimplemented from AlignmentAlgorithmBase.
Definition at line 338 of file MillePedeAlignmentAlgorithm.cc.
|
private |
Definition at line 266 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 265 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 246 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 245 of file MillePedeAlignmentAlgorithm.h.
|
private |
directory for all kind of files
Definition at line 244 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 262 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 252 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 241 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 243 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 260 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 257 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 258 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 263 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 259 of file MillePedeAlignmentAlgorithm.h.
|
private |
maximal correlation allowed for 2D hit in TID/TEC. If larger, the 2D measurement gets diagonalized!!!
Definition at line 256 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 254 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 248 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 253 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 242 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 247 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 249 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 250 of file MillePedeAlignmentAlgorithm.h.
|
private |
Definition at line 251 of file MillePedeAlignmentAlgorithm.h.