CMS 3D CMS Logo

AlignmentAlgorithmBase.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentAlgorithmBase_h
00002 #define Alignment_CommonAlignmentAlgorithm_AlignmentAlgorithmBase_h
00003 
00004 //
00005 // Base class for the alignment algorithm
00006 //
00007 // Any algorithm should derive from this class
00008 //
00009 
00010 #include <vector>
00011 #include <utility>
00012 
00013 class AlignableTracker;
00014 class AlignableMuon;
00015 class AlignmentParameterStore;
00016 class Trajectory;
00017 
00018 namespace edm { class EventSetup; class ParameterSet; }
00019 namespace reco { class Track; }
00020 
00021 class AlignmentAlgorithmBase
00022 {
00023 
00024 public:
00025 
00026   typedef std::pair<const Trajectory*, const reco::Track*> ConstTrajTrackPair; 
00027   typedef std::vector< ConstTrajTrackPair >  ConstTrajTrackPairCollection;
00028   
00030   AlignmentAlgorithmBase(const edm::ParameterSet& cfg);
00031   
00033   virtual ~AlignmentAlgorithmBase() {};
00034 
00036   virtual void initialize( const edm::EventSetup& setup, 
00037                            AlignableTracker* tracker,
00038                            AlignableMuon* muon,
00039                            AlignmentParameterStore* store ) = 0;
00042    virtual void startNewLoop(void) {}
00043 
00045   virtual void terminate(void) = 0;
00046 
00048   virtual void run( const edm::EventSetup& setup,
00049                     const ConstTrajTrackPairCollection& tracks ) = 0;
00050 
00051 };
00052 
00053 #endif

Generated on Tue Jun 9 17:23:46 2009 for CMSSW by  doxygen 1.5.4