56 virtual void endJob();
64 double isocut_, etacut_, ptcut_,
ptSTAcut_, minZmass_, maxZmass_;
65 TH1D * h_zMuMu_numberOfCand, * h_zMuMu_numberOfCand_passed, * h_zMuMu_numberOfCand_ptpassed,* h_zMuMu_numberOfCand_etapassed,
66 * h_zMuMu_numberOfCand_masspassed, * h_zMuMu_numberOfCand_isopassed, * h_zMuMu_numberOfCand_ptetapassed,
67 * h_zMuMu_numberOfCand_ptetamasspassed, * h_zMuMu_mass_, * h_zMuSingleTrack_mass_, * h_zMuSingleStandAlone_mass_,
69 * h_zMuSingleStandAloneMatched_mass_,
70 * h_zMuSingleStandAloneOverlapMatched_mass_;
72 TH1D * h_zMuSta_numberOfCand,* h_zMuSta_numberOfCand_passed,* h_zMuSta_MCmatched_numberOfCand_passed,
73 * h_zMuSta_numberOfCand_notcontained,
75 * h_zMuTrack_MCmatched_numberOfCand_passed;
88 zMuMu_( pset.getParameter<
InputTag>(
"zMuMu" ) ),
89 zMuTrack_( pset.getParameter<
InputTag>(
"zMuTrack" ) ),
90 zMuStandAlone_( pset.getParameter<
InputTag>(
"zMuStandAlone" ) ),
91 muIso_( pset.getParameter<
InputTag>(
"muIso" ) ),
92 trackIso_( pset.getParameter<
InputTag>(
"trackIso" ) ),
93 standAloneIso_( pset.getParameter<
InputTag>(
"standAloneIso" ) ),
94 zMuMuMap_( pset.getParameter<
InputTag>(
"zMuMuMap" ) ),
95 zMuTrackMap_( pset.getParameter<
InputTag>(
"zMuTrackMap" ) ),
96 zMuStandAloneMap_( pset.getParameter<
InputTag>(
"zMuStandAloneMap" ) ),
97 isocut_( pset.getParameter<double>(
"isocut" ) ),
98 etacut_( pset.getParameter<double>(
"etacut" ) ),
99 ptcut_( pset.getParameter<double>(
"ptcut" ) ),
100 ptSTAcut_( pset.getParameter<double>(
"ptSTAcut" ) ),
101 minZmass_( pset.getParameter<double>(
"minZmass" )),
102 maxZmass_( pset.getParameter<double>(
"maxZmass" )) {
126 h_zMuSta_numberOfCand = fs->
make<TH1D>(
"ZMuStanumberOfCand",
"number of ZMuSta cand (if ZMuMu not selected)",10, -.5, 9.5);
127 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.);
131 h_zMuTrack_numberOfCand = fs->
make<TH1D>(
"ZMuTranumberOfCand",
"number of ZMuTrack cand (if ZMuMu and ZMuSTa not selected)",10, -.5, 9.5);
157 double range1= range0 +
binEta;
159 sprintf(a,
"zmumu_etaRange%d",
i);
160 sprintf(b,
"zmumu mass eta Range %f to %f",range0,range1);
161 hmumu_eta.push_back(etaDirectory.
make<TH1D>(a,b,200,0.,200.));
162 char asta[30], bsta[50];
163 sprintf(asta,
"zmusta_etaRange%d",
i);
164 sprintf(bsta,
"zmusta mass eta Range %f to %f",range0,range1);
165 hmusta_eta.push_back(etaDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
166 char atk[30], btk[50];
167 sprintf(atk,
"zmutrack_etaRange%d",
i);
168 sprintf(btk,
"zmutrack mass eta Range %f to %f",range0,range1);
176 double range1= range0 +
binPhi;
178 sprintf(a,
"zmumu_phiRange%d",
i);
179 sprintf(b,
"zmumu mass phi Range %f to %f",range0,range1);
180 hmumu_phi.push_back(phiDirectory.
make<TH1D>(a,b,200,0.,200.));
181 char asta[30], bsta[50];
182 sprintf(asta,
"zmusta_phiRange%d",
i);
183 sprintf(bsta,
"zmusta mass phi Range %f to %f",range0,range1);
184 hmusta_phi.push_back(phiDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
185 char atk[30], btk[50];
186 sprintf(atk,
"zmutrack_phiRange%d",
i);
187 sprintf(btk,
"zmutrack mass phi Range %f to %f",range0,range1);
195 double range1= range0 +
binPt;
197 sprintf(a,
"zmumu_ptRange%d",
i);
198 sprintf(b,
"zmumu mass pt Range %f to %f",range0,range1);
199 hmumu_pt.push_back(ptDirectory.
make<TH1D>(a,b,200,0.,200.));
200 char asta[30], bsta[50];
201 sprintf(asta,
"zmusta_ptRange%d",
i);
202 sprintf(bsta,
"zmusta mass pt Range %f to %f",range0,range1);
203 hmusta_pt.push_back(ptDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
204 char atk[30], btk[50];
205 sprintf(atk,
"zmutrack_ptRange%d",
i);
206 sprintf(btk,
"zmutrack mass pt Range %f to %f",range0,range1);
213 event.getByLabel(
zMuMu_, zMuMu);
219 unsigned int nZMuMu = zMuMu->size();
220 unsigned int nZTrackMu = zMuTrack->size();
221 unsigned int nZStandAloneMu = zMuStandAlone->size();
224 cout <<
"++++++++++++++++++++++++++" << endl;
225 cout <<
"nZMuMu = " << nZMuMu << endl;
226 cout <<
"nZTrackMu = " << nZTrackMu << endl;
227 cout <<
"nZStandAloneMu = " << nZStandAloneMu << endl;
228 cout <<
"++++++++++++++++++++++++++" << endl;
232 int ZMuMu_passed = 0;
233 int ZMuMu_ptcut_counter = 0;
234 int ZMuMu_etacut_counter = 0;
235 int ZMuMu_masscut_counter = 0;
236 int ZMuMu_isocut_counter = 0;
237 int ZMuMu_ptetacut_counter = 0;
238 int ZMuMu_ptetamasscut_counter = 0;
239 int ZMuMu_allcut_counter = 0;
243 int ZMuTrack_passed = 0;
244 int ZMuTrack_notcontained = 0;
245 int ZMuTrack_MCmatched_passed = 0;
248 int ZMuStandalone_notcontained = 0;
249 int ZMuStandalone_passed = 0;
250 int ZMuStandalone_MCmatched_passed = 0;
258 if( nZTrackMu > 0 ) {
263 if( nZStandAloneMu > 0 ) {
268 event.getByLabel(
muIso_, muIso);
272 ProductID trackIsoId = trackIso->keyProduct().
id();
276 ProductID standAloneIsoId = standAloneIso->keyProduct().
id();
280 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
281 bool ptcutAccept =
false;
282 bool etacutAccept =
false;
283 bool masscutAccept =
false;
284 bool isocutAccept =
false;
290 const double iso1 = muIso->value( lep1.
key() );
291 const double iso2 = muIso->value( lep2.key() );
293 double m = zmmCand.
mass();
296 if (lep1->pt()>
ptcut_ && lep2->pt()>
ptcut_) ptcutAccept =
true;
297 if (fabs(lep1->eta())<
etacut_ && fabs(lep2->eta())<
etacut_) etacutAccept =
true;
302 if (ptcutAccept) ZMuMu_ptcut_counter++;
303 if (etacutAccept) ZMuMu_etacut_counter++;
304 if (masscutAccept) ZMuMu_masscut_counter++;
305 if (isocutAccept) ZMuMu_isocut_counter++;
309 if (ptcutAccept && etacutAccept) {
310 ZMuMu_ptetacut_counter++;
312 ZMuMu_ptetamasscut_counter++;
318 if (ptcutAccept && etacutAccept && masscutAccept && isocutAccept) {
319 ZMuMu_allcut_counter++;
324 bool statusBinEta =
false;
325 bool statusBinPhi =
false;
326 bool statusBinPt =
false;
328 double range1= range0 +
binEta;
330 double range1phi= range0phi +
binPhi;
332 double range1pt = range0pt +
binPt;
334 if (lep1->eta()>=range0 && lep1->eta()<range1)
339 if (lep2->eta()>=range0 && lep2->eta()<range1 && !statusBinEta){
343 if (lep1->phi()>=range0phi && lep1->phi()<range1phi)
348 if (lep2->phi()>=range0phi && lep2->phi()<range1phi && !statusBinPhi){
352 if (lep1->pt()>=range0pt && lep1->pt()<range1pt)
357 if (lep2->pt()>=range0pt && lep2->pt()<range1pt && !statusBinPt){
363 if( m0 != zMuMuMap->end()) {
383 if (ZMuMu_passed == 0 && nZStandAloneMu>0 ) {
385 for(
unsigned int j = 0;
j < nZStandAloneMu;
j++ ) {
386 const Candidate & zsmCand = (*zMuStandAlone)[
j ];
388 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
393 ZMuStandalone_notcontained++;
404 iso1 = muIso->value( lep1.
key() );
405 else if ( id1 == standAloneIsoId )
406 iso1 = standAloneIso->value( lep1.
key() );
409 iso2 = muIso->value( lep2.key() );
410 else if ( id2 == standAloneIsoId )
411 iso2 = standAloneIso->value( lep2.key() );
413 double ms = zsmCand.
mass();
418 ZMuStandalone_passed++;
422 double range1= range0 +
binEta;
424 double range1phi= range0phi +
binPhi;
426 double range1pt = range0pt +
binPt;
431 if (lep1->eta()>=range0 && lep1->eta()<range1)
hmusta_eta[
j]->
Fill(ms);
432 if (lep1->phi()>=range0phi && lep1->phi()<range1phi)
hmusta_phi[
j]->
Fill(ms);
433 if (lep1->pt()>=range0pt && lep1->pt()<range1pt)
hmusta_pt[
j]->
Fill(ms);
437 if (lep2->eta()>=range0 && lep2->eta()<range1)
hmusta_eta[
j]->
Fill(ms);
438 if (lep2->phi()>=range0phi && lep2->phi()<range1phi)
hmusta_phi[
j]->
Fill(ms);
439 if (lep2->pt()>=range0pt && lep2->pt()<range1pt)
hmusta_pt[
j]->
Fill(ms);
444 if( m0 != zMuStandAloneMap->end()) {
445 ZMuStandalone_MCmatched_passed++;
459 if (ZMuMu_passed == 0 && ZMuStandalone_passed == 0 && nZTrackMu>0) {
460 for(
unsigned int j = 0;
j < nZTrackMu;
j++ ) {
463 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
468 ZMuTrack_notcontained++;
479 iso1 = muIso->value( lep1.
key() );
480 else if ( id1 == trackIsoId )
481 iso1 = trackIso->value( lep1.
key() );
484 iso2 = muIso->value( lep2.key() );
485 else if ( id2 == trackIsoId )
486 iso2 = trackIso->value( lep2.key() );
488 double mt = ztmCand.
mass();
498 double range1= range0 +
binEta;
500 double range1phi= range0phi +
binPhi;
502 double range1pt = range0pt +
binPt;
519 if( m0 != zMuTrackMap->end()) {
520 ZMuTrack_MCmatched_passed++;
554 unsigned int matched=0;
556 for(
unsigned int i = 0;
i < nd1; ++
i ) {
584 for(
unsigned int i = 0;
i < nd2; ++
i ) {
615 cout <<
"ZMuMuAnalyzer::isContained WARNING n.of daughters different " << nd1 <<
" " << nd2 << endl;
619 for (
unsigned int i = 0;
i < nd1;
i++) {
621 for (
unsigned int j = 0;
j < nd2;
j++) {
622 if ( ((trackerTrack2[
i].
id()==trackerTrack1[
j].
id()) && (trackerTrack2[
i].
key()==trackerTrack1[
j].
key())) ||
623 ((trackerTrack2[
i].
id()==stAloneTrack1[
j].
id()) && (trackerTrack2[
i].
key()==stAloneTrack1[
j].
key())) ) {
643 double Nzmmc_moreZ = Nzmmc-Nzmmc_0Z-Nzmmc_1Z;
646 double Nzmmc_passed_moreZ = Nzmmc-Nzmmc_passed_0Z-Nzmmc_passed_1Z;
659 double Nzmmc_ptpassed_moreZ = Nzmmc-Nzmmc_ptpassed_0Z-Nzmmc_ptpassed_1Z;
660 double Nzmmc_etapassed_moreZ = Nzmmc-Nzmmc_etapassed_0Z-Nzmmc_etapassed_1Z;
661 double Nzmmc_masspassed_moreZ = Nzmmc-Nzmmc_masspassed_0Z-Nzmmc_masspassed_1Z;
662 double Nzmmc_isopassed_moreZ = Nzmmc-Nzmmc_isopassed_0Z-Nzmmc_isopassed_1Z;
663 double Nzmmc_ptetapassed_moreZ = Nzmmc-Nzmmc_ptetapassed_0Z-Nzmmc_ptetapassed_1Z;
664 double Nzmmc_ptetamasspassed_moreZ = Nzmmc-Nzmmc_ptetamasspassed_0Z-Nzmmc_ptetamasspassed_1Z;
668 double Nzmsc_moreZ = Nzmsc - Nzmsc_0Z - Nzmsc_1Z;
671 double Nzmsc_notcontained_moreZ = Nzmsc-Nzmsc_notcontained_0Z-Nzmsc_notcontained_1Z;
674 double Nzmsc_passed_moreZ = Nzmsc - Nzmsc_passed_0Z - Nzmsc_passed_1Z;
677 double Nzmsc_MCmatched_passed_moreZ = Nzmsc - Nzmsc_MCmatched_passed_0Z - Nzmsc_MCmatched_passed_1Z;
681 double Nzmtc_moreZ = Nzmtc - Nzmtc_0Z - Nzmtc_1Z;
684 double Nzmtc_notcontained_moreZ = Nzmtc-Nzmtc_notcontained_0Z-Nzmtc_notcontained_1Z;
687 double Nzmtc_passed_moreZ = Nzmtc - Nzmtc_passed_0Z - Nzmtc_passed_1Z;
690 double Nzmtc_MCmatched_passed_moreZ = Nzmtc - Nzmtc_MCmatched_passed_0Z - Nzmtc_MCmatched_passed_1Z;
692 cout <<
"--------------- Statistics ----------------------------------------------------------" << endl;
693 cout <<
"n of ZMuMu entries ...................................................... " << Nzmmc << endl;
694 cout <<
"n of ZMuMu events with 0 cand ............................................. " << Nzmmc_0Z << endl;
695 cout <<
"n of ZMuMu events with 1 cand ............................................. " << Nzmmc_1Z << endl;
696 cout <<
"n of ZMuMu events with 2 or more cand ..................................... " << Nzmmc_moreZ << endl << endl ;
698 cout <<
"n of ZMuMu events not selected by cuts .................................... " << Nzmmc_passed_0Z << endl;
699 cout <<
"n of ZMuMu events with 1 cand selected by cuts ............................ " << Nzmmc_passed_1Z << endl;
700 cout <<
"n of ZMuMu events with 2 or more cand elected by cuts ..................... " << Nzmmc_passed_moreZ << endl<< endl ;
702 cout <<
"n of ZMuMu events not selected by pt cut .................................. " << Nzmmc_ptpassed_0Z << endl;
703 cout <<
"n of ZMuMu events with 1 cand selected by pt cut .......................... " << Nzmmc_ptpassed_1Z << endl;
704 cout <<
"n of ZMuMu events with 2 or more cand elected by pt cut ................... " << Nzmmc_ptpassed_moreZ << endl<< endl ;
706 cout <<
"n of ZMuMu events not selected by eta cut ................................. " << Nzmmc_etapassed_0Z << endl;
707 cout <<
"n of ZMuMu events with 1 cand selected by eta cut ......................... " << Nzmmc_etapassed_1Z << endl;
708 cout <<
"n of ZMuMu events with 2 or more cand elected by eta cut .................. " << Nzmmc_etapassed_moreZ << endl<< endl ;
710 cout <<
"n of ZMuMu events not selected by mass cut ................................ " << Nzmmc_masspassed_0Z << endl;
711 cout <<
"n of ZMuMu events with 1 cand selected by mass cut ........................ " << Nzmmc_masspassed_1Z << endl;
712 cout <<
"n of ZMuMu events with 2 or more cand elected by mass cut ................. " << Nzmmc_masspassed_moreZ << endl<< endl ;
714 cout <<
"n of ZMuMu events not selected by iso cut ................................. " << Nzmmc_isopassed_0Z << endl;
715 cout <<
"n of ZMuMu events with 1 cand selected iso cut ............................ " << Nzmmc_isopassed_1Z << endl;
716 cout <<
"n of ZMuMu events with 2 or more cand elected iso cut ..................... " << Nzmmc_isopassed_moreZ << endl<< endl ;
718 cout <<
"n of ZMuMu events not selected by pt and eta cut .......................... " << Nzmmc_ptetapassed_0Z << endl;
719 cout <<
"n of ZMuMu events with 1 cand selected by pt and eta cut .................. " << Nzmmc_ptetapassed_1Z << endl;
720 cout <<
"n of ZMuMu events with 2 or more cand elected by pt and eta cut ........... " << Nzmmc_ptetapassed_moreZ << endl<< endl ;
722 cout <<
"n of ZMuMu events not selected by pt and eta and mass cut ................. " << Nzmmc_ptetamasspassed_0Z << endl;
723 cout <<
"n of ZMuMu events with 1 cand selected by pt and eta and mass cut ......... " << Nzmmc_ptetamasspassed_1Z << endl;
724 cout <<
"n of ZMuMu events with 2 or more cand elected by pt and eta and mass cut .. " << Nzmmc_ptetamasspassed_moreZ << endl<< endl ;
726 cout <<
"................When No ZMuMu are selected.................................." << endl;
727 cout <<
"n of ZMuSta entries ....................................................... " << Nzmsc << endl;
728 cout <<
"n of ZMuSta events with 0 cand ............................................ " << Nzmsc_0Z << endl;
729 cout <<
"n of ZMuSta events with 1 cand ............................................ " << Nzmsc_1Z << endl;
730 cout <<
"n of ZMuSta events with 2 or more cand .................................... " << Nzmsc_moreZ << endl<< endl ;
732 cout <<
"n of ZMuSta not contained events with 0 cand .............................. " << Nzmsc_notcontained_0Z << endl;
733 cout <<
"n of ZMuSta events not contained with 1 cand .............................. " << Nzmsc_notcontained_1Z << endl;
734 cout <<
"n of ZMuSta events no contained with 2 or more cand ....................... " << Nzmsc_notcontained_moreZ << endl<< endl ;
736 cout <<
"n of ZMuSta cand not selectd by cuts ...................................... " << Nzmsc_passed_0Z << endl;
737 cout <<
"n of ZMuSta events with 1 cand selected by cuts ........................... " << Nzmsc_passed_1Z << endl;
738 cout <<
"n of ZMuSta events with 2 or more cand selected by cuts ................... " << Nzmsc_passed_moreZ << endl<< endl ;
740 cout <<
"n of ZMuSta MCmatched cand not selectd by cuts ............................ " << Nzmsc_MCmatched_passed_0Z << endl;
741 cout <<
"n of ZMuSta MCmatched events with 1 cand selected by cuts ................. " << Nzmsc_MCmatched_passed_1Z << endl;
742 cout <<
"n of ZMuSta MCmatched events with 2 or more cand selected by cuts ......... " << Nzmsc_MCmatched_passed_moreZ << endl<< endl ;
744 cout <<
"...............When no ZMuMu and ZMuSta are selcted........................." << endl;
745 cout <<
"n of ZMuTrack entries ................................................... " << Nzmtc << endl;
746 cout <<
"n of ZMuTrack events with 0 cand ..........................................." << Nzmtc_0Z << endl;
747 cout <<
"n of ZMuTrack events with 1 cand ..........................................." << Nzmtc_1Z << endl;
748 cout <<
"n of ZMuTrack events with 2 or more cand ..................................." << Nzmtc_moreZ << endl<< endl ;
750 cout <<
"n of ZMuTrack not contained events with 0 cand ............................ " << Nzmtc_notcontained_0Z << endl;
751 cout <<
"n of ZMuTrack events not contained with 1 cand ............................ " << Nzmtc_notcontained_1Z << endl;
752 cout <<
"n of ZMuTrack events no contained with 2 or more cand ..................... " << Nzmtc_notcontained_moreZ << endl<< endl ;
754 cout <<
"n of ZMuTrack cand not selectd by cuts ....................................." << Nzmtc_passed_0Z << endl;
755 cout <<
"n of ZMuTrack events with 1 cand selected by cuts .........................." << Nzmtc_passed_1Z << endl;
756 cout <<
"n of ZMuTrack events with 2 or more cand selected by cuts .................." << Nzmtc_passed_moreZ << endl<< endl ;
758 cout <<
"n of ZMuTrack MCmatched cand not selectd by cuts .......................... " << Nzmtc_MCmatched_passed_0Z << endl;
759 cout <<
"n of ZMuTrcak MCmatched events with 1 cand selected by cuts ............... " << Nzmtc_MCmatched_passed_1Z << endl;
760 cout <<
"n of ZMuTrack MCmatched events with 2 or more cand selected by cuts ....... " << Nzmtc_MCmatched_passed_moreZ << endl;
762 cout <<
"------------------------------------------------------------------------------------------" << endl;
774 cout<<
"-- N SingleTrackMu = "<<Nztm<<endl;
775 cout<<
"-----N SinglStandAloneMu = "<<Nzsm<<endl;
776 cout<<
"-----N SingleStandAloneOverlapMu = "<<Nzsnom<<endl;
777 cout<<
"------- N MuMu = "<<Nzmm<<endl;
779 cout<<
"-- N SingleTrackMuMatched = "<<NztmMatch<<endl;
780 cout<<
"-----N SinglStandAloneMuMatched = "<<NzsmMatch<<endl;
781 cout<<
"-----N SingleStandAloneOverlapMuMatched = "<<NzsnomMatch<<endl;
782 cout<<
"------- N MuMu Matched = "<<NzmmMatch<<endl;
TH1D * h_zMuTrack_numberOfCand
static bool isContained(const std::vector< unsigned int > &list, int id)
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
vector< TH1D * > hmumu_phi
TH1D * h_zMuTrack_numberOfCand_notcontained
vector< TH1D * > hmutrack_pt
#define DEFINE_FWK_MODULE(type)
TH1D * h_zMuSta_numberOfCand_passed
TH1D * h_zMuSingleStandAlone_mass_
virtual double mass() const =0
mass
vector< TH1D * > hmutrack_eta
stand alone muon component tag
TH1D * h_zMuMu_numberOfCand_isopassed
TH1D * h_zMuMu_numberOfCand_etapassed
ZMuMuAnalyzer_cynematics(const edm::ParameterSet &pset)
vector< TH1D * > hmumu_eta
TH1D * h_zMuTrack_numberOfCand_passed
virtual size_type numberOfDaughters() const =0
number of daughters
TH1D * h_zMuSingleStandAloneOverlapMatched_mass_
TH1D * h_zMuSingleStandAloneOverlap_mass_
edm::ValueMap< float > IsolationCollection
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
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
bool isContained(const Candidate &, const Candidate &)
TH1D * h_zMuMu_numberOfCand_masspassed
vector< TH1D * > hmusta_phi
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
REF castTo() const
cast to a concrete type
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
key_type key() const
Accessor for product key.
TH1D * h_zMuSta_numberOfCand_notcontained
vector< TH1D * > hmutrack_phi
T get() const
get a component
T * make() const
make new ROOT object
TH1D * h_zMuSta_MCmatched_numberOfCand_passed
virtual void analyze(const edm::Event &event, const edm::EventSetup &setup)
ProductID id() const
Accessor for product ID.
TH1D * h_zMuMu_numberOfCand_ptetamasspassed
InputTag zMuStandAloneMap_
vector< TH1D * > hmusta_eta
T const * get() const
Returns C++ pointer to the item.
vector< TH1D * > hmumu_pt
TH1D * h_zMuSingleStandAloneMatched_mass_
TH1D * h_zMuMu_numberOfCand
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
tuple zMuMu
zMuMu vector of PSet is common to all categories except zMuTrk category
TH1D * h_zMuMu_numberOfCand_ptpassed
virtual const CandidateBaseRef & masterClone() const =0