CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
PhysicsObjectsMonitor Class Reference

#include <PhysicsObjectsMonitor.h>

Inheritance diagram for PhysicsObjectsMonitor:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 PhysicsObjectsMonitor (const edm::ParameterSet &pset)
 Constructor. More...
 
 ~PhysicsObjectsMonitor () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Attributes

MonitorElementcharge
 
MonitorElementCSCvsRPC
 
MonitorElementDTvsCSC
 
MonitorElementDTvsRPC
 
MonitorElementh1_Pres
 
MonitorElementhPres
 
MonitorElementNCSChits
 
MonitorElementNDThits
 
MonitorElementNmuon
 
MonitorElementNrechits
 
MonitorElementNRPChits
 
MonitorElementpt
 
MonitorElementptot
 
MonitorElementpx
 
MonitorElementpy
 
MonitorElementpz
 
std::string theDataType
 
std::string theSeedCollectionLabel
 
std::string theSTAMuonLabel
 
edm::EDGetTokenT< reco::TrackCollectiontheSTAMuonToken_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

For now: Analyzer of StandAlone muon tracks Later: Add other detectors and more Reco

Author
M. Mulders - CERN marti.nosp@m.jn.m.nosp@m.ulder.nosp@m.s@ce.nosp@m.rn.ch Based on STAMuonAnalyzer by R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Analyzer of the StandAlone muon tracks

Author
M. Mulders - CERN marti.nosp@m.jn.m.nosp@m.ulder.nosp@m.s@ce.nosp@m.rn.ch Based on STAMuonAnalyzer by R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Definition at line 30 of file PhysicsObjectsMonitor.h.

Constructor & Destructor Documentation

◆ PhysicsObjectsMonitor()

PhysicsObjectsMonitor::PhysicsObjectsMonitor ( const edm::ParameterSet pset)

Constructor.

Definition at line 31 of file PhysicsObjectsMonitor.cc.

31  {
32  theSTAMuonLabel = pset.getUntrackedParameter<string>("StandAloneTrackCollectionLabel");
33  theSeedCollectionLabel = pset.getUntrackedParameter<string>("MuonSeedCollectionLabel");
34  theDataType = pset.getUntrackedParameter<string>("DataType");
35 
36  if (theDataType != "RealData" && theDataType != "SimData")
37  edm::LogInfo("PhysicsObjectsMonitor") << "Error in Data Type!!" << endl;
38 
39  if (theDataType == "SimData") {
40  edm::LogInfo("PhysicsObjectsMonitor") << "Sorry! Running this package on simulation is no longer supported! ";
41  }
42 
43  // set Token(-s)
45  consumes<reco::TrackCollection>(pset.getUntrackedParameter<string>("StandAloneTrackCollectionLabel"));
46 }

References muonDTDigis_cfi::pset.

◆ ~PhysicsObjectsMonitor()

PhysicsObjectsMonitor::~PhysicsObjectsMonitor ( )
override

Destructor.

Definition at line 49 of file PhysicsObjectsMonitor.cc.

49 {}

Member Function Documentation

◆ analyze()

void PhysicsObjectsMonitor::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 75 of file PhysicsObjectsMonitor.cc.

75  {
76  edm::LogInfo("PhysicsObjectsMonitor") << "Run: " << event.id().run() << " Event: " << event.id().event();
78 
79  // Get the RecTrack collection from the event
81  event.getByToken(theSTAMuonToken_, staTracks);
82 
83  ESHandle<MagneticField> theMGField;
84  eventSetup.get<IdealMagneticFieldRecord>().get(theMGField);
85 
86  double recPt = 0.;
87  double simPt = 0.;
88 
89  reco::TrackCollection::const_iterator staTrack;
90 
91  edm::LogInfo("PhysicsObjectsMonitor") << "Reconstructed tracks: " << staTracks->size() << endl;
92  Nmuon->Fill(staTracks->size());
93  for (staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack) {
94  reco::TransientTrack track(*staTrack, &*theMGField);
95 
96  int nrechits = 0;
97  int nDThits = 0;
98  int nCSChits = 0;
99  int nRPChits = 0;
100 
101  for (trackingRecHit_iterator it = track.recHitsBegin(); it != track.recHitsEnd(); it++) {
102  if ((*it)->isValid()) {
103  edm::LogInfo("PhysicsObjectsMonitor") << "Analyzer: Aha this looks like a Rechit!" << std::endl;
104  if ((*it)->geographicalId().subdetId() == MuonSubdetId::DT) {
105  nDThits++;
106  } else if ((*it)->geographicalId().subdetId() == MuonSubdetId::CSC) {
107  nCSChits++;
108  } else if ((*it)->geographicalId().subdetId() == MuonSubdetId::RPC) {
109  nRPChits++;
110  } else {
111  edm::LogInfo("PhysicsObjectsMonitor") << "This is an UNKNOWN hit !! " << std::endl;
112  }
113  nrechits++;
114  }
115  }
116 
117  Nrechits->Fill(nrechits);
118  NDThits->Fill(nDThits);
119  NCSChits->Fill(nCSChits);
120  DTvsCSC->Fill(nDThits, nCSChits);
121  NRPChits->Fill(nRPChits);
122 
123  debug.dumpFTS(track.impactPointTSCP().theState());
124 
125  recPt = track.impactPointTSCP().momentum().perp();
126  edm::LogInfo("PhysicsObjectsMonitor")
127  << " p: " << track.impactPointTSCP().momentum().mag() << " pT: " << recPt << endl;
128  pt->Fill(recPt);
129  ptot->Fill(track.impactPointTSCP().momentum().mag());
130  charge->Fill(track.impactPointTSCP().charge());
131  px->Fill(track.impactPointTSCP().momentum().x());
132  py->Fill(track.impactPointTSCP().momentum().y());
133  pz->Fill(track.impactPointTSCP().momentum().z());
134  }
135  edm::LogInfo("PhysicsObjectsMonitor") << "---" << endl;
136  if (recPt && theDataType == "SimData") {
137  hPres->Fill((recPt - simPt) / simPt);
138  h1_Pres->Fill((1 / recPt - 1 / simPt) / (1 / simPt));
139  }
140 }

References ALCARECOTkAlJpsiMuMu_cff::charge, MuonSubdetId::CSC, debug, MuonSubdetId::DT, edm::EventSetup::get(), get, DiDispStaMuonMonitor_cfi::pt, multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, recPt, MuonSubdetId::RPC, muonTagProbeFilters_cff::staTracks, and HLT_2018_cff::track.

◆ bookHistograms()

void PhysicsObjectsMonitor::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 51 of file PhysicsObjectsMonitor.cc.

51  {
52  iBooker.setCurrentFolder("PhysicsObjects/MuonReconstruction");
53 
54  hPres = iBooker.book1D("pTRes", "pT Resolution", 100, -2, 2);
55  h1_Pres = iBooker.book1D("invPTRes", "1/pT Resolution", 100, -2, 2);
56 
57  charge = iBooker.book1D("charge", "track charge", 5, -2.5, 2.5);
58  ptot = iBooker.book1D("ptot", "track momentum", 50, 0, 50);
59  pt = iBooker.book1D("pt", "track pT", 100, 0, 50);
60  px = iBooker.book1D("px ", "track px", 100, -50, 50);
61  py = iBooker.book1D("py", "track py", 100, -50, 50);
62  pz = iBooker.book1D("pz", "track pz", 100, -50, 50);
63  Nmuon = iBooker.book1D("Nmuon", "Number of muon tracks", 11, -.5, 10.5);
64  Nrechits = iBooker.book1D("Nrechits", "Number of RecHits/Segments on track", 21, -.5, 21.5);
65  NDThits = iBooker.book1D("NDThits", "Number of DT Hits/Segments on track", 31, -.5, 31.5);
66  NCSChits = iBooker.book1D("NCSChits", "Number of CSC Hits/Segments on track", 31, -.5, 31.5);
67  NRPChits = iBooker.book1D("NRPChits", "Number of RPC hits on track", 11, -.5, 11.5);
68 
69  DTvsCSC = iBooker.book2D("DTvsCSC", "Number of DT vs CSC hits on track", 29, -.5, 28.5, 29, -.5, 28.5);
70  TH2F *root_ob = DTvsCSC->getTH2F();
71  root_ob->SetXTitle("Number of DT hits");
72  root_ob->SetYTitle("Number of CSC hits");
73 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), ALCARECOTkAlJpsiMuMu_cff::charge, dqm::legacy::MonitorElement::getTH2F(), DiDispStaMuonMonitor_cfi::pt, multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, and dqm::implementation::NavigatorBase::setCurrentFolder().

Member Data Documentation

◆ charge

MonitorElement* PhysicsObjectsMonitor::charge
private

Definition at line 49 of file PhysicsObjectsMonitor.h.

◆ CSCvsRPC

MonitorElement* PhysicsObjectsMonitor::CSCvsRPC
private

Definition at line 61 of file PhysicsObjectsMonitor.h.

◆ DTvsCSC

MonitorElement* PhysicsObjectsMonitor::DTvsCSC
private

Definition at line 59 of file PhysicsObjectsMonitor.h.

◆ DTvsRPC

MonitorElement* PhysicsObjectsMonitor::DTvsRPC
private

Definition at line 60 of file PhysicsObjectsMonitor.h.

◆ h1_Pres

MonitorElement* PhysicsObjectsMonitor::h1_Pres
private

Definition at line 46 of file PhysicsObjectsMonitor.h.

◆ hPres

MonitorElement* PhysicsObjectsMonitor::hPres
private

Definition at line 45 of file PhysicsObjectsMonitor.h.

◆ NCSChits

MonitorElement* PhysicsObjectsMonitor::NCSChits
private

Definition at line 58 of file PhysicsObjectsMonitor.h.

◆ NDThits

MonitorElement* PhysicsObjectsMonitor::NDThits
private

Definition at line 57 of file PhysicsObjectsMonitor.h.

◆ Nmuon

MonitorElement* PhysicsObjectsMonitor::Nmuon
private

Definition at line 55 of file PhysicsObjectsMonitor.h.

◆ Nrechits

MonitorElement* PhysicsObjectsMonitor::Nrechits
private

Definition at line 56 of file PhysicsObjectsMonitor.h.

◆ NRPChits

MonitorElement* PhysicsObjectsMonitor::NRPChits
private

Definition at line 62 of file PhysicsObjectsMonitor.h.

◆ pt

MonitorElement* PhysicsObjectsMonitor::pt
private

◆ ptot

MonitorElement* PhysicsObjectsMonitor::ptot
private

Definition at line 50 of file PhysicsObjectsMonitor.h.

◆ px

MonitorElement* PhysicsObjectsMonitor::px
private

Definition at line 52 of file PhysicsObjectsMonitor.h.

◆ py

MonitorElement* PhysicsObjectsMonitor::py
private

Definition at line 53 of file PhysicsObjectsMonitor.h.

◆ pz

MonitorElement* PhysicsObjectsMonitor::pz
private

Definition at line 54 of file PhysicsObjectsMonitor.h.

◆ theDataType

std::string PhysicsObjectsMonitor::theDataType
private

Definition at line 64 of file PhysicsObjectsMonitor.h.

◆ theSeedCollectionLabel

std::string PhysicsObjectsMonitor::theSeedCollectionLabel
private

Definition at line 42 of file PhysicsObjectsMonitor.h.

◆ theSTAMuonLabel

std::string PhysicsObjectsMonitor::theSTAMuonLabel
private

Definition at line 41 of file PhysicsObjectsMonitor.h.

◆ theSTAMuonToken_

edm::EDGetTokenT<reco::TrackCollection> PhysicsObjectsMonitor::theSTAMuonToken_
private

Definition at line 67 of file PhysicsObjectsMonitor.h.

PhysicsObjectsMonitor::NCSChits
MonitorElement * NCSChits
Definition: PhysicsObjectsMonitor.h:58
MuonSubdetId::CSC
static constexpr int CSC
Definition: MuonSubdetId.h:12
PhysicsObjectsMonitor::hPres
MonitorElement * hPres
Definition: PhysicsObjectsMonitor.h:45
PhysicsObjectsMonitor::pz
MonitorElement * pz
Definition: PhysicsObjectsMonitor.h:54
PhysicsObjectsMonitor::NDThits
MonitorElement * NDThits
Definition: PhysicsObjectsMonitor.h:57
PhysicsObjectsMonitor::h1_Pres
MonitorElement * h1_Pres
Definition: PhysicsObjectsMonitor.h:46
edm::LogInfo
Definition: MessageLogger.h:254
edm::Handle< reco::TrackCollection >
PhysicsObjectsMonitor::px
MonitorElement * px
Definition: PhysicsObjectsMonitor.h:52
PhysicsObjectsMonitor::theDataType
std::string theDataType
Definition: PhysicsObjectsMonitor.h:64
PhysicsObjectsMonitor::Nrechits
MonitorElement * Nrechits
Definition: PhysicsObjectsMonitor.h:56
recPt
double recPt
Definition: PFJetBenchmarkAnalyzer.cc:75
PhysicsObjectsMonitor::NRPChits
MonitorElement * NRPChits
Definition: PhysicsObjectsMonitor.h:62
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
PhysicsObjectsMonitor::theSTAMuonLabel
std::string theSTAMuonLabel
Definition: PhysicsObjectsMonitor.h:41
dqm::impl::MonitorElement::getTH2F
virtual TH2F * getTH2F()
Definition: MonitorElement.cc:992
debug
#define debug
Definition: HDRShower.cc:19
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
MuonPatternRecoDumper
Definition: MuonPatternRecoDumper.h:18
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
edm::ESHandle< MagneticField >
MuonSubdetId::DT
static constexpr int DT
Definition: MuonSubdetId.h:11
edm::OwnVector::const_iterator
Definition: OwnVector.h:41
PhysicsObjectsMonitor::theSeedCollectionLabel
std::string theSeedCollectionLabel
Definition: PhysicsObjectsMonitor.h:42
PhysicsObjectsMonitor::charge
MonitorElement * charge
Definition: PhysicsObjectsMonitor.h:49
PhysicsObjectsMonitor::ptot
MonitorElement * ptot
Definition: PhysicsObjectsMonitor.h:50
PhysicsObjectsMonitor::pt
MonitorElement * pt
Definition: PhysicsObjectsMonitor.h:51
PhysicsObjectsMonitor::Nmuon
MonitorElement * Nmuon
Definition: PhysicsObjectsMonitor.h:55
muonTagProbeFilters_cff.staTracks
staTracks
Definition: muonTagProbeFilters_cff.py:29
get
#define get
PhysicsObjectsMonitor::theSTAMuonToken_
edm::EDGetTokenT< reco::TrackCollection > theSTAMuonToken_
Definition: PhysicsObjectsMonitor.h:67
PhysicsObjectsMonitor::DTvsCSC
MonitorElement * DTvsCSC
Definition: PhysicsObjectsMonitor.h:59
reco::TransientTrack
Definition: TransientTrack.h:19
PhysicsObjectsMonitor::py
MonitorElement * py
Definition: PhysicsObjectsMonitor.h:53
MuonSubdetId::RPC
static constexpr int RPC
Definition: MuonSubdetId.h:13
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27