55 virtual void endJob()
override;
63 double isocut_, etacut_, ptcut_,
ptSTAcut_, minZmass_, maxZmass_;
64 TH1D * h_zMuMu_numberOfCand, * h_zMuMu_numberOfCand_passed, * h_zMuMu_numberOfCand_ptpassed,* h_zMuMu_numberOfCand_etapassed,
65 * h_zMuMu_numberOfCand_masspassed, * h_zMuMu_numberOfCand_isopassed, * h_zMuMu_numberOfCand_ptetapassed,
66 * h_zMuMu_numberOfCand_ptetamasspassed, * h_zMuMu_mass_, * h_zMuSingleTrack_mass_, * h_zMuSingleStandAlone_mass_,
68 * h_zMuSingleStandAloneMatched_mass_,
69 * h_zMuSingleStandAloneOverlapMatched_mass_;
71 TH1D * h_zMuSta_numberOfCand,* h_zMuSta_numberOfCand_passed,* h_zMuSta_MCmatched_numberOfCand_passed,
72 * h_zMuSta_numberOfCand_notcontained,
74 * h_zMuTrack_MCmatched_numberOfCand_passed;
87 zMuMu_( pset.getParameter<
InputTag>(
"zMuMu" ) ),
88 zMuTrack_( pset.getParameter<
InputTag>(
"zMuTrack" ) ),
89 zMuStandAlone_( pset.getParameter<
InputTag>(
"zMuStandAlone" ) ),
90 muIso_( pset.getParameter<
InputTag>(
"muIso" ) ),
91 trackIso_( pset.getParameter<
InputTag>(
"trackIso" ) ),
92 standAloneIso_( pset.getParameter<
InputTag>(
"standAloneIso" ) ),
93 zMuMuMap_( pset.getParameter<
InputTag>(
"zMuMuMap" ) ),
94 zMuTrackMap_( pset.getParameter<
InputTag>(
"zMuTrackMap" ) ),
95 zMuStandAloneMap_( pset.getParameter<
InputTag>(
"zMuStandAloneMap" ) ),
96 isocut_( pset.getParameter<double>(
"isocut" ) ),
97 etacut_( pset.getParameter<double>(
"etacut" ) ),
98 ptcut_( pset.getParameter<double>(
"ptcut" ) ),
99 ptSTAcut_( pset.getParameter<double>(
"ptSTAcut" ) ),
100 minZmass_( pset.getParameter<double>(
"minZmass" )),
101 maxZmass_( pset.getParameter<double>(
"maxZmass" )) {
125 h_zMuSta_numberOfCand = fs->
make<TH1D>(
"ZMuStanumberOfCand",
"number of ZMuSta cand (if ZMuMu not selected)",10, -.5, 9.5);
126 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.);
130 h_zMuTrack_numberOfCand = fs->
make<TH1D>(
"ZMuTranumberOfCand",
"number of ZMuTrack cand (if ZMuMu and ZMuSTa not selected)",10, -.5, 9.5);
156 double range1= range0 +
binEta;
158 sprintf(a,
"zmumu_etaRange%d",
i);
159 sprintf(b,
"zmumu mass eta Range %f to %f",range0,range1);
160 hmumu_eta.push_back(etaDirectory.
make<TH1D>(a,b,200,0.,200.));
161 char asta[30], bsta[50];
162 sprintf(asta,
"zmusta_etaRange%d",
i);
163 sprintf(bsta,
"zmusta mass eta Range %f to %f",range0,range1);
164 hmusta_eta.push_back(etaDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
165 char atk[30], btk[50];
166 sprintf(atk,
"zmutrack_etaRange%d",
i);
167 sprintf(btk,
"zmutrack mass eta Range %f to %f",range0,range1);
175 double range1= range0 +
binPhi;
177 sprintf(a,
"zmumu_phiRange%d",
i);
178 sprintf(b,
"zmumu mass phi Range %f to %f",range0,range1);
179 hmumu_phi.push_back(phiDirectory.
make<TH1D>(a,b,200,0.,200.));
180 char asta[30], bsta[50];
181 sprintf(asta,
"zmusta_phiRange%d",
i);
182 sprintf(bsta,
"zmusta mass phi Range %f to %f",range0,range1);
183 hmusta_phi.push_back(phiDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
184 char atk[30], btk[50];
185 sprintf(atk,
"zmutrack_phiRange%d",
i);
186 sprintf(btk,
"zmutrack mass phi Range %f to %f",range0,range1);
194 double range1= range0 +
binPt;
196 sprintf(a,
"zmumu_ptRange%d",
i);
197 sprintf(b,
"zmumu mass pt Range %f to %f",range0,range1);
198 hmumu_pt.push_back(ptDirectory.
make<TH1D>(a,b,200,0.,200.));
199 char asta[30], bsta[50];
200 sprintf(asta,
"zmusta_ptRange%d",
i);
201 sprintf(bsta,
"zmusta mass pt Range %f to %f",range0,range1);
202 hmusta_pt.push_back(ptDirectory.
make<TH1D>(asta,bsta,50,0.,200.));
203 char atk[30], btk[50];
204 sprintf(atk,
"zmutrack_ptRange%d",
i);
205 sprintf(btk,
"zmutrack mass pt Range %f to %f",range0,range1);
212 event.getByLabel(
zMuMu_, zMuMu);
218 unsigned int nZMuMu = zMuMu->size();
219 unsigned int nZTrackMu = zMuTrack->size();
220 unsigned int nZStandAloneMu = zMuStandAlone->size();
223 cout <<
"++++++++++++++++++++++++++" << endl;
224 cout <<
"nZMuMu = " << nZMuMu << endl;
225 cout <<
"nZTrackMu = " << nZTrackMu << endl;
226 cout <<
"nZStandAloneMu = " << nZStandAloneMu << endl;
227 cout <<
"++++++++++++++++++++++++++" << endl;
231 int ZMuMu_passed = 0;
232 int ZMuMu_ptcut_counter = 0;
233 int ZMuMu_etacut_counter = 0;
234 int ZMuMu_masscut_counter = 0;
235 int ZMuMu_isocut_counter = 0;
236 int ZMuMu_ptetacut_counter = 0;
237 int ZMuMu_ptetamasscut_counter = 0;
238 int ZMuMu_allcut_counter = 0;
242 int ZMuTrack_passed = 0;
243 int ZMuTrack_notcontained = 0;
244 int ZMuTrack_MCmatched_passed = 0;
247 int ZMuStandalone_notcontained = 0;
248 int ZMuStandalone_passed = 0;
249 int ZMuStandalone_MCmatched_passed = 0;
257 if( nZTrackMu > 0 ) {
262 if( nZStandAloneMu > 0 ) {
267 event.getByLabel(
muIso_, muIso);
271 ProductID trackIsoId = trackIso->keyProduct().
id();
275 ProductID standAloneIsoId = standAloneIso->keyProduct().
id();
279 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
280 bool ptcutAccept =
false;
281 bool etacutAccept =
false;
282 bool masscutAccept =
false;
283 bool isocutAccept =
false;
289 const double iso1 = muIso->value( lep1.
key() );
290 const double iso2 = muIso->value( lep2.key() );
292 double m = zmmCand.
mass();
295 if (lep1->pt()>
ptcut_ && lep2->pt()>
ptcut_) ptcutAccept =
true;
296 if (fabs(lep1->eta())<
etacut_ && fabs(lep2->eta())<
etacut_) etacutAccept =
true;
301 if (ptcutAccept) ZMuMu_ptcut_counter++;
302 if (etacutAccept) ZMuMu_etacut_counter++;
303 if (masscutAccept) ZMuMu_masscut_counter++;
304 if (isocutAccept) ZMuMu_isocut_counter++;
308 if (ptcutAccept && etacutAccept) {
309 ZMuMu_ptetacut_counter++;
311 ZMuMu_ptetamasscut_counter++;
317 if (ptcutAccept && etacutAccept && masscutAccept && isocutAccept) {
318 ZMuMu_allcut_counter++;
323 bool statusBinEta =
false;
324 bool statusBinPhi =
false;
325 bool statusBinPt =
false;
327 double range1= range0 +
binEta;
329 double range1phi= range0phi +
binPhi;
331 double range1pt = range0pt +
binPt;
333 if (lep1->eta()>=range0 && lep1->eta()<range1)
338 if (lep2->eta()>=range0 && lep2->eta()<range1 && !statusBinEta){
342 if (lep1->phi()>=range0phi && lep1->phi()<range1phi)
347 if (lep2->phi()>=range0phi && lep2->phi()<range1phi && !statusBinPhi){
351 if (lep1->pt()>=range0pt && lep1->pt()<range1pt)
356 if (lep2->pt()>=range0pt && lep2->pt()<range1pt && !statusBinPt){
361 CandMatchMap::const_iterator m0 = zMuMuMap->find(CandRef);
362 if( m0 != zMuMuMap->end()) {
382 if (ZMuMu_passed == 0 && nZStandAloneMu>0 ) {
384 for(
unsigned int j = 0;
j < nZStandAloneMu;
j++ ) {
385 const Candidate & zsmCand = (*zMuStandAlone)[
j ];
387 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
392 ZMuStandalone_notcontained++;
403 iso1 = muIso->value( lep1.
key() );
404 else if ( id1 == standAloneIsoId )
405 iso1 = standAloneIso->value( lep1.
key() );
408 iso2 = muIso->value( lep2.key() );
409 else if ( id2 == standAloneIsoId )
410 iso2 = standAloneIso->value( lep2.key() );
412 double ms = zsmCand.
mass();
417 ZMuStandalone_passed++;
421 double range1= range0 +
binEta;
423 double range1phi= range0phi +
binPhi;
425 double range1pt = range0pt +
binPt;
430 if (lep1->eta()>=range0 && lep1->eta()<range1)
hmusta_eta[
j]->
Fill(ms);
431 if (lep1->phi()>=range0phi && lep1->phi()<range1phi)
hmusta_phi[
j]->
Fill(ms);
432 if (lep1->pt()>=range0pt && lep1->pt()<range1pt)
hmusta_pt[
j]->
Fill(ms);
436 if (lep2->eta()>=range0 && lep2->eta()<range1)
hmusta_eta[
j]->
Fill(ms);
437 if (lep2->phi()>=range0phi && lep2->phi()<range1phi)
hmusta_phi[
j]->
Fill(ms);
438 if (lep2->pt()>=range0pt && lep2->pt()<range1pt)
hmusta_pt[
j]->
Fill(ms);
442 CandMatchMap::const_iterator m0 = zMuStandAloneMap->find(CandRef);
443 if( m0 != zMuStandAloneMap->end()) {
444 ZMuStandalone_MCmatched_passed++;
458 if (ZMuMu_passed == 0 && ZMuStandalone_passed == 0 && nZTrackMu>0) {
459 for(
unsigned int j = 0;
j < nZTrackMu;
j++ ) {
462 for(
unsigned int i = 0;
i < nZMuMu;
i++ ) {
467 ZMuTrack_notcontained++;
478 iso1 = muIso->value( lep1.
key() );
479 else if ( id1 == trackIsoId )
480 iso1 = trackIso->value( lep1.
key() );
483 iso2 = muIso->value( lep2.key() );
484 else if ( id2 == trackIsoId )
485 iso2 = trackIso->value( lep2.key() );
487 double mt = ztmCand.
mass();
497 double range1= range0 +
binEta;
499 double range1phi= range0phi +
binPhi;
501 double range1pt = range0pt +
binPt;
517 CandMatchMap::const_iterator m0 = zMuTrackMap->find(CandRef);
518 if( m0 != zMuTrackMap->end()) {
519 ZMuTrack_MCmatched_passed++;
553 unsigned int matched=0;
555 for(
unsigned int i = 0;
i < nd1; ++
i ) {
583 for(
unsigned int i = 0;
i < nd2; ++
i ) {
614 cout <<
"ZMuMuAnalyzer::isContained WARNING n.of daughters different " << nd1 <<
" " << nd2 << endl;
618 for (
unsigned int i = 0;
i < nd1;
i++) {
620 for (
unsigned int j = 0;
j < nd2;
j++) {
621 if ( ((trackerTrack2[
i].
id()==trackerTrack1[
j].
id()) && (trackerTrack2[
i].
key()==trackerTrack1[
j].
key())) ||
622 ((trackerTrack2[
i].
id()==stAloneTrack1[
j].
id()) && (trackerTrack2[
i].
key()==stAloneTrack1[
j].
key())) ) {
642 double Nzmmc_moreZ = Nzmmc-Nzmmc_0Z-Nzmmc_1Z;
645 double Nzmmc_passed_moreZ = Nzmmc-Nzmmc_passed_0Z-Nzmmc_passed_1Z;
658 double Nzmmc_ptpassed_moreZ = Nzmmc-Nzmmc_ptpassed_0Z-Nzmmc_ptpassed_1Z;
659 double Nzmmc_etapassed_moreZ = Nzmmc-Nzmmc_etapassed_0Z-Nzmmc_etapassed_1Z;
660 double Nzmmc_masspassed_moreZ = Nzmmc-Nzmmc_masspassed_0Z-Nzmmc_masspassed_1Z;
661 double Nzmmc_isopassed_moreZ = Nzmmc-Nzmmc_isopassed_0Z-Nzmmc_isopassed_1Z;
662 double Nzmmc_ptetapassed_moreZ = Nzmmc-Nzmmc_ptetapassed_0Z-Nzmmc_ptetapassed_1Z;
663 double Nzmmc_ptetamasspassed_moreZ = Nzmmc-Nzmmc_ptetamasspassed_0Z-Nzmmc_ptetamasspassed_1Z;
667 double Nzmsc_moreZ = Nzmsc - Nzmsc_0Z - Nzmsc_1Z;
670 double Nzmsc_notcontained_moreZ = Nzmsc-Nzmsc_notcontained_0Z-Nzmsc_notcontained_1Z;
673 double Nzmsc_passed_moreZ = Nzmsc - Nzmsc_passed_0Z - Nzmsc_passed_1Z;
676 double Nzmsc_MCmatched_passed_moreZ = Nzmsc - Nzmsc_MCmatched_passed_0Z - Nzmsc_MCmatched_passed_1Z;
680 double Nzmtc_moreZ = Nzmtc - Nzmtc_0Z - Nzmtc_1Z;
683 double Nzmtc_notcontained_moreZ = Nzmtc-Nzmtc_notcontained_0Z-Nzmtc_notcontained_1Z;
686 double Nzmtc_passed_moreZ = Nzmtc - Nzmtc_passed_0Z - Nzmtc_passed_1Z;
689 double Nzmtc_MCmatched_passed_moreZ = Nzmtc - Nzmtc_MCmatched_passed_0Z - Nzmtc_MCmatched_passed_1Z;
691 cout <<
"--------------- Statistics ----------------------------------------------------------" << endl;
692 cout <<
"n of ZMuMu entries ...................................................... " << Nzmmc << endl;
693 cout <<
"n of ZMuMu events with 0 cand ............................................. " << Nzmmc_0Z << endl;
694 cout <<
"n of ZMuMu events with 1 cand ............................................. " << Nzmmc_1Z << endl;
695 cout <<
"n of ZMuMu events with 2 or more cand ..................................... " << Nzmmc_moreZ << endl << endl ;
697 cout <<
"n of ZMuMu events not selected by cuts .................................... " << Nzmmc_passed_0Z << endl;
698 cout <<
"n of ZMuMu events with 1 cand selected by cuts ............................ " << Nzmmc_passed_1Z << endl;
699 cout <<
"n of ZMuMu events with 2 or more cand elected by cuts ..................... " << Nzmmc_passed_moreZ << endl<< endl ;
701 cout <<
"n of ZMuMu events not selected by pt cut .................................. " << Nzmmc_ptpassed_0Z << endl;
702 cout <<
"n of ZMuMu events with 1 cand selected by pt cut .......................... " << Nzmmc_ptpassed_1Z << endl;
703 cout <<
"n of ZMuMu events with 2 or more cand elected by pt cut ................... " << Nzmmc_ptpassed_moreZ << endl<< endl ;
705 cout <<
"n of ZMuMu events not selected by eta cut ................................. " << Nzmmc_etapassed_0Z << endl;
706 cout <<
"n of ZMuMu events with 1 cand selected by eta cut ......................... " << Nzmmc_etapassed_1Z << endl;
707 cout <<
"n of ZMuMu events with 2 or more cand elected by eta cut .................. " << Nzmmc_etapassed_moreZ << endl<< endl ;
709 cout <<
"n of ZMuMu events not selected by mass cut ................................ " << Nzmmc_masspassed_0Z << endl;
710 cout <<
"n of ZMuMu events with 1 cand selected by mass cut ........................ " << Nzmmc_masspassed_1Z << endl;
711 cout <<
"n of ZMuMu events with 2 or more cand elected by mass cut ................. " << Nzmmc_masspassed_moreZ << endl<< endl ;
713 cout <<
"n of ZMuMu events not selected by iso cut ................................. " << Nzmmc_isopassed_0Z << endl;
714 cout <<
"n of ZMuMu events with 1 cand selected iso cut ............................ " << Nzmmc_isopassed_1Z << endl;
715 cout <<
"n of ZMuMu events with 2 or more cand elected iso cut ..................... " << Nzmmc_isopassed_moreZ << endl<< endl ;
717 cout <<
"n of ZMuMu events not selected by pt and eta cut .......................... " << Nzmmc_ptetapassed_0Z << endl;
718 cout <<
"n of ZMuMu events with 1 cand selected by pt and eta cut .................. " << Nzmmc_ptetapassed_1Z << endl;
719 cout <<
"n of ZMuMu events with 2 or more cand elected by pt and eta cut ........... " << Nzmmc_ptetapassed_moreZ << endl<< endl ;
721 cout <<
"n of ZMuMu events not selected by pt and eta and mass cut ................. " << Nzmmc_ptetamasspassed_0Z << endl;
722 cout <<
"n of ZMuMu events with 1 cand selected by pt and eta and mass cut ......... " << Nzmmc_ptetamasspassed_1Z << endl;
723 cout <<
"n of ZMuMu events with 2 or more cand elected by pt and eta and mass cut .. " << Nzmmc_ptetamasspassed_moreZ << endl<< endl ;
725 cout <<
"................When No ZMuMu are selected.................................." << endl;
726 cout <<
"n of ZMuSta entries ....................................................... " << Nzmsc << endl;
727 cout <<
"n of ZMuSta events with 0 cand ............................................ " << Nzmsc_0Z << endl;
728 cout <<
"n of ZMuSta events with 1 cand ............................................ " << Nzmsc_1Z << endl;
729 cout <<
"n of ZMuSta events with 2 or more cand .................................... " << Nzmsc_moreZ << endl<< endl ;
731 cout <<
"n of ZMuSta not contained events with 0 cand .............................. " << Nzmsc_notcontained_0Z << endl;
732 cout <<
"n of ZMuSta events not contained with 1 cand .............................. " << Nzmsc_notcontained_1Z << endl;
733 cout <<
"n of ZMuSta events no contained with 2 or more cand ....................... " << Nzmsc_notcontained_moreZ << endl<< endl ;
735 cout <<
"n of ZMuSta cand not selectd by cuts ...................................... " << Nzmsc_passed_0Z << endl;
736 cout <<
"n of ZMuSta events with 1 cand selected by cuts ........................... " << Nzmsc_passed_1Z << endl;
737 cout <<
"n of ZMuSta events with 2 or more cand selected by cuts ................... " << Nzmsc_passed_moreZ << endl<< endl ;
739 cout <<
"n of ZMuSta MCmatched cand not selectd by cuts ............................ " << Nzmsc_MCmatched_passed_0Z << endl;
740 cout <<
"n of ZMuSta MCmatched events with 1 cand selected by cuts ................. " << Nzmsc_MCmatched_passed_1Z << endl;
741 cout <<
"n of ZMuSta MCmatched events with 2 or more cand selected by cuts ......... " << Nzmsc_MCmatched_passed_moreZ << endl<< endl ;
743 cout <<
"...............When no ZMuMu and ZMuSta are selcted........................." << endl;
744 cout <<
"n of ZMuTrack entries ................................................... " << Nzmtc << endl;
745 cout <<
"n of ZMuTrack events with 0 cand ..........................................." << Nzmtc_0Z << endl;
746 cout <<
"n of ZMuTrack events with 1 cand ..........................................." << Nzmtc_1Z << endl;
747 cout <<
"n of ZMuTrack events with 2 or more cand ..................................." << Nzmtc_moreZ << endl<< endl ;
749 cout <<
"n of ZMuTrack not contained events with 0 cand ............................ " << Nzmtc_notcontained_0Z << endl;
750 cout <<
"n of ZMuTrack events not contained with 1 cand ............................ " << Nzmtc_notcontained_1Z << endl;
751 cout <<
"n of ZMuTrack events no contained with 2 or more cand ..................... " << Nzmtc_notcontained_moreZ << endl<< endl ;
753 cout <<
"n of ZMuTrack cand not selectd by cuts ....................................." << Nzmtc_passed_0Z << endl;
754 cout <<
"n of ZMuTrack events with 1 cand selected by cuts .........................." << Nzmtc_passed_1Z << endl;
755 cout <<
"n of ZMuTrack events with 2 or more cand selected by cuts .................." << Nzmtc_passed_moreZ << endl<< endl ;
757 cout <<
"n of ZMuTrack MCmatched cand not selectd by cuts .......................... " << Nzmtc_MCmatched_passed_0Z << endl;
758 cout <<
"n of ZMuTrcak MCmatched events with 1 cand selected by cuts ............... " << Nzmtc_MCmatched_passed_1Z << endl;
759 cout <<
"n of ZMuTrack MCmatched events with 2 or more cand selected by cuts ....... " << Nzmtc_MCmatched_passed_moreZ << endl;
761 cout <<
"------------------------------------------------------------------------------------------" << endl;
773 cout<<
"-- N SingleTrackMu = "<<Nztm<<endl;
774 cout<<
"-----N SinglStandAloneMu = "<<Nzsm<<endl;
775 cout<<
"-----N SingleStandAloneOverlapMu = "<<Nzsnom<<endl;
776 cout<<
"------- N MuMu = "<<Nzmm<<endl;
778 cout<<
"-- N SingleTrackMuMatched = "<<NztmMatch<<endl;
779 cout<<
"-----N SinglStandAloneMuMatched = "<<NzsmMatch<<endl;
780 cout<<
"-----N SingleStandAloneOverlapMuMatched = "<<NzsnomMatch<<endl;
781 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
virtual float mass() const =0
mass
TH1D * h_zMuTrack_numberOfCand_notcontained
vector< TH1D * > hmutrack_pt
#define DEFINE_FWK_MODULE(type)
TH1D * h_zMuSta_numberOfCand_passed
TH1D * h_zMuSingleStandAlone_mass_
vector< TH1D * > hmutrack_eta
stand alone muon component tag
TH1D * h_zMuMu_numberOfCand_isopassed
T * make(const Args &...args) const
make new ROOT object
TH1D * h_zMuMu_numberOfCand_etapassed
virtual void analyze(const edm::Event &event, const edm::EventSetup &setup) override
virtual void endJob() override
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
T * make(const Args &...args) const
make new ROOT object
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
TH1D * h_zMuSta_MCmatched_numberOfCand_passed
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