CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/DQM/DTMonitorModule/src/DTChamberEfficiency.h

Go to the documentation of this file.
00001 #ifndef DTCHAMBEREFFICIENCY_H
00002 #define DTCHAMBEREFFICIENCY_H
00003 
00020 #include "DataFormats/Common/interface/Handle.h"
00021 
00022 
00023 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00024 #include "DataFormats/TrackReco/interface/Track.h"
00025 
00026 #include "FWCore/Framework/interface/EDAnalyzer.h"
00027 #include "FWCore/Framework/interface/ESHandle.h"
00028 #include "FWCore/Utilities/interface/InputTag.h"
00029 
00030 #include "FWCore/Framework/interface/Frameworkfwd.h"
00031 
00032 #include "Geometry/DTGeometry/interface/DTGeometry.h"
00033 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
00034 #include "MagneticField/Engine/interface/MagneticField.h"
00035 
00036 #include "RecoMuon/MeasurementDet/interface/MuonDetLayerMeasurements.h"
00037 #include <vector>
00038 
00039 namespace reco {
00040   class TransientTrack;
00041 }
00042 
00043 
00044 
00045 class Chi2MeasurementEstimator;
00046 class MuonServiceProxy;
00047 
00048 class DQMStore;
00049 class MonitorElement;
00050 class FreeTrajectoryState;
00051 class DetLayer;
00052 class DetId;
00053 
00054 class DTChamberEfficiency : public edm::EDAnalyzer
00055 {
00056 
00057  public:
00058   //Constructor 
00059   DTChamberEfficiency(const edm::ParameterSet& pset) ;
00060 
00061   //Destructor
00062   ~DTChamberEfficiency() ;
00063 
00064   //Operations
00065   void analyze(const edm::Event & event, const edm::EventSetup& eventSetup);
00066   void beginJob();
00067   void beginRun(const edm::Run& , const edm::EventSetup&);
00068   void endJob();
00069 
00070  private:
00071 
00072   //functions
00073   std::vector<const DetLayer*> compatibleLayers(const DetLayer *initialLayer,
00074                                                 const FreeTrajectoryState& fts, PropagationDirection propDir);
00075 
00076 
00077   void bookHistos();
00078   MeasurementContainer segQualityCut(const MeasurementContainer seg_list) const;
00079   bool chamberSelection(const DetId& idDetLay, reco::TransientTrack& trans_track) const;
00080   inline edm::ESHandle<Propagator> propagator() const;
00081 
00082   //data members
00083   bool debug;
00084 
00085   edm::InputTag theTracksLabel;
00086 
00087   edm::InputTag labelRPCRecHits;
00088   edm::InputTag thedt4DSegments;
00089   edm::InputTag thecscSegments;
00090 
00091   double theMaxChi2;
00092   double theNSigma;
00093   int theMinNrec;
00094 
00095   std::string theNavigationType;
00096 
00097   edm::ESHandle<DTGeometry> dtGeom;
00098 
00099   DQMStore* theDbe;
00100 
00101   MuonServiceProxy* theService;
00102   MuonDetLayerMeasurements* theMeasurementExtractor;
00103   Chi2MeasurementEstimator* theEstimator;
00104 
00105   edm::ESHandle<MagneticField> magfield;
00106   edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry;
00107 
00108   //std::map<DTChamberId, std::vector<MonitorElement*> > histosPerW;
00109 
00110   std::vector<std::vector<MonitorElement*> > histosPerW;
00111 
00112  protected:
00113 
00114 };
00115 
00116 #endif // DTANALYZER_H