55 virtual 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 ) {
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){
365 CandMatchMap::const_iterator m0 = zMuMuMap->find(CandRef);
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);
446 CandMatchMap::const_iterator m0 = zMuStandAloneMap->find(CandRef);
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++ ) {
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;
521 CandMatchMap::const_iterator m0 = zMuTrackMap->find(CandRef);
522 if( m0 != zMuTrackMap->end()) {
523 ZMuTrack_MCmatched_passed++;
557 unsigned int matched=0;
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
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
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_
virtual void analyze(const edm::Event &event, const edm::EventSetup &setup) override
virtual void endJob() override
ProductID id() const
Accessor for product ID.
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_
tuple lep1
print 'MRbb(1b)',event.mr_bb
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.
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
string key
FastSim: produces sample of signal events, overlayed with premixed minbias events.
bool isContained(const Candidate &, const Candidate &)
EDGetTokenT< IsolationCollection > trackIsoToken_
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
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
TH1D * h_zMuMu_numberOfCand_ptetamasspassed
vector< TH1D * > hmusta_eta
EDGetTokenT< IsolationCollection > standAloneIsoToken_
vector< TH1D * > hmumu_pt
TH1D * h_zMuSingleStandAloneMatched_mass_
TH1D * h_zMuMu_numberOfCand
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
EDGetTokenT< CandMatchMap > zMuTrackMapToken_
tuple zMuMu
zMuMu vector of PSet is common to all categories except zMuTrk category
EDGetTokenT< CandidateCollection > zMuTrackToken_
TH1D * h_zMuMu_numberOfCand_ptpassed
EDGetTokenT< IsolationCollection > muIsoToken_
virtual const CandidateBaseRef & masterClone() const =0