CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
ZMuMu_efficiencyAnalyzer Class Reference
Inheritance diagram for ZMuMu_efficiencyAnalyzer:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 ZMuMu_efficiencyAnalyzer (const edm::ParameterSet &pset)
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &setup) override
 
bool check_ifZmumu (const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2)
 
void endJob () override
 
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

bool bothMuons_
 
unsigned int etaBins
 
double etamax_
 
double etaRange [7]
 
EDGetTokenT< GenParticleCollectiongenParticlesToken_
 
reco::CandidateBaseRef globalMuonCandRef_
 
TH1D * h_zmm1HLTminus_mass
 
TH1D * h_zmm1HLTplus_mass
 
TH1D * h_zmm2HLT_mass
 
TH1D * h_zmm_mass
 
TH1D * h_zmmNotIsominus_mass
 
TH1D * h_zmmNotIsoplus_mass
 
TH1D * h_zmsminus_mass
 
TH1D * h_zmsplus_mass
 
TH1D * h_zmtminus_mass
 
TH1D * h_zmtplus_mass
 
vector< TH1D * > hmumu1HLTminus_eta
 
vector< TH1D * > hmumu1HLTminus_pt
 
vector< TH1D * > hmumu1HLTplus_eta
 
vector< TH1D * > hmumu1HLTplus_pt
 
vector< TH1D * > hmumu2HLTminus_eta
 
vector< TH1D * > hmumu2HLTminus_pt
 
vector< TH1D * > hmumu2HLTplus_eta
 
vector< TH1D * > hmumu2HLTplus_pt
 
vector< TH1D * > hmumuNotIsominus_eta
 
vector< TH1D * > hmumuNotIsominus_pt
 
vector< TH1D * > hmumuNotIsoplus_eta
 
vector< TH1D * > hmumuNotIsoplus_pt
 
vector< TH1D * > hmustaminus_eta
 
vector< TH1D * > hmustaminus_pt
 
vector< TH1D * > hmustaplus_eta
 
vector< TH1D * > hmustaplus_pt
 
vector< TH1D * > hmutrackminus_eta
 
vector< TH1D * > hmutrackminus_pt
 
vector< TH1D * > hmutrackplus_eta
 
vector< TH1D * > hmutrackplus_pt
 
double isoMax_
 
double massMax_
 
double massMin_
 
EDGetTokenT< CandidateViewmuonsToken_
 
int nGlobalMuonsMatched_passed
 
OverlapChecker overlap_
 
EDGetTokenT< VertexCollectionprimaryVerticesToken_
 
unsigned int ptBins
 
double ptmin_
 
double ptRange [5]
 
reco::CandidateBaseRef standAloneMuonCandRef_
 
reco::CandidateBaseRef trackMuonCandRef_
 
EDGetTokenT< CandidateViewtracksToken_
 
EDGetTokenT< GenParticleMatchzMuMuMatchMapToken_
 
EDGetTokenT< CandidateViewzMuMuToken_
 
EDGetTokenT< GenParticleMatchzMuStandAloneMatchMapToken_
 
EDGetTokenT< CandidateViewzMuStandAloneToken_
 
EDGetTokenT< GenParticleMatchzMuTrackMatchMapToken_
 
EDGetTokenT< CandidateViewzMuTrackToken_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsInputProcessBlocks ()
 
static bool wantsProcessBlocks ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 47 of file ZMuMu_efficiencyAnalyzer.cc.

Constructor & Destructor Documentation

◆ ZMuMu_efficiencyAnalyzer()

ZMuMu_efficiencyAnalyzer::ZMuMu_efficiencyAnalyzer ( const edm::ParameterSet pset)

Definition at line 110 of file ZMuMu_efficiencyAnalyzer.cc.

111  : zMuMuToken_(consumes<CandidateView>(pset.getParameter<InputTag>("zMuMu"))),
112  zMuMuMatchMapToken_(mayConsume<GenParticleMatch>(pset.getParameter<InputTag>("zMuMuMatchMap"))),
113  zMuStandAloneToken_(consumes<CandidateView>(pset.getParameter<InputTag>("zMuStandAlone"))),
114  zMuStandAloneMatchMapToken_(mayConsume<GenParticleMatch>(pset.getParameter<InputTag>("zMuStandAloneMatchMap"))),
115  zMuTrackToken_(consumes<CandidateView>(pset.getParameter<InputTag>("zMuTrack"))),
116  zMuTrackMatchMapToken_(mayConsume<GenParticleMatch>(pset.getParameter<InputTag>("zMuTrackMatchMap"))),
117  muonsToken_(consumes<CandidateView>(pset.getParameter<InputTag>("muons"))),
118  tracksToken_(consumes<CandidateView>(pset.getParameter<InputTag>("tracks"))),
119  genParticlesToken_(consumes<GenParticleCollection>(pset.getParameter<InputTag>("genParticles"))),
120  primaryVerticesToken_(consumes<VertexCollection>(pset.getParameter<InputTag>("primaryVertices"))),
121 
122  bothMuons_(pset.getParameter<bool>("bothMuons")),
123 
124  etamax_(pset.getUntrackedParameter<double>("etamax")),
125  ptmin_(pset.getUntrackedParameter<double>("ptmin")),
126  massMin_(pset.getUntrackedParameter<double>("zMassMin")),
127  massMax_(pset.getUntrackedParameter<double>("zMassMax")),
128  isoMax_(pset.getUntrackedParameter<double>("isomax")) {
130 
131  // general histograms
132  h_zmm_mass = fs->make<TH1D>("zmm_mass", "zmumu mass", 100, 0., 200.);
133  h_zmm2HLT_mass = fs->make<TH1D>("zmm2HLT_mass", "zmumu 2HLT mass", 100, 0., 200.);
134  h_zmm1HLTplus_mass = fs->make<TH1D>("zmm1HLTplus_mass", "zmumu 1HLT plus mass", 100, 0., 200.);
135  h_zmmNotIsoplus_mass = fs->make<TH1D>("zmmNotIsoplus_mass", "zmumu a least One Not Iso plus mass", 100, 0., 200.);
136  h_zmsplus_mass = fs->make<TH1D>("zmsplus_mass", "zmusta plus mass", 100, 0., 200.);
137  h_zmtplus_mass = fs->make<TH1D>("zmtplus_mass", "zmutrack plus mass", 100, 0., 200.);
138  h_zmm1HLTminus_mass = fs->make<TH1D>("zmm1HLTminus_mass", "zmumu 1HLT minus mass", 100, 0., 200.);
139  h_zmmNotIsominus_mass = fs->make<TH1D>("zmmNotIsominus_mass", "zmumu a least One Not Iso minus mass", 100, 0., 200.);
140  h_zmsminus_mass = fs->make<TH1D>("zmsminus_mass", "zmusta minus mass", 100, 0., 200.);
141  h_zmtminus_mass = fs->make<TH1D>("zmtminus_mass", "zmutrack minus mass", 100, 0., 200.);
142 
143  cout << "primo" << endl;
144  // creating histograms for each Pt, eta interval
145 
146  TFileDirectory etaDirectory =
147  fs->mkdir("etaIntervals"); // in this directory will be saved all the histos of different eta intervals
148  TFileDirectory ptDirectory =
149  fs->mkdir("ptIntervals"); // in this directory will be saved all the histos of different pt intervals
150 
151  // binning of entries array (at moment defined by hand and not in cfg file)
152  etaBins = 6;
153  ptBins = 4;
154  double etaRangeTmp[7] = {-2., -1.2, -0.8, 0., 0.8, 1.2, 2.};
155  double ptRangeTmp[5] = {20., 40., 60., 80., 100.};
156  for (unsigned int i = 0; i <= etaBins; i++)
157  etaRange[i] = etaRangeTmp[i];
158  for (unsigned int i = 0; i <= ptBins; i++)
159  ptRange[i] = ptRangeTmp[i];
160 
161  // eta histograms creation
162  cout << "eta istograms creation " << endl;
163 
164  for (unsigned int i = 0; i < etaBins; i++) {
165  cout << " bin eta plus " << i << endl;
166  // muon plus
167  double range0 = etaRange[i];
168  double range1 = etaRange[i + 1];
169  std::string ap, bp;
170  ap = "zmumu2HLTplus_etaRange" + std::to_string(i);
171  bp = "zmumu2HLT plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
172  cout << ap << " " << bp << endl;
173  hmumu2HLTplus_eta.push_back(etaDirectory.make<TH1D>(ap.c_str(), bp.c_str(), 200, 0., 200.));
174  ap = "zmumu1HLTplus_etaRange" + std::to_string(i);
175  bp = "zmumu1HLT plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
176  cout << ap << " " << bp << endl;
177  hmumu1HLTplus_eta.push_back(etaDirectory.make<TH1D>(ap.c_str(), bp.c_str(), 200, 0., 200.));
178  ap = "zmustaplus_etaRange" + std::to_string(i);
179  bp = "zmusta plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
180  cout << ap << " " << bp << endl;
181  hmustaplus_eta.push_back(etaDirectory.make<TH1D>(ap.c_str(), bp.c_str(), 50, 0., 200.));
182  ap = "zmutrackplus_etaRange" + std::to_string(i);
183  bp = "zmutrack plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
184  cout << ap << " " << bp << endl;
185  hmutrackplus_eta.push_back(etaDirectory.make<TH1D>(ap.c_str(), bp.c_str(), 100, 0., 200.));
186  ap = "zmumuNotIsoplus_etaRange" + std::to_string(i);
187  bp = "zmumuNotIso plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
188  cout << ap << " " << bp << endl;
189  hmumuNotIsoplus_eta.push_back(etaDirectory.make<TH1D>(ap.c_str(), bp.c_str(), 100, 0., 200.));
190  // muon minus
191  cout << " bin eta minus " << i << endl;
192  std::string am, bm;
193  am = "zmumu2HLTminus_etaRange" + std::to_string(i);
194  bm = "zmumu2HLT minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
195  cout << am << " " << bm << endl;
196  hmumu2HLTminus_eta.push_back(etaDirectory.make<TH1D>(am.c_str(), bm.c_str(), 200, 0., 200.));
197  am = "zmumu1HLTminus_etaRange" + std::to_string(i);
198  bm = "zmumu1HLT minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
199  cout << am << " " << bm << endl;
200  hmumu1HLTminus_eta.push_back(etaDirectory.make<TH1D>(am.c_str(), bm.c_str(), 200, 0., 200.));
201  am = "zmustaminus_etaRange" + std::to_string(i);
202  bm = "zmusta minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
203  cout << am << " " << bm << endl;
204  hmustaminus_eta.push_back(etaDirectory.make<TH1D>(am.c_str(), bm.c_str(), 50, 0., 200.));
205  am = "zmutrackminus_etaRange" + std::to_string(i);
206  bm = "zmutrack minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
207  cout << am << " " << bm << endl;
208  hmutrackminus_eta.push_back(etaDirectory.make<TH1D>(am.c_str(), bm.c_str(), 100, 0., 200.));
209  am = "zmumuNotIsominus_etaRange" + std::to_string(i);
210  bm = "zmumuNotIso minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1);
211  cout << am << " " << bm << endl;
212  hmumuNotIsominus_eta.push_back(etaDirectory.make<TH1D>(am.c_str(), bm.c_str(), 100, 0., 200.));
213  }
214 
215  // pt histograms creation
216  cout << "pt istograms creation " << endl;
217 
218  for (unsigned int i = 0; i < ptBins; i++) {
219  double range0 = ptRange[i];
220  double range1 = ptRange[i + 1];
221  // muon plus
222  cout << " bin pt plus " << i << endl;
223  std::string ap1, bp1;
224  ap1 = "zmumu2HLTplus_ptRange" + std::to_string(i);
225  bp1 = "zmumu2HLT plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
226  cout << ap1 << " " << bp1 << endl;
227  hmumu2HLTplus_pt.push_back(ptDirectory.make<TH1D>(ap1.c_str(), bp1.c_str(), 200, 0., 200.));
228  ap1 = "zmumu1HLTplus_ptRange" + std::to_string(i);
229  bp1 = "zmumu1HLT plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
230  cout << ap1 << " " << bp1 << endl;
231  hmumu1HLTplus_pt.push_back(ptDirectory.make<TH1D>(ap1.c_str(), bp1.c_str(), 200, 0., 200.));
232  ap1 = "zmustaplus_ptRange" + std::to_string(i);
233  bp1 = "zmusta plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
234  cout << ap1 << " " << bp1 << endl;
235  hmustaplus_pt.push_back(ptDirectory.make<TH1D>(ap1.c_str(), bp1.c_str(), 50, 0., 200.));
236  ap1 = "zmutrackplus_ptRange" + std::to_string(i);
237  bp1 = "zmutrack plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
238  cout << ap1 << " " << bp1 << endl;
239  hmutrackplus_pt.push_back(ptDirectory.make<TH1D>(ap1.c_str(), bp1.c_str(), 100, 0., 200.));
240  ap1 = "zmumuNotIsoplus_ptRange" + std::to_string(i);
241  bp1 = "zmumuNotIso plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
242  cout << ap1 << " " << bp1 << endl;
243  hmumuNotIsoplus_pt.push_back(ptDirectory.make<TH1D>(ap1.c_str(), bp1.c_str(), 100, 0., 200.));
244  // muon minus
245  cout << " bin pt minus " << i << endl;
246  std::string am1, bm1;
247  am1 = "zmumu2HLTminus_ptRange" + std::to_string(i);
248  bm1 = "zmumu2HLT minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
249  cout << am1 << " " << bm1 << endl;
250  hmumu2HLTminus_pt.push_back(ptDirectory.make<TH1D>(am1.c_str(), bm1.c_str(), 200, 0., 200.));
251  am1 = "zmumu1HLTminus_ptRange" + std::to_string(i);
252  bm1 = "zmumu1HLT minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
253  cout << am1 << " " << bm1 << endl;
254  hmumu1HLTminus_pt.push_back(ptDirectory.make<TH1D>(am1.c_str(), bm1.c_str(), 200, 0., 200.));
255  am1 = "zmustaminus_ptRange" + std::to_string(i);
256  bm1 = "zmusta minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
257  cout << am1 << " " << bm1 << endl;
258  hmustaminus_pt.push_back(ptDirectory.make<TH1D>(am1.c_str(), bm1.c_str(), 50, 0., 200.));
259  am1 = "zmutrackminus_ptRange" + std::to_string(i);
260  bm1 = "zmutrack minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
261  cout << am1 << " " << bm1 << endl;
262  hmutrackminus_pt.push_back(ptDirectory.make<TH1D>(am1.c_str(), bm1.c_str(), 100, 0., 200.));
263  am1 = "zmumuNotIsominus_ptRange" + std::to_string(i);
264  bm1 = "zmumuNotIso minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1);
265  cout << am1 << " " << bm1 << endl;
266  hmumuNotIsominus_pt.push_back(ptDirectory.make<TH1D>(am1.c_str(), bm1.c_str(), 100, 0., 200.));
267  }
268 
269  // clear global counters
271 }

References gather_cfg::cout, etaBins, etaRange, h_zmm1HLTminus_mass, h_zmm1HLTplus_mass, h_zmm2HLT_mass, h_zmm_mass, h_zmmNotIsominus_mass, h_zmmNotIsoplus_mass, h_zmsminus_mass, h_zmsplus_mass, h_zmtminus_mass, h_zmtplus_mass, hmumu1HLTminus_eta, hmumu1HLTminus_pt, hmumu1HLTplus_eta, hmumu1HLTplus_pt, hmumu2HLTminus_eta, hmumu2HLTminus_pt, hmumu2HLTplus_eta, hmumu2HLTplus_pt, hmumuNotIsominus_eta, hmumuNotIsominus_pt, hmumuNotIsoplus_eta, hmumuNotIsoplus_pt, hmustaminus_eta, hmustaminus_pt, hmustaplus_eta, hmustaplus_pt, hmutrackminus_eta, hmutrackminus_pt, hmutrackplus_eta, hmutrackplus_pt, mps_fire::i, TFileDirectory::make(), TFileService::make(), TFileService::mkdir(), nGlobalMuonsMatched_passed, ptBins, ptRange, and AlCaHLTBitMon_QueryRunRegistry::string.

Member Function Documentation

◆ analyze()

void ZMuMu_efficiencyAnalyzer::analyze ( const edm::Event event,
const edm::EventSetup setup 
)
overrideprivatevirtual

Implements edm::EDAnalyzer.

Definition at line 273 of file ZMuMu_efficiencyAnalyzer.cc.

273  {
275  Handle<GenParticleMatch> zMuMuMatchMap; //Map of Z made by Mu global + Mu global
276  Handle<CandidateView> zMuStandAlone;
277  Handle<GenParticleMatch> zMuStandAloneMatchMap; //Map of Z made by Mu + StandAlone
278  Handle<CandidateView> zMuTrack;
279  Handle<GenParticleMatch> zMuTrackMatchMap; //Map of Z made by Mu + Track
280  Handle<CandidateView> muons; //Collection of Muons
281  Handle<CandidateView> tracks; //Collection of Tracks
282 
283  Handle<GenParticleCollection> genParticles; // Collection of Generatd Particles
284  Handle<VertexCollection> primaryVertices; // Collection of primary Vertices
285 
286  event.getByToken(zMuMuToken_, zMuMu);
287  event.getByToken(zMuStandAloneToken_, zMuStandAlone);
288  event.getByToken(zMuTrackToken_, zMuTrack);
289  event.getByToken(genParticlesToken_, genParticles);
290  event.getByToken(primaryVerticesToken_, primaryVertices);
291  event.getByToken(muonsToken_, muons);
292  event.getByToken(tracksToken_, tracks);
293 
294  /*
295  cout << "********* zMuMu size : " << zMuMu->size() << endl;
296  cout << "********* zMuStandAlone size : " << zMuStandAlone->size() << endl;
297  cout << "********* zMuTrack size : " << zMuTrack->size() << endl;
298  cout << "********* muons size : " << muons->size() << endl;
299  cout << "********* tracks size : " << tracks->size() << endl;
300  cout << "********* vertices size : " << primaryVertices->size() << endl;
301  */
302 
303  // std::cout<<"Run-> "<<event.id().run()<<std::endl;
304  // std::cout<<"Event-> "<<event.id().event()<<std::endl;
305 
306  bool zMuMu_found = false;
307  // loop on ZMuMu
308  if (!zMuMu->empty()) {
309  for (unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates
310  const Candidate &zMuMuCand = (*zMuMu)[i]; //the candidate
311  CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i);
312 
313  const Candidate *lep0 = zMuMuCand.daughter(0);
314  const Candidate *lep1 = zMuMuCand.daughter(1);
315  const pat::Muon &muonDau0 = dynamic_cast<const pat::Muon &>(*lep0->masterClone());
316  double trkiso0 = muonDau0.trackIso();
317  const pat::Muon &muonDau1 = dynamic_cast<const pat::Muon &>(*lep1->masterClone());
318  double trkiso1 = muonDau1.trackIso();
319 
320  // kinemtic variables
321  double pt0 = zMuMuCand.daughter(0)->pt();
322  double pt1 = zMuMuCand.daughter(1)->pt();
323  double eta0 = zMuMuCand.daughter(0)->eta();
324  double eta1 = zMuMuCand.daughter(1)->eta();
325  double charge0 = zMuMuCand.daughter(0)->charge();
326  double charge1 = zMuMuCand.daughter(1)->charge();
327  double mass = zMuMuCand.mass();
328 
329  // HLT match
330  const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9");
331  const pat::TriggerObjectStandAloneCollection mu1HLTMatches = muonDau1.triggerObjectMatchesByPath("HLT_Mu9");
332 
333  bool trig0found = false;
334  bool trig1found = false;
335  if (!mu0HLTMatches.empty())
336  trig0found = true;
337  if (!mu1HLTMatches.empty())
338  trig1found = true;
339 
340  // kinematic selection
341 
342  bool checkOppositeCharge = false;
343  if (charge0 != charge1)
344  checkOppositeCharge = true;
345  if (pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ && abs(eta1) < etamax_ && mass > massMin_ &&
346  mass < massMax_ && checkOppositeCharge) {
347  if (trig0found || trig1found) { // at least one muon match HLT
348  zMuMu_found = true; // Z found as global-global (so don't check Zms and Zmt)
349  if (trkiso0 < isoMax_ && trkiso1 < isoMax_) { // both muons are isolated
350  if (trig0found && trig1found) {
351  // ******************** category zmm 2 HLT ****************
352 
353  h_zmm2HLT_mass->Fill(mass);
354  h_zmm_mass->Fill(mass);
355 
356  // check the cynematics to fill correct histograms
357 
358  for (unsigned int j = 0; j < etaBins; j++) { // eta Bins loop
359  double range0 = etaRange[j];
360  double range1 = etaRange[j + 1];
361 
362  // eta histograms
363 
364  if (eta0 >= range0 && eta0 < range1) {
365  if (charge0 < 0)
366  hmumu2HLTminus_eta[j]->Fill(mass); // mu- in bin eta
367  if (charge0 > 0)
368  hmumu2HLTplus_eta[j]->Fill(mass); // mu+ in bin eta
369  }
370  if (eta1 >= range0 && eta1 < range1) {
371  if (charge1 < 0)
372  hmumu2HLTminus_eta[j]->Fill(mass); // mu- in bin eta
373  if (charge1 > 0)
374  hmumu2HLTplus_eta[j]->Fill(mass); // mu+ in bin eta
375  }
376  } // end loop etaBins
377 
378  for (unsigned int j = 0; j < ptBins; j++) { // pt Bins loop
379  double range0pt = ptRange[j];
380  double range1pt = ptRange[j + 1];
381  // pt histograms
382  if (pt0 >= range0pt && pt0 < range1pt) {
383  if (charge0 < 0)
384  hmumu2HLTminus_pt[j]->Fill(mass); // mu- in bin eta
385  if (charge0 > 0)
386  hmumu2HLTplus_pt[j]->Fill(mass); // mu+ in bin eta
387  }
388  if (pt1 >= range0pt && pt1 < range1pt) {
389  if (charge1 < 0)
390  hmumu2HLTminus_pt[j]->Fill(mass); // mu- in bin eta
391  if (charge1 > 0)
392  hmumu2HLTplus_pt[j]->Fill(mass); // mu+ in bin eta
393  }
394  } // end loop ptBins
395 
396  } // ******************* end category zmm 2 HLT ****************
397 
398  if (!trig0found || !trig1found) {
399  // ****************** category zmm 1 HLT ******************
400  h_zmm_mass->Fill(mass);
401  double eta = 9999;
402  double pt = 9999;
403  double charge = 0;
404  if (trig0found) {
405  eta = eta1; // check muon not HLT matched
406  pt = pt1;
407  charge = charge1;
408  } else {
409  eta = eta0;
410  pt = pt0;
411  charge = charge0;
412  }
413  if (charge < 0)
414  h_zmm1HLTminus_mass->Fill(mass);
415  if (charge > 0)
416  h_zmm1HLTplus_mass->Fill(mass);
417 
418  for (unsigned int j = 0; j < etaBins; j++) { // eta Bins loop
419  double range0 = etaRange[j];
420  double range1 = etaRange[j + 1];
421  // eta histograms fill the bin of the muon not HLT matched
422  if (eta >= range0 && eta < range1) {
423  if (charge < 0)
424  hmumu1HLTminus_eta[j]->Fill(mass);
425  if (charge > 0)
426  hmumu1HLTplus_eta[j]->Fill(mass);
427  }
428  } // end loop etaBins
429  for (unsigned int j = 0; j < ptBins; j++) { // pt Bins loop
430  double range0 = ptRange[j];
431  double range1 = ptRange[j + 1];
432  // pt histograms
433  if (pt >= range0 && pt < range1) {
434  if (charge < 0)
435  hmumu1HLTminus_pt[j]->Fill(mass);
436  if (charge > 0)
437  hmumu1HLTplus_pt[j]->Fill(mass);
438  }
439  } // end loop ptBins
440 
441  } // ****************** end category zmm 1 HLT ***************
442 
443  } else { // one or both muons are not isolated
444  // ***************** category zmumuNotIso **************** (per ora non studio iso vs eta e pt da capire meglio)
445 
446  } // end if both muons isolated
447 
448  } // end if at least 1 HLT trigger found
449  } // end if kinematic selection
450 
451  } // end loop on ZMuMu cand
452  } // end if ZMuMu size > 0
453 
454  // loop on ZMuSta
455  bool zMuSta_found = false;
456  if (!zMuMu_found && !zMuStandAlone->empty()) {
457  event.getByToken(zMuStandAloneMatchMapToken_, zMuStandAloneMatchMap);
458  for (unsigned int i = 0; i < zMuStandAlone->size(); ++i) { //loop on candidates
459  const Candidate &zMuStandAloneCand = (*zMuStandAlone)[i]; //the candidate
460  CandidateBaseRef zMuStandAloneCandRef = zMuStandAlone->refAt(i);
461  GenParticleRef zMuStandAloneMatch = (*zMuStandAloneMatchMap)[zMuStandAloneCandRef];
462 
463  const Candidate *lep0 = zMuStandAloneCand.daughter(0);
464  const Candidate *lep1 = zMuStandAloneCand.daughter(1);
465  const pat::Muon &muonDau0 = dynamic_cast<const pat::Muon &>(*lep0->masterClone());
466  double trkiso0 = muonDau0.trackIso();
467  const pat::Muon &muonDau1 = dynamic_cast<const pat::Muon &>(*lep1->masterClone());
468  double trkiso1 = muonDau1.trackIso();
469  double pt0 = zMuStandAloneCand.daughter(0)->pt();
470  double pt1 = zMuStandAloneCand.daughter(1)->pt();
471  double eta0 = zMuStandAloneCand.daughter(0)->eta();
472  double eta1 = zMuStandAloneCand.daughter(1)->eta();
473  double charge0 = zMuStandAloneCand.daughter(0)->charge();
474  double charge1 = zMuStandAloneCand.daughter(1)->charge();
475  double mass = zMuStandAloneCand.mass();
476 
477  // HLT match
478  const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9");
479  const pat::TriggerObjectStandAloneCollection mu1HLTMatches = muonDau1.triggerObjectMatchesByPath("HLT_Mu9");
480 
481  bool trig0found = false;
482  bool trig1found = false;
483  if (!mu0HLTMatches.empty())
484  trig0found = true;
485  if (!mu1HLTMatches.empty())
486  trig1found = true;
487 
488  // check HLT match of Global muon and save eta, pt of second muon (standAlone)
489  bool trigGlbfound = false;
490  double pt = 999.;
491  double eta = 999.;
492  double charge = 0;
493  if (muonDau0.isGlobalMuon()) {
494  trigGlbfound = trig0found;
495  pt = pt1;
496  eta = eta1;
497  charge = charge1;
498  }
499  if (muonDau1.isGlobalMuon()) {
500  trigGlbfound = trig1found;
501  pt = pt0;
502  eta = eta0;
503  charge = charge0;
504  }
505 
506  bool checkOppositeCharge = false;
507  if (charge0 != charge1)
508  checkOppositeCharge = true;
509 
510  if (checkOppositeCharge && trigGlbfound && pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ &&
511  abs(eta1) < etamax_ && mass > massMin_ && mass < massMax_ && trkiso0 < isoMax_ &&
512  trkiso1 < isoMax_) { // global mu match HLT + kinematic cuts + opposite charge
513 
514  if (charge < 0)
515  h_zmsminus_mass->Fill(mass);
516  if (charge > 0)
517  h_zmsplus_mass->Fill(mass);
518 
519  for (unsigned int j = 0; j < etaBins; j++) { // eta Bins loop
520  double range0 = etaRange[j];
521  double range1 = etaRange[j + 1];
522  // eta histograms
523  if (eta >= range0 && eta < range1) {
524  if (charge < 0)
525  hmustaminus_eta[j]->Fill(mass);
526  if (charge > 0)
527  hmustaplus_eta[j]->Fill(mass);
528  }
529  } // end loop etaBins
530  for (unsigned int j = 0; j < ptBins; j++) { // pt Bins loop
531  double range0 = ptRange[j];
532  double range1 = ptRange[j + 1];
533  // pt histograms
534  if (pt >= range0 && pt < range1) {
535  if (charge < 0)
536  hmustaminus_pt[j]->Fill(mass);
537  if (charge > 0)
538  hmustaplus_pt[j]->Fill(mass);
539  }
540  } // end loop ptBins
541 
542  } // end if trigGlbfound + kinecuts + OppostieCharge
543  } // end loop on ZMuStandAlone cand
544  } // end if ZMuStandAlone size > 0
545 
546  // loop on ZMuTrack
547  // bool zMuTrack_found = false;
548  if (!zMuMu_found && !zMuSta_found && !zMuTrack->empty()) {
549  event.getByToken(zMuTrackMatchMapToken_, zMuTrackMatchMap);
550  for (unsigned int i = 0; i < zMuTrack->size(); ++i) { //loop on candidates
551  const Candidate &zMuTrackCand = (*zMuTrack)[i]; //the candidate
552  CandidateBaseRef zMuTrackCandRef = zMuTrack->refAt(i);
553  const Candidate *lep0 = zMuTrackCand.daughter(0);
554  const Candidate *lep1 = zMuTrackCand.daughter(1);
555  const pat::Muon &muonDau0 = dynamic_cast<const pat::Muon &>(*lep0->masterClone());
556  double trkiso0 = muonDau0.trackIso();
557  const pat::GenericParticle &trackDau1 = dynamic_cast<const pat::GenericParticle &>(*lep1->masterClone());
558  double trkiso1 = trackDau1.trackIso();
559  double pt0 = zMuTrackCand.daughter(0)->pt();
560  double pt1 = zMuTrackCand.daughter(1)->pt();
561  double eta0 = zMuTrackCand.daughter(0)->eta();
562  double eta1 = zMuTrackCand.daughter(1)->eta();
563  double charge0 = zMuTrackCand.daughter(0)->charge();
564  double charge1 = zMuTrackCand.daughter(1)->charge();
565  double mass = zMuTrackCand.mass();
566 
567  // HLT match (check just dau0 the global)
568  const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9");
569 
570  bool trig0found = false;
571  if (!mu0HLTMatches.empty())
572  trig0found = true;
573 
574  bool checkOppositeCharge = false;
575  if (charge0 != charge1)
576  checkOppositeCharge = true;
577 
578  if (checkOppositeCharge && trig0found && pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ &&
579  abs(eta1) < etamax_ && mass > massMin_ && mass < massMax_ && trkiso0 < isoMax_ &&
580  trkiso1 < isoMax_) { // global mu match HLT + kinematic cuts + opposite charge
581 
582  if (charge1 < 0)
583  h_zmtminus_mass->Fill(mass);
584  if (charge1 > 0)
585  h_zmtplus_mass->Fill(mass);
586 
587  for (unsigned int j = 0; j < etaBins; j++) { // eta Bins loop
588  double range0 = etaRange[j];
589  double range1 = etaRange[j + 1];
590  // eta histograms
591  if (eta1 >= range0 && eta1 < range1) {
592  if (charge1 < 0)
593  hmutrackminus_eta[j]->Fill(mass); // just check muon1 (mu0 is global by definition)
594  if (charge1 > 0)
595  hmutrackplus_eta[j]->Fill(mass); // just check muon1 (mu0 is global by definition)
596  }
597  } // end loop etaBins
598  for (unsigned int j = 0; j < ptBins; j++) { // pt Bins loop
599  double range0 = ptRange[j];
600  double range1 = ptRange[j + 1];
601  // pt histograms
602  if (pt1 >= range0 && pt1 < range1) {
603  if (charge1 < 0)
604  hmutrackminus_pt[j]->Fill(mass); // just check muon1 (mu0 is global by definition)
605  if (charge1 > 0)
606  hmutrackplus_pt[j]->Fill(mass); // just check muon1 (mu0 is global by definition)
607  }
608  } // end loop ptBins
609 
610  } // end if trig0found
611 
612  } // end loop on ZMuTrack cand
613  } // end if ZMuTrack size > 0
614 
615 } // end analyze

References funct::abs(), ALCARECOTkAlJpsiMuMu_cff::charge, reco::Candidate::charge(), reco::Candidate::daughter(), edm::View< T >::empty(), PVValHelper::eta, reco::Candidate::eta(), HLT_FULL_cff::eta1, etaBins, etamax_, etaRange, genParticles2HepMC_cfi::genParticles, genParticlesToken_, h_zmm1HLTminus_mass, h_zmm1HLTplus_mass, h_zmm2HLT_mass, h_zmm_mass, h_zmsminus_mass, h_zmsplus_mass, h_zmtminus_mass, h_zmtplus_mass, hmumu1HLTminus_eta, hmumu1HLTminus_pt, hmumu1HLTplus_eta, hmumu1HLTplus_pt, hmumu2HLTminus_eta, hmumu2HLTminus_pt, hmumu2HLTplus_eta, hmumu2HLTplus_pt, hmustaminus_eta, hmustaminus_pt, hmustaplus_eta, hmustaplus_pt, hmutrackminus_eta, hmutrackminus_pt, hmutrackplus_eta, hmutrackplus_pt, mps_fire::i, reco::Muon::isGlobalMuon(), isoMax_, dqmiolumiharvest::j, RazorAnalyzer::lep1, EgHLTOffHistBins_cfi::mass, reco::Candidate::mass(), massMax_, massMin_, reco::Candidate::masterClone(), PDWG_BPHSkim_cff::muons, muonsToken_, zMuMuMuonUserData::primaryVertices, primaryVerticesToken_, DiDispStaMuonMonitor_cfi::pt, reco::Candidate::pt(), HLT_FULL_cff::pt1, ptBins, ptmin_, ptRange, edm::View< T >::refAt(), edm::View< T >::size(), pat::Muon::trackIso(), pat::GenericParticle::trackIso(), PDWG_EXOHSCP_cff::tracks, tracksToken_, pat::PATObject< ObjectType >::triggerObjectMatchesByPath(), ZMuMuAnalysisNtupler_cff::zMuMu, zMuMuToken_, zMuStandAloneMatchMapToken_, zMuStandAloneToken_, zMuTrackMatchMapToken_, and zMuTrackToken_.

◆ check_ifZmumu()

bool ZMuMu_efficiencyAnalyzer::check_ifZmumu ( const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 617 of file ZMuMu_efficiencyAnalyzer.cc.

619  {
620  int partId0 = dauGen0->pdgId();
621  int partId1 = dauGen1->pdgId();
622  int partId2 = dauGen2->pdgId();
623  bool muplusFound = false;
624  bool muminusFound = false;
625  bool ZFound = false;
626  if (partId0 == 13 || partId1 == 13 || partId2 == 13)
627  muminusFound = true;
628  if (partId0 == -13 || partId1 == -13 || partId2 == -13)
629  muplusFound = true;
630  if (partId0 == 23 || partId1 == 23 || partId2 == 23)
631  ZFound = true;
632  return (muplusFound && muminusFound && ZFound);
633 }

References reco::Candidate::pdgId().

◆ endJob()

void ZMuMu_efficiencyAnalyzer::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 775 of file ZMuMu_efficiencyAnalyzer.cc.

775 {}

◆ getParticleEta()

float ZMuMu_efficiencyAnalyzer::getParticleEta ( const int  ipart,
const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 670 of file ZMuMu_efficiencyAnalyzer.cc.

673  {
674  int partId0 = dauGen0->pdgId();
675  int partId1 = dauGen1->pdgId();
676  int partId2 = dauGen2->pdgId();
677  float etapart = 0.;
678  if (partId0 == ipart) {
679  for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) {
680  const Candidate *dauMuGen = dauGen0->daughter(k);
681  if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) {
682  etapart = dauMuGen->eta();
683  }
684  }
685  }
686  if (partId1 == ipart) {
687  for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) {
688  const Candidate *dauMuGen = dauGen1->daughter(k);
689  if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) {
690  etapart = dauMuGen->eta();
691  }
692  }
693  }
694  if (partId2 == ipart) {
695  for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) {
696  const Candidate *dauMuGen = dauGen2->daughter(k);
697  if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) {
698  etapart = dauMuGen->eta();
699  }
700  }
701  }
702  return etapart;
703 }

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

◆ getParticleP4()

Particle::LorentzVector ZMuMu_efficiencyAnalyzer::getParticleP4 ( const int  ipart,
const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 740 of file ZMuMu_efficiencyAnalyzer.cc.

743  {
744  int partId0 = dauGen0->pdgId();
745  int partId1 = dauGen1->pdgId();
746  int partId2 = dauGen2->pdgId();
747  Particle::LorentzVector p4part(0., 0., 0., 0.);
748  if (partId0 == ipart) {
749  for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) {
750  const Candidate *dauMuGen = dauGen0->daughter(k);
751  if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) {
752  p4part = dauMuGen->p4();
753  }
754  }
755  }
756  if (partId1 == ipart) {
757  for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) {
758  const Candidate *dauMuGen = dauGen1->daughter(k);
759  if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) {
760  p4part = dauMuGen->p4();
761  }
762  }
763  }
764  if (partId2 == ipart) {
765  for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) {
766  const Candidate *dauMuGen = dauGen2->daughter(k);
767  if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) {
768  p4part = dauMuGen->p4();
769  }
770  }
771  }
772  return p4part;
773 }

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

◆ getParticlePhi()

float ZMuMu_efficiencyAnalyzer::getParticlePhi ( const int  ipart,
const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 705 of file ZMuMu_efficiencyAnalyzer.cc.

708  {
709  int partId0 = dauGen0->pdgId();
710  int partId1 = dauGen1->pdgId();
711  int partId2 = dauGen2->pdgId();
712  float phipart = 0.;
713  if (partId0 == ipart) {
714  for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) {
715  const Candidate *dauMuGen = dauGen0->daughter(k);
716  if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) {
717  phipart = dauMuGen->phi();
718  }
719  }
720  }
721  if (partId1 == ipart) {
722  for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) {
723  const Candidate *dauMuGen = dauGen1->daughter(k);
724  if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) {
725  phipart = dauMuGen->phi();
726  }
727  }
728  }
729  if (partId2 == ipart) {
730  for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) {
731  const Candidate *dauMuGen = dauGen2->daughter(k);
732  if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) {
733  phipart = dauMuGen->phi();
734  }
735  }
736  }
737  return phipart;
738 }

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

◆ getParticlePt()

float ZMuMu_efficiencyAnalyzer::getParticlePt ( const int  ipart,
const Candidate dauGen0,
const Candidate dauGen1,
const Candidate dauGen2 
)
private

Definition at line 635 of file ZMuMu_efficiencyAnalyzer.cc.

638  {
639  int partId0 = dauGen0->pdgId();
640  int partId1 = dauGen1->pdgId();
641  int partId2 = dauGen2->pdgId();
642  float ptpart = 0.;
643  if (partId0 == ipart) {
644  for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) {
645  const Candidate *dauMuGen = dauGen0->daughter(k);
646  if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) {
647  ptpart = dauMuGen->pt();
648  }
649  }
650  }
651  if (partId1 == ipart) {
652  for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) {
653  const Candidate *dauMuGen = dauGen1->daughter(k);
654  if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) {
655  ptpart = dauMuGen->pt();
656  }
657  }
658  }
659  if (partId2 == ipart) {
660  for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) {
661  const Candidate *dauMuGen = dauGen2->daughter(k);
662  if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) {
663  ptpart = dauMuGen->pt();
664  }
665  }
666  }
667  return ptpart;
668 }

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

Member Data Documentation

◆ bothMuons_

bool ZMuMu_efficiencyAnalyzer::bothMuons_
private

Definition at line 74 of file ZMuMu_efficiencyAnalyzer.cc.

◆ etaBins

unsigned int ZMuMu_efficiencyAnalyzer::etaBins
private

◆ etamax_

double ZMuMu_efficiencyAnalyzer::etamax_
private

Definition at line 76 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ etaRange

double ZMuMu_efficiencyAnalyzer::etaRange[7]
private

Definition at line 81 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ genParticlesToken_

EDGetTokenT<GenParticleCollection> ZMuMu_efficiencyAnalyzer::genParticlesToken_
private

Definition at line 71 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ globalMuonCandRef_

reco::CandidateBaseRef ZMuMu_efficiencyAnalyzer::globalMuonCandRef_
private

Definition at line 84 of file ZMuMu_efficiencyAnalyzer.cc.

◆ h_zmm1HLTminus_mass

TH1D* ZMuMu_efficiencyAnalyzer::h_zmm1HLTminus_mass
private

Definition at line 90 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ h_zmm1HLTplus_mass

TH1D* ZMuMu_efficiencyAnalyzer::h_zmm1HLTplus_mass
private

Definition at line 89 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ h_zmm2HLT_mass

TH1D * ZMuMu_efficiencyAnalyzer::h_zmm2HLT_mass
private

Definition at line 88 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ h_zmm_mass

TH1D* ZMuMu_efficiencyAnalyzer::h_zmm_mass
private

Definition at line 88 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ h_zmmNotIsominus_mass

TH1D * ZMuMu_efficiencyAnalyzer::h_zmmNotIsominus_mass
private

Definition at line 90 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by ZMuMu_efficiencyAnalyzer().

◆ h_zmmNotIsoplus_mass

TH1D * ZMuMu_efficiencyAnalyzer::h_zmmNotIsoplus_mass
private

Definition at line 89 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by ZMuMu_efficiencyAnalyzer().

◆ h_zmsminus_mass

TH1D * ZMuMu_efficiencyAnalyzer::h_zmsminus_mass
private

Definition at line 90 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ h_zmsplus_mass

TH1D * ZMuMu_efficiencyAnalyzer::h_zmsplus_mass
private

Definition at line 89 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ h_zmtminus_mass

TH1D * ZMuMu_efficiencyAnalyzer::h_zmtminus_mass
private

Definition at line 90 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ h_zmtplus_mass

TH1D * ZMuMu_efficiencyAnalyzer::h_zmtplus_mass
private

Definition at line 89 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumu1HLTminus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumu1HLTminus_eta
private

Definition at line 97 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumu1HLTminus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumu1HLTminus_pt
private

Definition at line 98 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumu1HLTplus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumu1HLTplus_eta
private

Definition at line 95 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumu1HLTplus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumu1HLTplus_pt
private

Definition at line 96 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumu2HLTminus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumu2HLTminus_eta
private

Definition at line 97 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumu2HLTminus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumu2HLTminus_pt
private

Definition at line 98 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumu2HLTplus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumu2HLTplus_eta
private

Definition at line 95 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumu2HLTplus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumu2HLTplus_pt
private

Definition at line 96 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmumuNotIsominus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumuNotIsominus_eta
private

Definition at line 97 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by ZMuMu_efficiencyAnalyzer().

◆ hmumuNotIsominus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumuNotIsominus_pt
private

Definition at line 98 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by ZMuMu_efficiencyAnalyzer().

◆ hmumuNotIsoplus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumuNotIsoplus_eta
private

Definition at line 95 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by ZMuMu_efficiencyAnalyzer().

◆ hmumuNotIsoplus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmumuNotIsoplus_pt
private

Definition at line 96 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by ZMuMu_efficiencyAnalyzer().

◆ hmustaminus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmustaminus_eta
private

Definition at line 97 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmustaminus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmustaminus_pt
private

Definition at line 98 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmustaplus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmustaplus_eta
private

Definition at line 95 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmustaplus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmustaplus_pt
private

Definition at line 96 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmutrackminus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmutrackminus_eta
private

Definition at line 97 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmutrackminus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmutrackminus_pt
private

Definition at line 98 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmutrackplus_eta

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmutrackplus_eta
private

Definition at line 95 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ hmutrackplus_pt

vector<TH1D *> ZMuMu_efficiencyAnalyzer::hmutrackplus_pt
private

Definition at line 96 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ isoMax_

double ZMuMu_efficiencyAnalyzer::isoMax_
private

Definition at line 76 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ massMax_

double ZMuMu_efficiencyAnalyzer::massMax_
private

Definition at line 76 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ massMin_

double ZMuMu_efficiencyAnalyzer::massMin_
private

Definition at line 76 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ muonsToken_

EDGetTokenT<CandidateView> ZMuMu_efficiencyAnalyzer::muonsToken_
private

Definition at line 69 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ nGlobalMuonsMatched_passed

int ZMuMu_efficiencyAnalyzer::nGlobalMuonsMatched_passed
private

Definition at line 93 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by ZMuMu_efficiencyAnalyzer().

◆ overlap_

OverlapChecker ZMuMu_efficiencyAnalyzer::overlap_
private

Definition at line 85 of file ZMuMu_efficiencyAnalyzer.cc.

◆ primaryVerticesToken_

EDGetTokenT<VertexCollection> ZMuMu_efficiencyAnalyzer::primaryVerticesToken_
private

Definition at line 72 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ ptBins

unsigned int ZMuMu_efficiencyAnalyzer::ptBins
private

◆ ptmin_

double ZMuMu_efficiencyAnalyzer::ptmin_
private

Definition at line 76 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ ptRange

double ZMuMu_efficiencyAnalyzer::ptRange[5]
private

Definition at line 82 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze(), and ZMuMu_efficiencyAnalyzer().

◆ standAloneMuonCandRef_

reco::CandidateBaseRef ZMuMu_efficiencyAnalyzer::standAloneMuonCandRef_
private

Definition at line 84 of file ZMuMu_efficiencyAnalyzer.cc.

◆ trackMuonCandRef_

reco::CandidateBaseRef ZMuMu_efficiencyAnalyzer::trackMuonCandRef_
private

Definition at line 84 of file ZMuMu_efficiencyAnalyzer.cc.

◆ tracksToken_

EDGetTokenT<CandidateView> ZMuMu_efficiencyAnalyzer::tracksToken_
private

Definition at line 70 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ zMuMuMatchMapToken_

EDGetTokenT<GenParticleMatch> ZMuMu_efficiencyAnalyzer::zMuMuMatchMapToken_
private

Definition at line 64 of file ZMuMu_efficiencyAnalyzer.cc.

◆ zMuMuToken_

EDGetTokenT<CandidateView> ZMuMu_efficiencyAnalyzer::zMuMuToken_
private

Definition at line 63 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ zMuStandAloneMatchMapToken_

EDGetTokenT<GenParticleMatch> ZMuMu_efficiencyAnalyzer::zMuStandAloneMatchMapToken_
private

Definition at line 66 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ zMuStandAloneToken_

EDGetTokenT<CandidateView> ZMuMu_efficiencyAnalyzer::zMuStandAloneToken_
private

Definition at line 65 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ zMuTrackMatchMapToken_

EDGetTokenT<GenParticleMatch> ZMuMu_efficiencyAnalyzer::zMuTrackMatchMapToken_
private

Definition at line 68 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

◆ zMuTrackToken_

EDGetTokenT<CandidateView> ZMuMu_efficiencyAnalyzer::zMuTrackToken_
private

Definition at line 67 of file ZMuMu_efficiencyAnalyzer.cc.

Referenced by analyze().

RazorAnalyzer.lep1
lep1
print 'MRbb(1b)',event.mr_bb
Definition: RazorAnalyzer.py:261
ZMuMu_efficiencyAnalyzer::isoMax_
double isoMax_
Definition: ZMuMu_efficiencyAnalyzer.cc:76
ZMuMu_efficiencyAnalyzer::zMuTrackToken_
EDGetTokenT< CandidateView > zMuTrackToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:67
reco::Candidate::daughter
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode)
PDWG_BPHSkim_cff.muons
muons
Definition: PDWG_BPHSkim_cff.py:47
TFileDirectory::mkdir
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileDirectory.cc:112
ZMuMu_efficiencyAnalyzer::hmutrackplus_pt
vector< TH1D * > hmutrackplus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:96
ZMuMu_efficiencyAnalyzer::primaryVerticesToken_
EDGetTokenT< VertexCollection > primaryVerticesToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:72
ZMuMu_efficiencyAnalyzer::tracksToken_
EDGetTokenT< CandidateView > tracksToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:70
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
ZMuMu_efficiencyAnalyzer::hmutrackminus_eta
vector< TH1D * > hmutrackminus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:97
mps_fire.i
i
Definition: mps_fire.py:428
genParticles2HepMC_cfi.genParticles
genParticles
Definition: genParticles2HepMC_cfi.py:4
ZMuMu_efficiencyAnalyzer::hmumu2HLTplus_pt
vector< TH1D * > hmumu2HLTplus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:96
ZMuMuAnalysisNtupler_cff.zMuMu
zMuMu
zMuMu vector of PSet is common to all categories except zMuTrk category
Definition: ZMuMuAnalysisNtupler_cff.py:340
edm::View::empty
bool empty() const
ZMuMu_efficiencyAnalyzer::hmumu2HLTplus_eta
vector< TH1D * > hmumu2HLTplus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:95
ZMuMu_efficiencyAnalyzer::hmumu1HLTplus_pt
vector< TH1D * > hmumu1HLTplus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:96
ZMuMu_efficiencyAnalyzer::hmumuNotIsoplus_eta
vector< TH1D * > hmumuNotIsoplus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:95
reco::Candidate::mass
virtual double mass() const =0
mass
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
ZMuMu_efficiencyAnalyzer::hmustaplus_eta
vector< TH1D * > hmustaplus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:95
edm::View::refAt
RefToBase< value_type > refAt(size_type i) const
reco::Candidate::eta
virtual double eta() const =0
momentum pseudorapidity
TFileDirectory::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileDirectory.h:53
ZMuMu_efficiencyAnalyzer::hmumu1HLTplus_eta
vector< TH1D * > hmumu1HLTplus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:95
ZMuMu_efficiencyAnalyzer::h_zmtminus_mass
TH1D * h_zmtminus_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:90
ZMuMu_efficiencyAnalyzer::h_zmsminus_mass
TH1D * h_zmsminus_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:90
gather_cfg.cout
cout
Definition: gather_cfg.py:144
ZMuMu_efficiencyAnalyzer::zMuMuMatchMapToken_
EDGetTokenT< GenParticleMatch > zMuMuMatchMapToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:64
ZMuMu_efficiencyAnalyzer::muonsToken_
EDGetTokenT< CandidateView > muonsToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:69
pat::GenericParticle::trackIso
float trackIso() const
Definition: GenericParticle.h:218
reco::Candidate::pt
virtual double pt() const =0
transverse momentum
ZMuMu_efficiencyAnalyzer::hmumu2HLTminus_eta
vector< TH1D * > hmumu2HLTminus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:97
reco::Candidate::status
virtual int status() const =0
status word
ZMuMu_efficiencyAnalyzer::h_zmm2HLT_mass
TH1D * h_zmm2HLT_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:88
TFileDirectory
Definition: TFileDirectory.h:24
pat::Muon
Analysis-level muon class.
Definition: Muon.h:51
ZMuMu_efficiencyAnalyzer::nGlobalMuonsMatched_passed
int nGlobalMuonsMatched_passed
Definition: ZMuMu_efficiencyAnalyzer.cc:93
edm::Handle
Definition: AssociativeIterator.h:50
ZMuMu_efficiencyAnalyzer::massMax_
double massMax_
Definition: ZMuMu_efficiencyAnalyzer.cc:76
edm::Ref< GenParticleCollection >
ZMuMu_efficiencyAnalyzer::etamax_
double etamax_
Definition: ZMuMu_efficiencyAnalyzer.cc:76
ZMuMu_efficiencyAnalyzer::ptBins
unsigned int ptBins
Definition: ZMuMu_efficiencyAnalyzer.cc:80
ZMuMu_efficiencyAnalyzer::zMuStandAloneMatchMapToken_
EDGetTokenT< GenParticleMatch > zMuStandAloneMatchMapToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:66
ZMuMu_efficiencyAnalyzer::etaBins
unsigned int etaBins
Definition: ZMuMu_efficiencyAnalyzer.cc:79
ZMuMu_efficiencyAnalyzer::h_zmmNotIsominus_mass
TH1D * h_zmmNotIsominus_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:90
ZMuMu_efficiencyAnalyzer::h_zmm1HLTminus_mass
TH1D * h_zmm1HLTminus_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:90
ZMuMu_efficiencyAnalyzer::zMuTrackMatchMapToken_
EDGetTokenT< GenParticleMatch > zMuTrackMatchMapToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:68
reco::Candidate::charge
virtual int charge() const =0
electric charge
PVValHelper::eta
Definition: PVValidationHelpers.h:69
ZMuMu_efficiencyAnalyzer::massMin_
double massMin_
Definition: ZMuMu_efficiencyAnalyzer.cc:76
pat::Muon::trackIso
float trackIso() const
Definition: Muon.h:179
ZMuMu_efficiencyAnalyzer::etaRange
double etaRange[7]
Definition: ZMuMu_efficiencyAnalyzer.cc:81
reco::Candidate::numberOfDaughters
virtual size_type numberOfDaughters() const =0
number of daughters
HLT_FULL_cff.pt1
pt1
Definition: HLT_FULL_cff.py:9870
dqmdumpme.k
k
Definition: dqmdumpme.py:60
ZMuMu_efficiencyAnalyzer::hmustaminus_eta
vector< TH1D * > hmustaminus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:97
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::View::size
size_type size() const
HLT_FULL_cff.eta1
eta1
Definition: HLT_FULL_cff.py:9541
reco::Muon::isGlobalMuon
bool isGlobalMuon() const override
Definition: Muon.h:299
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
pat::GenericParticle
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed)
Definition: GenericParticle.h:38
zMuMuMuonUserData.primaryVertices
primaryVertices
Definition: zMuMuMuonUserData.py:12
ZMuMu_efficiencyAnalyzer::h_zmm_mass
TH1D * h_zmm_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:88
ZMuMu_efficiencyAnalyzer::hmumu1HLTminus_eta
vector< TH1D * > hmumu1HLTminus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:97
ZMuMu_efficiencyAnalyzer::zMuStandAloneToken_
EDGetTokenT< CandidateView > zMuStandAloneToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:65
ZMuMu_efficiencyAnalyzer::h_zmm1HLTplus_mass
TH1D * h_zmm1HLTplus_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:89
edm::Service< TFileService >
pat::TriggerObjectStandAloneCollection
std::vector< TriggerObjectStandAlone > TriggerObjectStandAloneCollection
Collection of TriggerObjectStandAlone.
Definition: TriggerObjectStandAlone.h:219
ZMuMu_efficiencyAnalyzer::zMuMuToken_
EDGetTokenT< CandidateView > zMuMuToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:63
pat::PATObject::triggerObjectMatchesByPath
const TriggerObjectStandAloneCollection triggerObjectMatchesByPath(const std::string &namePath, const bool pathLastFilterAccepted=false, const bool pathL3FilterAccepted=true) const
Definition: PATObject.h:679
ZMuMu_efficiencyAnalyzer::hmumuNotIsominus_eta
vector< TH1D * > hmumuNotIsominus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:97
ZMuMu_efficiencyAnalyzer::hmustaminus_pt
vector< TH1D * > hmustaminus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:98
reco::Candidate::pdgId
virtual int pdgId() const =0
PDG identifier.
reco::Candidate
Definition: Candidate.h:27
reco::JetExtendedAssociation::LorentzVector
math::PtEtaPhiELorentzVectorF LorentzVector
Definition: JetExtendedAssociation.h:25
ZMuMu_efficiencyAnalyzer::h_zmmNotIsoplus_mass
TH1D * h_zmmNotIsoplus_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:89
ZMuMu_efficiencyAnalyzer::hmutrackplus_eta
vector< TH1D * > hmutrackplus_eta
Definition: ZMuMu_efficiencyAnalyzer.cc:95
ZMuMu_efficiencyAnalyzer::hmustaplus_pt
vector< TH1D * > hmustaplus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:96
EgHLTOffHistBins_cfi.mass
mass
Definition: EgHLTOffHistBins_cfi.py:34
ZMuMu_efficiencyAnalyzer::h_zmtplus_mass
TH1D * h_zmtplus_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:89
edm::RefToBase< Candidate >
reco::Candidate::masterClone
virtual const CandidateBaseRef & masterClone() const =0
reco::Candidate::p4
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
ZMuMu_efficiencyAnalyzer::hmutrackminus_pt
vector< TH1D * > hmutrackminus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:98
ZMuMu_efficiencyAnalyzer::genParticlesToken_
EDGetTokenT< GenParticleCollection > genParticlesToken_
Definition: ZMuMu_efficiencyAnalyzer.cc:71
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
ZMuMu_efficiencyAnalyzer::h_zmsplus_mass
TH1D * h_zmsplus_mass
Definition: ZMuMu_efficiencyAnalyzer.cc:89
ZMuMu_efficiencyAnalyzer::hmumu1HLTminus_pt
vector< TH1D * > hmumu1HLTminus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:98
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
ZMuMu_efficiencyAnalyzer::bothMuons_
bool bothMuons_
Definition: ZMuMu_efficiencyAnalyzer.cc:74
reco::Candidate::phi
virtual double phi() const =0
momentum azimuthal angle
ZMuMu_efficiencyAnalyzer::hmumu2HLTminus_pt
vector< TH1D * > hmumu2HLTminus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:98
edm::InputTag
Definition: InputTag.h:15
ZMuMu_efficiencyAnalyzer::hmumuNotIsoplus_pt
vector< TH1D * > hmumuNotIsoplus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:96
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
ZMuMu_efficiencyAnalyzer::ptRange
double ptRange[5]
Definition: ZMuMu_efficiencyAnalyzer.cc:82
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
ZMuMu_efficiencyAnalyzer::ptmin_
double ptmin_
Definition: ZMuMu_efficiencyAnalyzer.cc:76
ZMuMu_efficiencyAnalyzer::hmumuNotIsominus_pt
vector< TH1D * > hmumuNotIsominus_pt
Definition: ZMuMu_efficiencyAnalyzer.cc:98