CMS 3D CMS Logo

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

#include <GlobalMuonMatchAnalyzer.h>

Inheritance diagram for GlobalMuonMatchAnalyzer:
DQMEDAnalyzer edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 GlobalMuonMatchAnalyzer (const edm::ParameterSet &)
 
 ~GlobalMuonMatchAnalyzer () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void computeEfficiencyEta (MonitorElement *, MonitorElement *recoTH2, MonitorElement *simTH2)
 
void computeEfficiencyPt (MonitorElement *, MonitorElement *recoTH2, MonitorElement *simTH2)
 
void endRun (const edm::Run &, const edm::EventSetup &) override
 

Private Attributes

DQMStoredbe_
 
edm::InputTag glbName_
 
edm::EDGetTokenT< edm::View< reco::Track > > glbToken_
 
MonitorElementh_effic
 
MonitorElementh_efficPt
 
MonitorElementh_fake
 
MonitorElementh_fakeMatch
 
MonitorElementh_fakePt
 
MonitorElementh_goodMatch
 
MonitorElementh_goodMatchSim
 
MonitorElementh_shouldMatch
 
MonitorElementh_staOnlySim
 
MonitorElementh_tkOnlySim
 
MonitorElementh_totReco
 
edm::ParameterSet iConfig
 
const TrackAssociatorBase * muAssociator_
 
edm::InputTag muAssociatorName_
 
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociatormuAssociatorToken_
 
std::string out
 
edm::InputTag staName_
 
edm::EDGetTokenT< edm::View< reco::Track > > staToken_
 
std::string subsystemname_
 
const TrackAssociatorBase * tkAssociator_
 
edm::InputTag tkAssociatorName_
 
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociatortkAssociatorToken_
 
edm::InputTag tkName_
 
edm::EDGetTokenT< edm::View< reco::Track > > tkToken_
 
edm::InputTag tpName_
 
edm::EDGetTokenT< edm::View< reco::Track > > tpToken_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Author
Adam Everett Purdue University

Definition at line 46 of file GlobalMuonMatchAnalyzer.h.

Constructor & Destructor Documentation

GlobalMuonMatchAnalyzer::GlobalMuonMatchAnalyzer ( const edm::ParameterSet ps)
explicit

Class: GlobalMuonMatchAnalyzer

Authors :

Author
Adam Everett - Purdue University

Definition at line 37 of file GlobalMuonMatchAnalyzer.cc.

References dbe_, edm::ParameterSet::getUntrackedParameter(), glbName_, glbToken_, iConfig, muAssociatorName_, muAssociatorToken_, Utilities::operator, out, staName_, staToken_, AlCaHLTBitMon_QueryRunRegistry::string, subsystemname_, tkAssociatorName_, tkAssociatorToken_, tkName_, tkToken_, tpName_, and tpToken_.

39 {
40  iConfig = ps;
41  //now do what ever initialization is needed
44 
45  tkAssociatorToken_ = consumes<reco::TrackToTrackingParticleAssociator>(tkAssociatorName_);
46  muAssociatorToken_ = consumes<reco::TrackToTrackingParticleAssociator>(muAssociatorName_);
47 
48 subsystemname_ = iConfig.getUntrackedParameter<std::string>("subSystemFolder", "YourSubsystem") ;
53 
56 
57  tpToken_ = consumes<edm::View<reco::Track> >(tpName_);
58  tkToken_ = consumes<edm::View<reco::Track> >(tkName_);
59  staToken_ = consumes<edm::View<reco::Track> >(staName_);
60  glbToken_ = consumes<edm::View<reco::Track> >(glbName_);
61 }
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > muAssociatorToken_
edm::EDGetTokenT< edm::View< reco::Track > > glbToken_
edm::EDGetTokenT< edm::View< reco::Track > > staToken_
edm::EDGetTokenT< edm::View< reco::Track > > tpToken_
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > tkAssociatorToken_
edm::EDGetTokenT< edm::View< reco::Track > > tkToken_
GlobalMuonMatchAnalyzer::~GlobalMuonMatchAnalyzer ( )
override

Definition at line 64 of file GlobalMuonMatchAnalyzer.cc.

65 {
66 
67  // do anything here that needs to be done at desctruction time
68  // (e.g. close files, deallocate resources etc.)
69 
70 }

Member Function Documentation

void GlobalMuonMatchAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 79 of file GlobalMuonMatchAnalyzer.cc.

References reco::TrackToTrackingParticleAssociator::associateRecoToSim(), reco::TrackToTrackingParticleAssociator::associateSimToReco(), edm::AssociationMap< Tag >::end(), reco::TrackBase::eta(), MonitorElement::Fill(), edm::AssociationMap< Tag >::find(), edm::Event::getByToken(), glbToken_, h_fakeMatch, h_goodMatch, h_goodMatchSim, h_shouldMatch, h_staOnlySim, h_tkOnlySim, h_totReco, mps_fire::i, muAssociatorToken_, edm::Handle< T >::product(), reco::TrackBase::pt(), staToken_, tkAssociatorToken_, tkToken_, and tpToken_.

80 {
81  using namespace edm;
82  using namespace reco;
83 
85  iEvent.getByToken(tpToken_,tpHandle);
86  const TrackingParticleCollection tpColl = *(tpHandle.product());
87 
89  iEvent.getByToken(glbToken_,muHandle);
90  const reco::MuonTrackLinksCollection muColl = *(muHandle.product());
91 
92  Handle<View<Track> > staHandle;
93  iEvent.getByToken(staToken_,staHandle);
94 
95  Handle<View<Track> > glbHandle;
96  iEvent.getByToken(glbToken_,glbHandle);
97 
98  Handle<View<Track> > tkHandle;
99  iEvent.getByToken(tkToken_,tkHandle);
100 
102  iEvent.getByToken(tkAssociatorToken_,tkAssociator);
103 
104  // Mu Associator
106  iEvent.getByToken(muAssociatorToken_,muAssociator);
107 
108 
109  reco::RecoToSimCollection tkrecoToSimCollection = tkAssociator->associateRecoToSim(tkHandle,tpHandle);
110  reco::SimToRecoCollection tksimToRecoCollection = tkAssociator->associateSimToReco(tkHandle,tpHandle);
111 
112  reco::RecoToSimCollection starecoToSimCollection = muAssociator->associateRecoToSim(staHandle,tpHandle);
113  reco::SimToRecoCollection stasimToRecoCollection = muAssociator->associateSimToReco(staHandle,tpHandle);
114 
115  reco::RecoToSimCollection glbrecoToSimCollection = muAssociator->associateRecoToSim(glbHandle,tpHandle);
116  reco::SimToRecoCollection glbsimToRecoCollection = muAssociator->associateSimToReco(glbHandle,tpHandle);
117 
118 
119  for (TrackingParticleCollection::size_type i=0; i<tpColl.size(); ++i){
120  TrackingParticleRef tp(tpHandle,i);
121 
122  std::vector<std::pair<RefToBase<Track>, double> > rvGlb;
123  RefToBase<Track> rGlb;
124  if(glbsimToRecoCollection.find(tp) != glbsimToRecoCollection.end()){
125  rvGlb = glbsimToRecoCollection[tp];
126  if(!rvGlb.empty()) {
127  rGlb = rvGlb.begin()->first;
128  }
129  }
130 
131  std::vector<std::pair<RefToBase<Track>, double> > rvSta;
132  RefToBase<Track> rSta;
133  if(stasimToRecoCollection.find(tp) != stasimToRecoCollection.end()){
134  rvSta = stasimToRecoCollection[tp];
135  if(!rvSta.empty()) {
136  rSta = rvSta.begin()->first;
137  }
138  }
139 
140  std::vector<std::pair<RefToBase<Track>, double> > rvTk;
141  RefToBase<Track> rTk;
142  if(tksimToRecoCollection.find(tp) != tksimToRecoCollection.end()){
143  rvTk = tksimToRecoCollection[tp];
144  if(!rvTk.empty()) {
145  rTk = rvTk.begin()->first;
146  }
147  }
148 
149  if( !rvSta.empty() && !rvTk.empty() ){
150  //should have matched
151  h_shouldMatch->Fill(rTk->eta(),rTk->pt());
152  }
153 
154  for ( reco::MuonTrackLinksCollection::const_iterator links = muHandle->begin(); links != muHandle->end(); ++links ) {
155  if( rGlb == RefToBase<Track>(links->globalTrack() ) ) {
156  if( RefToBase<Track>(links->trackerTrack() ) == rTk &&
157  RefToBase<Track>(links->standAloneTrack() ) == rSta ) {
158  //goodMatch
159  h_goodMatchSim->Fill(rGlb->eta(),rGlb->pt());
160  }
161  if ( RefToBase<Track>(links->trackerTrack() ) == rTk &&
162  RefToBase<Track>(links->standAloneTrack() ) != rSta ) {
163  //tkOnlyMatch
164  h_tkOnlySim->Fill(rGlb->eta(),rGlb->pt());
165  }
166  if ( RefToBase<Track>(links->standAloneTrack() ) == rSta &&
167  RefToBase<Track>(links->trackerTrack() ) != rTk ) {
168  //staOnlyMatch
169  h_staOnlySim->Fill(rGlb->eta(),rGlb->pt());
170  }
171  }
172  }
173 
174  }
175 
177 
178  for ( reco::MuonTrackLinksCollection::const_iterator links = muHandle->begin(); links != muHandle->end(); ++links ) {
179  RefToBase<Track> glbRef = RefToBase<Track>(links->globalTrack() );
180  RefToBase<Track> staRef = RefToBase<Track>(links->standAloneTrack() );
181  RefToBase<Track> tkRef = RefToBase<Track>(links->trackerTrack() );
182 
183  std::vector<std::pair<TrackingParticleRef, double> > tp1;
184  TrackingParticleRef tp1r;
185  if(glbrecoToSimCollection.find(glbRef) != glbrecoToSimCollection.end()){
186  tp1 = glbrecoToSimCollection[glbRef];
187  if(!tp1.empty()) {
188  tp1r = tp1.begin()->first;
189  }
190  }
191 
192  std::vector<std::pair<TrackingParticleRef, double> > tp2;
193  TrackingParticleRef tp2r;
194  if(starecoToSimCollection.find(staRef) != starecoToSimCollection.end()){
195  tp2 = starecoToSimCollection[staRef];
196  if(!tp2.empty()) {
197  tp2r = tp2.begin()->first;
198  }
199  }
200 
201  std::vector<std::pair<TrackingParticleRef, double> > tp3;
202  TrackingParticleRef tp3r;
203  if(tkrecoToSimCollection.find(tkRef) != tkrecoToSimCollection.end()){
204  tp3 = tkrecoToSimCollection[tkRef];
205  if(!tp3.empty()) {
206  tp3r = tp3.begin()->first;
207  }
208  }
209 
210 
211  if(!tp1.empty()) {
212  //was reconstructed
213  h_totReco->Fill(glbRef->eta(),glbRef->pt());
214  if(tp2r == tp3r) { // && tp1r == tp3r) {
215  //came from same TP
216  h_goodMatch->Fill(glbRef->eta(),glbRef->pt());
217  } else {
218  //mis-match
219  h_fakeMatch->Fill(glbRef->eta(),glbRef->pt());
220  }
221  }
222 
223  }
224 
225 
226 }
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > muAssociatorToken_
std::vector< TrackingParticle > TrackingParticleCollection
const_iterator end() const
last iterator over the map (read only)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
const_iterator find(const key_type &k) const
find element with specified reference key
uint16_t size_type
std::vector< MuonTrackLinks > MuonTrackLinksCollection
collection of MuonTrackLinks
Definition: MuonFwd.h:22
void Fill(long long x)
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:651
edm::EDGetTokenT< edm::View< reco::Track > > glbToken_
double pt() const
track transverse momentum
Definition: TrackBase.h:621
edm::EDGetTokenT< edm::View< reco::Track > > staToken_
T const * product() const
Definition: Handle.h:81
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track > > &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
compare reco to sim the handle of reco::Track and TrackingParticle collections
fixed size matrix
HLT enums.
edm::EDGetTokenT< edm::View< reco::Track > > tpToken_
reco::SimToRecoCollection associateSimToReco(const edm::Handle< edm::View< reco::Track > > &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
compare reco to sim the handle of reco::Track and TrackingParticle collections
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > tkAssociatorToken_
edm::EDGetTokenT< edm::View< reco::Track > > tkToken_
void GlobalMuonMatchAnalyzer::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 242 of file GlobalMuonMatchAnalyzer.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::cd(), TrackerOfflineValidation_Dqm_cff::dirName, h_effic, h_efficPt, h_fake, h_fakeMatch, h_fakePt, h_goodMatch, h_goodMatchSim, h_shouldMatch, h_staOnlySim, h_tkOnlySim, h_totReco, DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

245 {
246  // Tk Associator
247 
248  ibooker.cd();
249  std::string dirName="Matcher/";
250  // ibooker.setCurrentFolder("RecoMuonV/Matcher");
251  ibooker.setCurrentFolder(dirName) ;
252 
253  h_shouldMatch = ibooker.book2D("h_shouldMatch","SIM associated to Tk and Sta",50,-2.5,2.5,100,0.,500.);
254  h_goodMatchSim = ibooker.book2D("h_goodMatchSim","SIM associated to Glb Sta Tk",50,-2.5,2.5,100,0.,500.);
255  h_tkOnlySim = ibooker.book2D("h_tkOnlySim","SIM associated to Glb Tk",50,-2.5,2.5,100,0.,500.);
256  h_staOnlySim = ibooker.book2D("h_staOnlySim","SIM associated to Glb Sta",50,-2.5,2.5,100,0.,500.);
257 
258  h_totReco = ibooker.book2D("h_totReco","Total Glb Reconstructed",50,-2.5,2.5,100,0.,500.);
259  h_goodMatch = ibooker.book2D("h_goodMatch","Sta and Tk from same SIM",50,-2.5,2.5,100, 0., 500.);
260  h_fakeMatch = ibooker.book2D("h_fakeMatch","Sta and Tk not from same SIM",50,-2.5,2.5,100,0.,500.);
261 
262  h_effic = ibooker.book1D("h_effic","Efficiency vs #eta",50,-2.5,2.5);
263  h_efficPt = ibooker.book1D("h_efficPt","Efficiency vs p_{T}",100,0.,100.);
264 
265  h_fake = ibooker.book1D("h_fake","Fake fraction vs #eta",50,-2.5,2.5);
266  h_fakePt = ibooker.book1D("h_fakePt","Fake fraction vs p_{T}",100,0.,100.);
267 
268 }
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
void GlobalMuonMatchAnalyzer::computeEfficiencyEta ( MonitorElement effHist,
MonitorElement recoTH2,
MonitorElement simTH2 
)
private

Definition at line 272 of file GlobalMuonMatchAnalyzer.cc.

References stringResolutionProvider_cfi::bin, relativeConstraints::error, MonitorElement::getTH2F(), MonitorElement::setBinContent(), MonitorElement::setBinError(), and mathSSE::sqrt().

Referenced by endRun().

272  {
273  TH2F * h1 = recoTH2->getTH2F();
274  TH1D* reco = h1->ProjectionX();
275 
276  TH2F * h2 =simTH2->getTH2F();
277  TH1D* sim = h2 ->ProjectionX();
278 
279 
280  TH1F *hEff = (TH1F*) reco->Clone();
281 
282  hEff->Divide(sim);
283 
284  hEff->SetName("tmp_"+TString(reco->GetName()));
285 
286  // Set the error accordingly to binomial statistics
287  int nBinsEta = hEff->GetNbinsX();
288  for(int bin = 1; bin <= nBinsEta; bin++) {
289  float nSimHit = sim->GetBinContent(bin);
290  float eff = hEff->GetBinContent(bin);
291  float error = 0;
292  if(nSimHit != 0 && eff <= 1) {
293  error = sqrt(eff*(1-eff)/nSimHit);
294  }
295  hEff->SetBinError(bin, error);
296  effHist->setBinContent(bin,eff);
297  effHist->setBinError(bin,error);
298  }
299 
300 }
void setBinContent(int binx, double content)
set content of bin (1-D)
T sqrt(T t)
Definition: SSEVec.h:18
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
TH2F * getTH2F() const
Definition: RunManager.h:28
bin
set the eta bin as selection string.
fixed size matrix
void GlobalMuonMatchAnalyzer::computeEfficiencyPt ( MonitorElement effHist,
MonitorElement recoTH2,
MonitorElement simTH2 
)
private

Definition at line 302 of file GlobalMuonMatchAnalyzer.cc.

References stringResolutionProvider_cfi::bin, relativeConstraints::error, MonitorElement::getTH2F(), MonitorElement::setBinContent(), MonitorElement::setBinError(), and mathSSE::sqrt().

Referenced by endRun().

302  {
303  TH2F * h1 = recoTH2->getTH2F();
304  TH1D* reco = h1->ProjectionY();
305 
306  TH2F * h2 = simTH2->getTH2F();
307  TH1D* sim = h2 ->ProjectionY();
308 
309 
310  TH1F *hEff = (TH1F*) reco->Clone();
311 
312  hEff->Divide(sim);
313 
314  hEff->SetName("tmp_"+TString(reco->GetName()));
315 
316  // Set the error accordingly to binomial statistics
317  int nBinsPt = hEff->GetNbinsX();
318  for(int bin = 1; bin <= nBinsPt; bin++) {
319  float nSimHit = sim->GetBinContent(bin);
320  float eff = hEff->GetBinContent(bin);
321  float error = 0;
322  if(nSimHit != 0 && eff <= 1) {
323  error = sqrt(eff*(1-eff)/nSimHit);
324  }
325  hEff->SetBinError(bin, error);
326  effHist->setBinContent(bin,eff);
327  effHist->setBinError(bin,error);
328  }
329 
330 }
void setBinContent(int binx, double content)
set content of bin (1-D)
T sqrt(T t)
Definition: SSEVec.h:18
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
TH2F * getTH2F() const
Definition: RunManager.h:28
bin
set the eta bin as selection string.
fixed size matrix
void GlobalMuonMatchAnalyzer::endRun ( const edm::Run ,
const edm::EventSetup  
)
overrideprivate

Definition at line 230 of file GlobalMuonMatchAnalyzer.cc.

References computeEfficiencyEta(), computeEfficiencyPt(), dbe_, h_effic, h_efficPt, h_fake, h_fakeMatch, h_fakePt, h_goodMatchSim, h_shouldMatch, h_totReco, and out.

230  {
233 
236 
237  if( !out.empty() && dbe_ ) dbe_->save(out);
238 }
void computeEfficiencyPt(MonitorElement *, MonitorElement *recoTH2, MonitorElement *simTH2)
void computeEfficiencyEta(MonitorElement *, MonitorElement *recoTH2, MonitorElement *simTH2)

Member Data Documentation

DQMStore* GlobalMuonMatchAnalyzer::dbe_
private

Definition at line 62 of file GlobalMuonMatchAnalyzer.h.

Referenced by endRun(), and GlobalMuonMatchAnalyzer().

edm::InputTag GlobalMuonMatchAnalyzer::glbName_
private

Definition at line 72 of file GlobalMuonMatchAnalyzer.h.

Referenced by GlobalMuonMatchAnalyzer().

edm::EDGetTokenT<edm::View<reco::Track> > GlobalMuonMatchAnalyzer::glbToken_
private

Definition at line 73 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and GlobalMuonMatchAnalyzer().

MonitorElement* GlobalMuonMatchAnalyzer::h_effic
private

Definition at line 67 of file GlobalMuonMatchAnalyzer.h.

Referenced by bookHistograms(), and endRun().

MonitorElement * GlobalMuonMatchAnalyzer::h_efficPt
private

Definition at line 67 of file GlobalMuonMatchAnalyzer.h.

Referenced by bookHistograms(), and endRun().

MonitorElement* GlobalMuonMatchAnalyzer::h_fake
private

Definition at line 68 of file GlobalMuonMatchAnalyzer.h.

Referenced by bookHistograms(), and endRun().

MonitorElement * GlobalMuonMatchAnalyzer::h_fakeMatch
private

Definition at line 66 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), bookHistograms(), and endRun().

MonitorElement * GlobalMuonMatchAnalyzer::h_fakePt
private

Definition at line 68 of file GlobalMuonMatchAnalyzer.h.

Referenced by bookHistograms(), and endRun().

MonitorElement * GlobalMuonMatchAnalyzer::h_goodMatch
private

Definition at line 66 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and bookHistograms().

MonitorElement * GlobalMuonMatchAnalyzer::h_goodMatchSim
private

Definition at line 65 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), bookHistograms(), and endRun().

MonitorElement* GlobalMuonMatchAnalyzer::h_shouldMatch
private

Definition at line 65 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), bookHistograms(), and endRun().

MonitorElement * GlobalMuonMatchAnalyzer::h_staOnlySim
private

Definition at line 65 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and bookHistograms().

MonitorElement * GlobalMuonMatchAnalyzer::h_tkOnlySim
private

Definition at line 65 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* GlobalMuonMatchAnalyzer::h_totReco
private

Definition at line 66 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), bookHistograms(), and endRun().

edm::ParameterSet GlobalMuonMatchAnalyzer::iConfig
private

Definition at line 63 of file GlobalMuonMatchAnalyzer.h.

Referenced by GlobalMuonMatchAnalyzer().

const TrackAssociatorBase * GlobalMuonMatchAnalyzer::muAssociator_
private

Definition at line 70 of file GlobalMuonMatchAnalyzer.h.

edm::InputTag GlobalMuonMatchAnalyzer::muAssociatorName_
private

Definition at line 71 of file GlobalMuonMatchAnalyzer.h.

Referenced by GlobalMuonMatchAnalyzer().

edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator> GlobalMuonMatchAnalyzer::muAssociatorToken_
private

Definition at line 74 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and GlobalMuonMatchAnalyzer().

std::string GlobalMuonMatchAnalyzer::out
private

Definition at line 61 of file GlobalMuonMatchAnalyzer.h.

Referenced by endRun(), and GlobalMuonMatchAnalyzer().

edm::InputTag GlobalMuonMatchAnalyzer::staName_
private

Definition at line 72 of file GlobalMuonMatchAnalyzer.h.

Referenced by GlobalMuonMatchAnalyzer().

edm::EDGetTokenT<edm::View<reco::Track> > GlobalMuonMatchAnalyzer::staToken_
private

Definition at line 73 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and GlobalMuonMatchAnalyzer().

std::string GlobalMuonMatchAnalyzer::subsystemname_
private

Definition at line 64 of file GlobalMuonMatchAnalyzer.h.

Referenced by GlobalMuonMatchAnalyzer().

const TrackAssociatorBase* GlobalMuonMatchAnalyzer::tkAssociator_
private

Definition at line 70 of file GlobalMuonMatchAnalyzer.h.

edm::InputTag GlobalMuonMatchAnalyzer::tkAssociatorName_
private

Definition at line 71 of file GlobalMuonMatchAnalyzer.h.

Referenced by GlobalMuonMatchAnalyzer().

edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator> GlobalMuonMatchAnalyzer::tkAssociatorToken_
private

Definition at line 74 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and GlobalMuonMatchAnalyzer().

edm::InputTag GlobalMuonMatchAnalyzer::tkName_
private

Definition at line 72 of file GlobalMuonMatchAnalyzer.h.

Referenced by GlobalMuonMatchAnalyzer().

edm::EDGetTokenT<edm::View<reco::Track> > GlobalMuonMatchAnalyzer::tkToken_
private

Definition at line 73 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and GlobalMuonMatchAnalyzer().

edm::InputTag GlobalMuonMatchAnalyzer::tpName_
private

Definition at line 72 of file GlobalMuonMatchAnalyzer.h.

Referenced by GlobalMuonMatchAnalyzer().

edm::EDGetTokenT<edm::View<reco::Track> > GlobalMuonMatchAnalyzer::tpToken_
private

Definition at line 73 of file GlobalMuonMatchAnalyzer.h.

Referenced by analyze(), and GlobalMuonMatchAnalyzer().