CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
KalmanAlignmentAlgorithm.h
Go to the documentation of this file.
1 #ifndef Alignment_KalmanAlignmentAlgorithm_KalmanAlignmentAlgorithm_h
2 #define Alignment_KalmanAlignmentAlgorithm_KalmanAlignmentAlgorithm_h
3 
7 
10 
11 #include <set>
12 
17 
18 class AlignableNavigator;
20 class TrajectoryFitter;
21 
22 namespace reco { class BeamSpot; }
23 
25 {
26 
27 public:
28 
32 
34  typedef std::vector< TrackletPtr > TrackletCollection;
35 
37  typedef std::vector< AlignmentSetup* > AlignmentSetupCollection;
38 
39 
41  virtual ~KalmanAlignmentAlgorithm( void );
42 
45  virtual void produce( edm::Event&, const edm::EventSetup& ) {}
46 
47  virtual void initialize( const edm::EventSetup& setup,
50  AlignableExtras* extras,
51  AlignmentParameterStore* store );
52 
53  virtual void terminate( const edm::EventSetup& setup );
54 
55  virtual void run( const edm::EventSetup& setup, const EventInfo &eventInfo );
56 
57  inline bool operator()( const Alignable* a1, const Alignable* a2 ) const { return ( a1->id() < a2->id() ); }
58 
59 private:
60 
62 
64 
65  void applyAlignmentParameters( Alignable* ali, AlignmentParameters* par, bool applyPar, bool applyCov ) const;
66 
67  void getComponents( Alignable* ali, std::vector<Alignable*>& comps ) const;
68 
69  void mergeResults( void ) const;
70 
71  void setAPEToZero( void );
72 
73  inline const PropagationDirection getDirection( const std::string& dir ) const
74  { return ( dir == "alongMomentum" ) ? alongMomentum : oppositeToMomentum; }
75 
77  { return ( dir == alongMomentum ) ? oppositeToMomentum : alongMomentum; }
78 
80 
82 
84 
86 
90 
92 
94 };
95 
96 #endif
void initializeAlignmentSetups(const edm::EventSetup &setup)
align::ID id() const
Return the ID of Alignable, i.e. DetId of &#39;first&#39; component GeomDet(Unit).
Definition: Alignable.h:180
virtual void initialize(const edm::EventSetup &setup, AlignableTracker *tracker, AlignableMuon *muon, AlignableExtras *extras, AlignmentParameterStore *store)
Call at beginning of job (must be implemented in derived class)
void getComponents(Alignable *ali, std::vector< Alignable * > &comps) const
KalmanAlignmentAlgorithm(const edm::ParameterSet &config)
PropagationDirection
void initializeAlignmentParameters(const edm::EventSetup &setup)
AlignmentParameterStore * theParameterStore
KalmanAlignmentTracklet::TrackletPtr TrackletPtr
const PropagationDirection getDirection(const std::string &dir) const
void applyAlignmentParameters(Alignable *ali, AlignmentParameters *par, bool applyPar, bool applyCov) const
std::vector< TrackletPtr > TrackletCollection
virtual void run(const edm::EventSetup &setup, const EventInfo &eventInfo)
Run the algorithm (must be implemented in derived class)
TrajectoryFactoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
AlignmentParameterSelector * theSelector
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
KalmanAlignmentSetup AlignmentSetup
bool operator()(const Alignable *a1, const Alignable *a2) const
const KalmanAlignmentSetup::SortingDirection getSortingDirection(const std::string &sortDir) const
virtual void terminate(const edm::EventSetup &setup)
Call at end of each loop (must be implemented in derived class)
AlignmentSetupCollection theAlignmentSetups
KalmanAlignmentTrackRefitter * theRefitter
virtual void produce(edm::Event &, const edm::EventSetup &)
AlignableNavigator * theNavigator
const PropagationDirection oppositeDirection(const PropagationDirection dir) const
dbl *** dir
Definition: mlp_gen.cc:35
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
Constructor of the full muon geometry.
Definition: AlignableMuon.h:36
TrajectoryFactoryBase::ReferenceTrajectoryCollection ReferenceTrajectoryCollection
TrajectoryFactoryBase::ExternalPredictionCollection ExternalPredictionCollection
std::vector< AlignmentSetup * > AlignmentSetupCollection
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")