CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
ZMuMuPerformances Class Reference
Inheritance diagram for ZMuMuPerformances:
edm::EDAnalyzer

Public Member Functions

 ZMuMuPerformances (const edm::ParameterSet &pset)
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Member Functions

virtual void analyze (const edm::Event &event, const edm::EventSetup &setup)
 
bool check_ifZmumu (const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
 
virtual void endJob ()
 
float getParticleEta (const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
 
Particle::LorentzVector getParticleP4 (const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
 
float getParticlePhi (const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
 
float getParticlePt (const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
 

Private Attributes

double etamax_
 
double etamaxMinus_
 
double etamaxPlus_
 
double etaminMinus_
 
double etaminPlus_
 
edm::InputTag genParticles_
 
reco::CandidateBaseRef globalMuonCandRef_
 
TH2D * h_DEtaGlobalGenvsEtaGen
 
TH2D * h_DEtaGlobalGenvsEtaGen_ZMuMuTagged
 
TH2D * h_DEtaGlobalStaComponentGenvsEtaGen
 
TH2D * h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged
 
TH2D * h_DPtGlobalGenvsEtaGen
 
TH2D * h_DPtGlobalGenvsEtaGen_ZMuMuTagged
 
TH2D * h_DPtGlobalGenvsPtGen
 
TH2D * h_DPtGlobalGenvsPtGen_ZMuMuTagged
 
TH2D * h_DPtGlobalStaComponentGenvsEtaGen
 
TH2D * h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged
 
TH2D * h_DPtGlobalStaComponentGenvsPtGen
 
TH2D * h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged
 
TH2D * h_DPtTrackGenvsEtaGen_ZMuMuTagged
 
TH2D * h_DPtTrackGenvsPtGen_ZMuMuTagged
 
TH1D * h_DRSta_wrongTrkCharge_ZMuMuTagged
 
TH1D * h_DRSta_ZMuMuTagged
 
TH1D * h_DRTrack_wrongStaCharge_ZMuMuTagged
 
TH1D * h_DRTrack_wrongStaCharge_ZMuTrackTagged
 
TH1D * h_DRTrack_ZMuMuTagged
 
TH1D * h_DRTrack_ZMuTrackTagged
 
TH1D * h_etaSta_wrongTrkCharge_ZMuMuTagged
 
TH1D * h_etaSta_wrongTrkCharge_ZMuStaTagged
 
TH1D * h_etaSta_ZMuMuTagged
 
TH1D * h_etaSta_ZMuStaTagged
 
TH1D * h_etaTrack_wrongStaCharge_ZMuMuTagged
 
TH1D * h_etaTrack_wrongStaCharge_ZMuTrackTagged
 
TH1D * h_etaTrack_ZMuMuTagged
 
TH1D * h_etaTrack_ZMuTrackTagged
 
TH1D * h_GlobalMuonChargeTimeGenCharge
 
TH1D * h_GlobalMuonEtaMinusGenEta
 
TH1D * h_GlobalMuonEtaMinusGenEta_ZMuMuTagged
 
TH1D * h_GlobalMuonPtMinusGenPt
 
TH1D * h_GlobalMuonPtMinusGenPt_ZMuMuTagged
 
TH1D * h_GlobalMuonStaComponentEtaMinusGenEta
 
TH1D * h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged
 
TH1D * h_GlobalMuonStaComponentPtMinusGenPt
 
TH1D * h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged
 
TH1D * h_n_globalMuon_perEvent
 
TH1D * h_n_globalMuon_perEvent_MCmatch
 
TH1D * h_n_staOnlyMuon_perEvent
 
TH1D * h_n_staOnlyMuon_perEvent_MCmatch
 
TH1D * h_n_trackerOnlyMuon_perEvent
 
TH1D * h_n_trackerOnlyMuon_perEvent_MCmatch
 
TH1D * h_n_trackerStaOnlyMuon_perEvent
 
TH1D * h_n_trackerStaOnlyMuon_perEvent_MCmatch
 
TH1D * h_n_tracks_perEvent
 
TH1D * h_n_zMuMu_perEvent
 
TH1D * h_n_zMuSta_perEvent
 
TH1D * h_n_zMuTrack_perEvent
 
TH1D * h_phiSta_wrongTrkCharge_ZMuMuTagged
 
TH1D * h_phiSta_wrongTrkCharge_ZMuStaTagged
 
TH1D * h_phiSta_ZMuMuTagged
 
TH1D * h_phiSta_ZMuStaTagged
 
TH1D * h_phiTrack_wrongStaCharge_ZMuMuTagged
 
TH1D * h_phiTrack_wrongStaCharge_ZMuTrackTagged
 
TH1D * h_phiTrack_ZMuMuTagged
 
TH1D * h_phiTrack_ZMuTrackTagged
 
TH1D * h_ptSta_wrongTrkCharge_ZMuMuTagged
 
TH1D * h_ptSta_wrongTrkCharge_ZMuStaTagged
 
TH1D * h_ptSta_ZMuMuTagged
 
TH1D * h_ptSta_ZMuStaTagged
 
TH1D * h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged
 
TH2D * h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged
 
TH2D * h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged
 
TH1D * h_ptTrack_wrongStaCharge_ZMuMuTagged
 
TH1D * h_ptTrack_wrongStaCharge_ZMuTrackTagged
 
TH1D * h_ptTrack_ZMuMuTagged
 
TH1D * h_ptTrack_ZMuTrackTagged
 
TH1D * h_TrackerMuonChargeTimeGenCharge
 
TH1D * h_TrackerMuonEtaMinusGenEta
 
TH1D * h_TrackerMuonPtMinusGenPt
 
TH1D * h_zMuMuMassOppositeSign
 
TH1D * h_zMuMuMassSameSign
 
TH1D * h_zMuMuMassSameSign_MCmatch
 
TH1D * h_zMuStaMass_correctStaCharge_ZMuMuTagged
 
TH1D * h_zMuStaMass_wrongTrkCharge_ZMuMuTagged
 
TH1D * h_zMuStaMass_wrongTrkCharge_ZMuStaTagged
 
TH1D * h_zMuStaMass_ZMuMuTagged
 
TH1D * h_zMuStaMass_ZMuStaTagged
 
TH1D * h_zMuTrackMass_wrongStaCharge_ZMuMuTagged
 
TH1D * h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged
 
TH1D * h_zMuTrackMass_ZMuMuTagged
 
TH1D * h_zMuTrackMass_ZMuTrackTagged
 
double isomax_
 
double isoMax_
 
double massMax_
 
double massMin_
 
edm::InputTag muonIso_
 
edm::InputTag muonMatchMap_
 
edm::InputTag muons_
 
int n_correctStaCharge_ZMuMutagged
 
int n_correctStaCharge_ZMuTracktagged
 
int n_correctTrkCharge_ZMuMutagged
 
int n_correctTrkCharge_ZMuStatagged
 
int n_goodSta_ZMuMutagged
 
int n_goodSta_ZMuStatagged
 
int n_goodTrack_ZMuMutagged
 
int n_goodTrack_ZMuTracktagged
 
int n_MultipleGoodZMuTrack
 
int n_OneGoodZMuTrack
 
int n_StaNotFound_ZMuTracktagged
 
int n_TrkNotFound_ZMuStatagged
 
int n_wrongStaCharge_ZMuMutagged
 
int n_wrongStaCharge_ZMuTracktagged
 
int n_wrongTrkCharge_ZMuMutagged
 
int n_wrongTrkCharge_ZMuStatagged
 
int n_ZMuStaTaggedMatched
 
bool noCut_
 
int numberOfMatchedZMuSta_
 
int nZMuMuSameSign
 
int nZMuMuSameSign_mcMatched
 
OverlapChecker overlap_
 
double ptmaxMinus_
 
double ptmaxPlus_
 
double ptmin_
 
double ptminMinus_
 
double ptminPlus_
 
reco::CandidateBaseRef standAloneMuonCandRef_
 
int totalNumberOfZfound
 
int totalNumberOfZpassed
 
edm::InputTag trackIso_
 
reco::CandidateBaseRef trackMuonCandRef_
 
edm::InputTag tracks_
 
double zMassMax_
 
double zMassMin_
 
edm::InputTag zMuMu_
 
edm::InputTag zMuMuMatchMap_
 
edm::InputTag zMuStandAlone_
 
edm::InputTag zMuStandAloneMatchMap_
 
edm::InputTag zMuTrack_
 
edm::InputTag zMuTrackMatchMap_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Detailed Description

Definition at line 34 of file ZMuMuPerformances.cc.

Constructor & Destructor Documentation

ZMuMuPerformances::ZMuMuPerformances ( const edm::ParameterSet pset)

Definition at line 169 of file ZMuMuPerformances.cc.

References etamax_, etamaxPlus_, h_DEtaGlobalGenvsEtaGen, h_DEtaGlobalGenvsEtaGen_ZMuMuTagged, h_DEtaGlobalStaComponentGenvsEtaGen, h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged, h_DPtGlobalGenvsEtaGen_ZMuMuTagged, h_DPtGlobalGenvsPtGen, h_DPtGlobalGenvsPtGen_ZMuMuTagged, h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged, h_DPtGlobalStaComponentGenvsPtGen, h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged, h_DPtTrackGenvsEtaGen_ZMuMuTagged, h_DPtTrackGenvsPtGen_ZMuMuTagged, h_DRSta_wrongTrkCharge_ZMuMuTagged, h_DRSta_ZMuMuTagged, h_DRTrack_wrongStaCharge_ZMuMuTagged, h_DRTrack_wrongStaCharge_ZMuTrackTagged, h_DRTrack_ZMuMuTagged, h_DRTrack_ZMuTrackTagged, h_etaSta_wrongTrkCharge_ZMuMuTagged, h_etaSta_wrongTrkCharge_ZMuStaTagged, h_etaSta_ZMuMuTagged, h_etaSta_ZMuStaTagged, h_etaTrack_wrongStaCharge_ZMuMuTagged, h_etaTrack_wrongStaCharge_ZMuTrackTagged, h_etaTrack_ZMuMuTagged, h_etaTrack_ZMuTrackTagged, h_GlobalMuonChargeTimeGenCharge, h_GlobalMuonEtaMinusGenEta, h_GlobalMuonEtaMinusGenEta_ZMuMuTagged, h_GlobalMuonPtMinusGenPt, h_GlobalMuonPtMinusGenPt_ZMuMuTagged, h_GlobalMuonStaComponentEtaMinusGenEta, h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged, h_GlobalMuonStaComponentPtMinusGenPt, h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged, h_n_globalMuon_perEvent, h_n_globalMuon_perEvent_MCmatch, h_n_staOnlyMuon_perEvent, h_n_staOnlyMuon_perEvent_MCmatch, h_n_trackerOnlyMuon_perEvent, h_n_trackerOnlyMuon_perEvent_MCmatch, h_n_trackerStaOnlyMuon_perEvent, h_n_trackerStaOnlyMuon_perEvent_MCmatch, h_n_tracks_perEvent, h_n_zMuMu_perEvent, h_n_zMuSta_perEvent, h_n_zMuTrack_perEvent, h_phiSta_wrongTrkCharge_ZMuMuTagged, h_phiSta_wrongTrkCharge_ZMuStaTagged, h_phiSta_ZMuMuTagged, h_phiSta_ZMuStaTagged, h_phiTrack_wrongStaCharge_ZMuMuTagged, h_phiTrack_wrongStaCharge_ZMuTrackTagged, h_phiTrack_ZMuMuTagged, h_phiTrack_ZMuTrackTagged, h_ptSta_wrongTrkCharge_ZMuMuTagged, h_ptSta_wrongTrkCharge_ZMuStaTagged, h_ptSta_ZMuMuTagged, h_ptSta_ZMuStaTagged, h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged, h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged, h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged, h_ptTrack_wrongStaCharge_ZMuMuTagged, h_ptTrack_wrongStaCharge_ZMuTrackTagged, h_ptTrack_ZMuMuTagged, h_ptTrack_ZMuTrackTagged, h_TrackerMuonChargeTimeGenCharge, h_TrackerMuonEtaMinusGenEta, h_TrackerMuonPtMinusGenPt, h_zMuMuMassOppositeSign, h_zMuMuMassSameSign, h_zMuMuMassSameSign_MCmatch, h_zMuStaMass_correctStaCharge_ZMuMuTagged, h_zMuStaMass_wrongTrkCharge_ZMuMuTagged, h_zMuStaMass_wrongTrkCharge_ZMuStaTagged, h_zMuStaMass_ZMuMuTagged, h_zMuStaMass_ZMuStaTagged, h_zMuTrackMass_wrongStaCharge_ZMuMuTagged, h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged, h_zMuTrackMass_ZMuMuTagged, h_zMuTrackMass_ZMuTrackTagged, isomax_, isoMax_, TFileDirectory::make(), massMax_, massMin_, n_correctStaCharge_ZMuMutagged, n_correctStaCharge_ZMuTracktagged, n_correctTrkCharge_ZMuMutagged, n_correctTrkCharge_ZMuStatagged, n_goodSta_ZMuMutagged, n_goodSta_ZMuStatagged, n_goodTrack_ZMuMutagged, n_goodTrack_ZMuTracktagged, n_MultipleGoodZMuTrack, n_OneGoodZMuTrack, n_StaNotFound_ZMuTracktagged, n_TrkNotFound_ZMuStatagged, n_wrongStaCharge_ZMuMutagged, n_wrongStaCharge_ZMuTracktagged, n_wrongTrkCharge_ZMuMutagged, n_wrongTrkCharge_ZMuStatagged, n_ZMuStaTaggedMatched, numberOfMatchedZMuSta_, nZMuMuSameSign, nZMuMuSameSign_mcMatched, ptmin_, ptminPlus_, totalNumberOfZfound, totalNumberOfZpassed, zMassMax_, and zMassMin_.

169  :
170  zMuMu_(pset.getParameter<InputTag>("zMuMu")),
171  zMuMuMatchMap_(pset.getParameter<InputTag>("zMuMuMatchMap")),
172  zMuTrack_(pset.getParameter<InputTag>("zMuTrack")),
173  zMuTrackMatchMap_(pset.getParameter<InputTag>("zMuTrackMatchMap")),
174  zMuStandAlone_(pset.getParameter<InputTag>("zMuStandAlone")),
175  zMuStandAloneMatchMap_(pset.getParameter<InputTag>("zMuStandAloneMatchMap")),
176  muons_(pset.getParameter<InputTag>("muons")),
177  muonMatchMap_(pset.getParameter<InputTag>("muonMatchMap")),
178  muonIso_(pset.getParameter<InputTag>("muonIso")),
179  tracks_(pset.getParameter<InputTag>("tracks")),
180  trackIso_(pset.getParameter<InputTag>("trackIso")),
181  genParticles_(pset.getParameter<InputTag>( "genParticles" ) ),
182 
183  noCut_(pset.getParameter<bool>("noCut")),
184 
185  zMassMin_(pset.getUntrackedParameter<double>("zMassMin")),
186  zMassMax_(pset.getUntrackedParameter<double>("zMassMax")),
187  ptminPlus_(pset.getUntrackedParameter<double>("ptminPlus")),
188  ptmaxPlus_(pset.getUntrackedParameter<double>("ptmaxPlus")),
189  etaminPlus_(pset.getUntrackedParameter<double>("etaminPlus")),
190  etamaxPlus_(pset.getUntrackedParameter<double>("etamaxPlus")),
191  ptminMinus_(pset.getUntrackedParameter<double>("ptminMinus")),
192  ptmaxMinus_(pset.getUntrackedParameter<double>("ptmaxMinus")),
193  etaminMinus_(pset.getUntrackedParameter<double>("etaminMinus")),
194  etamaxMinus_(pset.getUntrackedParameter<double>("etamaxMinus")),
195  isomax_(pset.getUntrackedParameter<double>("isomax")) {
197 
198  // cut setting
200  ptmin_ = ptminPlus_;
203  isoMax_ = isomax_;
204 
205  // general histograms
206  h_n_globalMuon_perEvent = fs->make<TH1D>("n_globalMuon_perEvent","n.of globalMuons per Event",6,-.5,5.5);
207  h_n_staOnlyMuon_perEvent = fs->make<TH1D>("n_staOnlyMuon_perEvent","n.of standAlone Only Muons per Event",6,-.5,5.5);
208  h_n_trackerOnlyMuon_perEvent = fs->make<TH1D>("n_trackerOnlyMuon_perEvent","n.of tracker Only Muons per Event",6,-.5,5.5);
209  h_n_trackerStaOnlyMuon_perEvent = fs->make<TH1D>("n_trackerStaOnlyMuon_perEvent","n.of tracker & StandAlone Only Muons per Event",6,-.5,5.5);
210  h_n_globalMuon_perEvent_MCmatch = fs->make<TH1D>("n_globalMuon_perEvent_MCmatch","n.of globalMuons per Event (MCmatch)",6,-.5,5.5);
211  h_n_staOnlyMuon_perEvent_MCmatch = fs->make<TH1D>("n_staOnlyMuon_perEvent_MCmatch","n.of standAlone Only Muons per Event (MCmatch)",6,-.5,5.5);
212  h_n_trackerOnlyMuon_perEvent_MCmatch = fs->make<TH1D>("n_trackerOnlyMuon_perEvent_MCmatch","n.of tracker Only Muons per Event (MCmatch)",6,-.5,5.5);
213  h_n_trackerStaOnlyMuon_perEvent_MCmatch = fs->make<TH1D>("n_trackerStaOnlyMuon_perEvent_MCmatch","n.of tracker & StandAlone Only Muons per Event (MCmatch)",6,-.5,5.5);
214  h_n_tracks_perEvent = fs->make<TH1D>("n_tracks_perEvent","n.of tracks per Event",100,-.5,99.5);
215  h_n_zMuMu_perEvent = fs->make<TH1D>("n_zMuMu_perEvent","n.of global-global muons per Event",6,-.5,5.5);
216  h_n_zMuSta_perEvent = fs->make<TH1D>("n_zMuSta_perEvent","n.of global-sta muons per Event",6,-.5,5.5);
217  h_n_zMuTrack_perEvent = fs->make<TH1D>("n_zMuTrack_perEvent","n.of global-track muons per Event",100,-.5,99.5);
218 
219  // zMuMu inv mass
220  h_zMuMuMassSameSign = fs->make<TH1D>("zMuMuMassSameSign","inv Mass ZMuMu cand SameSign",100, 0., 200.);
221  h_zMuMuMassOppositeSign = fs->make<TH1D>("zMuMuMassOppositeSign","inv Mass ZMuMu cand OppositeSign",100, 0., 200.);
222  h_zMuMuMassSameSign_MCmatch = fs->make<TH1D>("zMuMuMassSameSign_MCmatch","inv Mass ZMuMu cand SameSign (MC match)",100, 0., 200.);
223 
224  // histograms for MC truth
225  // charge truth
226  h_GlobalMuonChargeTimeGenCharge = fs->make<TH1D>("GlobalMuonChargeTimeGenCharge","charge global mu times charge generated mu",3, -1.5, 1.5);
227  h_TrackerMuonChargeTimeGenCharge = fs->make<TH1D>("TrackerMuonChargeTimeGenCharge","charge Tracker mu times charge generated mu",3, -1.5, 1.5);
228  // resolution respect to gen particles
229  h_GlobalMuonEtaMinusGenEta = fs->make<TH1D>("GlobalMuonEtaMinusGenEta","global mu Eta minus generated mu Eta",100, -.005, .005);
230  h_GlobalMuonPtMinusGenPt = fs->make<TH1D>("GlobalMuonPtMinusGenPtoverPt","global mu Pt minus generated mu Pt over Pt",100, -.5, .5);
231  h_GlobalMuonStaComponentEtaMinusGenEta = fs->make<TH1D>("GlobalMuonStaComponentEtaMinusGenEta","global mu Sta cmponent Eta minus generated mu Eta",100, -.5, .5);
232  h_GlobalMuonStaComponentPtMinusGenPt = fs->make<TH1D>("GlobalMuonStaComponentPtMinusGenPtoerPt","global mu Sta component Pt minus generated mu Pt over Pt",100, -1., 1.);
233  h_TrackerMuonEtaMinusGenEta = fs->make<TH1D>("TrackerMuonEtaMinusGenEta","Tracker mu Eta minus Eta generated mu",100, -.005, .005);
234  h_TrackerMuonPtMinusGenPt = fs->make<TH1D>("TrackerMuonPtMinusenPtoverPt","Tracker mu Pt minus Pt generated mu over Pt",100, -.5, .5);
235 
236  h_DEtaGlobalGenvsEtaGen = fs->make<TH2D>("h_DEtaGlobalGenvsEtaGen","Eta global - Eta Gen vs Eta gen",50,-2.5,2.5,100,-.005,.005);
237  h_DEtaGlobalStaComponentGenvsEtaGen = fs->make<TH2D>("h_DEtaGlobalStaComponentGenvsEtaGen","Eta Sta component of a Global - Eta Gen vs Eta gen",50,-2.5,2.5,100,-.5,.5);
238  h_DPtGlobalGenvsPtGen = fs->make<TH2D>("h_DPtGlobalGenovePtvsPtGen","Pt global - Pt Gen over Pt vs Pt gen",50,0.,100.,100,-.5,.5);
239  h_DPtGlobalStaComponentGenvsPtGen = fs->make<TH2D>("h_DPtGlobalStaComponentGenoverPtvsPtGen","Pt Sta component of a Global - Pt Gen over Pt vs Pt gen",50,0.,100.,100,-1.,1.);
240 
241  // resolution respect to gen particles for ZMuMuTagged events
242  h_GlobalMuonEtaMinusGenEta_ZMuMuTagged = fs->make<TH1D>("GlobalMuonEtaMinusGenEta_ZMuMuTagged","global mu Eta minus generated mu Eta",100, -.005, .005);
243  h_GlobalMuonPtMinusGenPt_ZMuMuTagged = fs->make<TH1D>("GlobalMuonPtMinusGenPtoverPt_ZMuMuTagged","global mu Pt minus generated mu Pt over Pt",100, -.5, .5);
244  h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged = fs->make<TH1D>("GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged","global mu Sta cmponent Eta minus generated mu Eta",100, -.5, .5);
245  h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged = fs->make<TH1D>("GlobalMuonStaComponentPtMinusGenPtoverPt_ZMuMuTagged","global mu Sta component Pt minus generated mu Pt over Pt",100, -1., 1.);
246  h_DEtaGlobalGenvsEtaGen_ZMuMuTagged = fs->make<TH2D>("h_DEtaGlobalGenvsEtaGen_ZMuMuTagged","Eta global - Eta Gen vs Eta gen",50,-2.5,2.5,100,-.005,.005);
247  h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged = fs->make<TH2D>("h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged","Eta Sta component of a Global - Eta Gen vs Eta gen",50,-2.5,2.5,100,-.5,.5);
248  h_DPtGlobalGenvsPtGen_ZMuMuTagged = fs->make<TH2D>("h_DPtGlobalGenOverPtvsPtGen_ZMuMuTagged","Pt global - Pt Gen vs Pt gen over Pt",50,0.,100.,100,-.5,.5);
249  h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged = fs->make<TH2D>("h_DPtGlobalStaComponentGenoverPtvsPtGen_ZMuMuTagged","Pt Sta component of a Global - Pt Gen over Pt vs Pt gen",50,0.,100.,100,-1.,1.);
250  h_DPtGlobalGenvsEtaGen_ZMuMuTagged = fs->make<TH2D>("h_DPtGlobalGenOverPtvsEtaGen_ZMuMuTagged","Pt global - Pt Gen over Pt vs Eta gen",50,-2.5,2.5,100,-.5,.5);
251  h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged = fs->make<TH2D>("h_DPtGlobalStaComponentGenoverPtvsEtaGen_ZMuMuTagged","Pt Sta component of a Global - Pt Gen over Pt vs Eta gen",50,-2.5,2.5,100,-1.,1.);
252  h_DPtTrackGenvsPtGen_ZMuMuTagged = fs->make<TH2D>("h_DPtTrackGenOverPtvsPtGen_ZMuMuTagged","Pt track - Pt Gen vs Pt gen over Pt",50,0.,100.,100,-.5,.5);
253  h_DPtTrackGenvsEtaGen_ZMuMuTagged = fs->make<TH2D>("h_DPtTrackGenOverPtvsEtaGen_ZMuMuTagged","Pt track - Pt Gen over Pt vs Eta gen",50,-2.5,2.5,100,-.5,.5);
254 
255  // histograms for cynematic of ZMuMutagged muons for Sta performances studies
256  h_zMuTrackMass_ZMuMuTagged = fs->make<TH1D>("zMuTrackMass_ZMuMuTagged","inv Mass ZMuTrack cand (global-global)",100, 0., 200.);
257  h_etaTrack_ZMuMuTagged = fs->make<TH1D>("etaTrack_ZMuMuTagged","eta of Track (global-global)",50, -2.5, 2.5);
258  h_phiTrack_ZMuMuTagged = fs->make<TH1D>("phiTrack_ZMuMuTagged","phi of Track (global-global)",50, -3.1415, 3.1415);
259  h_ptTrack_ZMuMuTagged = fs->make<TH1D>("ptTrack_ZMuMuTagged","pt of Track (global-global)",100, 0., 100.);
260  h_DRTrack_ZMuMuTagged = fs->make<TH1D>("DRTrackSta_ZMuMuTagged","DR track-sta (global-global)",100, 0., 5.);
261 
262  // histograms for cynematic of ZMuMutagged muons when StandAlone has wrong charge
263  h_zMuTrackMass_wrongStaCharge_ZMuMuTagged = fs->make<TH1D>("zMuTrackMass_wrongStaCharge_ZMuMuTagged","inv Mass ZMuTrack cand (global-global wrongStaCharge)",100, 0., 200.);
264  h_etaTrack_wrongStaCharge_ZMuMuTagged = fs->make<TH1D>("etaTrack_wrongStaCharge_ZMuMuTagged","eta of Track (global-global wrongStaCharge)",50, -2.5, 2.5);
265  h_phiTrack_wrongStaCharge_ZMuMuTagged = fs->make<TH1D>("phiTrack_wrongStaCharge_ZMuMuTagged","phi of Track (global-global wrongStaCharge)",50, -3.1415, 3.1415);
266  h_ptTrack_wrongStaCharge_ZMuMuTagged = fs->make<TH1D>("ptTrack_wrongStaCharge_ZMuMuTagged","pt of Track (global-global wrongStaCharge)",100, 0., 100.);
267  h_DRTrack_wrongStaCharge_ZMuMuTagged = fs->make<TH1D>("DRTrackSta_wrongStaCharge_ZMuMuTagged","DR track-sta (global-global wrongStaCharge)",100, 0., 5.);
268 
269  // hisograms for performances of StandAlone when StandAlone has correct charge
270  h_zMuStaMass_correctStaCharge_ZMuMuTagged = fs->make<TH1D>("zMuStaMass_correctStaCharge_ZMuMuTagged","inv Mass ZMuSta cand (global-global correctStaCharge)",100, 0., 200.);
271  h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged = fs->make<TH1D>("ptStaMinusptTrackoverPT_correctStaCharge_ZMuMuTagged","ptSta - ptTrack over Pt (global-global correctStaCharge)",100, -1., 1.);
272  h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged = fs->make<TH2D>("ptStaMinusptTrackoverPt_vsPtTracker_correctStaCharge_ZMuMuTagged","ptSta - ptTrack over Pt vs ptTrack (global-global correctStaCharge)",100,0.,100.,100, -1., 1.);
273  h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged = fs->make<TH2D>("ptStaMinusptTrackoverPt_vsEtaTracker_correctStaCharge_ZMuMuTagged","ptSta - ptTrack over Pt vs etaTrack (global-global correctStaCharge)",100,-2.5, 2.5, 100, -1., 1.);
274 
275  // histograms for cynematic of ZMuMutagged muons for TRK performances studies
276  h_zMuStaMass_ZMuMuTagged = fs->make<TH1D>("zMuStaMass_ZMuMuTagged","inv Mass ZMuSta cand (global-global)",100, 0., 200.);
277  h_etaSta_ZMuMuTagged = fs->make<TH1D>("etaSta_ZMuMuTagged","eta of Sta (global-global)",50, -2.5, 2.5);
278  h_phiSta_ZMuMuTagged = fs->make<TH1D>("phiSta_ZMuMuTagged","phi of Sta (global-global)",50, -3.1415, 3.1415);
279  h_ptSta_ZMuMuTagged = fs->make<TH1D>("ptSta_ZMuMuTagged","pt of Sta (global-global)",100, 0., 100.);
280  h_DRSta_ZMuMuTagged = fs->make<TH1D>("DRTrackSta_ZMuMuTagged_staSelected","DR track-sta sta selected (global-global)",100, 0., 5.);
281 
282  // histograms for cynematic of ZMuMutagged muons when Track has wrong charge
283  h_zMuStaMass_wrongTrkCharge_ZMuMuTagged = fs->make<TH1D>("zMuStaMass_wrongTrkCharge_ZMuMuTagged","inv Mass ZMuSta cand (global-global wrongTrkCharge)",100, 0., 200.);
284  h_etaSta_wrongTrkCharge_ZMuMuTagged = fs->make<TH1D>("etaSta_wrongTrkCharge_ZMuMuTagged","eta of Sta (global-global wrongTrkCharge)",50, -2.5, 2.5);
285  h_phiSta_wrongTrkCharge_ZMuMuTagged = fs->make<TH1D>("phiSta_wrongTrkCharge_ZMuMuTagged","phi of Sta (global-global wrongTrkCharge)",50, -3.1415, 3.1415);
286  h_ptSta_wrongTrkCharge_ZMuMuTagged = fs->make<TH1D>("ptSta_wrongTrkCharge_ZMuMuTagged","pt of Sta (global-global wrongTrkCharge)",100, 0., 100.);
287  h_DRSta_wrongTrkCharge_ZMuMuTagged = fs->make<TH1D>("DRTrackSta_wrongTrkCharge_ZMuMuTagged","DR track-sta (global-global wrongTrkCharge)",100, 0., 5.);
288 
289  //
290  // ****************************************************************************************************
291  // histograms for cynematic of ZMuTracktagged muons with unMatched StandAlone
292  h_zMuTrackMass_ZMuTrackTagged = fs->make<TH1D>("zMuTrackMass_ZMuTrackTagged","inv Mass ZMuTrack cand (global-track)",100, 0., 200.);
293  h_etaTrack_ZMuTrackTagged = fs->make<TH1D>("etaTrack_ZMuTrackTagged","eta of Track (global-track)",50, -2.5, 2.5);
294  h_phiTrack_ZMuTrackTagged = fs->make<TH1D>("phiTrack_ZMuTrackTagged","phi of Track (global-track)",50, -3.1415, 3.1415);
295  h_ptTrack_ZMuTrackTagged = fs->make<TH1D>("ptTrack_ZMuTrackTagged","pt of Track (global-track)",100, 0., 100.);
296  h_DRTrack_ZMuTrackTagged = fs->make<TH1D>("DRTrackSta_ZMuTrackTagged","DR track-sta (global-track)",100, 0., 5.);
297 
298  // histograms for cynematic of ZMuTracktagged muons when unMatched StandAlone has wrong charge
299  h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged = fs->make<TH1D>("zMuTrackMass_wrongStaCharge_ZMuTrackTagged","inv Mass ZMuTrack cand (global-track wrongUnMatcehdStaCharge)",100, 0., 200.);
300  h_etaTrack_wrongStaCharge_ZMuTrackTagged = fs->make<TH1D>("etaTrack_wrongStaCharge_ZMuTrackTagged","eta of Track (global-track wrongUnMatchedStaCharge)",50, -2.5, 2.5);
301  h_phiTrack_wrongStaCharge_ZMuTrackTagged = fs->make<TH1D>("phiTrack_wrongStaCharge_ZMuTrackTagged","phi of Track (global-track wrongUnMatchedStaCharge)",50, -3.1415, 3.1415);
302  h_ptTrack_wrongStaCharge_ZMuTrackTagged = fs->make<TH1D>("ptTrack_wrongStaCharge_ZMuTrackTagged","pt of Track (global-track wrongUnMatchedStaCharge)",100, 0., 100.);
303  h_DRTrack_wrongStaCharge_ZMuTrackTagged = fs->make<TH1D>("DRTrackSta_wrongStaCharge_ZMuTrackTagged","DR track-sta (global-track wrongUnMatchedStaCharge)",100, 0., 5.);
304 
305  // histograms for cynematic of ZMuStatagged muons with unMatched Track
306  h_zMuStaMass_ZMuStaTagged = fs->make<TH1D>("zMuStaMass_ZMuStaTagged","inv Mass ZMuSta cand (global-sta)",100, 0., 200.);
307  h_etaSta_ZMuStaTagged = fs->make<TH1D>("etaSta_ZMuStaTagged","eta of Sta (global-sta)",50, -2.5, 2.5);
308  h_phiSta_ZMuStaTagged = fs->make<TH1D>("phiSta_ZMuStaTagged","phi of Sta (global-sta)",50, -3.1415, 3.1415);
309  h_ptSta_ZMuStaTagged = fs->make<TH1D>("ptSta_ZMuStaTagged","pt of Sta (global-sta)",100, 0., 100.);
310 
311  // histograms for cynematic of ZMuStatagged muons when unMatched track has wrong charge
312  h_zMuStaMass_wrongTrkCharge_ZMuStaTagged = fs->make<TH1D>("zMuStaMass_wrongTrkCharge_ZMuStaTagged","inv Mass ZMuSta cand (global-sta wrongUnMatcehdTrkCharge)",100, 0., 200.);
313  h_etaSta_wrongTrkCharge_ZMuStaTagged = fs->make<TH1D>("etaSta_wrongTrkCharge_ZMuStaTagged","eta of Sta (global-sta wrongUnMatchedTrkCharge)",50, -2.5, 2.5);
314  h_phiSta_wrongTrkCharge_ZMuStaTagged = fs->make<TH1D>("phiSta_wrongTrkCharge_ZMuStaTagged","phi of Sta (global-sta wrongUnMatchedTrkCharge)",50, -3.1415, 3.1415);
315  h_ptSta_wrongTrkCharge_ZMuStaTagged = fs->make<TH1D>("ptSta_wrongTrkCharge_ZMuStaTagged","pt of Sta (global-sta wrongUnMatchedTrkCharge)",100, 0., 100.);
316 
317  // clear global counters
321  nZMuMuSameSign = 0;
332 
337 
342 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
TH1D * h_etaSta_wrongTrkCharge_ZMuMuTagged
TH1D * h_etaSta_wrongTrkCharge_ZMuStaTagged
edm::InputTag zMuTrackMatchMap_
TH1D * h_TrackerMuonEtaMinusGenEta
TH1D * h_phiSta_wrongTrkCharge_ZMuMuTagged
edm::InputTag zMuTrack_
edm::InputTag trackIso_
TH1D * h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged
TH1D * h_GlobalMuonStaComponentPtMinusGenPt
TH1D * h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged
edm::InputTag zMuStandAlone_
TH1D * h_DRTrack_wrongStaCharge_ZMuTrackTagged
TH1D * h_zMuTrackMass_ZMuTrackTagged
TH2D * h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged
TH1D * h_GlobalMuonStaComponentEtaMinusGenEta
edm::InputTag zMuStandAloneMatchMap_
TH1D * h_n_globalMuon_perEvent_MCmatch
edm::InputTag tracks_
TH2D * h_DPtTrackGenvsPtGen_ZMuMuTagged
TH2D * h_DPtGlobalStaComponentGenvsPtGen
TH1D * h_ptTrack_wrongStaCharge_ZMuMuTagged
TH1D * h_etaTrack_wrongStaCharge_ZMuMuTagged
TH1D * h_n_trackerStaOnlyMuon_perEvent_MCmatch
edm::InputTag muonIso_
TH1D * h_n_trackerStaOnlyMuon_perEvent
TH1D * h_zMuStaMass_correctStaCharge_ZMuMuTagged
TH1D * h_zMuStaMass_wrongTrkCharge_ZMuMuTagged
TH2D * h_DPtGlobalGenvsEtaGen_ZMuMuTagged
TH1D * h_n_trackerOnlyMuon_perEvent
TH1D * h_zMuStaMass_wrongTrkCharge_ZMuStaTagged
TH2D * h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged
TH1D * h_DRSta_wrongTrkCharge_ZMuMuTagged
TH2D * h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged
TH2D * h_DPtTrackGenvsEtaGen_ZMuMuTagged
TH1D * h_n_staOnlyMuon_perEvent_MCmatch
edm::InputTag genParticles_
TH1D * h_GlobalMuonEtaMinusGenEta_ZMuMuTagged
TH1D * h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged
edm::InputTag muons_
TH2D * h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged
TH1D * h_phiSta_wrongTrkCharge_ZMuStaTagged
TH1D * h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged
TH2D * h_DPtGlobalGenvsPtGen_ZMuMuTagged
TH1D * h_TrackerMuonChargeTimeGenCharge
TH1D * h_n_trackerOnlyMuon_perEvent_MCmatch
TH1D * h_DRTrack_wrongStaCharge_ZMuMuTagged
TH1D * h_GlobalMuonPtMinusGenPt_ZMuMuTagged
TH1D * h_ptSta_wrongTrkCharge_ZMuStaTagged
TH1D * h_ptSta_wrongTrkCharge_ZMuMuTagged
edm::InputTag zMuMu_
TH1D * h_GlobalMuonChargeTimeGenCharge
T * make() const
make new ROOT object
TH1D * h_zMuMuMassSameSign_MCmatch
TH1D * h_zMuTrackMass_wrongStaCharge_ZMuMuTagged
TH1D * h_etaTrack_wrongStaCharge_ZMuTrackTagged
TH2D * h_DEtaGlobalGenvsEtaGen_ZMuMuTagged
TH2D * h_DEtaGlobalStaComponentGenvsEtaGen
TH1D * h_phiTrack_wrongStaCharge_ZMuTrackTagged
edm::InputTag zMuMuMatchMap_
TH2D * h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged
TH1D * h_ptTrack_wrongStaCharge_ZMuTrackTagged
edm::InputTag muonMatchMap_
TH1D * h_phiTrack_wrongStaCharge_ZMuMuTagged

Member Function Documentation

void ZMuMuPerformances::analyze ( const edm::Event event,
const edm::EventSetup setup 
)
privatevirtual

Implements edm::EDAnalyzer.

Definition at line 344 of file ZMuMuPerformances.cc.

References abs, reco::Candidate::charge(), check_ifZmumu(), reco::Candidate::daughter(), deltaR(), reco::Candidate::eta(), etamax_, genParticleCandidates2GenParticles_cfi::genParticles, genParticles_, reco::Candidate::get(), getParticleEta(), getParticleP4(), getParticlePt(), h_DEtaGlobalGenvsEtaGen, h_DEtaGlobalGenvsEtaGen_ZMuMuTagged, h_DEtaGlobalStaComponentGenvsEtaGen, h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged, h_DPtGlobalGenvsEtaGen_ZMuMuTagged, h_DPtGlobalGenvsPtGen, h_DPtGlobalGenvsPtGen_ZMuMuTagged, h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged, h_DPtGlobalStaComponentGenvsPtGen, h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged, h_DPtTrackGenvsEtaGen_ZMuMuTagged, h_DPtTrackGenvsPtGen_ZMuMuTagged, h_DRSta_wrongTrkCharge_ZMuMuTagged, h_DRSta_ZMuMuTagged, h_DRTrack_wrongStaCharge_ZMuMuTagged, h_DRTrack_wrongStaCharge_ZMuTrackTagged, h_DRTrack_ZMuMuTagged, h_DRTrack_ZMuTrackTagged, h_etaSta_wrongTrkCharge_ZMuMuTagged, h_etaSta_wrongTrkCharge_ZMuStaTagged, h_etaSta_ZMuMuTagged, h_etaSta_ZMuStaTagged, h_etaTrack_wrongStaCharge_ZMuMuTagged, h_etaTrack_wrongStaCharge_ZMuTrackTagged, h_etaTrack_ZMuMuTagged, h_etaTrack_ZMuTrackTagged, h_GlobalMuonChargeTimeGenCharge, h_GlobalMuonEtaMinusGenEta, h_GlobalMuonEtaMinusGenEta_ZMuMuTagged, h_GlobalMuonPtMinusGenPt, h_GlobalMuonPtMinusGenPt_ZMuMuTagged, h_GlobalMuonStaComponentEtaMinusGenEta, h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged, h_GlobalMuonStaComponentPtMinusGenPt, h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged, h_n_globalMuon_perEvent, h_n_globalMuon_perEvent_MCmatch, h_n_staOnlyMuon_perEvent, h_n_staOnlyMuon_perEvent_MCmatch, h_n_trackerOnlyMuon_perEvent, h_n_trackerOnlyMuon_perEvent_MCmatch, h_n_trackerStaOnlyMuon_perEvent, h_n_trackerStaOnlyMuon_perEvent_MCmatch, h_n_tracks_perEvent, h_n_zMuMu_perEvent, h_n_zMuSta_perEvent, h_n_zMuTrack_perEvent, h_phiSta_wrongTrkCharge_ZMuMuTagged, h_phiSta_wrongTrkCharge_ZMuStaTagged, h_phiSta_ZMuMuTagged, h_phiSta_ZMuStaTagged, h_phiTrack_wrongStaCharge_ZMuMuTagged, h_phiTrack_wrongStaCharge_ZMuTrackTagged, h_phiTrack_ZMuMuTagged, h_phiTrack_ZMuTrackTagged, h_ptSta_wrongTrkCharge_ZMuMuTagged, h_ptSta_wrongTrkCharge_ZMuStaTagged, h_ptSta_ZMuMuTagged, h_ptSta_ZMuStaTagged, h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged, h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged, h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged, h_ptTrack_wrongStaCharge_ZMuMuTagged, h_ptTrack_wrongStaCharge_ZMuTrackTagged, h_ptTrack_ZMuMuTagged, h_ptTrack_ZMuTrackTagged, h_TrackerMuonChargeTimeGenCharge, h_TrackerMuonEtaMinusGenEta, h_TrackerMuonPtMinusGenPt, h_zMuMuMassOppositeSign, h_zMuMuMassSameSign, h_zMuMuMassSameSign_MCmatch, h_zMuStaMass_correctStaCharge_ZMuMuTagged, h_zMuStaMass_wrongTrkCharge_ZMuMuTagged, h_zMuStaMass_wrongTrkCharge_ZMuStaTagged, h_zMuStaMass_ZMuMuTagged, h_zMuStaMass_ZMuStaTagged, h_zMuTrackMass_wrongStaCharge_ZMuMuTagged, h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged, h_zMuTrackMass_ZMuMuTagged, h_zMuTrackMass_ZMuTrackTagged, i, reco::Candidate::isGlobalMuon(), edm::Ref< C, T, F >::isNonnull(), reco::Candidate::isStandAloneMuon(), reco::Candidate::isTrackerMuon(), j, m, reco::Candidate::mass(), massMax_, massMin_, reco::Candidate::masterClone(), metsig::muon, muonIso_, muonMatch_cfi::muonMatch, muonMatchMap_, patZpeak::muons, muons_, n_correctStaCharge_ZMuMutagged, n_correctStaCharge_ZMuTracktagged, n_correctTrkCharge_ZMuMutagged, n_correctTrkCharge_ZMuStatagged, n_goodSta_ZMuMutagged, n_goodSta_ZMuStatagged, n_goodTrack_ZMuMutagged, n_goodTrack_ZMuTracktagged, n_StaNotFound_ZMuTracktagged, n_TrkNotFound_ZMuStatagged, n_wrongStaCharge_ZMuMutagged, n_wrongStaCharge_ZMuTracktagged, n_wrongTrkCharge_ZMuMutagged, n_wrongTrkCharge_ZMuStatagged, n_ZMuStaTaggedMatched, noCut_, numberOfMatchedZMuSta_, nZMuMuSameSign, nZMuMuSameSign_mcMatched, reco::Candidate::phi(), reco::Candidate::pt(), ptmin_, reco::Muon::standAloneMuon(), reco::Muon::track(), testEve_cfg::tracks, tracks_, ZMuMuAnalysisNtupler_cff::zMuMu, zMuMu_, zMuMuMatchMap_, zMuStandAlone_, zMuStandAloneMatchMap_, zMuTrack_, and zMuTrackMatchMap_.

344  {
346  Handle<GenParticleMatch> zMuMuMatchMap; //Map of Z made by Mu global + Mu global (can be used also for same sign Zmumu)
347  Handle<CandidateView> zMuTrack;
348  Handle<GenParticleMatch> zMuTrackMatchMap; //Map of Z made by Mu + Track
349  Handle<CandidateView> zMuStandAlone;
350  Handle<GenParticleMatch> zMuStandAloneMatchMap; //Map of Z made by Mu + StandAlone
351  Handle<CandidateView> muons; //Collection of Muons
352  Handle<GenParticleMatch> muonMatchMap;
354  Handle<CandidateView> tracks; //Collection of Tracks
355  Handle<IsolationCollection> trackIso;
356  Handle<GenParticleCollection> genParticles; // Collection of Generatd Particles
357 
358  event.getByLabel(zMuMu_, zMuMu);
359  event.getByLabel(zMuTrack_, zMuTrack);
360  event.getByLabel(zMuStandAlone_, zMuStandAlone);
361  event.getByLabel(muons_, muons);
362  event.getByLabel(muonMatchMap_, muonMatchMap);
363  event.getByLabel(tracks_, tracks);
364  event.getByLabel(genParticles_, genParticles);
365 
366  /*
367  cout << "********* zMuMu size : " << zMuMu->size() << endl;
368  cout << "********* zMuMuSameSign size : " << zMuMuSameSign->size() << endl;
369  cout << "********* zMuStandAlone size : " << zMuStandAlone->size() << endl;
370  cout << "********* zMuTrack size : " << zMuTrack->size() << endl;
371  cout << "********* muons size : " << muons->size()<< endl;
372  cout << "********* standAlone size : " << standAlone->size()<< endl;
373  cout << "********* tracks size : " << tracks->size()<< endl;
374  cout << "********* generated size : " << genParticles->size()<< endl;
375  cout << "***************************************************" << endl;
376  */
377 
378  int n_globalMuon_perEvent=0;
379  int n_staOnlyMuon_perEvent=0;
380  int n_trackerOnlyMuon_perEvent=0;
381  int n_trackerStaOnlyMuon_perEvent=0;
382  int n_globalMuon_perEvent_MCmatch=0;
383  int n_staOnlyMuon_perEvent_MCmatch=0;
384  int n_trackerOnlyMuon_perEvent_MCmatch=0;
385  int n_trackerStaOnlyMuon_perEvent_MCmatch=0;
386 
387  for(unsigned int j = 0; j < muons->size() ; ++j) {
388  CandidateBaseRef muCandRef = muons->refAt(j);
389  const Candidate & muCand = (*muons)[j]; //the candidate
390  const reco::Muon & muon = dynamic_cast<const reco::Muon &>(muCand);
391  reco::TrackRef innerTrackRef = muon.track();
392  reco::TrackRef outerTrackRef = muon.standAloneMuon();
393  TrackRef muStaComponentRef = muCand.get<TrackRef,reco::StandAloneMuonTag>(); // standalone part of muon
394  TrackRef muTrkComponentRef = muCand.get<TrackRef>(); // track part of muon
395  GenParticleRef muonMatch = (*muonMatchMap)[muCandRef];
396  if (muCandRef->isGlobalMuon()==1) n_globalMuon_perEvent++;
397  if (muCandRef->isGlobalMuon()==0 && muCandRef->isTrackerMuon()==0 && muCandRef->isStandAloneMuon()==1) n_staOnlyMuon_perEvent++;
398  if (muCandRef->isGlobalMuon()==0 && muCandRef->isTrackerMuon()==1 && muCandRef->isStandAloneMuon()==0) n_trackerOnlyMuon_perEvent++;
399  if (muCandRef->isGlobalMuon()==0 && muCandRef->isTrackerMuon()==1 && muCandRef->isStandAloneMuon()==1) n_trackerStaOnlyMuon_perEvent++;
400 
401  if (muonMatch.isNonnull()) {
402  if (muCandRef->isGlobalMuon()==1) n_globalMuon_perEvent_MCmatch++;
403  if (muCandRef->isGlobalMuon()==0 && muCandRef->isTrackerMuon()==0 && muCandRef->isStandAloneMuon()==1) n_staOnlyMuon_perEvent_MCmatch++;
404  if (muCandRef->isGlobalMuon()==0 && muCandRef->isTrackerMuon()==1 && muCandRef->isStandAloneMuon()==0) n_trackerOnlyMuon_perEvent_MCmatch++;
405  if (muCandRef->isGlobalMuon()==0 && muCandRef->isTrackerMuon()==1 && muCandRef->isStandAloneMuon()==1) n_trackerStaOnlyMuon_perEvent_MCmatch++;
406  double productCharge = muCandRef->charge() * muonMatch->charge();
407  if (muCandRef->isGlobalMuon()==1) {
408  h_GlobalMuonChargeTimeGenCharge->Fill(productCharge);
409  h_GlobalMuonEtaMinusGenEta->Fill(muCandRef->eta() - muonMatch->eta());
410  h_GlobalMuonPtMinusGenPt->Fill((muCandRef->pt() - muonMatch->pt())/muonMatch->pt());
411  h_GlobalMuonStaComponentEtaMinusGenEta->Fill(muStaComponentRef->eta() - muonMatch->eta());
412  h_GlobalMuonStaComponentPtMinusGenPt->Fill((muStaComponentRef->pt() - muonMatch->pt())/muonMatch->pt());
413  h_DEtaGlobalGenvsEtaGen->Fill(muonMatch->eta(),muCandRef->eta() - muonMatch->eta());
414  h_DPtGlobalGenvsPtGen->Fill(muonMatch->pt(),(muCandRef->pt() - muonMatch->pt())/muonMatch->pt());
415  h_DEtaGlobalStaComponentGenvsEtaGen->Fill(muonMatch->eta(),muStaComponentRef->eta() - muonMatch->eta());
416  h_DPtGlobalStaComponentGenvsPtGen->Fill(muonMatch->pt(),(muStaComponentRef->pt() - muonMatch->pt())/muonMatch->pt());
417  }
418  if (muCandRef->isGlobalMuon()==0 && muCandRef->isTrackerMuon()==1) {
419  h_TrackerMuonChargeTimeGenCharge->Fill(productCharge);
420  h_TrackerMuonEtaMinusGenEta->Fill(muCandRef->eta() - muonMatch->eta());
421  h_TrackerMuonPtMinusGenPt->Fill((muCandRef->pt() - muonMatch->pt())/muonMatch->pt());
422  }
423  }
424  }
425  h_n_globalMuon_perEvent->Fill(n_globalMuon_perEvent);
426  h_n_staOnlyMuon_perEvent->Fill(n_staOnlyMuon_perEvent);
427  h_n_trackerOnlyMuon_perEvent->Fill(n_trackerOnlyMuon_perEvent);
428  h_n_trackerStaOnlyMuon_perEvent->Fill(n_trackerStaOnlyMuon_perEvent);
429  h_n_globalMuon_perEvent_MCmatch->Fill(n_globalMuon_perEvent_MCmatch);
430  h_n_staOnlyMuon_perEvent_MCmatch->Fill(n_staOnlyMuon_perEvent_MCmatch);
431  h_n_trackerOnlyMuon_perEvent_MCmatch->Fill(n_trackerOnlyMuon_perEvent_MCmatch);
432  h_n_trackerStaOnlyMuon_perEvent_MCmatch->Fill(n_trackerStaOnlyMuon_perEvent_MCmatch);
433  h_n_tracks_perEvent->Fill(tracks->size());
434 
435  h_n_zMuMu_perEvent->Fill(zMuMu->size());
436  h_n_zMuSta_perEvent->Fill(zMuStandAlone->size());
437  h_n_zMuTrack_perEvent->Fill(zMuTrack->size());
438 
439  // std::cout<<"Run-> "<<event.id().run()<<std::endl;
440  // std::cout<<"Event-> "<<event.id().event()<<std::endl;
441 
442 
443  // loop on ZMuMu
444  if (zMuMu->size() > 0 ) {
445  event.getByLabel(zMuMuMatchMap_, zMuMuMatchMap);
446  event.getByLabel(muonIso_, muonIso);
447  event.getByLabel(muonMatchMap_, muonMatchMap);
448  float muGenplus_pt = 0, muGenminus_pt = 0, muGenplus_eta = 100, muGenminus_eta = 100, dimuonMassGen = 0;
449  for(unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates
450  const Candidate & zMuMuCand = (*zMuMu)[i]; //the candidate
451  CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i);
452  GenParticleRef zMuMuMatch = (*zMuMuMatchMap)[zMuMuCandRef];
453  bool isMCMatched = false;
454  if(zMuMuMatch.isNonnull()) {
455  isMCMatched = true; // ZMuMu matched
456  if(zMuMuMatch->pdgId() == 23 && zMuMuMatch->status()==3 && zMuMuMatch->numberOfDaughters() == 3) {
457  // Z0 decays in mu+ mu-, the 3rd daughter is the same Z0
458  const Candidate * dauGen0 = zMuMuMatch->daughter(0);
459  const Candidate * dauGen1 = zMuMuMatch->daughter(1);
460  const Candidate * dauGen2 = zMuMuMatch->daughter(2);
461  if (check_ifZmumu(dauGen0, dauGen1, dauGen2)) { // Z0 in mu+ mu-
462  muGenplus_pt = getParticlePt(-13,dauGen0,dauGen1,dauGen2);
463  muGenminus_pt = getParticlePt(13,dauGen0,dauGen1,dauGen2);
464  muGenplus_eta = getParticleEta(-13,dauGen0,dauGen1,dauGen2);
465  muGenminus_eta = getParticleEta(13,dauGen0,dauGen1,dauGen2);
466  Particle::LorentzVector pZ(0, 0, 0, 0);
467  Particle::LorentzVector muplusp4 = getParticleP4(-13,dauGen0,dauGen1,dauGen2);
468  Particle::LorentzVector muminusp4 = getParticleP4(13,dauGen0,dauGen1,dauGen2);
469  pZ = muplusp4 + muminusp4;
470  dimuonMassGen = pZ.mass(); // dimuon invariant Mass at Generator Level
471  } // en if is Z
472  } // end if is Z->mumu
473 
474  }
475 
476  TrackRef as1 = zMuMuCand.daughter(0)->get<TrackRef,reco::StandAloneMuonTag>(); // standalone part of ZMuMu cand0
477  TrackRef as2 = zMuMuCand.daughter(1)->get<TrackRef,reco::StandAloneMuonTag>(); // standalone part of ZMuMu cand1
478  TrackRef a1 = zMuMuCand.daughter(0)->get<TrackRef,reco::CombinedMuonTag>(); // global part of ZMuMu cand0
479  TrackRef a2 = zMuMuCand.daughter(1)->get<TrackRef,reco::CombinedMuonTag>(); // global part of ZMuMu cand1
480  TrackRef at1 = zMuMuCand.daughter(0)->get<TrackRef>(); // tracker part of ZMuMu cand0
481  TrackRef at2 = zMuMuCand.daughter(1)->get<TrackRef>(); // tracker part of ZMuMu cand1
482 
483  math::XYZTLorentzVector ps1(as1->px(),as1->py(),as1->pz(),as1->p());
484  math::XYZTLorentzVector ps2(as2->px(),as2->py(),as2->pz(),as2->p());
485  math::XYZTLorentzVector pg1(a1->px(),a1->py(),a1->pz(),a1->p());
486  math::XYZTLorentzVector pg2(a2->px(),a2->py(),a2->pz(),a2->p());
487  math::XYZTLorentzVector ptrk1(at1->px(),at1->py(),at1->pz(),at1->p());
488  math::XYZTLorentzVector ptrk2(at2->px(),at2->py(),at2->pz(),at2->p());
489 
490  // double mass2global = (pg1+pg2).mass(); // inv. Mass done with the two global muons (is th same like m)
491  double massGlobalSta = (pg1+ps2).mass(); // inv. mass done with the global daughter(0) and the Sta part of Daughter(1)
492  double massStaGlobal = (ps1+pg2).mass(); // inv. mass done with the global daughter(1) and the Sta part of Daughter(0)
493  // double mass2Tracker = (ptrk1+ptrk2).mass(); // inv. mass done with the two tracker compnents
494  double massGlobalTracker = (pg1+ptrk2).mass(); // inv. mass done with the global daughter(0) and the tracker part of Daughter(1)
495  double massTrackerGlobal = (ptrk1+pg2).mass(); // inv. mass done with the global daughter(1) and the tracker part of Daughter(0)
496  double etaGlobal1 = a1->eta();
497  double etaGlobal2 = a2->eta();
498  double etaSta1 = as1->eta();
499  double etaSta2 = as2->eta();
500  double etaTracker1 = at1->eta();
501  double etaTracker2 = at2->eta();
502  // double phiGlobal1 = a1->phi();
503  // double phiGlobal2 = a2->phi();
504  double phiSta1 = as1->phi();
505  double phiSta2 = as2->phi();
506  double phiTracker1 = at1->phi();
507  double phiTracker2 = at2->phi();
508  double ptGlobal1 = a1->pt();
509  double ptGlobal2 = a2->pt();
510  double ptSta1 = as1->pt();
511  double ptSta2 = as2->pt();
512  double ptTracker1 = at1->pt();
513  double ptTracker2 = at2->pt();
514  double chargeGlobal1 = a1->charge();
515  double chargeGlobal2 = a2->charge();
516  double chargeSta1 = as1->charge();
517  double chargeSta2 = as2->charge();
518  double chargeTracker1 = at1->charge();
519  double chargeTracker2 = at2->charge();
520  double DR1 = deltaR(etaSta1, phiSta1, etaTracker1, phiTracker1);
521  double DR2 = deltaR(etaSta2, phiSta2, etaTracker2, phiTracker2);
522 
523  if (chargeGlobal1 == chargeGlobal2) {
524  nZMuMuSameSign++;
525  h_zMuMuMassSameSign->Fill(zMuMuCand.mass());
526  if (isMCMatched) {
528  h_zMuMuMassSameSign_MCmatch->Fill(zMuMuCand.mass());
529 
530  }
531  } else {
532  h_zMuMuMassOppositeSign->Fill(zMuMuCand.mass());
533  }
534 
535  bool etaCut = false;
536  bool ptCut = false;
537  bool isoCut = false;
538  bool massCut = false;
539 
540  // ******************************************************************************************************************************
541  // Start study for StandAlone charge mis-id: select global-global events according to global1+track2 (or global2+track1)
542  // *******************************************************************************************************************************
543 
544  // cynematical cuts for Zglobal1Track2
545  if (abs(etaGlobal1)<etamax_ && abs(etaTracker2)<etamax_) etaCut = true;
546  if (ptGlobal1>ptmin_ && ptTracker2>ptmin_) ptCut = true;
547  if (massGlobalTracker>massMin_ && massGlobalTracker<massMax_) massCut = true;
548 
549  if (noCut_) {
550  etaCut = true;
551  ptCut = true;
552  massCut = true;
553  }
554 
555  if (etaCut && ptCut && massCut) {
556  // check first global1-track2 if they have opposite charge and if global1 has consistent charge between sta and track
557  if (chargeSta1 == chargeTracker1 && chargeTracker1 != chargeTracker2) { // event tagged to study StandAlone2 charge
559  h_zMuTrackMass_ZMuMuTagged->Fill(massGlobalTracker); // inv mass global+tracker part
560  h_etaTrack_ZMuMuTagged->Fill(etaTracker2); // eta of tagged track
561  h_phiTrack_ZMuMuTagged->Fill(phiTracker2); // phi of tagged track
562  h_ptTrack_ZMuMuTagged->Fill(ptTracker2); // pt of tagged track
563  h_DRTrack_ZMuMuTagged->Fill(DR2); // DR between sta2 and tracker2 for tagged track
564 
565  if (isMCMatched) { // if MC match .. resolution plots of global1 respect to gen particles
566  double etaGen, ptGen;
567  if (chargeGlobal1==1) {
568  etaGen = muGenplus_eta;
569  ptGen = muGenplus_pt;
570  } else {
571  etaGen = muGenminus_eta;
572  ptGen = muGenminus_pt;
573  }
574  h_GlobalMuonEtaMinusGenEta_ZMuMuTagged->Fill(etaGlobal1 - etaGen);
575  h_GlobalMuonPtMinusGenPt_ZMuMuTagged->Fill((ptGlobal1 - ptGen)/ptGen);
577  h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged->Fill((ptSta1 - ptGen)/ptGen);
578  h_DEtaGlobalGenvsEtaGen_ZMuMuTagged->Fill(etaGen,etaGlobal1-etaGen);
579  h_DPtGlobalGenvsPtGen_ZMuMuTagged->Fill(ptGen,(ptGlobal1-ptGen)/ptGen);
580  h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged->Fill(etaGen,etaSta1-etaGen);
581  h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged->Fill(ptGen,(ptSta1-ptGen)/ptGen);
582  h_DPtGlobalGenvsEtaGen_ZMuMuTagged->Fill(etaGen,(ptGlobal1-ptGen)/ptGen);
583  h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged->Fill(etaGen,(ptSta1-ptGen)/ptGen);
584  h_DPtTrackGenvsPtGen_ZMuMuTagged->Fill(ptGen,(ptTracker1-ptGen)/ptGen);
585  h_DPtTrackGenvsEtaGen_ZMuMuTagged->Fill(etaGen,(ptTracker1-ptGen)/ptGen);
586 
587  } // end if MC Match
588 
589  if (chargeSta2 == chargeTracker2) { // StandAlone2 has correct charge
591  h_zMuStaMass_correctStaCharge_ZMuMuTagged->Fill(massGlobalSta); // inv mass of global-Sta part for correct charge muons
592  h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged->Fill((ptSta2-ptTracker2)/ptTracker2);
593  h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged->Fill(etaTracker2,(ptSta2-ptTracker2)/ptTracker2);
594  h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged->Fill(ptTracker2,(ptSta2-ptTracker2)/ptTracker2);
595  // qui posso aggiungere plot col MC match
596  }
597  if (chargeSta2 != chargeTracker2) { // StandAlone2 has wrong charge
599  h_zMuTrackMass_wrongStaCharge_ZMuMuTagged->Fill(massGlobalTracker); // inv mass global+tracker part (wrong Sta charge)
600  h_etaTrack_wrongStaCharge_ZMuMuTagged->Fill(etaTracker2); // eta of tagged track (wrong Sta charge)
601  h_phiTrack_wrongStaCharge_ZMuMuTagged->Fill(phiTracker2); // phi of tagged track (wrong Sta charge)
602  h_ptTrack_wrongStaCharge_ZMuMuTagged->Fill(ptTracker2); // pt of tagged track (wrong Sta charge)
603  h_DRTrack_wrongStaCharge_ZMuMuTagged->Fill(DR2); // DR between sta2 and tracker2 for tagged track (wrong Sta charge)
604  }
605  } // end if check chrge global1-tracker2
606  } // end if cut selection
607 
608  // cynematical cuts for Zglobal2Track1
609  etaCut = false;
610  ptCut = false;
611  massCut = false;
612  isoCut = false;
613  if (abs(etaGlobal2)<etamax_ && abs(etaTracker1)<etamax_) etaCut = true;
614  if (ptGlobal2>ptmin_ && ptTracker1>ptmin_) ptCut = true;
615  if (massTrackerGlobal>massMin_ && massTrackerGlobal<massMax_) massCut = true;
616 
617  if (noCut_) {
618  etaCut = true;
619  ptCut = true;
620  massCut = true;
621  }
622 
623  if (etaCut && ptCut && massCut) {
624  // check global2-track1 if they have opposite charge and if global2 has consistent charge between sta and track
625  if (chargeSta2 == chargeTracker2 && chargeTracker1 != chargeTracker2) { // event tagged to study StandAlone2 charge
627  h_zMuTrackMass_ZMuMuTagged->Fill(massTrackerGlobal); // inv mass global+tracker part
628  h_etaTrack_ZMuMuTagged->Fill(etaTracker1); // eta of tagged track
629  h_phiTrack_ZMuMuTagged->Fill(phiTracker1); // phi of tagged track
630  h_ptTrack_ZMuMuTagged->Fill(ptTracker1); // pt of tagged track
631  h_DRTrack_ZMuMuTagged->Fill(DR1); // DR between sta1 and tracker1 for tagged track
632 
633  // qui posso aggiungere plot col MC match
634  if (isMCMatched) { // if MC match .. resolution plots of global2 respect to gen particles
635  double etaGen, ptGen;
636  if (chargeGlobal2==1) {
637  etaGen = muGenplus_eta;
638  ptGen = muGenplus_pt;
639  } else {
640  etaGen = muGenminus_eta;
641  ptGen = muGenminus_pt;
642  }
643  h_GlobalMuonEtaMinusGenEta_ZMuMuTagged->Fill(etaGlobal2 - etaGen);
644  h_GlobalMuonPtMinusGenPt_ZMuMuTagged->Fill((ptGlobal2 - ptGen)/ptGen);
646  h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged->Fill((ptSta2 - ptGen)/ptGen);
647  h_DEtaGlobalGenvsEtaGen_ZMuMuTagged->Fill(etaGen,etaGlobal2-etaGen);
648  h_DPtGlobalGenvsPtGen_ZMuMuTagged->Fill(ptGen,(ptGlobal2-ptGen)/ptGen);
649  h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged->Fill(etaGen,etaSta2-etaGen);
650  h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged->Fill(ptGen,(ptSta2-ptGen)/ptGen);
651  h_DPtGlobalGenvsEtaGen_ZMuMuTagged->Fill(etaGen,(ptGlobal2-ptGen)/ptGen);
652  h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged->Fill(etaGen,(ptSta2-ptGen)/ptGen);
653  h_DPtTrackGenvsPtGen_ZMuMuTagged->Fill(ptGen,(ptTracker2-ptGen)/ptGen);
654  h_DPtTrackGenvsEtaGen_ZMuMuTagged->Fill(etaGen,(ptTracker2-ptGen)/ptGen);
655  } // end if MC Match
656 
657 
658  if (chargeSta1 == chargeTracker1) { // StandAlone1 has correct charge
660  h_zMuStaMass_correctStaCharge_ZMuMuTagged->Fill(massStaGlobal); // inv mass of Sta-global part for correct charge muons
661  h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged->Fill((ptSta1-ptTracker1)/ptTracker1);
662  h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged->Fill(etaTracker1,(ptSta1-ptTracker1)/ptTracker1);
663  h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged->Fill(ptTracker1,(ptSta1-ptTracker1)/ptTracker1);
664 
665  }
666  if (chargeSta1 != chargeTracker1) { // StandAlone2 has wrong charge
668  h_zMuTrackMass_wrongStaCharge_ZMuMuTagged->Fill(massTrackerGlobal); // inv mass global+tracker part (wrong Sta charge)
669  h_etaTrack_wrongStaCharge_ZMuMuTagged->Fill(etaTracker1); // eta of tagged track (wrong Sta charge)
670  h_phiTrack_wrongStaCharge_ZMuMuTagged->Fill(phiTracker1); // phi of tagged track (wrong Sta charge)
671  h_ptTrack_wrongStaCharge_ZMuMuTagged->Fill(ptTracker1); // pt of tagged track (wrong Sta charge)
672  h_DRTrack_wrongStaCharge_ZMuMuTagged->Fill(DR1); // DR between sta1 and tracker1 for tagged track (wrong Sta charge)
673  }
674  } // end if check charge global1-tracker2
675  } // end if cuts
676 
677  // ******************************************************************************************************************************
678  // Start study for tracker charge mis-id: select global-global events according to global1+staComponent2 (or global2+staComponent1)
679  // *******************************************************************************************************************************
680 
681  etaCut = false;
682  ptCut = false;
683  isoCut = false;
684  massCut = false;
685 
686  // cynematical cuts for Zglobal1Sta2
687  if (abs(etaGlobal1)<etamax_ && abs(etaSta2)<etamax_) etaCut = true;
688  if (ptGlobal1>ptmin_ && ptSta2>ptmin_) ptCut = true;
689  if (massGlobalSta>massMin_ && massGlobalSta<massMax_) massCut = true;
690 
691  if (noCut_) {
692  etaCut = true;
693  ptCut = true;
694  massCut = true;
695  }
696 
697  if (etaCut && ptCut && massCut) {
698  // check first global1-sta2 if they have opposite charge and if global1 has consistent charge between sta and track
699  if (chargeSta1 == chargeTracker1 && chargeTracker1 != chargeSta2) { // event tagged to study track2 charge
701  h_zMuStaMass_ZMuMuTagged->Fill(massGlobalSta); // inv mass global+sta part
702  h_etaSta_ZMuMuTagged->Fill(etaSta2); // eta of tagged sta
703  h_phiSta_ZMuMuTagged->Fill(phiSta2); // phi of tagged sta
704  h_ptSta_ZMuMuTagged->Fill(ptSta2); // pt of tagged sta
705  h_DRSta_ZMuMuTagged->Fill(DR2); // DR between sta2 and tracker2 for tagged sta
706 
707  if (chargeSta2 == chargeTracker2) { // track2 has correct charge
709  // qui posso aggiungere plot col MC match
710  }
711  if (chargeSta2 != chargeTracker2) { // track2 has wrong charge
713  h_zMuStaMass_wrongTrkCharge_ZMuMuTagged->Fill(massGlobalSta); // inv mass global+sta part (wrong Trk charge)
714  h_etaSta_wrongTrkCharge_ZMuMuTagged->Fill(etaSta2); // eta of tagged sta (wrong trk charge)
715  h_phiSta_wrongTrkCharge_ZMuMuTagged->Fill(phiSta2); // phi of tagged sta (wrong Trk charge)
716  h_ptSta_wrongTrkCharge_ZMuMuTagged->Fill(ptSta2); // pt of tagged sta (wrong Trk charge)
717  h_DRSta_wrongTrkCharge_ZMuMuTagged->Fill(DR2); // DR between sta2 and tracker2 for tagged sta (wrong trk charge)
718  }
719  } // end if check chrge global1-sta2
720  } // end if cut selection
721 
722  etaCut = false;
723  ptCut = false;
724  isoCut = false;
725  massCut = false;
726 
727  // cynematical cuts for Zglobal2Sta1
728  if (abs(etaGlobal2)<etamax_ && abs(etaSta1)<etamax_) etaCut = true;
729  if (ptGlobal2>ptmin_ && ptSta1>ptmin_) ptCut = true;
730  if (massStaGlobal>massMin_ && massStaGlobal<massMax_) massCut = true;
731 
732  if (noCut_) {
733  etaCut = true;
734  ptCut = true;
735  massCut = true;
736  }
737 
738  if (etaCut && ptCut && massCut) {
739  // check first global2-sta1 if they have opposite charge and if global2 has consistent charge between sta and track
740  if (chargeSta2 == chargeTracker2 && chargeTracker2 != chargeSta1) { // event tagged to study track1 charge
742  h_zMuStaMass_ZMuMuTagged->Fill(massStaGlobal); // inv mass global+sta part
743  h_etaSta_ZMuMuTagged->Fill(etaSta1); // eta of tagged sta
744  h_phiSta_ZMuMuTagged->Fill(phiSta1); // phi of tagged sta
745  h_ptSta_ZMuMuTagged->Fill(ptSta1); // pt of tagged sta
746  h_DRSta_ZMuMuTagged->Fill(DR1); // DR between sta1 and tracker1 for tagged sta
747 
748  if (chargeSta1 == chargeTracker1) { // track1 has correct charge
750  // qui posso aggiungere plot col MC match
751  }
752  if (chargeSta1 != chargeTracker1) { // track1 has wrong charge
754  h_zMuStaMass_wrongTrkCharge_ZMuMuTagged->Fill(massStaGlobal); // inv mass global+sta part (wrong Trk charge)
755  h_etaSta_wrongTrkCharge_ZMuMuTagged->Fill(etaSta1); // eta of tagged sta (wrong trk charge)
756  h_phiSta_wrongTrkCharge_ZMuMuTagged->Fill(phiSta1); // phi of tagged sta (wrong Trk charge)
757  h_ptSta_wrongTrkCharge_ZMuMuTagged->Fill(ptSta1); // pt of tagged sta (wrong Trk charge)
758  h_DRSta_wrongTrkCharge_ZMuMuTagged->Fill(DR1); // DR between sta2 and tracker2 for tagged sta (wrong trk charge)
759  }
760  } // end if check chrge global2-sta1
761  } // end if cut selection
762 
763 
764  } // end loop on ZMuMu cand
765  } // end if ZMuMu size > 0
766 
767 
768  // loop on ZMuTrack in order to recover some unMatched StandAlone
769 
770  double LargerDRCut=2.; // larger DR cut to recover unMatched Sta
771  int taggedZ_index = -1; // index of Z with minimum DR respect to unMatched Sta
772  int taggedMuon_index = -1; // index of Sta muon with minimum DR respect to unMatched track
773  int n_ZMuTrackTagged_inEvent = 0; // number of tagged Z in the event
774  if (zMuTrack->size() > 0 && zMuMu->size()==0) { // check ZMuTrack just if no ZMuMu has been found in the event
775  event.getByLabel(zMuTrackMatchMap_, zMuTrackMatchMap);
776  for(unsigned int i = 0; i < zMuTrack->size(); ++i) { //loop on candidates
777  const Candidate & zMuTrackCand = (*zMuTrack)[i]; //the candidate
778  CandidateBaseRef zMuTrackCandRef = zMuTrack->refAt(i);
779  GenParticleRef zMuTrackMatch = (*zMuTrackMatchMap)[zMuTrackCandRef];
780  bool isMCMatched = false;
781  if(zMuTrackMatch.isNonnull()) isMCMatched = true; // ZMuTrack matched
782  // forzo isMCMatched
783  // isMCMatched = true;
784 
785  double m = zMuTrackCand.mass();
786  CandidateBaseRef zglobalDaughter = zMuTrackCand.daughter(0)->masterClone();
787  CandidateBaseRef ztrackerDaughter = zMuTrackCand.daughter(1)->masterClone();
788  TrackRef zglobalDaughter_StaComponentRef = zMuTrackCand.daughter(0)->get<TrackRef,reco::StandAloneMuonTag>();
789  // standalone part of global component of ZMuMu
790  TrackRef zglobalDaughter_TrackComponentRef = zMuTrackCand.daughter(0)->get<TrackRef>();
791  // track part Of the global component of ZMuMu
792  double ZtrackerDaughterCharge = ztrackerDaughter->charge();
793  double ZtrackerDaughterPt = ztrackerDaughter->pt();
794  double ZtrackerDaughterEta = ztrackerDaughter->eta();
795  double ZtrackerDaughterPhi = ztrackerDaughter->phi();
796  double ZglobalDaughterPt = zglobalDaughter->pt();
797  double ZglobalDaughterEta = zglobalDaughter->eta();
798  double ZglobalDaughter_StaComponentCharge = zglobalDaughter_StaComponentRef->charge();
799  double ZglobalDaughter_TrackComponentCharge = zglobalDaughter_TrackComponentRef->charge();
800 
801  //*********************************************************************************************************************
802  // study of standAlone charge mis-id and efficiency selecting ZMuTrack events (tag the index of Z and of muon)
803  // for Sta charge mis-id just use unMatched standAlone muons trackerMuons that are standAlone Muons but no globalMuons
804  // ********************************************************************************************************************
805  // cynematical cuts for ZMuTrack
806  bool etaCut = false;
807  bool ptCut = false;
808  // bool isoCut = false;
809  bool massCut = false;
810  if (abs(ZglobalDaughterEta)<etamax_ && abs(ZtrackerDaughterEta)<etamax_) etaCut = true;
811  if (ZglobalDaughterPt>ptmin_ && ZtrackerDaughterPt>ptmin_) ptCut = true;
812  if (m>massMin_ && m<massMax_) massCut = true;
813 
814  if (noCut_) {
815  etaCut = true;
816  ptCut = true;
817  massCut = true;
818  }
819  if (etaCut && ptCut && massCut && ZglobalDaughter_StaComponentCharge == ZglobalDaughter_TrackComponentCharge &&
820  ZglobalDaughter_TrackComponentCharge != ZtrackerDaughterCharge) { // cynematic cuts and global charge consistent and opposite tracker charge
821  n_ZMuTrackTagged_inEvent++;
822 
823  // posso inserire istogrammi eta e pt track per studio Sta efficiency
824  // ...
825 
826  for(unsigned int j = 0; j < muons->size() ; ++j) {
827  CandidateBaseRef muCandRef = muons->refAt(j);
828  const Candidate & muCand = (*muons)[j]; //the candidate
829  TrackRef muStaComponentRef = muCand.get<TrackRef,reco::StandAloneMuonTag>(); // standalone part of muon
830  TrackRef muTrkComponentRef = muCand.get<TrackRef>(); // track part of muon
831 
832  if (muCandRef->isStandAloneMuon()==1 && muCandRef->isGlobalMuon()==0 && muCandRef->isTrackerMuon()==1) {
833  double muEta = muCandRef->eta();
834  double muPhi = muCandRef->phi();
835  // check DeltaR between Sta muon and tracks of ZMuTrack
836  double DRmuSta_trackOfZ = deltaR(muEta, muPhi, ZtrackerDaughterEta, ZtrackerDaughterPhi);
837  if (DRmuSta_trackOfZ == 0) { // match track track ... standalone-muTracker
838  taggedZ_index = i;
839  taggedMuon_index = j;
840  } // end check minimum DR
841  } // end if isStandAlone
842  } // end loop on muon candidates
843  } // end cynematic cuts
844 
845  } // end loop on zMuTrack size
846  } // end if zMuTrack size > 0
847 
848  // analyze the tagged ZMuTRack and the Sta muons with minimal DR
849  if (n_ZMuTrackTagged_inEvent>0) { // at Least one ZMuTRack tagged
850 
851  if (taggedZ_index==-1) { // StandAlone inefficient
853  // h_etaTrack_StaNotFound_ZMuTrackTagged->Fill(ztrackerDaughter->eta());
854  } else {
855  const Candidate & zMuTrackCand = (*zMuTrack)[taggedZ_index]; //the candidate tagged
856  CandidateBaseRef zMuTrackCandRef = zMuTrack->refAt(taggedZ_index);
857  double m = zMuTrackCand.mass();
858  CandidateBaseRef zglobalDaughter = zMuTrackCand.daughter(0)->masterClone();
859  CandidateBaseRef ztrackerDaughter = zMuTrackCand.daughter(1)->masterClone();
860  TrackRef zglobalDaughter_StaComponentRef = zMuTrackCand.daughter(0)->get<TrackRef,reco::StandAloneMuonTag>();
861  // standalone part of global component of ZMuMu
862  TrackRef zglobalDaughter_TrackComponentRef = zMuTrackCand.daughter(0)->get<TrackRef>();
863  // track part Of the global component of ZMuMu
864  double ZtrackerDaughterCharge = ztrackerDaughter->charge();
865  double ZtrackerDaughterPt = ztrackerDaughter->pt();
866  double ZtrackerDaughterEta = ztrackerDaughter->eta();
867  double ZtrackerDaughterPhi = ztrackerDaughter->phi();
868 
869  CandidateBaseRef muCandRef = muons->refAt(taggedMuon_index); // the tagged muon
870  const Candidate & muCand = (*muons)[taggedMuon_index]; //the candidate
871  TrackRef muStaComponentRef = muCand.get<TrackRef,reco::StandAloneMuonTag>(); // standalone part of muon
872  TrackRef muTrkComponentRef = muCand.get<TrackRef>(); // track part of muon
873 
874  double muEta = muStaComponentRef->eta();
875  double muPhi = muStaComponentRef->phi();
876  double muCharge = muStaComponentRef->charge();
877  // check DeltaR between Sta muon and tracks of ZMuTrack
878  double DRmuSta_trackOfZ = deltaR(muEta, muPhi, ZtrackerDaughterEta, ZtrackerDaughterPhi);
879 
881  h_zMuTrackMass_ZMuTrackTagged->Fill(m); // inv mass ZMuTrack for tagged events
882  h_etaTrack_ZMuTrackTagged->Fill(ZtrackerDaughterEta); // eta of tagged track
883  h_phiTrack_ZMuTrackTagged->Fill(ZtrackerDaughterPhi); // phi of tagged track
884  h_ptTrack_ZMuTrackTagged->Fill(ZtrackerDaughterPt); // pt of tagged track
885  h_DRTrack_ZMuTrackTagged->Fill(DRmuSta_trackOfZ); // DR between sta1 and tracker1 for tagged track
886 
887  // check StandAlone charge
888  if (muCharge != ZtrackerDaughterCharge) { // wrong Sta charge
889  n_wrongStaCharge_ZMuTracktagged++; // number of events wrong charge for unMatched Sta
890  h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged->Fill(m); // inv mass ZMuTrack for tagged events wrong unMatched Sta charge
891  h_etaTrack_wrongStaCharge_ZMuTrackTagged->Fill(ZtrackerDaughterEta); // eta of tagged track wrong unMatched Sta charge
892  h_phiTrack_wrongStaCharge_ZMuTrackTagged->Fill(ZtrackerDaughterPhi); // phi of tagged track wrong unMatched Sta charge
893  h_ptTrack_wrongStaCharge_ZMuTrackTagged->Fill(ZtrackerDaughterPt); // pt of tagged track wrong unMatched Sta charge
894  h_DRTrack_wrongStaCharge_ZMuTrackTagged->Fill(DRmuSta_trackOfZ); // DR between unMatched Sta and tracker for wrong sta charge
895  } else { // correct Sta charge
896  n_correctStaCharge_ZMuTracktagged++; // number of events correct charge for unMatched Sta
897  } // end if Sta charge check
898  } // end if StandAlone is present
899  } // end if zMuTrack tagged
900 
901  //*********************************************************************************************************************
902  // study of track charge mis-id and efficiency selecting ZMuSta events
903  // for Track charge mis-id just use unMatched standAlone muons trackerMuons that are standAlone Muons but no globalMuons
904  // ********************************************************************************************************************
905 
906  // loop on ZMuSta in order to recover some unMatched StandAlone
907  bool isZMuStaMatched=false;
908  LargerDRCut=2.; // larger DR cut to recover unMatched Sta
909  taggedZ_index = -1; // index of Z with minimum DR respect to unMatched Sta
910  taggedMuon_index = -1; // index of Sta muon with minimum DR respect to unMatched track
911  int n_ZMuStaTagged_inEvent = 0; // number of tagged Z in the event
912  if (zMuStandAlone->size() > 0) { // check ZMuSta just if no ZMuMu has been found in the event
913  event.getByLabel(zMuStandAloneMatchMap_, zMuStandAloneMatchMap);
914  for(unsigned int i = 0; i < zMuStandAlone->size(); ++i) { //loop on candidates
915  const Candidate & zMuStaCand = (*zMuStandAlone)[i]; //the candidate
916  CandidateBaseRef zMuStaCandRef = zMuStandAlone->refAt(i);
917 
918  GenParticleRef zMuStaMatch = (*zMuStandAloneMatchMap)[zMuStaCandRef];
919  if(zMuStaMatch.isNonnull()) { // ZMuSta Macthed
921  isZMuStaMatched = true;
922  }
923 
924  double m = zMuStaCand.mass();
925  CandidateBaseRef zglobalDaughter = zMuStaCand.daughter(0)->masterClone();
926  CandidateBaseRef zstandaloneDaughter = zMuStaCand.daughter(1)->masterClone();
927  int iglb = 0;
928  int ista = 1;
929  if (zglobalDaughter->isGlobalMuon()==0 && zstandaloneDaughter->isGlobalMuon()==1) { // invert definition
930  CandidateBaseRef buffer = zglobalDaughter;
931  zglobalDaughter = zstandaloneDaughter;
932  zstandaloneDaughter = buffer;
933  iglb = 1;
934  ista = 0;
935  }
936  TrackRef zglobalDaughter_StaComponentRef = zMuStaCand.daughter(iglb)->get<TrackRef,reco::StandAloneMuonTag>();
937  // standalone part of global component of ZMuMu
938  TrackRef zglobalDaughter_TrackComponentRef = zMuStaCand.daughter(iglb)->get<TrackRef>();
939  // track part Of the global component of ZMuMu
940  TrackRef zstaDaughter_StaComponentRef = zMuStaCand.daughter(ista)->get<TrackRef,reco::StandAloneMuonTag>();
941  // standalone part of global component of ZMuMu
942  TrackRef zstaDaughter_TrackComponentRef = zMuStaCand.daughter(ista)->get<TrackRef>();
943  // track part Of the global component of ZMuMu
944  double ZglobalDaughterPt = zglobalDaughter->pt();
945  double ZglobalDaughterEta = zglobalDaughter->eta();
946 
947  double ZstaDaughter_StaComponentCharge = zstaDaughter_StaComponentRef->charge();
948  double ZstaDaughter_StaComponentPt = zstaDaughter_StaComponentRef->pt();
949  double ZstaDaughter_StaComponentEta = zstaDaughter_StaComponentRef->eta();
950  double ZstaDaughter_StaComponentPhi = zstaDaughter_StaComponentRef->phi();
951  double ZstaDaughter_TrackComponentCharge = zstaDaughter_TrackComponentRef->charge();
952 
953  double ZglobalDaughter_StaComponentCharge = zglobalDaughter_StaComponentRef->charge();
954  double ZglobalDaughter_TrackComponentCharge = zglobalDaughter_TrackComponentRef->charge();
955 
956  // cynematical cuts for ZMuSta
957  bool etaCut = false;
958  bool ptCut = false;
959  // bool isoCut = false;
960  bool massCut = false;
961  if (abs(ZglobalDaughterEta)<etamax_ && abs(ZstaDaughter_StaComponentEta)<etamax_) etaCut = true;
962  if (ZglobalDaughterPt>ptmin_ && ZstaDaughter_StaComponentPt>ptmin_) ptCut = true;
963  if (m>massMin_ && m<massMax_) massCut = true; // dovrei usare la massa fatta con la sola parte sta
964  // (Se è anche trackerMu non è cosi')
965  if (noCut_) {
966  etaCut = true;
967  ptCut = true;
968  massCut = true;
969  }
970  if (etaCut && ptCut && massCut && ZglobalDaughter_StaComponentCharge == ZglobalDaughter_TrackComponentCharge &&
971  ZglobalDaughter_StaComponentCharge != ZstaDaughter_StaComponentCharge) { // cynematic cuts and global charge consistent and opposite sta charge
972  n_ZMuStaTagged_inEvent++;
973  if (isZMuStaMatched) n_ZMuStaTaggedMatched++;
974  // posso inserire istogrammi eta e pt track per studio Sta efficiency
975  // ...
976  if (zstandaloneDaughter->isStandAloneMuon()==1 && zstandaloneDaughter->isTrackerMuon()==1) { // track matched
978  h_zMuStaMass_ZMuStaTagged->Fill(m); // inv mass ZMuSta for tagged events
979  h_etaSta_ZMuStaTagged->Fill(ZstaDaughter_StaComponentEta); // eta of tagged sta
980  h_phiSta_ZMuStaTagged->Fill(ZstaDaughter_StaComponentPhi); // phi of tagged sta
981  h_ptSta_ZMuStaTagged->Fill(ZstaDaughter_StaComponentPt); // pt of tagged sta
982 
983  // check Track charge
984  if (ZstaDaughter_StaComponentCharge != ZstaDaughter_TrackComponentCharge) { // wrong Trk charge
985  n_wrongTrkCharge_ZMuStatagged++; // number of events wrong track charge for unMatched track
986  h_zMuStaMass_wrongTrkCharge_ZMuStaTagged->Fill(m); // inv mass ZMuSta for tagged evts wrong unMatched track charge
987  h_etaSta_wrongTrkCharge_ZMuStaTagged->Fill(ZstaDaughter_StaComponentEta); // eta of tagged sta wrong unMatched track charge
988  h_phiSta_wrongTrkCharge_ZMuStaTagged->Fill(ZstaDaughter_StaComponentPhi); // phi of tagged sta wrong unMatched track charge
989  h_ptSta_wrongTrkCharge_ZMuStaTagged->Fill(ZstaDaughter_StaComponentPt); // pt of tagged sta wrong unMatched track charge
990  } else { // correct Sta charge
991  n_correctTrkCharge_ZMuStatagged++; // number of events correct charge for unMatched Sta
992  } // end if Sta charge check
993 
994  } else { // tracker inefficient
996  }
997  } // end cynematic cuts
998  if (n_ZMuStaTagged_inEvent==0) {
999  }
1000 
1001 
1002  } // end loop on zMuSta candidates
1003  } // end check ZMuSta size
1004 
1005 } // end analyze
int i
Definition: DBlmapReader.cc:9
float getParticleEta(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
TH1D * h_etaSta_wrongTrkCharge_ZMuMuTagged
TH1D * h_etaSta_wrongTrkCharge_ZMuStaTagged
edm::InputTag zMuTrackMatchMap_
TH1D * h_TrackerMuonEtaMinusGenEta
TH1D * h_phiSta_wrongTrkCharge_ZMuMuTagged
edm::InputTag zMuTrack_
TH1D * h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged
virtual double pt() const =0
transverse momentum
TH1D * h_GlobalMuonStaComponentPtMinusGenPt
TH1D * h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged
virtual double mass() const =0
mass
edm::InputTag zMuStandAlone_
stand alone muon component tag
Definition: RecoCandidate.h:76
virtual TrackRef track() const
reference to a Track
Definition: Muon.h:39
#define abs(x)
Definition: mlp_lapack.h:159
TH1D * h_DRTrack_wrongStaCharge_ZMuTrackTagged
TH1D * h_zMuTrackMass_ZMuTrackTagged
TH2D * h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged
TH1D * h_GlobalMuonStaComponentEtaMinusGenEta
bool check_ifZmumu(const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
edm::InputTag zMuStandAloneMatchMap_
TH1D * h_n_globalMuon_perEvent_MCmatch
edm::InputTag tracks_
TH2D * h_DPtTrackGenvsPtGen_ZMuMuTagged
float getParticlePt(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
TH2D * h_DPtGlobalStaComponentGenvsPtGen
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
TH1D * h_ptTrack_wrongStaCharge_ZMuMuTagged
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:249
TH1D * h_etaTrack_wrongStaCharge_ZMuMuTagged
TH1D * h_n_trackerStaOnlyMuon_perEvent_MCmatch
edm::InputTag muonIso_
TH1D * h_n_trackerStaOnlyMuon_perEvent
TH1D * h_zMuStaMass_correctStaCharge_ZMuMuTagged
TH1D * h_zMuStaMass_wrongTrkCharge_ZMuMuTagged
TH2D * h_DPtGlobalGenvsEtaGen_ZMuMuTagged
virtual bool isStandAloneMuon() const =0
TH1D * h_n_trackerOnlyMuon_perEvent
TH1D * h_zMuStaMass_wrongTrkCharge_ZMuStaTagged
TH2D * h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged
int j
Definition: DBlmapReader.cc:9
TH1D * h_DRSta_wrongTrkCharge_ZMuMuTagged
TH2D * h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged
virtual int charge() const =0
electric charge
TH2D * h_DPtTrackGenvsEtaGen_ZMuMuTagged
TH1D * h_n_staOnlyMuon_perEvent_MCmatch
edm::InputTag genParticles_
TH1D * h_GlobalMuonEtaMinusGenEta_ZMuMuTagged
TH1D * h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged
edm::InputTag muons_
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
TH2D * h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged
TH1D * h_phiSta_wrongTrkCharge_ZMuStaTagged
TH1D * h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged
TH2D * h_DPtGlobalGenvsPtGen_ZMuMuTagged
TH1D * h_TrackerMuonChargeTimeGenCharge
conbined muon component tag
Definition: RecoCandidate.h:78
tuple tracks
Definition: testEve_cfg.py:39
TH1D * h_n_trackerOnlyMuon_perEvent_MCmatch
TH1D * h_DRTrack_wrongStaCharge_ZMuMuTagged
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:14
TH1D * h_GlobalMuonPtMinusGenPt_ZMuMuTagged
TH1D * h_ptSta_wrongTrkCharge_ZMuStaTagged
TH1D * h_ptSta_wrongTrkCharge_ZMuMuTagged
tuple muons
Definition: patZpeak.py:38
edm::InputTag zMuMu_
TH1D * h_GlobalMuonChargeTimeGenCharge
T get() const
get a component
Definition: Candidate.h:217
TH1D * h_zMuMuMassSameSign_MCmatch
TH1D * h_zMuTrackMass_wrongStaCharge_ZMuMuTagged
TH1D * h_etaTrack_wrongStaCharge_ZMuTrackTagged
TH2D * h_DEtaGlobalGenvsEtaGen_ZMuMuTagged
TH2D * h_DEtaGlobalStaComponentGenvsEtaGen
TH1D * h_phiTrack_wrongStaCharge_ZMuTrackTagged
virtual bool isTrackerMuon() const =0
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:26
edm::InputTag zMuMuMatchMap_
TH2D * h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged
tuple zMuMu
zMuMu vector of PSet is common to all categories except zMuTrk category
Particle::LorentzVector getParticleP4(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
TH1D * h_ptTrack_wrongStaCharge_ZMuTrackTagged
virtual double phi() const =0
momentum azimuthal angle
virtual double eta() const =0
momentum pseudorapidity
edm::InputTag muonMatchMap_
virtual bool isGlobalMuon() const =0
virtual const CandidateBaseRef & masterClone() const =0
TH1D * h_phiTrack_wrongStaCharge_ZMuMuTagged
virtual TrackRef standAloneMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:42
bool ZMuMuPerformances::check_ifZmumu ( const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 1007 of file ZMuMuPerformances.cc.

References reco::Candidate::pdgId().

Referenced by analyze().

1008 {
1009  int partId0 = dauGen0->pdgId();
1010  int partId1 = dauGen1->pdgId();
1011  int partId2 = dauGen2->pdgId();
1012  bool muplusFound=false;
1013  bool muminusFound=false;
1014  bool ZFound=false;
1015  if (partId0==13 || partId1==13 || partId2==13) muminusFound=true;
1016  if (partId0==-13 || partId1==-13 || partId2==-13) muplusFound=true;
1017  if (partId0==23 || partId1==23 || partId2==23) ZFound=true;
1018  return muplusFound*muminusFound*ZFound;
1019 }
virtual int pdgId() const =0
PDG identifier.
void ZMuMuPerformances::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 1155 of file ZMuMuPerformances.cc.

References gather_cfg::cout, n_correctStaCharge_ZMuMutagged, n_correctStaCharge_ZMuTracktagged, n_correctTrkCharge_ZMuMutagged, n_correctTrkCharge_ZMuStatagged, n_goodSta_ZMuMutagged, n_goodSta_ZMuStatagged, n_goodTrack_ZMuMutagged, n_goodTrack_ZMuTracktagged, n_StaNotFound_ZMuTracktagged, n_TrkNotFound_ZMuStatagged, n_wrongStaCharge_ZMuMutagged, n_wrongStaCharge_ZMuTracktagged, n_wrongTrkCharge_ZMuMutagged, n_wrongTrkCharge_ZMuStatagged, n_ZMuStaTaggedMatched, numberOfMatchedZMuSta_, nZMuMuSameSign, nZMuMuSameSign_mcMatched, totalNumberOfZfound, and totalNumberOfZpassed.

1155  {
1156 
1157  cout << "------------------------------------ Counters --------------------------------" << endl;
1158  cout << "totalNumberOfZfound = " << totalNumberOfZfound << endl;
1159  cout << "totalNumberOfZpassed = " << totalNumberOfZpassed << endl;
1160  cout << "Number Of ZMuMu Same Sign (no cuts) " << nZMuMuSameSign << endl;
1161  cout << "Number Of ZMuMu Same Sign (no cuts) MC matched " << nZMuMuSameSign_mcMatched << endl;
1162 
1163  cout << "------------------------------------ Counters for standAlone charge mis-id studies --------------------------------" << endl;
1164  cout << " number of goodTracks tagged for ZMuMu collection = " << n_goodTrack_ZMuMutagged << endl;
1165  cout << " number of goodTracks tagged for ZMuMu collection (correct Sta charge) = " << n_correctStaCharge_ZMuMutagged << endl;
1166  cout << " number of goodTracks tagged for ZMuMu collection (wrong Sta charge) = " << n_wrongStaCharge_ZMuMutagged << endl<<endl;
1167  cout << " number of goodTracks tagged for ZMuTrack collection unMatchedSTA = " << n_goodTrack_ZMuTracktagged << endl;
1168  cout << " number of goodTracks tagged for ZMuTrack collection unMatchedSTA (correct Sta charge) = " << n_correctStaCharge_ZMuTracktagged << endl;
1169  cout << " number of goodTracks tagged for ZMuTrack collection unMatchedSTA (wrong Sta charge) = " << n_wrongStaCharge_ZMuTracktagged << endl<<endl;
1170  cout << " number of goodTracks tagged for ZMuTrack collection (No STA found) = " << n_StaNotFound_ZMuTracktagged << endl;
1171 
1172  cout << "------------------------------------ Counters for Track charge mis-id studies --------------------------------" << endl;
1173  cout << " number of goodStandAlone tagged for ZMuMu collection = " << n_goodSta_ZMuMutagged << endl;
1174  cout << " number of goodStandAlone tagged for ZMuMu collection (correct Trk charge) = " << n_correctTrkCharge_ZMuMutagged << endl;
1175  cout << " number of goodStandAlone tagged for ZMuMu collection (wrong Trk charge) = " << n_wrongTrkCharge_ZMuMutagged << endl<<endl;
1176  cout << " number of goodSta tagged for ZMuSta collection unMatchedTrk = " << n_goodSta_ZMuStatagged << endl;
1177  cout << " number of goodSta tagged for ZMuSta collection unMatchedTrk (correct Trk charge) = " << n_correctTrkCharge_ZMuStatagged << endl;
1178  cout << " number of goodSta tagged for ZMuSta collection unMatchedTrk (wrong Trk charge) = " << n_wrongTrkCharge_ZMuStatagged << endl<<endl;
1179  cout << " number of goodSta tagged for ZMuSta collection (No Trk found) = " << n_TrkNotFound_ZMuStatagged << endl;
1180  cout << " number of ZMuSta mactched = " << numberOfMatchedZMuSta_ << endl;
1181  cout << " number of ZMuSta Tagged matched = " << n_ZMuStaTaggedMatched << endl;
1182 }
tuple cout
Definition: gather_cfg.py:41
float ZMuMuPerformances::getParticleEta ( const int  ipart,
const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 1054 of file ZMuMuPerformances.cc.

References abs, reco::Candidate::daughter(), reco::Candidate::eta(), gen::k, reco::Candidate::numberOfDaughters(), reco::Candidate::pdgId(), and reco::Candidate::status().

Referenced by analyze().

1055 {
1056  int partId0 = dauGen0->pdgId();
1057  int partId1 = dauGen1->pdgId();
1058  int partId2 = dauGen2->pdgId();
1059  float etapart=0.;
1060  if (partId0 == ipart) {
1061  for(unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) {
1062  const Candidate * dauMuGen = dauGen0->daughter(k);
1063  if(dauMuGen->pdgId() == ipart && dauMuGen->status() ==1) {
1064  etapart = dauMuGen->eta();
1065  }
1066  }
1067  }
1068  if (partId1 == ipart) {
1069  for(unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) {
1070  const Candidate * dauMuGen = dauGen1->daughter(k);
1071  if(dauMuGen->pdgId() == ipart && dauMuGen->status() ==1) {
1072  etapart = dauMuGen->eta();
1073  }
1074  }
1075  }
1076  if (partId2 == ipart) {
1077  for(unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) {
1078  const Candidate * dauMuGen = dauGen2->daughter(k);
1079  if(abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() ==1) {
1080  etapart = dauMuGen->eta();
1081  }
1082  }
1083  }
1084  return etapart;
1085 }
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
virtual int status() const =0
status word
#define abs(x)
Definition: mlp_lapack.h:159
virtual size_type numberOfDaughters() const =0
number of daughters
int k[5][pyjets_maxn]
virtual int pdgId() const =0
PDG identifier.
virtual double eta() const =0
momentum pseudorapidity
Particle::LorentzVector ZMuMuPerformances::getParticleP4 ( const int  ipart,
const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 1120 of file ZMuMuPerformances.cc.

References abs, reco::Candidate::daughter(), gen::k, reco::Candidate::numberOfDaughters(), reco::Candidate::p4(), reco::Candidate::pdgId(), and reco::Candidate::status().

Referenced by analyze().

1121 {
1122  int partId0 = dauGen0->pdgId();
1123  int partId1 = dauGen1->pdgId();
1124  int partId2 = dauGen2->pdgId();
1125  Particle::LorentzVector p4part(0.,0.,0.,0.);
1126  if (partId0 == ipart) {
1127  for(unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) {
1128  const Candidate * dauMuGen = dauGen0->daughter(k);
1129  if(dauMuGen->pdgId() == ipart && dauMuGen->status() ==1) {
1130  p4part = dauMuGen->p4();
1131  }
1132  }
1133  }
1134  if (partId1 == ipart) {
1135  for(unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) {
1136  const Candidate * dauMuGen = dauGen1->daughter(k);
1137  if(dauMuGen->pdgId() == ipart && dauMuGen->status() ==1) {
1138  p4part = dauMuGen->p4();
1139  }
1140  }
1141  }
1142  if (partId2 == ipart) {
1143  for(unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) {
1144  const Candidate * dauMuGen = dauGen2->daughter(k);
1145  if(abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() ==1) {
1146  p4part = dauMuGen->p4();
1147  }
1148  }
1149  }
1150  return p4part;
1151 }
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
virtual int status() const =0
status word
#define abs(x)
Definition: mlp_lapack.h:159
virtual size_type numberOfDaughters() const =0
number of daughters
int k[5][pyjets_maxn]
virtual int pdgId() const =0
PDG identifier.
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:26
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
float ZMuMuPerformances::getParticlePhi ( const int  ipart,
const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 1087 of file ZMuMuPerformances.cc.

References abs, reco::Candidate::daughter(), gen::k, reco::Candidate::numberOfDaughters(), reco::Candidate::pdgId(), reco::Candidate::phi(), and reco::Candidate::status().

1088 {
1089  int partId0 = dauGen0->pdgId();
1090  int partId1 = dauGen1->pdgId();
1091  int partId2 = dauGen2->pdgId();
1092  float phipart=0.;
1093  if (partId0 == ipart) {
1094  for(unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) {
1095  const Candidate * dauMuGen = dauGen0->daughter(k);
1096  if(dauMuGen->pdgId() == ipart && dauMuGen->status() ==1) {
1097  phipart = dauMuGen->phi();
1098  }
1099  }
1100  }
1101  if (partId1 == ipart) {
1102  for(unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) {
1103  const Candidate * dauMuGen = dauGen1->daughter(k);
1104  if(dauMuGen->pdgId() == ipart && dauMuGen->status() ==1) {
1105  phipart = dauMuGen->phi();
1106  }
1107  }
1108  }
1109  if (partId2 == ipart) {
1110  for(unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) {
1111  const Candidate * dauMuGen = dauGen2->daughter(k);
1112  if(abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() ==1) {
1113  phipart = dauMuGen->phi();
1114  }
1115  }
1116  }
1117  return phipart;
1118 }
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
virtual int status() const =0
status word
#define abs(x)
Definition: mlp_lapack.h:159
virtual size_type numberOfDaughters() const =0
number of daughters
int k[5][pyjets_maxn]
virtual int pdgId() const =0
PDG identifier.
virtual double phi() const =0
momentum azimuthal angle
float ZMuMuPerformances::getParticlePt ( const int  ipart,
const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 1021 of file ZMuMuPerformances.cc.

References abs, reco::Candidate::daughter(), gen::k, reco::Candidate::numberOfDaughters(), reco::Candidate::pdgId(), reco::Candidate::pt(), and reco::Candidate::status().

Referenced by analyze().

1022 {
1023  int partId0 = dauGen0->pdgId();
1024  int partId1 = dauGen1->pdgId();
1025  int partId2 = dauGen2->pdgId();
1026  float ptpart=0.;
1027  if (partId0 == ipart) {
1028  for(unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) {
1029  const Candidate * dauMuGen = dauGen0->daughter(k);
1030  if(dauMuGen->pdgId() == ipart && dauMuGen->status() ==1) {
1031  ptpart = dauMuGen->pt();
1032  }
1033  }
1034  }
1035  if (partId1 == ipart) {
1036  for(unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) {
1037  const Candidate * dauMuGen = dauGen1->daughter(k);
1038  if(dauMuGen->pdgId() == ipart && dauMuGen->status() ==1) {
1039  ptpart = dauMuGen->pt();
1040  }
1041  }
1042  }
1043  if (partId2 == ipart) {
1044  for(unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) {
1045  const Candidate * dauMuGen = dauGen2->daughter(k);
1046  if(abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() ==1) {
1047  ptpart = dauMuGen->pt();
1048  }
1049  }
1050  }
1051  return ptpart;
1052 }
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
virtual double pt() const =0
transverse momentum
virtual int status() const =0
status word
#define abs(x)
Definition: mlp_lapack.h:159
virtual size_type numberOfDaughters() const =0
number of daughters
int k[5][pyjets_maxn]
virtual int pdgId() const =0
PDG identifier.

Member Data Documentation

double ZMuMuPerformances::etamax_
private

Definition at line 58 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

double ZMuMuPerformances::etamaxMinus_
private

Definition at line 56 of file ZMuMuPerformances.cc.

double ZMuMuPerformances::etamaxPlus_
private

Definition at line 55 of file ZMuMuPerformances.cc.

Referenced by ZMuMuPerformances().

double ZMuMuPerformances::etaminMinus_
private

Definition at line 56 of file ZMuMuPerformances.cc.

double ZMuMuPerformances::etaminPlus_
private

Definition at line 55 of file ZMuMuPerformances.cc.

edm::InputTag ZMuMuPerformances::genParticles_
private

Definition at line 51 of file ZMuMuPerformances.cc.

Referenced by analyze().

reco::CandidateBaseRef ZMuMuPerformances::globalMuonCandRef_
private

Definition at line 60 of file ZMuMuPerformances.cc.

TH2D* ZMuMuPerformances::h_DEtaGlobalGenvsEtaGen
private

Definition at line 77 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D* ZMuMuPerformances::h_DEtaGlobalGenvsEtaGen_ZMuMuTagged
private

Definition at line 83 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D * ZMuMuPerformances::h_DEtaGlobalStaComponentGenvsEtaGen
private

Definition at line 77 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D* ZMuMuPerformances::h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged
private

Definition at line 84 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D* ZMuMuPerformances::h_DPtGlobalGenvsEtaGen
private

Definition at line 78 of file ZMuMuPerformances.cc.

TH2D* ZMuMuPerformances::h_DPtGlobalGenvsEtaGen_ZMuMuTagged
private

Definition at line 85 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D * ZMuMuPerformances::h_DPtGlobalGenvsPtGen
private

Definition at line 77 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D * ZMuMuPerformances::h_DPtGlobalGenvsPtGen_ZMuMuTagged
private

Definition at line 83 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D * ZMuMuPerformances::h_DPtGlobalStaComponentGenvsEtaGen
private

Definition at line 78 of file ZMuMuPerformances.cc.

TH2D * ZMuMuPerformances::h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged
private

Definition at line 85 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D * ZMuMuPerformances::h_DPtGlobalStaComponentGenvsPtGen
private

Definition at line 77 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D * ZMuMuPerformances::h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged
private

Definition at line 84 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D * ZMuMuPerformances::h_DPtTrackGenvsEtaGen_ZMuMuTagged
private

Definition at line 86 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D* ZMuMuPerformances::h_DPtTrackGenvsPtGen_ZMuMuTagged
private

Definition at line 86 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_DRSta_wrongTrkCharge_ZMuMuTagged
private

Definition at line 103 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_DRSta_ZMuMuTagged
private

Definition at line 100 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_DRTrack_wrongStaCharge_ZMuMuTagged
private

Definition at line 92 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_DRTrack_wrongStaCharge_ZMuTrackTagged
private

Definition at line 109 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_DRTrack_ZMuMuTagged
private

Definition at line 89 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_DRTrack_ZMuTrackTagged
private

Definition at line 106 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_etaSta_wrongTrkCharge_ZMuMuTagged
private

Definition at line 102 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_etaSta_wrongTrkCharge_ZMuStaTagged
private

Definition at line 114 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_etaSta_ZMuMuTagged
private

Definition at line 100 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_etaSta_ZMuStaTagged
private

Definition at line 112 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_etaTrack_wrongStaCharge_ZMuMuTagged
private

Definition at line 91 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_etaTrack_wrongStaCharge_ZMuTrackTagged
private

Definition at line 108 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_etaTrack_ZMuMuTagged
private

Definition at line 89 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_etaTrack_ZMuTrackTagged
private

Definition at line 106 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_GlobalMuonChargeTimeGenCharge
private

Definition at line 73 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_GlobalMuonEtaMinusGenEta
private

Definition at line 75 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_GlobalMuonEtaMinusGenEta_ZMuMuTagged
private

Definition at line 80 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_GlobalMuonPtMinusGenPt
private

Definition at line 75 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_GlobalMuonPtMinusGenPt_ZMuMuTagged
private

Definition at line 81 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_GlobalMuonStaComponentEtaMinusGenEta
private

Definition at line 76 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged
private

Definition at line 82 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_GlobalMuonStaComponentPtMinusGenPt
private

Definition at line 76 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged
private

Definition at line 82 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_n_globalMuon_perEvent
private

Definition at line 64 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_n_globalMuon_perEvent_MCmatch
private

Definition at line 65 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_n_staOnlyMuon_perEvent
private

Definition at line 64 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_n_staOnlyMuon_perEvent_MCmatch
private

Definition at line 65 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_n_trackerOnlyMuon_perEvent
private

Definition at line 64 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_n_trackerOnlyMuon_perEvent_MCmatch
private

Definition at line 65 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_n_trackerStaOnlyMuon_perEvent
private

Definition at line 64 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_n_trackerStaOnlyMuon_perEvent_MCmatch
private

Definition at line 66 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_n_tracks_perEvent
private

Definition at line 66 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_n_zMuMu_perEvent
private

Definition at line 67 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_n_zMuSta_perEvent
private

Definition at line 67 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_n_zMuTrack_perEvent
private

Definition at line 67 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_phiSta_wrongTrkCharge_ZMuMuTagged
private

Definition at line 103 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_phiSta_wrongTrkCharge_ZMuStaTagged
private

Definition at line 115 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_phiSta_ZMuMuTagged
private

Definition at line 100 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_phiSta_ZMuStaTagged
private

Definition at line 112 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_phiTrack_wrongStaCharge_ZMuMuTagged
private

Definition at line 92 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_phiTrack_wrongStaCharge_ZMuTrackTagged
private

Definition at line 109 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_phiTrack_ZMuMuTagged
private

Definition at line 89 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_phiTrack_ZMuTrackTagged
private

Definition at line 106 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptSta_wrongTrkCharge_ZMuMuTagged
private

Definition at line 103 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptSta_wrongTrkCharge_ZMuStaTagged
private

Definition at line 115 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptSta_ZMuMuTagged
private

Definition at line 100 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptSta_ZMuStaTagged
private

Definition at line 112 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged
private

Definition at line 95 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D* ZMuMuPerformances::h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged
private

Definition at line 96 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH2D* ZMuMuPerformances::h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged
private

Definition at line 97 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptTrack_wrongStaCharge_ZMuMuTagged
private

Definition at line 92 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptTrack_wrongStaCharge_ZMuTrackTagged
private

Definition at line 109 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptTrack_ZMuMuTagged
private

Definition at line 89 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_ptTrack_ZMuTrackTagged
private

Definition at line 106 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_TrackerMuonChargeTimeGenCharge
private

Definition at line 73 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_TrackerMuonEtaMinusGenEta
private

Definition at line 75 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_TrackerMuonPtMinusGenPt
private

Definition at line 75 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_zMuMuMassOppositeSign
private

Definition at line 70 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuMuMassSameSign
private

Definition at line 70 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D * ZMuMuPerformances::h_zMuMuMassSameSign_MCmatch
private

Definition at line 70 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuStaMass_correctStaCharge_ZMuMuTagged
private

Definition at line 95 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuStaMass_wrongTrkCharge_ZMuMuTagged
private

Definition at line 102 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuStaMass_wrongTrkCharge_ZMuStaTagged
private

Definition at line 114 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuStaMass_ZMuMuTagged
private

Definition at line 100 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuStaMass_ZMuStaTagged
private

Definition at line 112 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuTrackMass_wrongStaCharge_ZMuMuTagged
private

Definition at line 91 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged
private

Definition at line 108 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuTrackMass_ZMuMuTagged
private

Definition at line 89 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

TH1D* ZMuMuPerformances::h_zMuTrackMass_ZMuTrackTagged
private

Definition at line 106 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

double ZMuMuPerformances::isomax_
private

Definition at line 56 of file ZMuMuPerformances.cc.

Referenced by ZMuMuPerformances().

double ZMuMuPerformances::isoMax_
private

Definition at line 58 of file ZMuMuPerformances.cc.

Referenced by ZMuMuPerformances().

double ZMuMuPerformances::massMax_
private

Definition at line 58 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

double ZMuMuPerformances::massMin_
private

Definition at line 58 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

edm::InputTag ZMuMuPerformances::muonIso_
private

Definition at line 49 of file ZMuMuPerformances.cc.

Referenced by analyze().

edm::InputTag ZMuMuPerformances::muonMatchMap_
private

Definition at line 49 of file ZMuMuPerformances.cc.

Referenced by analyze().

edm::InputTag ZMuMuPerformances::muons_
private

Definition at line 49 of file ZMuMuPerformances.cc.

Referenced by analyze().

int ZMuMuPerformances::n_correctStaCharge_ZMuMutagged
private

Definition at line 126 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_correctStaCharge_ZMuTracktagged
private

Definition at line 134 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_correctTrkCharge_ZMuMutagged
private

Definition at line 130 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_correctTrkCharge_ZMuStatagged
private

Definition at line 139 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_goodSta_ZMuMutagged
private

Definition at line 129 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_goodSta_ZMuStatagged
private

Definition at line 138 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_goodTrack_ZMuMutagged
private

Definition at line 125 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_goodTrack_ZMuTracktagged
private

Definition at line 133 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_MultipleGoodZMuTrack
private

Definition at line 144 of file ZMuMuPerformances.cc.

Referenced by ZMuMuPerformances().

int ZMuMuPerformances::n_OneGoodZMuTrack
private

Definition at line 143 of file ZMuMuPerformances.cc.

Referenced by ZMuMuPerformances().

int ZMuMuPerformances::n_StaNotFound_ZMuTracktagged
private

Definition at line 136 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_TrkNotFound_ZMuStatagged
private

Definition at line 141 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_wrongStaCharge_ZMuMutagged
private

Definition at line 127 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_wrongStaCharge_ZMuTracktagged
private

Definition at line 135 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_wrongTrkCharge_ZMuMutagged
private

Definition at line 131 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_wrongTrkCharge_ZMuStatagged
private

Definition at line 140 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::n_ZMuStaTaggedMatched
private

Definition at line 146 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

bool ZMuMuPerformances::noCut_
private

Definition at line 53 of file ZMuMuPerformances.cc.

Referenced by analyze().

int ZMuMuPerformances::numberOfMatchedZMuSta_
private

Definition at line 145 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::nZMuMuSameSign
private

Definition at line 122 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::nZMuMuSameSign_mcMatched
private

Definition at line 123 of file ZMuMuPerformances.cc.

Referenced by analyze(), endJob(), and ZMuMuPerformances().

OverlapChecker ZMuMuPerformances::overlap_
private

Definition at line 61 of file ZMuMuPerformances.cc.

double ZMuMuPerformances::ptmaxMinus_
private

Definition at line 56 of file ZMuMuPerformances.cc.

double ZMuMuPerformances::ptmaxPlus_
private

Definition at line 55 of file ZMuMuPerformances.cc.

double ZMuMuPerformances::ptmin_
private

Definition at line 58 of file ZMuMuPerformances.cc.

Referenced by analyze(), and ZMuMuPerformances().

double ZMuMuPerformances::ptminMinus_
private

Definition at line 56 of file ZMuMuPerformances.cc.

double ZMuMuPerformances::ptminPlus_
private

Definition at line 55 of file ZMuMuPerformances.cc.

Referenced by ZMuMuPerformances().

reco::CandidateBaseRef ZMuMuPerformances::standAloneMuonCandRef_
private

Definition at line 60 of file ZMuMuPerformances.cc.

int ZMuMuPerformances::totalNumberOfZfound
private

Definition at line 119 of file ZMuMuPerformances.cc.

Referenced by endJob(), and ZMuMuPerformances().

int ZMuMuPerformances::totalNumberOfZpassed
private

Definition at line 120 of file ZMuMuPerformances.cc.

Referenced by endJob(), and ZMuMuPerformances().

edm::InputTag ZMuMuPerformances::trackIso_
private

Definition at line 50 of file ZMuMuPerformances.cc.

reco::CandidateBaseRef ZMuMuPerformances::trackMuonCandRef_
private

Definition at line 60 of file ZMuMuPerformances.cc.

edm::InputTag ZMuMuPerformances::tracks_
private

Definition at line 50 of file ZMuMuPerformances.cc.

Referenced by analyze().

double ZMuMuPerformances::zMassMax_
private

Definition at line 54 of file ZMuMuPerformances.cc.

Referenced by ZMuMuPerformances().

double ZMuMuPerformances::zMassMin_
private

Definition at line 54 of file ZMuMuPerformances.cc.

Referenced by ZMuMuPerformances().

edm::InputTag ZMuMuPerformances::zMuMu_
private

Definition at line 46 of file ZMuMuPerformances.cc.

Referenced by analyze().

edm::InputTag ZMuMuPerformances::zMuMuMatchMap_
private

Definition at line 46 of file ZMuMuPerformances.cc.

Referenced by analyze().

edm::InputTag ZMuMuPerformances::zMuStandAlone_
private

Definition at line 48 of file ZMuMuPerformances.cc.

Referenced by analyze().

edm::InputTag ZMuMuPerformances::zMuStandAloneMatchMap_
private

Definition at line 48 of file ZMuMuPerformances.cc.

Referenced by analyze().

edm::InputTag ZMuMuPerformances::zMuTrack_
private

Definition at line 47 of file ZMuMuPerformances.cc.

Referenced by analyze().

edm::InputTag ZMuMuPerformances::zMuTrackMatchMap_
private

Definition at line 47 of file ZMuMuPerformances.cc.

Referenced by analyze().