55 void endJob()
override;
67 double isocut_, etacut_, ptcut_,
ptSTAcut_, minZmass_, maxZmass_;
68 TH1D * h_zMuMu_numberOfCand, * h_zMuMu_numberOfCand_passed, * h_zMuMu_numberOfCand_ptpassed,* h_zMuMu_numberOfCand_etapassed,
69 * h_zMuMu_numberOfCand_masspassed, * h_zMuMu_numberOfCand_isopassed, * h_zMuMu_numberOfCand_ptetapassed,
70 * h_zMuMu_numberOfCand_ptetamasspassed, * h_zMuMu_mass_, * h_zMuSingleTrack_mass_, * h_zMuSingleStandAlone_mass_,
72 * h_zMuSingleStandAloneMatched_mass_,
73 * h_zMuSingleStandAloneOverlapMatched_mass_;
75 TH1D * h_zMuSta_numberOfCand,* h_zMuSta_numberOfCand_passed,* h_zMuSta_MCmatched_numberOfCand_passed,
76 * h_zMuSta_numberOfCand_notcontained,
78 * h_zMuTrack_MCmatched_numberOfCand_passed;
99 zMuStandAloneMapToken_( mayConsume<
CandMatchMap >( pset.getParameter<
InputTag>(
"zMuStandAloneMap" ) ) ),
100 isocut_( pset.getParameter<double>(
"isocut" ) ),
101 etacut_( pset.getParameter<double>(
"etacut" ) ),
102 ptcut_( pset.getParameter<double>(
"ptcut" ) ),
103 ptSTAcut_( pset.getParameter<double>(
"ptSTAcut" ) ),
104 minZmass_( pset.getParameter<double>(
"minZmass" )),
105 maxZmass_( pset.getParameter<double>(
"maxZmass" )) {
129 h_zMuSta_numberOfCand = fs->
make<TH1D>(
"ZMuStanumberOfCand",
"number of ZMuSta cand (if ZMuMu not selected)",10, -.5, 9.5);
130 h_OneSta_mass = fs->
make<TH2D>(
"ZOneMuStaMass",
"inv. mass of ZMuSta1 vs ZMuSta2 when one ZMuSta has been found (if ZMuMu not selected)",100, 0., 400, 100, 0., 400.);
134 h_zMuTrack_numberOfCand = fs->
make<TH1D>(
"ZMuTranumberOfCand",
"number of ZMuTrack cand (if ZMuMu and ZMuSTa not selected)",10, -.5, 9.5);
160 double range1= range0 +
binEta;
162 sprintf(a,
"zmumu_etaRange%d",
i);
163 sprintf(b,
"zmumu mass eta Range %f to %f",range0,range1);
164 hmumu_eta.push_back(etaDirectory.
make<TH1D>(a,b,200,0.,200.));
165 char asta[30], bsta[50];
166 sprintf(asta,
"zmusta_etaRange%d",
i);
167 sprintf(bsta,
"zmusta mass eta Range %f to %f",range0,range1);
168 hmusta_eta.push_back(etaDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
169 char atk[30], btk[50];
170 sprintf(atk,
"zmutrack_etaRange%d",
i);
171 sprintf(btk,
"zmutrack mass eta Range %f to %f",range0,range1);
179 double range1= range0 +
binPhi;
181 sprintf(a,
"zmumu_phiRange%d",
i);
182 sprintf(b,
"zmumu mass phi Range %f to %f",range0,range1);
183 hmumu_phi.push_back(phiDirectory.
make<TH1D>(a,b,200,0.,200.));
184 char asta[30], bsta[50];
185 sprintf(asta,
"zmusta_phiRange%d",
i);
186 sprintf(bsta,
"zmusta mass phi Range %f to %f",range0,range1);
187 hmusta_phi.push_back(phiDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
188 char atk[30], btk[50];
189 sprintf(atk,
"zmutrack_phiRange%d",
i);
190 sprintf(btk,
"zmutrack mass phi Range %f to %f",range0,range1);
198 double range1= range0 +
binPt;
200 sprintf(a,
"zmumu_ptRange%d",
i);
201 sprintf(b,
"zmumu mass pt Range %f to %f",range0,range1);
202 hmumu_pt.push_back(ptDirectory.
make<TH1D>(a,b,200,0.,200.));
203 char asta[30], bsta[50];
204 sprintf(asta,
"zmusta_ptRange%d",
i);
205 sprintf(bsta,
"zmusta mass pt Range %f to %f",range0,range1);
206 hmusta_pt.push_back(ptDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
207 char atk[30], btk[50];
208 sprintf(atk,
"zmutrack_ptRange%d",
i);
209 sprintf(btk,
"zmutrack mass pt Range %f to %f",range0,range1);
222 unsigned int nZMuMu = zMuMu->
size();
223 unsigned int nZTrackMu = zMuTrack->
size();
224 unsigned int nZStandAloneMu = zMuStandAlone->
size();
227 cout <<
"++++++++++++++++++++++++++" << endl;
228 cout <<
"nZMuMu = " << nZMuMu << endl;
229 cout <<
"nZTrackMu = " << nZTrackMu << endl;
230 cout <<
"nZStandAloneMu = " << nZStandAloneMu << endl;
231 cout <<
"++++++++++++++++++++++++++" << endl;
235 int ZMuMu_passed = 0;
236 int ZMuMu_ptcut_counter = 0;
237 int ZMuMu_etacut_counter = 0;
238 int ZMuMu_masscut_counter = 0;
239 int ZMuMu_isocut_counter = 0;
240 int ZMuMu_ptetacut_counter = 0;
241 int ZMuMu_ptetamasscut_counter = 0;
242 int ZMuMu_allcut_counter = 0;
246 int ZMuTrack_passed = 0;
247 int ZMuTrack_notcontained = 0;
248 int ZMuTrack_MCmatched_passed = 0;
251 int ZMuStandalone_notcontained = 0;
252 int ZMuStandalone_passed = 0;
253 int ZMuStandalone_MCmatched_passed = 0;
261 if( nZTrackMu > 0 ) {
266 if( nZStandAloneMu > 0 ) {
272 ProductID muIsoId = muIso->keyProduct().id();
275 ProductID trackIsoId = trackIso->keyProduct().id();
279 ProductID standAloneIsoId = standAloneIso->keyProduct().id();
283 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
284 bool ptcutAccept =
false;
285 bool etacutAccept =
false;
286 bool masscutAccept =
false;
287 bool isocutAccept =
false;
293 const double iso1 = muIso->value( lep1.
key() );
294 const double iso2 = muIso->value( lep2.key() );
296 double m = zmmCand.
mass();
299 if (lep1->pt()>
ptcut_ && lep2->pt()>
ptcut_) ptcutAccept =
true;
300 if (fabs(lep1->eta())<
etacut_ && fabs(lep2->eta())<
etacut_) etacutAccept =
true;
305 if (ptcutAccept) ZMuMu_ptcut_counter++;
306 if (etacutAccept) ZMuMu_etacut_counter++;
307 if (masscutAccept) ZMuMu_masscut_counter++;
308 if (isocutAccept) ZMuMu_isocut_counter++;
312 if (ptcutAccept && etacutAccept) {
313 ZMuMu_ptetacut_counter++;
315 ZMuMu_ptetamasscut_counter++;
321 if (ptcutAccept && etacutAccept && masscutAccept && isocutAccept) {
322 ZMuMu_allcut_counter++;
327 bool statusBinEta =
false;
328 bool statusBinPhi =
false;
329 bool statusBinPt =
false;
331 double range1= range0 +
binEta;
333 double range1phi= range0phi +
binPhi;
335 double range1pt = range0pt +
binPt;
337 if (lep1->eta()>=range0 && lep1->eta()<range1)
342 if (lep2->eta()>=range0 && lep2->eta()<range1 && !statusBinEta){
346 if (lep1->phi()>=range0phi && lep1->phi()<range1phi)
351 if (lep2->phi()>=range0phi && lep2->phi()<range1phi && !statusBinPhi){
355 if (lep1->pt()>=range0pt && lep1->pt()<range1pt)
360 if (lep2->pt()>=range0pt && lep2->pt()<range1pt && !statusBinPt){
366 if( m0 != zMuMuMap->
end()) {
386 if (ZMuMu_passed == 0 && nZStandAloneMu>0 ) {
388 for(
unsigned int j = 0; j < nZStandAloneMu; j++ ) {
389 const Candidate & zsmCand = (*zMuStandAlone)[ j ];
391 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
396 ZMuStandalone_notcontained++;
407 iso1 = muIso->value( lep1.
key() );
408 else if ( id1 == standAloneIsoId )
409 iso1 = standAloneIso->value( lep1.
key() );
412 iso2 = muIso->value( lep2.key() );
413 else if ( id2 == standAloneIsoId )
414 iso2 = standAloneIso->value( lep2.key() );
416 double ms = zsmCand.
mass();
421 ZMuStandalone_passed++;
425 double range1= range0 +
binEta;
427 double range1phi= range0phi +
binPhi;
429 double range1pt = range0pt +
binPt;
434 if (lep1->eta()>=range0 && lep1->eta()<range1)
hmusta_eta[j]->
Fill(ms);
435 if (lep1->phi()>=range0phi && lep1->phi()<range1phi)
hmusta_phi[j]->
Fill(ms);
436 if (lep1->pt()>=range0pt && lep1->pt()<range1pt)
hmusta_pt[j]->
Fill(ms);
440 if (lep2->eta()>=range0 && lep2->eta()<range1)
hmusta_eta[j]->
Fill(ms);
441 if (lep2->phi()>=range0phi && lep2->phi()<range1phi)
hmusta_phi[j]->
Fill(ms);
442 if (lep2->pt()>=range0pt && lep2->pt()<range1pt)
hmusta_pt[j]->
Fill(ms);
447 if( m0 != zMuStandAloneMap->
end()) {
448 ZMuStandalone_MCmatched_passed++;
462 if (ZMuMu_passed == 0 && ZMuStandalone_passed == 0 && nZTrackMu>0) {
463 for(
unsigned int j = 0; j < nZTrackMu; j++ ) {
464 const Candidate & ztmCand = (*zMuTrack)[ j ];
466 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
471 ZMuTrack_notcontained++;
482 iso1 = muIso->value( lep1.
key() );
483 else if ( id1 == trackIsoId )
484 iso1 = trackIso->value( lep1.
key() );
487 iso2 = muIso->value( lep2.key() );
488 else if ( id2 == trackIsoId )
489 iso2 = trackIso->value( lep2.key() );
491 double mt = ztmCand.
mass();
501 double range1= range0 +
binEta;
503 double range1phi= range0phi +
binPhi;
505 double range1pt = range0pt +
binPt;
511 if (lep1->phi()>=range0phi && lep1->phi()<range1phi)
hmutrack_phi[j]->
Fill(mt);
512 if (lep1->pt()>=range0pt && lep1->pt()<range1pt)
hmutrack_pt[j]->
Fill(mt);
517 if (lep2->phi()>=range0phi && lep2->phi()<range1phi)
hmutrack_phi[j]->
Fill(mt);
518 if (lep2->pt()>=range0pt && lep2->pt()<range1pt)
hmutrack_pt[j]->
Fill(mt);
522 if( m0 != zMuTrackMap->
end()) {
523 ZMuTrack_MCmatched_passed++;
559 for(
unsigned int i = 0;
i < nd1; ++
i ) {
587 for(
unsigned int i = 0;
i < nd2; ++
i ) {
618 cout <<
"ZMuMuAnalyzer::isContained WARNING n.of daughters different " << nd1 <<
" " << nd2 << endl;
622 for (
unsigned int i = 0;
i < nd1;
i++) {
624 for (
unsigned int j = 0; j < nd2; j++) {
625 if ( ((trackerTrack2[
i].
id()==trackerTrack1[j].
id()) && (trackerTrack2[
i].
key()==trackerTrack1[j].
key())) ||
626 ((trackerTrack2[
i].
id()==stAloneTrack1[j].
id()) && (trackerTrack2[
i].
key()==stAloneTrack1[j].
key())) ) {
646 double Nzmmc_moreZ = Nzmmc-Nzmmc_0Z-Nzmmc_1Z;
649 double Nzmmc_passed_moreZ = Nzmmc-Nzmmc_passed_0Z-Nzmmc_passed_1Z;
662 double Nzmmc_ptpassed_moreZ = Nzmmc-Nzmmc_ptpassed_0Z-Nzmmc_ptpassed_1Z;
663 double Nzmmc_etapassed_moreZ = Nzmmc-Nzmmc_etapassed_0Z-Nzmmc_etapassed_1Z;
664 double Nzmmc_masspassed_moreZ = Nzmmc-Nzmmc_masspassed_0Z-Nzmmc_masspassed_1Z;
665 double Nzmmc_isopassed_moreZ = Nzmmc-Nzmmc_isopassed_0Z-Nzmmc_isopassed_1Z;
666 double Nzmmc_ptetapassed_moreZ = Nzmmc-Nzmmc_ptetapassed_0Z-Nzmmc_ptetapassed_1Z;
667 double Nzmmc_ptetamasspassed_moreZ = Nzmmc-Nzmmc_ptetamasspassed_0Z-Nzmmc_ptetamasspassed_1Z;
671 double Nzmsc_moreZ = Nzmsc - Nzmsc_0Z - Nzmsc_1Z;
674 double Nzmsc_notcontained_moreZ = Nzmsc-Nzmsc_notcontained_0Z-Nzmsc_notcontained_1Z;
677 double Nzmsc_passed_moreZ = Nzmsc - Nzmsc_passed_0Z - Nzmsc_passed_1Z;
680 double Nzmsc_MCmatched_passed_moreZ = Nzmsc - Nzmsc_MCmatched_passed_0Z - Nzmsc_MCmatched_passed_1Z;
684 double Nzmtc_moreZ = Nzmtc - Nzmtc_0Z - Nzmtc_1Z;
687 double Nzmtc_notcontained_moreZ = Nzmtc-Nzmtc_notcontained_0Z-Nzmtc_notcontained_1Z;
690 double Nzmtc_passed_moreZ = Nzmtc - Nzmtc_passed_0Z - Nzmtc_passed_1Z;
693 double Nzmtc_MCmatched_passed_moreZ = Nzmtc - Nzmtc_MCmatched_passed_0Z - Nzmtc_MCmatched_passed_1Z;
695 cout <<
"--------------- Statistics ----------------------------------------------------------" << endl;
696 cout <<
"n of ZMuMu entries ...................................................... " << Nzmmc << endl;
697 cout <<
"n of ZMuMu events with 0 cand ............................................. " << Nzmmc_0Z << endl;
698 cout <<
"n of ZMuMu events with 1 cand ............................................. " << Nzmmc_1Z << endl;
699 cout <<
"n of ZMuMu events with 2 or more cand ..................................... " << Nzmmc_moreZ << endl << endl ;
701 cout <<
"n of ZMuMu events not selected by cuts .................................... " << Nzmmc_passed_0Z << endl;
702 cout <<
"n of ZMuMu events with 1 cand selected by cuts ............................ " << Nzmmc_passed_1Z << endl;
703 cout <<
"n of ZMuMu events with 2 or more cand elected by cuts ..................... " << Nzmmc_passed_moreZ << endl<< endl ;
705 cout <<
"n of ZMuMu events not selected by pt cut .................................. " << Nzmmc_ptpassed_0Z << endl;
706 cout <<
"n of ZMuMu events with 1 cand selected by pt cut .......................... " << Nzmmc_ptpassed_1Z << endl;
707 cout <<
"n of ZMuMu events with 2 or more cand elected by pt cut ................... " << Nzmmc_ptpassed_moreZ << endl<< endl ;
709 cout <<
"n of ZMuMu events not selected by eta cut ................................. " << Nzmmc_etapassed_0Z << endl;
710 cout <<
"n of ZMuMu events with 1 cand selected by eta cut ......................... " << Nzmmc_etapassed_1Z << endl;
711 cout <<
"n of ZMuMu events with 2 or more cand elected by eta cut .................. " << Nzmmc_etapassed_moreZ << endl<< endl ;
713 cout <<
"n of ZMuMu events not selected by mass cut ................................ " << Nzmmc_masspassed_0Z << endl;
714 cout <<
"n of ZMuMu events with 1 cand selected by mass cut ........................ " << Nzmmc_masspassed_1Z << endl;
715 cout <<
"n of ZMuMu events with 2 or more cand elected by mass cut ................. " << Nzmmc_masspassed_moreZ << endl<< endl ;
717 cout <<
"n of ZMuMu events not selected by iso cut ................................. " << Nzmmc_isopassed_0Z << endl;
718 cout <<
"n of ZMuMu events with 1 cand selected iso cut ............................ " << Nzmmc_isopassed_1Z << endl;
719 cout <<
"n of ZMuMu events with 2 or more cand elected iso cut ..................... " << Nzmmc_isopassed_moreZ << endl<< endl ;
721 cout <<
"n of ZMuMu events not selected by pt and eta cut .......................... " << Nzmmc_ptetapassed_0Z << endl;
722 cout <<
"n of ZMuMu events with 1 cand selected by pt and eta cut .................. " << Nzmmc_ptetapassed_1Z << endl;
723 cout <<
"n of ZMuMu events with 2 or more cand elected by pt and eta cut ........... " << Nzmmc_ptetapassed_moreZ << endl<< endl ;
725 cout <<
"n of ZMuMu events not selected by pt and eta and mass cut ................. " << Nzmmc_ptetamasspassed_0Z << endl;
726 cout <<
"n of ZMuMu events with 1 cand selected by pt and eta and mass cut ......... " << Nzmmc_ptetamasspassed_1Z << endl;
727 cout <<
"n of ZMuMu events with 2 or more cand elected by pt and eta and mass cut .. " << Nzmmc_ptetamasspassed_moreZ << endl<< endl ;
729 cout <<
"................When No ZMuMu are selected.................................." << endl;
730 cout <<
"n of ZMuSta entries ....................................................... " << Nzmsc << endl;
731 cout <<
"n of ZMuSta events with 0 cand ............................................ " << Nzmsc_0Z << endl;
732 cout <<
"n of ZMuSta events with 1 cand ............................................ " << Nzmsc_1Z << endl;
733 cout <<
"n of ZMuSta events with 2 or more cand .................................... " << Nzmsc_moreZ << endl<< endl ;
735 cout <<
"n of ZMuSta not contained events with 0 cand .............................. " << Nzmsc_notcontained_0Z << endl;
736 cout <<
"n of ZMuSta events not contained with 1 cand .............................. " << Nzmsc_notcontained_1Z << endl;
737 cout <<
"n of ZMuSta events no contained with 2 or more cand ....................... " << Nzmsc_notcontained_moreZ << endl<< endl ;
739 cout <<
"n of ZMuSta cand not selectd by cuts ...................................... " << Nzmsc_passed_0Z << endl;
740 cout <<
"n of ZMuSta events with 1 cand selected by cuts ........................... " << Nzmsc_passed_1Z << endl;
741 cout <<
"n of ZMuSta events with 2 or more cand selected by cuts ................... " << Nzmsc_passed_moreZ << endl<< endl ;
743 cout <<
"n of ZMuSta MCmatched cand not selectd by cuts ............................ " << Nzmsc_MCmatched_passed_0Z << endl;
744 cout <<
"n of ZMuSta MCmatched events with 1 cand selected by cuts ................. " << Nzmsc_MCmatched_passed_1Z << endl;
745 cout <<
"n of ZMuSta MCmatched events with 2 or more cand selected by cuts ......... " << Nzmsc_MCmatched_passed_moreZ << endl<< endl ;
747 cout <<
"...............When no ZMuMu and ZMuSta are selcted........................." << endl;
748 cout <<
"n of ZMuTrack entries ................................................... " << Nzmtc << endl;
749 cout <<
"n of ZMuTrack events with 0 cand ..........................................." << Nzmtc_0Z << endl;
750 cout <<
"n of ZMuTrack events with 1 cand ..........................................." << Nzmtc_1Z << endl;
751 cout <<
"n of ZMuTrack events with 2 or more cand ..................................." << Nzmtc_moreZ << endl<< endl ;
753 cout <<
"n of ZMuTrack not contained events with 0 cand ............................ " << Nzmtc_notcontained_0Z << endl;
754 cout <<
"n of ZMuTrack events not contained with 1 cand ............................ " << Nzmtc_notcontained_1Z << endl;
755 cout <<
"n of ZMuTrack events no contained with 2 or more cand ..................... " << Nzmtc_notcontained_moreZ << endl<< endl ;
757 cout <<
"n of ZMuTrack cand not selectd by cuts ....................................." << Nzmtc_passed_0Z << endl;
758 cout <<
"n of ZMuTrack events with 1 cand selected by cuts .........................." << Nzmtc_passed_1Z << endl;
759 cout <<
"n of ZMuTrack events with 2 or more cand selected by cuts .................." << Nzmtc_passed_moreZ << endl<< endl ;
761 cout <<
"n of ZMuTrack MCmatched cand not selectd by cuts .......................... " << Nzmtc_MCmatched_passed_0Z << endl;
762 cout <<
"n of ZMuTrcak MCmatched events with 1 cand selected by cuts ............... " << Nzmtc_MCmatched_passed_1Z << endl;
763 cout <<
"n of ZMuTrack MCmatched events with 2 or more cand selected by cuts ....... " << Nzmtc_MCmatched_passed_moreZ << endl;
765 cout <<
"------------------------------------------------------------------------------------------" << endl;
777 cout<<
"-- N SingleTrackMu = "<<Nztm<<endl;
778 cout<<
"-----N SinglStandAloneMu = "<<Nzsm<<endl;
779 cout<<
"-----N SingleStandAloneOverlapMu = "<<Nzsnom<<endl;
780 cout<<
"------- N MuMu = "<<Nzmm<<endl;
782 cout<<
"-- N SingleTrackMuMatched = "<<NztmMatch<<endl;
783 cout<<
"-----N SinglStandAloneMuMatched = "<<NzsmMatch<<endl;
784 cout<<
"-----N SingleStandAloneOverlapMuMatched = "<<NzsnomMatch<<endl;
785 cout<<
"------- N MuMu Matched = "<<NzmmMatch<<endl;
TH1D * h_zMuTrack_numberOfCand
edm::AssociationVector< reco::CandidateRefProd, std::vector< double > > IsolationCollection
vector< TH1D * > hmumu_phi
TH1D * h_zMuTrack_numberOfCand_notcontained
const_iterator end() const
last iterator over the map (read only)
vector< TH1D * > hmutrack_pt
TH1D * h_zMuSta_numberOfCand_passed
TH1D * h_zMuSingleStandAlone_mass_
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
const_iterator find(const key_type &k) const
find element with specified reference key
vector< TH1D * > hmutrack_eta
stand alone muon component tag
def setup(process, global_tag, zero_tesla=False)
TH1D * h_zMuMu_numberOfCand_isopassed
T * make(const Args &...args) const
make new ROOT object
TH1D * h_zMuMu_numberOfCand_etapassed
key_type key() const
Accessor for product key.
EDGetTokenT< CandMatchMap > zMuMuMapToken_
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
ProductID id() const
Accessor for product ID.
ZMuMuAnalyzer_cynematics(const edm::ParameterSet &pset)
vector< TH1D * > hmumu_eta
TH1D * h_zMuTrack_numberOfCand_passed
TH1D * h_zMuSingleStandAloneOverlapMatched_mass_
TH1D * h_zMuSingleStandAloneOverlap_mass_
#define DEFINE_FWK_MODULE(type)
TH1D * h_zMuSingleTrack_mass_
TH1D * h_zMuSingleTrackMatched_mass_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
TH1D * h_zMuTrack_MCmatched_numberOfCand_passed
TH1D * h_zMuMuMatched_mass_
TH1D * h_zMuSta_numberOfCand
vector< TH1D * > hmusta_pt
T * make(const Args &...args) const
make new ROOT object
EDGetTokenT< CandidateCollection > zMuMuToken_
T const * get() const
Returns C++ pointer to the item.
bool isContained(const Candidate &, const Candidate &)
EDGetTokenT< IsolationCollection > trackIsoToken_
TH1D * h_zMuMu_numberOfCand_masspassed
vector< TH1D * > hmusta_phi
virtual const CandidateBaseRef & masterClone() const =0
TH1D * h_zMuMu_numberOfCand_passed
TH1D * h_zMuMu_numberOfCand_ptetapassed
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
conbined muon component tag
virtual double mass() const =0
mass
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
TH1D * h_zMuSta_numberOfCand_notcontained
EDGetTokenT< CandMatchMap > zMuStandAloneMapToken_
vector< TH1D * > hmutrack_phi
T get() const
get a component
EDGetTokenT< CandidateCollection > zMuStandAloneToken_
TH1D * h_zMuSta_MCmatched_numberOfCand_passed
lep1
print 'MRbb(1b)',event.mr_bb
TH1D * h_zMuMu_numberOfCand_ptetamasspassed
vector< TH1D * > hmusta_eta
EDGetTokenT< IsolationCollection > standAloneIsoToken_
virtual size_type numberOfDaughters() const =0
number of daughters
vector< TH1D * > hmumu_pt
TH1D * h_zMuSingleStandAloneMatched_mass_
TH1D * h_zMuMu_numberOfCand
EDGetTokenT< CandMatchMap > zMuTrackMapToken_
EDGetTokenT< CandidateCollection > zMuTrackToken_
TH1D * h_zMuMu_numberOfCand_ptpassed
EDGetTokenT< IsolationCollection > muIsoToken_