CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10/src/RecoMuon/MuonIdentification/interface/MuonTimingFiller.h

Go to the documentation of this file.
00001 #ifndef MuonIdentification_MuonTimingFiller_h
00002 #define MuonIdentification_MuonTimingFiller_h 1
00003 
00004 // -*- C++ -*-
00005 //
00006 // Package:    MuonTimingFiller
00007 // Class:      MuonTimingFiller
00008 // 
00016 //
00017 // Original Author:  Piotr Traczyk, CERN
00018 //         Created:  Mon Mar 16 12:27:22 CET 2009
00019 // $Id: MuonTimingFiller.h,v 1.7 2011/02/24 15:41:53 farrell3 Exp $
00020 //
00021 //
00022 
00023 // system include files
00024 #include <memory>
00025 
00026 // user include files
00027 #include "FWCore/Framework/interface/Frameworkfwd.h"
00028 #include "FWCore/Framework/interface/EDProducer.h"
00029 
00030 #include "FWCore/Framework/interface/Event.h"
00031 #include "FWCore/Framework/interface/MakerMacros.h"
00032 
00033 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00034 
00035 #include "DataFormats/MuonReco/interface/MuonTimeExtra.h"
00036 #include "RecoMuon/MuonIdentification/interface/DTTimingExtractor.h"
00037 #include "RecoMuon/MuonIdentification/interface/CSCTimingExtractor.h"
00038 
00039 //
00040 // class decleration
00041 //
00042 
00043 class MuonTimingFiller {
00044    public:
00045       MuonTimingFiller(const edm::ParameterSet&);
00046       ~MuonTimingFiller();
00047       void fillTiming( const reco::Muon& muon, reco::MuonTimeExtra& dtTime, 
00048                     reco::MuonTimeExtra& cscTime, reco::MuonTimeExtra& combinedTime, 
00049                     edm::Event& iEvent, const edm::EventSetup& iSetup );
00050 
00051    private:
00052       void fillTimeFromMeasurements( TimeMeasurementSequence tmSeq, reco::MuonTimeExtra &muTime );
00053       void rawFit(double &a, double &da, double &b, double &db, 
00054                   const std::vector<double> hitsx, const std::vector<double> hitsy);
00055       void addEcalTime( const reco::Muon& muon, TimeMeasurementSequence &cmbSeq );
00056       void combineTMSequences( const reco::Muon& muon, TimeMeasurementSequence dtSeq, 
00057                                TimeMeasurementSequence cscSeq, TimeMeasurementSequence &cmbSeq );
00058       
00059       DTTimingExtractor* theDTTimingExtractor_;
00060       CSCTimingExtractor* theCSCTimingExtractor_;
00061       double errorEB_,errorEE_,ecalEcut_;
00062       bool useDT_, useCSC_, useECAL_;
00063 
00064 };
00065 
00066 #endif