CMS 3D CMS Logo

MuonStandaloneAlgorithm.h

Go to the documentation of this file.
00001 
00013 #ifndef Alignment_MuonStandaloneAlgorithm_MuonStandaloneAlgorithm_H
00014 #define Alignment_MuonStandaloneAlgorithm_MuonStandaloneAlgorithm_H
00015 
00016 
00017 // Base Class Headers
00018 #include "FWCore/Framework/interface/EDProducer.h"
00019 
00020 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
00021 #include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"
00022 #include "DataFormats/TrackReco/interface/Track.h"
00023 #include "Alignment/MuonStandaloneAlgorithm/interface/TrackForAlignment.h"
00024 #include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h"
00025 #include "RecoMuon/TrackingTools/interface/MuonUpdatorAtVertex.h"
00026 #include "FWCore/Framework/interface/ESHandle.h"
00027 #include "FWCore/Framework/interface/Event.h"
00028 #include "FWCore/ServiceRegistry/interface/Service.h"
00029 #include "TMatrixD.h"
00030 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00031 
00032 
00033 namespace edm {
00034   class ParameterSet;
00035   class Event;
00036   class EventSetup;
00037   class InputTag;
00038 }
00039 
00040 
00041 using namespace edm;
00042 
00043 
00044 class Propagator;
00045 class TrajectoryStateOnSurface;
00046 class FreeTrajectoryState;
00047 
00048 typedef std::vector< std::vector<int> > intDVector;
00049 typedef std::vector<TrackingRecHit *> RecHitVector;
00050 
00051 class MuonStandaloneAlgorithm: public edm::EDProducer {
00052 public:
00054   MuonStandaloneAlgorithm(const edm::ParameterSet& pset);
00055 
00057   virtual ~MuonStandaloneAlgorithm();
00058 
00059   // Operations
00060 
00061   virtual void produce(edm::Event & event, const edm::EventSetup& eventSetup);
00062 
00063 protected:
00064 
00065 private:
00066   
00067   bool Derivative(TrajectoryStateOnSurface , const GeomDet *, int, std::vector<double>, TMatrixD *);
00068 
00069   bool calculateJacobian(TrajectoryStateOnSurface, const GeomDet *, std::vector<double>, TMatrixD *);
00070 
00071   void calculateError(AlgebraicSymMatrix55, TMatrixD *);
00072   
00073   RecHitVector doMatching(const reco::Track &, edm::Handle<DTRecSegment4DCollection> &, edm::Handle<CSCSegmentCollection> &, intDVector *, intDVector *, edm::ESHandle<GlobalTrackingGeometry> &); 
00074 
00075   FreeTrajectoryState produceFreeTrajectoryState(TrajectoryStateOnSurface, int, double, std::vector<double> );
00076   
00077   edm::InputTag theSTAMuonTag;
00078   
00079   std::string theSeedCollectionLabel;
00080   std::string theRecHits4DLabelDT;
00081   std::string theRecHits2DLabelCSC;
00082   int theSelectorOfFirstPoint;
00083   int verbosity;
00084   double curvStep;
00085   double thetaStep;
00086   double phiStep;
00087   double transStep;
00088   double longiStep;
00089 
00090   Propagator *thePropagator1;
00091 
00092   const static int NDOFTrack = 5;
00093   const static int NDOFAlign = 6;
00094   const static int NDOFChamber = 4;
00095   const static int NDOFCoor = 4;
00096 
00097       
00098 };
00099 #endif
00100 
00101 
00102 
00103 

Generated on Tue Jun 9 17:24:12 2009 for CMSSW by  doxygen 1.5.4