CMS 3D CMS Logo

MuonIdVal.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:    Validation/MuonIdentification
00004 // Class:      MuonIdVal
00005 // 
00006 /*
00007 
00008  Description:  Makes and fills lots of histograms using the various reco::Muon
00009                methods.
00010 
00011 
00012 */
00013 //
00014 // Original Author:  Jacob Ribnik
00015 //         Created:  Wed Apr 18 13:48:08 CDT 2007
00016 // $Id: MuonIdVal.h,v 1.5 2008/10/30 19:17:43 jribnik Exp $
00017 //
00018 //
00019 
00020 #ifndef Validation_MuonIdentification_MuonIdVal_h
00021 #define Validation_MuonIdentification_MuonIdVal_h
00022 
00023 // system include files
00024 #include <string>
00025 #include <vector>
00026 
00027 // user include files
00028 #include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"
00029 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
00030 #include "DataFormats/MuonDetId/interface/CSCDetId.h"
00031 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00032 #include "DataFormats/MuonDetId/interface/MuonSubdetId.h"
00033 #include "DataFormats/MuonReco/interface/Muon.h"
00034 #include "DataFormats/MuonReco/interface/MuonFwd.h"
00035 #include "DataFormats/MuonReco/interface/MuonSelectors.h"
00036 
00037 #include "DQMServices/Core/interface/DQMStore.h"
00038 #include "DQMServices/Core/interface/MonitorElement.h"
00039 
00040 #include "FWCore/Framework/interface/EDAnalyzer.h"
00041 #include "FWCore/Framework/interface/ESHandle.h"
00042 #include "FWCore/Framework/interface/Event.h"
00043 #include "FWCore/Framework/interface/Frameworkfwd.h"
00044 #include "FWCore/Framework/interface/MakerMacros.h"
00045 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00046 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00047 #include "FWCore/ServiceRegistry/interface/Service.h"
00048 
00049 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
00050 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
00051 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h"
00052 
00053 class MuonIdVal : public edm::EDAnalyzer {
00054    public:
00055       explicit MuonIdVal(const edm::ParameterSet&);
00056       ~MuonIdVal();
00057 
00058    private:
00059       virtual void beginJob(const edm::EventSetup&);
00060       virtual void analyze(const edm::Event&, const edm::EventSetup&);
00061       virtual void endJob() ;
00062 
00063       DQMStore* dbe_;
00064 
00065       // ----------member data ---------------------------
00066       edm::InputTag inputMuonCollection_;
00067       edm::InputTag inputDTRecSegment4DCollection_;
00068       edm::InputTag inputCSCSegmentCollection_;
00069       bool useTrackerMuons_;
00070       bool useGlobalMuons_;
00071       bool makeDQMPlots_;
00072       bool makeEnergyPlots_;
00073       bool makeIsoPlots_;
00074       bool make2DPlots_;
00075       bool makeAllChamberPlots_;
00076       std::string baseFolder_;
00077 
00078       edm::Handle<reco::MuonCollection> muonCollectionH_;
00079       edm::Handle<DTRecSegment4DCollection> dtSegmentCollectionH_;
00080       edm::Handle<CSCSegmentCollection> cscSegmentCollectionH_;
00081       edm::ESHandle<GlobalTrackingGeometry> geometry_;
00082 
00083       // trackerMuon == 0; globalMuon == 1
00084       MonitorElement* hNumChambers[2];
00085       MonitorElement* hNumMatches[2];
00086       MonitorElement* hCaloCompat[2];
00087       MonitorElement* hSegmentCompat[2];
00088       MonitorElement* hCaloSegmentCompat[2];
00089       MonitorElement* hGlobalMuonPromptTightBool[2];
00090       MonitorElement* hTMLastStationLooseBool[2];
00091       MonitorElement* hTMLastStationTightBool[2];
00092       MonitorElement* hTM2DCompatibilityLooseBool[2];
00093       MonitorElement* hTM2DCompatibilityTightBool[2];
00094       MonitorElement* hTMOneStationLooseBool[2];
00095       MonitorElement* hTMOneStationTightBool[2];
00096       MonitorElement* hTMLastStationOptimizedLowPtLooseBool[2];
00097       MonitorElement* hTMLastStationOptimizedLowPtTightBool[2];
00098 
00099       MonitorElement* hEnergyEMBarrel[2];
00100       MonitorElement* hEnergyHABarrel[2];
00101       MonitorElement* hEnergyHO[2];
00102       MonitorElement* hEnergyEMEndcap[2];
00103       MonitorElement* hEnergyHAEndcap[2];
00104 
00105       MonitorElement* hIso03sumPt[2];
00106       MonitorElement* hIso03emEt[2];
00107       MonitorElement* hIso03hadEt[2];
00108       MonitorElement* hIso03hoEt[2];
00109       MonitorElement* hIso03nTracks[2];
00110       MonitorElement* hIso03nJets[2];
00111       MonitorElement* hIso05sumPt[2];
00112       MonitorElement* hIso05emEt[2];
00113       MonitorElement* hIso05hadEt[2];
00114       MonitorElement* hIso05hoEt[2];
00115       MonitorElement* hIso05nTracks[2];
00116       MonitorElement* hIso05nJets[2];
00117 
00118       // by station, trackerMuons only
00119       MonitorElement* hDTNumSegments[4];
00120       MonitorElement* hDTDx[4];
00121       MonitorElement* hDTPullx[4];
00122       MonitorElement* hDTPullxPropErr[4];
00123       MonitorElement* hDTDdXdZ[4];
00124       MonitorElement* hDTPulldXdZ[4];
00125       MonitorElement* hDTPulldXdZPropErr[4];
00126       MonitorElement* hDTDy[3];
00127       MonitorElement* hDTPully[3];
00128       MonitorElement* hDTPullyPropErr[3];
00129       MonitorElement* hDTDdYdZ[3];
00130       MonitorElement* hDTPulldYdZ[3];
00131       MonitorElement* hDTPulldYdZPropErr[3];
00132       MonitorElement* hDTDistWithSegment[4];
00133       MonitorElement* hDTDistWithNoSegment[4];
00134       MonitorElement* hDTPullDistWithSegment[4];
00135       MonitorElement* hDTPullDistWithNoSegment[4];
00136       MonitorElement* hCSCNumSegments[4];
00137       MonitorElement* hCSCDx[4];
00138       MonitorElement* hCSCPullx[4];
00139       MonitorElement* hCSCPullxPropErr[4];
00140       MonitorElement* hCSCDdXdZ[4];
00141       MonitorElement* hCSCPulldXdZ[4];
00142       MonitorElement* hCSCPulldXdZPropErr[4];
00143       MonitorElement* hCSCDy[4];
00144       MonitorElement* hCSCPully[4];
00145       MonitorElement* hCSCPullyPropErr[4];
00146       MonitorElement* hCSCDdYdZ[4];
00147       MonitorElement* hCSCPulldYdZ[4];
00148       MonitorElement* hCSCPulldYdZPropErr[4];
00149       MonitorElement* hCSCDistWithSegment[4];
00150       MonitorElement* hCSCDistWithNoSegment[4];
00151       MonitorElement* hCSCPullDistWithSegment[4];
00152       MonitorElement* hCSCPullDistWithNoSegment[4];
00153 
00154       MonitorElement* hSegmentIsAssociatedBool;
00155       MonitorElement* hSegmentIsAssociatedRZ;
00156       MonitorElement* hSegmentIsAssociatedXY;
00157       MonitorElement* hSegmentIsNotAssociatedRZ;
00158       MonitorElement* hSegmentIsNotAssociatedXY;
00159       MonitorElement* hSegmentIsBestDrAssociatedRZ;
00160       MonitorElement* hSegmentIsBestDrAssociatedXY;
00161       MonitorElement* hSegmentIsBestDrNotAssociatedRZ;
00162       MonitorElement* hSegmentIsBestDrNotAssociatedXY;
00163 
00164       // by chamber, trackerMuons only
00165       // DT:  [station][wheel][sector]
00166       // CSC: [endcap][station][ring][chamber]
00167       MonitorElement* hDTChamberDx[4][5][14];
00168       MonitorElement* hDTChamberDy[3][5][14];
00169       MonitorElement* hDTChamberEdgeXWithSegment[4][5][14];
00170       MonitorElement* hDTChamberEdgeXWithNoSegment[4][5][14];
00171       MonitorElement* hDTChamberEdgeYWithSegment[4][5][14];
00172       MonitorElement* hDTChamberEdgeYWithNoSegment[4][5][14];
00173       MonitorElement* hCSCChamberDx[2][4][4][36];
00174       MonitorElement* hCSCChamberDy[2][4][4][36];
00175       MonitorElement* hCSCChamberEdgeXWithSegment[2][4][4][36];
00176       MonitorElement* hCSCChamberEdgeXWithNoSegment[2][4][4][36];
00177       MonitorElement* hCSCChamberEdgeYWithSegment[2][4][4][36];
00178       MonitorElement* hCSCChamberEdgeYWithNoSegment[2][4][4][36];
00179 };
00180 
00181 #endif

Generated on Tue Jun 9 17:49:25 2009 for CMSSW by  doxygen 1.5.4