only for ZGolden evaluated zMassSa for the mu+sta pdf, see zmumuSaMassHistogram.cc
I fill the dau1 with positive and dau2 with negatove values for the pt, in order to flag the muons used for building zMassSa
216 std::cout <<
">>> No beam spot found !!!"<<std::endl;
220 std::cout <<
">>> No primary verteces found !!!"<<std::endl;
224 for(
unsigned int c = 0;
c <
size; ++
c ) {
227 bool isMCMatchTrue =
false;
233 unsigned int zSize = zColl->
size();
234 unique_ptr<vector<edm::EventNumber_t> >
event(
new vector<edm::EventNumber_t> );
235 unique_ptr<vector<unsigned int> >
run(
new vector<unsigned int> );
236 unique_ptr<vector<unsigned int> >
lumi(
new vector<unsigned int > );
237 unique_ptr<vector<float> > zMass(
new vector<float> );
238 unique_ptr<vector<float> > zMassSa(
new vector<float> );
239 unique_ptr<vector<float> > zPt(
new vector<float> );
240 unique_ptr<vector<float> > zEta(
new vector<float> );
241 unique_ptr<vector<float> > zPhi(
new vector<float> );
242 unique_ptr<vector<float> > zY(
new vector<float> );
243 unique_ptr<vector<float> > zDau1Pt(
new vector<float> );
244 unique_ptr<vector<float> > zDau2Pt(
new vector<float> );
245 unique_ptr<vector<float> > zDau1SaPt(
new vector<float> );
246 unique_ptr<vector<float> > zDau2SaPt(
new vector<float> );
247 unique_ptr<vector<unsigned int> > zDau1HLTBit(
new vector<unsigned int> );
248 unique_ptr<vector<unsigned int> > zDau2HLTBit(
new vector<unsigned int> );
249 unique_ptr<vector<int> > zDau1Q(
new vector<int> );
250 unique_ptr<vector<int> > zDau2Q(
new vector<int> );
251 unique_ptr<vector<float> > zDau1Eta(
new vector<float> );
252 unique_ptr<vector<float> > zDau2Eta(
new vector<float> );
253 unique_ptr<vector<float> > zDau1SaEta(
new vector<float> );
254 unique_ptr<vector<float> > zDau2SaEta(
new vector<float> );
255 unique_ptr<vector<float> > zDau1Phi(
new vector<float> );
256 unique_ptr<vector<float> > zDau2Phi(
new vector<float> );
257 unique_ptr<vector<float> > zDau1SaPhi(
new vector<float> );
258 unique_ptr<vector<float> > zDau2SaPhi(
new vector<float> );
259 unique_ptr<vector<float> > zDau1Iso(
new vector<float> );
260 unique_ptr<vector<float> > zDau2Iso(
new vector<float> );
261 unique_ptr<vector<float> > zDau1TrkIso(
new vector<float> );
262 unique_ptr<vector<float> > zDau2TrkIso(
new vector<float> );
263 unique_ptr<vector<float> > zDau1EcalIso(
new vector<float> );
264 unique_ptr<vector<float> > zDau2EcalIso(
new vector<float> );
265 unique_ptr<vector<float> > zDau1HcalIso(
new vector<float> );
266 unique_ptr<vector<float> > zDau2HcalIso(
new vector<float> );
267 unique_ptr<vector<float> > zDau1MuEnergyEm(
new vector<float> );
268 unique_ptr<vector<float> > zDau2MuEnergyEm(
new vector<float> );
269 unique_ptr<vector<float> > zDau1MuEnergyHad(
new vector<float> );
270 unique_ptr<vector<float> > zDau2MuEnergyHad(
new vector<float> );
271 unique_ptr<vector<float> > vtxNormChi2(
new vector<float> );
272 unique_ptr<vector<unsigned int> > zDau1NofHit(
new vector<unsigned int> );
273 unique_ptr<vector<unsigned int> > zDau2NofHit(
new vector<unsigned int> );
274 unique_ptr<vector<unsigned int> > zDau1NofHitTk(
new vector<unsigned int> );
275 unique_ptr<vector<unsigned int> > zDau2NofHitTk(
new vector<unsigned int> );
276 unique_ptr<vector<unsigned int> > zDau1NofHitSta(
new vector<unsigned int> );
277 unique_ptr<vector<unsigned int> > zDau2NofHitSta(
new vector<unsigned int> );
278 unique_ptr<vector<unsigned int> > zDau1NofMuChambers(
new vector<unsigned int> );
279 unique_ptr<vector<unsigned int> > zDau2NofMuChambers(
new vector<unsigned int> );
280 unique_ptr<vector<unsigned int> > zDau1NofMuMatches(
new vector<unsigned int> );
281 unique_ptr<vector<unsigned int> > zDau2NofMuMatches(
new vector<unsigned int> );
282 unique_ptr<vector<float> > zDau1Chi2(
new vector<float> );
283 unique_ptr<vector<float> > zDau2Chi2(
new vector<float> );
284 unique_ptr<vector<float> > zDau1TrkChi2(
new vector<float> );
285 unique_ptr<vector<float> > zDau2TrkChi2(
new vector<float> );
286 unique_ptr<vector<float> > zDau1dxyFromBS(
new vector<float> );
287 unique_ptr<vector<float> > zDau2dxyFromBS(
new vector<float> );
288 unique_ptr<vector<float> > zDau1dzFromBS(
new vector<float> );
289 unique_ptr<vector<float> > zDau2dzFromBS(
new vector<float> );
290 unique_ptr<vector<float> > zDau1dxyFromPV(
new vector<float> );
291 unique_ptr<vector<float> > zDau2dxyFromPV(
new vector<float> );
292 unique_ptr<vector<float> > zDau1dzFromPV(
new vector<float> );
293 unique_ptr<vector<float> > zDau2dzFromPV(
new vector<float> );
294 unique_ptr<vector<float> > trueZMass(
new vector<float> );
295 unique_ptr<vector<float> > trueZPt(
new vector<float> );
296 unique_ptr<vector<float> > trueZEta(
new vector<float> );
297 unique_ptr<vector<float> > trueZPhi(
new vector<float> );
298 unique_ptr<vector<float> > trueZY(
new vector<float> );
299 event -> push_back(evt.
id().
event());
302 for(
unsigned int i = 0;
i < zSize; ++
i ) {
305 zMass->push_back( z.
mass() );
306 zPt->push_back( z.
pt() );
307 zEta->push_back( z.
eta() );
308 zPhi->push_back( z.
phi() );
313 zDau1Pt->push_back( dau1->
pt() );
314 zDau2Pt->push_back( dau2->
pt() );
315 zDau1Q->push_back( dau1->
charge() );
316 zDau2Q->push_back( dau2->
charge() );
317 zDau1Eta->push_back( dau1->
eta() );
318 zDau2Eta->push_back( dau2->
eta() );
319 zDau1Phi->push_back( dau1->
phi() );
320 zDau2Phi->push_back( dau2->
phi() );
323 <<
"Candidate daughters have no master clone\n";
326 const Candidate * m1 = &*mr1, * m2 = &*mr2;
329 double iso1 =
candIsolation(m1,
ptThreshold_[c],
etEcalThreshold_[c],
etHcalThreshold_[c] ,
dRVetoTrk_[c],
dRTrk_[c],
dREcal_[c] ,
dRHcal_[c],
alpha_[c],
beta_[c],
relativeIsolation_[c]);
330 double iso2 =
candIsolation(m2,
ptThreshold_[c],
etEcalThreshold_[c],
etHcalThreshold_[c] ,
dRVetoTrk_[c],
dRTrk_[c],
dREcal_[c] ,
dRHcal_[c],
alpha_[c],
beta_[c],
relativeIsolation_[c] );
332 double trkIso1 =
candIsolation(m1,
ptThreshold_[c],
etEcalThreshold_[c],
etHcalThreshold_[c] ,
dRVetoTrk_[c],
dRTrk_[c],
dREcal_[c] ,
dRHcal_[c], 0.0,
beta_[c],
relativeIsolation_[c]);
333 double trkIso2 =
candIsolation(m2,
ptThreshold_[c],
etEcalThreshold_[c],
etHcalThreshold_[c] ,
dRVetoTrk_[c],
dRTrk_[c],
dREcal_[c] ,
dRHcal_[c], 0.0,
beta_[c],
relativeIsolation_[c] );
335 double ecalIso1 =
candIsolation(m1,
ptThreshold_[c],
etEcalThreshold_[c],
etHcalThreshold_[c] ,
dRVetoTrk_[c],
dRTrk_[c],
dREcal_[c] ,
dRHcal_[c], 1.0, 1.0,
relativeIsolation_[c]);
336 double ecalIso2 =
candIsolation(m2,
ptThreshold_[c],
etEcalThreshold_[c],
etHcalThreshold_[c] ,
dRVetoTrk_[c],
dRTrk_[c],
dREcal_[c] ,
dRHcal_[c], 1.0, 1.0,
relativeIsolation_[c] );
338 double hcalIso1 =
candIsolation(m1,
ptThreshold_[c],
etEcalThreshold_[c],
etHcalThreshold_[c] ,
dRVetoTrk_[c],
dRTrk_[c],
dREcal_[c] ,
dRHcal_[c], 1.0, -1.0,
relativeIsolation_[c]);
339 double hcalIso2 =
candIsolation(m2,
ptThreshold_[c],
etEcalThreshold_[c],
etHcalThreshold_[c] ,
dRVetoTrk_[c],
dRTrk_[c],
dREcal_[c] ,
dRHcal_[c], 1.0, -1.0,
relativeIsolation_[c] );
341 zDau1Iso->push_back( iso1 );
342 zDau2Iso->push_back( iso2 );
343 zDau1TrkIso->push_back( trkIso1 );
344 zDau2TrkIso->push_back( trkIso2 );
345 zDau1EcalIso->push_back( ecalIso1 );
346 zDau2EcalIso->push_back( ecalIso2 );
347 zDau1HcalIso->push_back( hcalIso1 );
348 zDau2HcalIso->push_back( hcalIso2 );
354 trueZMass->push_back( z.
mass() );
355 trueZPt->push_back( z.
pt() );
356 trueZEta->push_back( z.
eta() );
357 trueZPhi->push_back( z.
phi() );
360 trueZMass->push_back( -100 );
361 trueZPt->push_back( -100 );
362 trueZEta->push_back( -100 );
363 trueZPhi->push_back( -100 );
364 trueZY->push_back( -100 );
372 zDau1NofHitTk->push_back(mu1->
innerTrack()->numberOfValidHits());
373 zDau1NofHitSta->push_back(mu1->
outerTrack()->numberOfValidHits());
374 zDau1Chi2->push_back(mu1->
normChi2());
376 zDau1TrkChi2->push_back( mu1TrkRef->normalizedChi2());
377 zDau1dxyFromBS->push_back(mu1TrkRef->dxy(beamSpotHandle->
position()));
378 zDau1dzFromBS->push_back(mu1TrkRef->dz(beamSpotHandle->
position()));
379 zDau1dxyFromPV->push_back(mu1TrkRef->dxy(primaryVertices->begin()->position() ));
380 zDau1dzFromPV->push_back(mu1TrkRef->dz(primaryVertices->begin()->position() ));
387 zDau1NofHit->push_back(mu1StaRef->numberOfValidHits());
388 zDau1NofHitTk->push_back(0);
389 zDau1NofHitSta->push_back(mu1StaRef->numberOfValidHits());
390 zDau1Chi2->push_back(mu1StaRef->normalizedChi2());
391 zDau1TrkChi2->push_back(0);
392 zDau1dxyFromBS->push_back(mu1StaRef->dxy(beamSpotHandle->
position()));
393 zDau1dzFromBS->push_back(mu1StaRef->dz(beamSpotHandle->
position()));
394 zDau1dxyFromPV->push_back(mu1StaRef->dxy(primaryVertices->begin()->position() ));
395 zDau1dzFromPV->push_back(mu1StaRef->dz(primaryVertices->begin()->position() ));
396 zDau1MuEnergyEm->push_back( -1);
397 zDau1MuEnergyHad->push_back( -1);
401 zDau1NofHit->push_back(mu1TrkRef->numberOfValidHits());
402 zDau1NofHitTk->push_back(mu1TrkRef->numberOfValidHits());
403 zDau1NofHitSta->push_back(0);
404 zDau1Chi2->push_back(mu1TrkRef->normalizedChi2());
405 zDau1TrkChi2->push_back(mu1TrkRef->normalizedChi2());
406 zDau1dxyFromBS->push_back(mu1TrkRef->dxy(beamSpotHandle->
position()));
407 zDau1dzFromBS->push_back(mu1TrkRef->dz(beamSpotHandle->
position()));
408 zDau1dxyFromPV->push_back(mu1TrkRef->dxy(primaryVertices->begin()->position() ));
409 zDau1dzFromPV->push_back(mu1TrkRef->dz(primaryVertices->begin()->position() ));
420 int dimTrig1 = mu1HLTMatches.size();
422 zDau1HLTBit->push_back(1);
424 zDau1HLTBit->push_back(0);
430 zDau2NofHitTk->push_back(mu2->
innerTrack()->numberOfValidHits());
431 zDau2NofHitSta->push_back(mu2->
outerTrack()->numberOfValidHits());
432 zDau2Chi2->push_back(mu2->
normChi2());
434 zDau1TrkChi2->push_back( mu2TrkRef->normalizedChi2());
435 zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->
position()));
436 zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->
position()));
437 zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position() ));
438 zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position() ));
443 zDau2HLTBit->push_back(0);
445 zDau2NofHit->push_back(mu2StaRef->numberOfValidHits());
446 zDau2NofHitTk->push_back(0);
447 zDau2NofHitSta->push_back(mu2StaRef->numberOfValidHits());
448 zDau2Chi2->push_back(mu2StaRef->normalizedChi2());
449 zDau2TrkChi2->push_back(0);
450 zDau2dxyFromBS->push_back(mu2StaRef->dxy(beamSpotHandle->
position()));
451 zDau2dzFromBS->push_back(mu2StaRef->dz(beamSpotHandle->
position()));
452 zDau2dxyFromPV->push_back(mu2StaRef->dxy(primaryVertices->begin()->position() ));
453 zDau2dzFromPV->push_back(mu2StaRef->dz(primaryVertices->begin()->position() ));
454 zDau1MuEnergyEm->push_back( -1);
455 zDau1MuEnergyHad->push_back( -1);
459 zDau2NofHit->push_back(mu2TrkRef->numberOfValidHits());
460 zDau2NofHitSta->push_back(0);
461 zDau2NofHitTk->push_back(mu2TrkRef->numberOfValidHits());
462 zDau2Chi2->push_back(mu2TrkRef->normalizedChi2());
463 zDau2TrkChi2->push_back(mu2TrkRef->normalizedChi2());
464 zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->
position()));
465 zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->
position()));
466 zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position() ));
467 zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position() ));
474 int dimTrig2 = mu2HLTMatches.size();
476 zDau2HLTBit->push_back(1);
479 zDau2HLTBit->push_back(0);
490 zDau1SaEta->push_back(stAloneTrack1->eta());
491 zDau2SaEta->push_back(stAloneTrack2->eta());
492 zDau1SaPhi->push_back(stAloneTrack1->phi());
493 zDau2SaPhi->push_back(stAloneTrack2->phi());
495 momentum = stAloneTrack1->momentum();
497 mu_mass = dau1->
mass();
499 zDau1SaPt->push_back(stAloneTrack1 ->
pt());
500 zDau2SaPt->push_back(- stAloneTrack2->pt());
502 momentum = stAloneTrack2->momentum();
504 mu_mass = dau2->
mass();
506 zDau1SaPt->push_back( - stAloneTrack1->pt());
507 zDau2SaPt->push_back( stAloneTrack2->pt());
512 zMassSa->push_back(mass);
524 zDau2NofHit->push_back(mu2TrkRef->numberOfValidHits());
525 zDau2NofHitTk->push_back( mu2TrkRef->numberOfValidHits());
526 zDau2NofHitSta->push_back( 0);
527 zDau2NofMuChambers->push_back(0);
528 zDau2NofMuMatches->push_back(0);
529 zDau2Chi2->push_back(mu2TrkRef->normalizedChi2());
530 zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->
position()));
531 zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->
position()));
532 zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position() ));
533 zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position() ));
534 zDau1MuEnergyEm->push_back( -1);
535 zDau1MuEnergyHad->push_back( -1);
538 const string & zName =
zName_[
c];
568 evt.
put(
std::move(zDau1EcalIso), zName +
"Dau1EcalIso" );
569 evt.
put(
std::move(zDau2EcalIso), zName +
"Dau2EcalIso" );
570 evt.
put(
std::move(zDau1HcalIso), zName +
"Dau1HcalIso" );
571 evt.
put(
std::move(zDau2HcalIso), zName +
"Dau2HcalIso" );
572 evt.
put(
std::move(zDau1MuEnergyEm), zName +
"Dau1MuEnergyEm" );
573 evt.
put(
std::move(zDau2MuEnergyEm), zName +
"Dau2MuEnergyEm" );
574 evt.
put(
std::move(zDau1MuEnergyHad), zName +
"Dau1MuEnergyHad" );
575 evt.
put(
std::move(zDau2MuEnergyHad), zName +
"Dau2MuEnergyHad" );
576 evt.
put(
std::move(vtxNormChi2), zName +
"VtxNormChi2" );
579 evt.
put(
std::move(zDau1NofHitTk), zName +
"Dau1NofHitTk" );
580 evt.
put(
std::move(zDau2NofHitTk), zName +
"Dau2NofHitTk" );
581 evt.
put(
std::move(zDau1NofHitSta), zName +
"Dau1NofHitSta" );
582 evt.
put(
std::move(zDau2NofHitSta), zName +
"Dau2NofHitSta" );
583 evt.
put(
std::move(zDau1NofMuChambers), zName +
"Dau1NofMuChambers" );
584 evt.
put(
std::move(zDau1NofMuMatches), zName +
"Dau1NofMuMatches" );
585 evt.
put(
std::move(zDau2NofMuChambers), zName +
"Dau2NofMuChambers" );
586 evt.
put(
std::move(zDau2NofMuMatches), zName +
"Dau2NofMuMatches" );
589 evt.
put(
std::move(zDau1TrkChi2), zName +
"Dau1TrkChi2" );
590 evt.
put(
std::move(zDau2TrkChi2), zName +
"Dau2TrkChi2" );
591 evt.
put(
std::move(zDau1dxyFromBS), zName +
"Dau1dxyFromBS" );
592 evt.
put(
std::move(zDau2dxyFromBS), zName +
"Dau2dxyFromBS" );
593 evt.
put(
std::move(zDau1dxyFromPV), zName +
"Dau1dxyFromPV" );
594 evt.
put(
std::move(zDau2dxyFromPV), zName +
"Dau2dxyFromPV" );
595 evt.
put(
std::move(zDau1dzFromBS), zName +
"Dau1dzFromBS" );
596 evt.
put(
std::move(zDau2dzFromBS), zName +
"Dau2dzFromBS" );
597 evt.
put(
std::move(zDau1dzFromPV), zName +
"Dau1dzFromPV" );
598 evt.
put(
std::move(zDau2dzFromPV), zName +
"Dau2dzFromPV" );
std::vector< std::string > zName_
EventNumber_t event() const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool isNonnull() const
Checks for non-null.
bool isStandAloneMuon() const override
edm::EDGetTokenT< VertexCollection > primaryVerticesToken_
virtual const PolarLorentzVector & polarP4() const =0
four-momentum Lorentz vector
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< BeamSpot > beamSpotToken_
std::vector< double > ptThreshold_
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
stand alone muon component tag
edm::LuminosityBlockNumber_t luminosityBlock() const
std::vector< TriggerObjectStandAlone > TriggerObjectStandAloneCollection
Collection of TriggerObjectStandAlone.
std::vector< double > dRTrk_
std::vector< double > etEcalThreshold_
bool isTrackerMuon() const override
RefToBase< value_type > refAt(size_type i) const
std::vector< edm::EDGetTokenT< GenParticleMatch > > zGenParticlesMatchTokens_
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
reco::TrackRef innerTrack() const override
reference to Track reconstructed in the tracker only (reimplemented from reco::Muon) ...
reco::TrackRef outerTrack() const override
reference to Track reconstructed in the muon detector only (reimplemented from reco::Muon) ...
bool isGlobalMuon() const override
virtual double vertexNormalizedChi2() const =0
chi-squared divided by n.d.o.f.
std::vector< double > dREcal_
const TriggerObjectStandAloneCollection triggerObjectMatchesByPath(const std::string &namePath, const bool pathLastFilterAccepted=false, const bool pathL3FilterAccepted=true) const
double candIsolation(const reco::Candidate *c, double ptThreshold, double etEcalThreshold, double etHcalThreshold, double dRVetoTrk, double dRTrk, double dREcal, double dRHcal, double alpha, double beta, bool relativeIsolation)
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
MuonEnergy calEnergy() const
get energy deposition information
std::vector< string > hltPath_
std::vector< double > relativeIsolation_
virtual const CandidateBaseRef & masterClone() const =0
virtual double eta() const =0
momentum pseudorapidity
std::vector< double > dRVetoTrk_
virtual double pt() const =0
transverse momentum
reco::TrackRef track() const override
int numberOfChambers() const
virtual double mass() const =0
mass
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
std::vector< double > etHcalThreshold_
int numberOfMatches(ArbitrationType type=SegmentAndTrackArbitration) const
get number of chambers with matched segments
std::vector< double > alpha_
virtual double rapidity() const =0
rapidity
virtual int charge() const =0
electric charge
std::vector< double > dRHcal_
T get() const
get a component
std::vector< edm::EDGetTokenT< CandidateView > > zTokens_
const Point & position() const
position
unsigned int numberOfValidHits() const
numberOfValidHits returns the number of valid hits on the global track.
double normChi2() const
Norm chi2 gives the normalized chi2 of the global track.
virtual double phi() const =0
momentum azimuthal angle
Analysis-level muon class.
std::vector< double > beta_
virtual bool hasMasterClone() const =0
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.