#include "HighMassAnalysis/Analysis/interface/ElecTauAnalysis.h" #include "DataFormats/EgammaCandidates/interface/GsfElectron.h" #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" #include "DataFormats/EgammaCandidates/interface/Conversion.h" using namespace edm; using namespace reco; using namespace std; ElecTauAnalysis::ElecTauAnalysis(const edm::ParameterSet& iCongif): HiMassTauAnalysis(iCongif){} ElecTauAnalysis::~ElecTauAnalysis(){} void ElecTauAnalysis::fillNtuple(){ // store vector of PDF weights _PDFWeights = pdfWeightVector; // store ISR weights _ISRGluonWeight = isrgluon_weight; _ISRGammaWeight = isrgamma_weight; // store FSR weights _FSRWeight = fsr_weight; // get the primary vertex const reco::Vertex& thePrimaryEventVertex = (*(_primaryEventVertexCollection)->begin()); const reco::BeamSpot& theBeamSpot = *_beamSpot; _nVtx = _primaryEventVertexCollection->size(); //count good vertices _nGoodVtx = 0; for( reco::VertexCollection::const_iterator vtxIt = _primaryEventVertexCollection->begin(); vtxIt != _primaryEventVertexCollection->end(); ++vtxIt){ if(vtxIt->ndof() < 7.) continue; if(abs(vtxIt->z()) > 24.) continue; // if(passRecoVertexCuts(*vtxIt)) double vtxdxy = sqrt((vtxIt->x()*vtxIt->x()) + (vtxIt->y()*vtxIt->y())); if(vtxdxy > 2.0) continue; _nGoodVtx++; } /* //testing area _nJets = 0; for(pat::JetCollection::const_iterator patJet = _patJets->begin(); patJet != _patJets->end(); ++patJet){ if(!passedLooseJetId(*patJet)) continue; if(patJet->pt() < _RecoJetPtCut) continue; if(abs(patJet->eta()) > 5.) continue; _nJets++; _jetPt->push_back(patJet->pt()); _jetEta->push_back(patJet->eta()); } _maxDiJetMass = 0.; _maxDiJetDEta = 0.; for(unsigned int j1It = 0; j1It < _patJets->size()-1; ++j1It){ const pat::Jet jet1 = _patJets->at(j1It); if(!passedLooseJetId(jet1)) continue; if(jet1.pt() < 75.) continue; if(fabs(jet1.eta()) > 5.) continue; //cout << "Jet1 info:\t Pt " << jet1.pt() << "\t Eta " << jet1.eta() << endl; for(unsigned int j2It = j1It+1; j2It < _patJets->size(); ++j2It){ const pat::Jet jet2 = _patJets->at(j2It); if(!passedLooseJetId(jet2)) continue; if(jet2.pt() < 50.) continue; if(fabs(jet2.eta()) > 5.) continue; if(jet1.eta()*jet2.eta() > 0.) continue; float diJetDEta = fabs(jet1.eta()-jet2.eta()); if(deltaR(jet1, jet2) < 0.3) continue; float diJetMass = GetVisMass(jet1,jet2); //if(jet2.pt() > jet1.pt()) cout << "Jet2 pt greater than jet1 pt\n"; if(diJetDEta > _maxDiJetDEta) _maxDiJetDEta = diJetDEta; if(diJetMass > _maxDiJetMass) _maxDiJetMass = diJetMass; //_diJetDEtaTest->push_back(fabs(jet1.eta()-jet2.eta())); //_diJetMassTest->push_back(GetVisMass(jet1,jet2)); } } */ // //Electron rho for pf isolation _elecRhoIsolation = (float)elecRhoIso; //get MET const pat::MET theMET = *(_patMETs->begin()); _MEt = theMET.pt(); _zEvent = foundZEE().first; _zMassDiff = foundZEE().second.first; _zPtAsymm = foundZEE().second.second; if(!_AnalyzeData){ //get gen W candidate info std::pair theGenWCandPair = GetGenCandidate(24, 2); _genWCandPt = (theGenWCandPair.first ? theGenWCandPair.second->pt() : -10); std::pair theGenZCandPair = GetGenCandidate(23, 2); _genZCandMass = (theGenZCandPair.first ? theGenZCandPair.second->mass() : -10); } /* //get number of btagged jets passing quality criteria _nBtagsHiEffTrkCnt = 0; _nBtagsHiPurityTrkCnt = 0; _nBTagsCombSecVtxLoose = 0; _nBTagsCombSecVtxMedium = 0; _nBTagsCombSecVtxTight = 0; // loop over jet collection for(pat::JetCollection::const_iterator patJet = _patJets->begin(); patJet != _patJets->end(); ++patJet){ if(!passedLooseJetId(*patJet)) continue; if(patJet->et() < _RecoJetPtCut) continue; if(fabs(patJet->eta()) >_RecoJetEtaMaxCut) continue; float trkCntHighEffBtag = patJet->bDiscriminator("trackCountingHighEffBJetTags"); float trkCntHighPurityBtag = patJet->bDiscriminator("trackCountingHighPurBJetTags"); float combSecVtxBTag = patJet->bDiscriminator("combinedSecondaryVertexBJetTags"); if(trkCntHighEffBtag > 3.3) _nBtagsHiEffTrkCnt++; // medium wp obsolete for 8 TeV if(trkCntHighPurityBtag > 3.41) _nBtagsHiPurityTrkCnt++; // tight wp recommended for 8 TeV if(combSecVtxBTag > 0.244) _nBTagsCombSecVtxLoose++; if(combSecVtxBTag > 0.679) _nBTagsCombSecVtxMedium++; if(combSecVtxBTag > 0.898) _nBTagsCombSecVtxTight++; } */ for(unsigned int elecIt = 0 ; elecIt < _gsfElectrons->size(); ++elecIt){ GsfElectronRef gsfElec(_gsfElectrons, elecIt); if(!gsfElec.isNonnull()) continue; if(gsfElec->pt() < _RecoElectronPtMinCut) continue; if(fabs(gsfElec->eta()) > _RecoElectronEtaCut) continue; for(pat::TauCollection::const_iterator tauIt = _patTaus->begin(); tauIt != _patTaus->end(); ++tauIt){ if(tauIt->pt() < _RecoTauPtMinCut) continue; if(abs(tauIt->eta()) > _RecoTauEtaCut) continue; if(reco::deltaR(*tauIt, *gsfElec) < _DiTauDeltaRCut) continue; _elecMatched->push_back(!_AnalyzeData ? (unsigned int)matchGsfElectronToGen(*gsfElec).first : 0); //_elecMotherId->push_back(!_AnalyzeData && gsfElec->genParticleRef().isNonnull() ? abs(gsfElec->genParticleRef()->mother()->mother()->pdgId()) : 0); _elecGenPt->push_back(!_AnalyzeData ? matchGsfElectronToGen(*gsfElec).second.pt() : 0); _elecGenE->push_back(!_AnalyzeData ? matchGsfElectronToGen(*gsfElec).second.energy() : 0); _elecGenEta->push_back(!_AnalyzeData ? matchGsfElectronToGen(*gsfElec).second.eta() : -10); _elecGenPhi->push_back(!_AnalyzeData ? matchGsfElectronToGen(*gsfElec).second.phi() : -10); _elecPt->push_back(gsfElec->pt()); _elecE->push_back(gsfElec->energy()); _elecEta->push_back(gsfElec->eta()); _elecPhi->push_back(gsfElec->phi()); _elecCharge->push_back(gsfElec->charge()); _elecDxyVtx->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->dxy(thePrimaryEventVertex.position()) : -100.); _elecDxyBS->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->dxy(theBeamSpot) : -100.); _elecDxyError->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->d0Error() : -10000.); _elecDzVtx->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->dz(thePrimaryEventVertex.position()) : -100.); _elecDzBS->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->dz(theBeamSpot.position()) : -100.); _elecDzError->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->dzError() : -10000.); _elecVx->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->vx() : -100.); _elecVy->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->vy() : -100.); _elecVz->push_back(gsfElec->gsfTrack().isNonnull() ? gsfElec->gsfTrack()->vz() : -100.); //elec Id and shape variables _elecDEtaIn->push_back(gsfElec->deltaEtaSuperClusterTrackAtVtx()); _elecDPhiIn->push_back(gsfElec->deltaPhiSuperClusterTrackAtVtx()); _elecSigmaIEtaIEta->push_back(gsfElec->sigmaIetaIeta()); _elecHadOverE->push_back(gsfElec->hadronicOverEm()); _elecFbrem->push_back(gsfElec->fbrem()); _elecEOverPIn->push_back(gsfElec->eSuperClusterOverP()); _elecOneOverEMinusOneOverPIn->push_back((1./gsfElec->ecalEnergy()) - gsfElec->eSuperClusterOverP()/gsfElec->ecalEnergy()); //conversion const Track* elTrack = (const reco::Track*)(gsfElec->gsfTrack().get()); // number of expected hits before the first track hit const HitPattern& pInner = elTrack->trackerExpectedHitsInner(); _elecMissingHits->push_back(pInner.numberOfHits()); _elecConversionRejection->push_back(ConversionTools::hasMatchedConversion(*gsfElec, _elecConversions, theBeamSpot.position(), true, 2.0, 1e-6, 0)); //fiducial flags unsigned int theGsfFiducialFlag; if(gsfElec->isEB()) theGsfFiducialFlag = 1; else if(gsfElec->isEE()) theGsfFiducialFlag = 2; else if(gsfElec->isGap()) theGsfFiducialFlag = 3; else theGsfFiducialFlag = 0; _elecFiducialFlag->push_back(theGsfFiducialFlag); _elecPFIsoDR03SumChargedHadronPt->push_back((*_elecIsoValPFIdDr03[0])[gsfElec]); _elecPFIsoDR03SumNeutralHadronPt->push_back((*_elecIsoValPFIdDr03[1])[gsfElec]); _elecPFIsoDR03SumPhotonPt->push_back((*_elecIsoValPFIdDr03[2])[gsfElec]); _elecPFIsoDR03SumPUPt->push_back((*_elecIsoValPFIdDr03[3])[gsfElec]); _elecPFIsoDR04SumChargedHadronPt->push_back((*_elecIsoValPFIdDr04[0])[gsfElec]); _elecPFIsoDR04SumNeutralHadronPt->push_back((*_elecIsoValPFIdDr03[2])[gsfElec]); _elecPFIsoDR04SumPhotonPt->push_back((*_elecIsoValPFIdDr04[2])[gsfElec]); _elecPFIsoDR04SumPUPt->push_back((*_elecIsoValPFIdDr04[3])[gsfElec]); _elecIsoDR03SumPtTrk->push_back(gsfElec->dr03TkSumPt()); _elecIsoDR03SumEtEcal->push_back(gsfElec->dr03EcalRecHitSumEt()); _elecIsoDR03SumEtHcal->push_back(gsfElec->dr03HcalTowerSumEt()); _elecClass->push_back(gsfElec->classification()); _elecMVAStatus->push_back(gsfElec->mvaOutput().status); _elecMVAOut->push_back(gsfElec->mvaOutput().mva); _elecMEtMt->push_back(CalculateLeptonMetMt(*gsfElec, theMET)); _elecMetCosDPhi->push_back(cos(TMath::Abs(normalizedPhi(gsfElec->phi() - theMET.phi())))); //LeadTau Info _hadTauMatched->push_back(!_AnalyzeData ? (unsigned int)matchToGen(*tauIt).first : 0); _hadTauIsGenElec->push_back(!_AnalyzeData ? getMatchedPdgId(*tauIt).first == 11 : 0); _hadTauMotherId->push_back(!_AnalyzeData && tauIt->genParticleRef().isNonnull() ? abs(tauIt->genParticleRef()->mother()->mother()->pdgId()) : 0); _hadTauGenPt->push_back(!_AnalyzeData ? matchToGen(*tauIt).second.pt() : 0); _hadTauGenE->push_back(!_AnalyzeData ? matchToGen(*tauIt).second.energy() : 0); _hadTauGenEta->push_back(!_AnalyzeData ? matchToGen(*tauIt).second.eta() : -10); _hadTauGenPhi->push_back(!_AnalyzeData ? matchToGen(*tauIt).second.phi() : -10); _hadTauPt->push_back(tauIt->pt()); _hadTauAltLVPt->push_back(tauIt->alternatLorentzVect().pt()); _hadTauAltLVEnergy->push_back(tauIt->alternatLorentzVect().energy()); _hadTauEnergy->push_back(tauIt->energy()); _hadTauEta->push_back(tauIt->eta()); _hadTauPhi->push_back(tauIt->phi()); _hadTauCharge->push_back(tauIt->charge()); //const PFCandidateRef& hadTauLeadChargedCand = tauIt->leadPFChargedHadrCand(); _hadTauLeadChargedCandPt->push_back(tauIt->leadPFChargedHadrCand().isNonnull() ? tauIt->leadPFChargedHadrCand()->pt() : -1.); _hadTauLeadChargedCandCharge->push_back(tauIt->leadPFChargedHadrCand().isNonnull() ? tauIt->leadPFChargedHadrCand()->charge() : -2); //_hadTauLeadChargedCandRecHitsSize->push_back(hadTauLeadChargedCand->trackRef() ? hadTauLeadChargedCand->trackRef()->recHitsSize(): 0.); _hadTauLeadChargedCandDxyVtx->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ? tauIt->leadPFChargedHadrCand()->trackRef()->dxy(thePrimaryEventVertex.position()) : -100); _hadTauLeadChargedCandDxyBS->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ? tauIt->leadPFChargedHadrCand()->trackRef()->dxy(theBeamSpot) : -100); _hadTauLeadChargedCandDxyError->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ? tauIt->leadPFChargedHadrCand()->trackRef()->d0Error() : -10000.); _hadTauLeadChargedCandDzVtx->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ? tauIt->leadPFChargedHadrCand()->trackRef()->dz(thePrimaryEventVertex.position()) : -100); _hadTauLeadChargedCandDzBS->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ? tauIt->leadPFChargedHadrCand()->trackRef()->dz(theBeamSpot.position()) : -100); _hadTauLeadChargedCandDzError->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ? tauIt->leadPFChargedHadrCand()->trackRef()->dzError() : -10000.); _hadTauLeadChargedCandVx->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ? tauIt->leadPFChargedHadrCand()->trackRef()->vx() : -100.); _hadTauLeadChargedCandVy->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ? tauIt->leadPFChargedHadrCand()->trackRef()->vy() : -100.); _hadTauLeadChargedCandVz->push_back(tauIt->leadPFChargedHadrCand().isNonnull() && tauIt->leadPFChargedHadrCand()->trackRef().isNonnull() ?tauIt->leadPFChargedHadrCand() ->trackRef()->vz() : -100.); _hadTauDeltaZVtx->push_back(tauIt->vz() - thePrimaryEventVertex.z()); _hadTauNProngs->push_back(tauIt->signalPFChargedHadrCands().size()); _hadTauEmFraction->push_back(tauIt->emFraction()); _hadTauHcalTotOverPLead->push_back(tauIt->hcalTotOverPLead()); _hadTauHcalMaxOverPLead->push_back(tauIt->hcalMaxOverPLead()); _hadTauHcal3x3OverPLead->push_back(tauIt->hcal3x3OverPLead()); _hadTauElectronPreId->push_back(tauIt->electronPreIDDecision()); _hadTauModifiedEOverP->push_back(tauIt->ecalStripSumEOverPLead()); _hadTauBremsRecoveryEOverPLead->push_back(tauIt->bremsRecoveryEOverPLead()); _hadTauLTSignedIp->push_back(tauIt->leadPFChargedHadrCandsignedSipt()); _hadTauTrkIsoSumPt->push_back(tauIt->isolationPFChargedHadrCandsPtSum()); _hadTauECALIsoSumEt->push_back(tauIt->isolationPFGammaCandsEtSum()); _hadTauIdByDecayModeFinding->push_back((unsigned int)tauIt->tauID("decayModeFinding")); _hadTauIdByDecayModeFindingNewDMs->push_back((unsigned int)tauIt->tauID("decayModeFindingNewDMs")); _hadTauIdByDecayModeFindingOldDMs->push_back((unsigned int)tauIt->tauID("decayModeFindingOldDMs")); _hadTauIdByLooseCombinedIsolationDBSumPtCorr->push_back(tauIt->isTauIDAvailable("byLooseCombinedIsolationDeltaBetaCorr") ? (unsigned int)tauIt->tauID("byLooseCombinedIsolationDeltaBetaCorr") : 0); _hadTauIdByMediumCombinedIsolationDBSumPtCorr->push_back(tauIt->isTauIDAvailable("byMediumCombinedIsolationDeltaBetaCorr") ? (unsigned int)tauIt->tauID("byMediumCombinedIsolationDeltaBetaCorr") : 0); _hadTauIdByTightCombinedIsolationDBSumPtCorr->push_back(tauIt->isTauIDAvailable("byTightCombinedIsolationDeltaBetaCorr") ? (unsigned int)tauIt->tauID("byTightCombinedIsolationDeltaBetaCorr") : 0); _hadTauIdByLooseCombinedIsolationDBSumPtCorr3Hits->push_back(tauIt->isTauIDAvailable("byLooseCombinedIsolationDeltaBetaCorr3Hits") ? (unsigned int)tauIt->tauID("byLooseCombinedIsolationDeltaBetaCorr3Hits") : 0); _hadTauIdByMediumCombinedIsolationDBSumPtCorr3Hits->push_back(tauIt->isTauIDAvailable("byMediumCombinedIsolationDeltaBetaCorr3Hits") ? (unsigned int)tauIt->tauID("byMediumCombinedIsolationDeltaBetaCorr3Hits") : 0); _hadTauIdByTightCombinedIsolationDBSumPtCorr3Hits->push_back(tauIt->isTauIDAvailable("byTightCombinedIsolationDeltaBetaCorr3Hits") ? (unsigned int)tauIt->tauID("byTightCombinedIsolationDeltaBetaCorr3Hits") : 0); _hadTauIdByVLooseIsolationMVA3newDMwLT->push_back((unsigned int)tauIt->tauID("byVLooseIsolationMVA3newDMwLT")); _hadTauIdByLooseIsolationMVA3newDMwLT->push_back((unsigned int)tauIt->tauID("byLooseIsolationMVA3newDMwLT")); _hadTauIdByMediumIsolationMVA3newDMwLT->push_back((unsigned int)tauIt->tauID("byMediumIsolationMVA3newDMwLT")); _hadTauIdByTightIsolationMVA3newDMwLT->push_back((unsigned int)tauIt->tauID("byTightIsolationMVA3newDMwLT")); _hadTauIdByVTightIsolationMVA3newDMwLT->push_back((unsigned int)tauIt->tauID("byVTightIsolationMVA3newDMwLT")); _hadTauIdByVVTightIsolationMVA3newDMwLT->push_back((unsigned int)tauIt->tauID("byVVTightIsolationMVA3newDMwLT")); _hadTauIdByIsolationMVA3newDMwLTraw->push_back(tauIt->tauID("byIsolationMVA3newDMwLTraw")); _hadTauIdByVLooseIsolationMVA3newDMwoLT->push_back((unsigned int)tauIt->tauID("byVLooseIsolationMVA3newDMwoLT")); _hadTauIdByLooseIsolationMVA3newDMwoLT->push_back((unsigned int)tauIt->tauID("byLooseIsolationMVA3newDMwoLT")); _hadTauIdByMediumIsolationMVA3newDMwoLT->push_back((unsigned int)tauIt->tauID("byMediumIsolationMVA3newDMwoLT")); _hadTauIdByTightIsolationMVA3newDMwoLT->push_back((unsigned int)tauIt->tauID("byTightIsolationMVA3newDMwoLT")); _hadTauIdByVTightIsolationMVA3newDMwoLT->push_back((unsigned int)tauIt->tauID("byVTightIsolationMVA3newDMwoLT")); _hadTauIdByVVTightIsolationMVA3newDMwoLT->push_back((unsigned int)tauIt->tauID("byVVTightIsolationMVA3newDMwoLT")); _hadTauIdByIsolationMVA3newDMwoLTraw->push_back(tauIt->tauID("byIsolationMVA3newDMwoLTraw")); _hadTauIdByVLooseIsolationMVA3oldDMwLT->push_back((unsigned int)tauIt->tauID("byVLooseIsolationMVA3oldDMwLT")); _hadTauIdByLooseIsolationMVA3oldDMwLT->push_back((unsigned int)tauIt->tauID("byLooseIsolationMVA3oldDMwLT")); _hadTauIdByMediumIsolationMVA3oldDMwLT->push_back((unsigned int)tauIt->tauID("byMediumIsolationMVA3oldDMwLT")); _hadTauIdByTightIsolationMVA3oldDMwLT->push_back((unsigned int)tauIt->tauID("byTightIsolationMVA3oldDMwLT")); _hadTauIdByVTightIsolationMVA3oldDMwLT->push_back((unsigned int)tauIt->tauID("byVTightIsolationMVA3oldDMwLT")); _hadTauIdByVVTightIsolationMVA3oldDMwLT->push_back((unsigned int)tauIt->tauID("byVVTightIsolationMVA3oldDMwLT")); _hadTauIdByVLooseIsolationMVA3oldDMwoLT->push_back((unsigned int)tauIt->tauID("byVLooseIsolationMVA3oldDMwoLT")); _hadTauIdByLooseIsolationMVA3oldDMwoLT->push_back((unsigned int)tauIt->tauID("byLooseIsolationMVA3oldDMwoLT")); _hadTauIdByMediumIsolationMVA3oldDMwoLT->push_back((unsigned int)tauIt->tauID("byMediumIsolationMVA3oldDMwoLT")); _hadTauIdByTightIsolationMVA3oldDMwoLT->push_back((unsigned int)tauIt->tauID("byTightIsolationMVA3oldDMwoLT")); _hadTauIdByVTightIsolationMVA3oldDMwoLT->push_back((unsigned int)tauIt->tauID("byVTightIsolationMVA3oldDMwoLT")); _hadTauIdByVVTightIsolationMVA3oldDMwoLT->push_back((unsigned int)tauIt->tauID("byVVTightIsolationMVA3oldDMwoLT")); _hadTauIdByLooseElectronRejection->push_back((unsigned int)tauIt->tauID("againstElectronLoose")); _hadTauIdByMediumElectronRejection->push_back((unsigned int)tauIt->tauID("againstElectronMedium")); _hadTauIdByTightElectronRejection->push_back((unsigned int)tauIt->tauID("againstElectronTight")); _hadTauIdByMVA5rawElectronRejection->push_back(tauIt->isTauIDAvailable("againstElectronMVA5raw") ?tauIt->tauID("againstElectronMVA5raw") : 0); _hadTauIdByMVA5ElectronRejectionCat->push_back(tauIt->isTauIDAvailable("againstElectronMVA5category") ? tauIt->tauID("againstElectronMVA5category") : 0); _hadTauIdByMVA5VLooseElectronRejection->push_back(tauIt->isTauIDAvailable("againstElectronVLooseMVA5") ? tauIt->tauID("againstElectronVLooseMVA5") : 0); _hadTauIdByMVA5LooseElectronRejection->push_back(tauIt->isTauIDAvailable("againstElectronLooseMVA5") ? tauIt->tauID("againstElectronLooseMVA5") : 0); _hadTauIdByMVA5MediumElectronRejection->push_back(tauIt->isTauIDAvailable("againstElectronMediumMVA5") ? tauIt->tauID("againstElectronMediumMVA5") : 0); _hadTauIdByMVA5TightElectronRejection->push_back(tauIt->isTauIDAvailable("againstElectronTightMVA5") ? tauIt->tauID("againstElectronTightMVA5") : 0); _hadTauIdByMVA5VTightElectronRejection->push_back(tauIt->isTauIDAvailable("againstElectronVTightMVA5") ? tauIt->tauID("againstElectronVTightMVA5") : 0); _hadTauIdByElectronDeadECAL->push_back(tauIt->isTauIDAvailable("againstElectronDeadECAL") ? tauIt->tauID("againstElectronDeadECAL") : 0); _hadTauIdByLooseMuonRejection->push_back((unsigned int)tauIt->tauID("againstMuonLoose")); _hadTauIdByMediumMuonRejection->push_back((unsigned int)tauIt->tauID("againstMuonMedium")); _hadTauIdByTightMuonRejection->push_back((unsigned int)tauIt->tauID("againstMuonTight")); _hadTauIdByLooseMuonRejection2->push_back((unsigned int)tauIt->tauID("againstMuonLoose2")); _hadTauIdByMediumMuonRejection2->push_back((unsigned int)tauIt->tauID("againstMuonMedium2")); _hadTauIdByTightMuonRejection2->push_back((unsigned int)tauIt->tauID("againstMuonTight2")); _hadTauIdByLooseMuonRejection3->push_back((unsigned int)tauIt->tauID("againstMuonLoose3")); _hadTauIdByTightMuonRejection3->push_back((unsigned int)tauIt->tauID("againstMuonTight3")); _hadTauIdByLooseMVAMuonRejection->push_back((unsigned int)tauIt->tauID("againstMuonLooseMVA")); _hadTauIdByMediumMVAMuonRejection->push_back((unsigned int)tauIt->tauID("againstMuonMediumMVA")); _hadTauIdByTightMVAMuonRejection->push_back((unsigned int)tauIt->tauID("againstMuonTightMVA")); _hadTauMEtMt->push_back(CalculateLeptonMetMt(*tauIt, theMET)); _elecHadTauCosDPhi->push_back(cos(TMath::Abs(normalizedPhi(tauIt->phi() - gsfElec->phi())))); _elecHadTauDelatR->push_back(reco::deltaR(*tauIt, *gsfElec)); _elecHadTauPZeta->push_back(CalculatePZeta(*tauIt,*gsfElec, theMET)); _elecHadTauPZetaVis->push_back(CalculatePZetaVis(*tauIt,*gsfElec)); _elecHadTauMass->push_back(GetVisMass(*tauIt,*gsfElec)); _elecHadTauMetMass->push_back(GetVisPlusMETMass(*tauIt,*gsfElec, theMET)); _elecHadTauCollMass->push_back(GetCollinearApproxMass(*tauIt,*gsfElec, theMET)); unsigned int _nJetsCounter = 0; float jetEtSum = 0.; unsigned int _nBtagsHiEffTrkCntCounter = 0; unsigned int _nBtagsHiPurityTrkCntCounter = 0; unsigned int _nBTagsCombSecVtxLooseCounter = 0; unsigned int _nBTagsCombSecVtxMediumCounter = 0; unsigned int _nBTagsCombSecVtxTightCounter = 0; for(unsigned int jetIt = 0; jetIt < _patJets->size(); ++jetIt){ const pat::Jet theJet = _patJets->at(jetIt); if(!passedLooseJetId(theJet)) continue; if(deltaR(theJet, *tauIt) < _DiTauDeltaRCut) continue; if(deltaR(theJet, *gsfElec) < _DiTauDeltaRCut) continue; if(abs(theJet.eta()) > _RecoJetEtaMaxCut) continue; if(theJet.pt() < _RecoJetPtCut) continue; _nJetsCounter++; jetEtSum += theJet.et(); float trkCntHighEffBtag = theJet.bDiscriminator("trackCountingHighEffBJetTags"); float trkCntHighPurityBtag = theJet.bDiscriminator("trackCountingHighPurBJetTags"); float combSecVtxBTag = theJet.bDiscriminator("combinedSecondaryVertexBJetTags"); if(trkCntHighEffBtag > 3.3) _nBtagsHiEffTrkCntCounter++; // medium wp obsolete for 8 TeV if(trkCntHighPurityBtag > 3.41) _nBtagsHiPurityTrkCntCounter++; // tight wp recommended for 8 TeV if(combSecVtxBTag > 0.244) _nBTagsCombSecVtxLooseCounter++; if(combSecVtxBTag > 0.679) _nBTagsCombSecVtxMediumCounter++; if(combSecVtxBTag > 0.898) _nBTagsCombSecVtxTightCounter++; } _nJets->push_back(_nJetsCounter); _jetEtSum->push_back(jetEtSum); _nBtagsHiEffTrkCnt->push_back(_nBtagsHiEffTrkCntCounter); _nBtagsHiPurityTrkCnt->push_back(_nBtagsHiPurityTrkCntCounter); _nBTagsCombSecVtxLoose->push_back(_nBTagsCombSecVtxLooseCounter); _nBTagsCombSecVtxMedium->push_back(_nBTagsCombSecVtxMediumCounter); _nBTagsCombSecVtxTight->push_back(_nBTagsCombSecVtxTightCounter); float _minVBFJetPt = _RecoJetPtCut; float _maxVBFJetEta = _RecoJetEtaMaxCut; bool _passJetsOppositeHemispheres = true; // set default to true so it passes for none VBF analysis if(_UseVBFJets){ _minVBFJetPt = 50.; _maxVBFJetEta = 5.; } //find the best diJet candidate to combine with elec and tau double maxDiJetMass = 0.; pat::Jet goodJet1; pat::Jet goodJet2; bool foundDiJet = false; unsigned int _vbfJetsCounter = 0; for(unsigned int j1It = 0; j1It < _patJets->size() -1; ++j1It){ const pat::Jet jet1 = _patJets->at(j1It); if(!passedLooseJetId(jet1)) continue; if(deltaR(jet1, *tauIt) < _DiTauDeltaRCut) continue; if(deltaR(jet1, *gsfElec) < _DiTauDeltaRCut) continue; //apply vbf acceptance here if(jet1.pt() < _minVBFJetPt) continue; if(abs(jet1.eta()) > _maxVBFJetEta) continue; _vbfJetsCounter++; for(unsigned int j2It = j1It+1; j2It < _patJets->size(); ++j2It){ const pat::Jet jet2 = _patJets->at(j2It); if(!passedLooseJetId(jet2)) continue; if(jet2.pt() < _minVBFJetPt) continue; if(abs(jet2.eta()) > _maxVBFJetEta) continue; if(deltaR(jet2, *tauIt) < _DiTauDeltaRCut) continue; if(deltaR(jet2, *gsfElec) < _DiTauDeltaRCut) continue; if(_UseVBFJets) _passJetsOppositeHemispheres = (jet1.eta()*jet2.eta()) < 0.; if(!_passJetsOppositeHemispheres) continue; double diJetMass = GetVisMass(jet1,jet2); if(diJetMass > maxDiJetMass){ foundDiJet = true; maxDiJetMass = diJetMass; goodJet1 = jet1; goodJet2 = jet2; } } } _nVBFJets->push_back(_vbfJetsCounter); _diJetMass->push_back(foundDiJet ? maxDiJetMass : 0); _diJetDEta->push_back(foundDiJet ? fabs(goodJet1.eta()-goodJet2.eta()) : 0); _jet1Pt->push_back(foundDiJet ? goodJet1.pt() : 0.); _jet1Eta->push_back(foundDiJet ? goodJet1.eta() : -10); _jet2Pt->push_back(foundDiJet ? goodJet2.pt() : 0); _jet2Eta->push_back(foundDiJet ? goodJet2.eta() : -10); _elecDiJetMass->push_back(foundDiJet ? (gsfElec->p4() + goodJet1.p4() + goodJet2.p4()).M() : 0.); _hadTauDiJetMass->push_back(foundDiJet ? (tauIt->p4() + goodJet1.p4() + goodJet2.p4()).M() : 0.); _elecTauDiJetMass->push_back(foundDiJet ? (gsfElec->p4() + tauIt->p4() + goodJet1.p4() + goodJet2.p4()).M() : 0.); } } /* //get elecTau combinations for(unsigned int elecIt = 0 ; elecIt < _gsfElectrons->size(); ++elecIt){ GsfElectronRef gsfElec(_gsfElectrons, elecIt); if(!gsfElec.isNonnull()) continue; if(gsfElec->pt() < _RecoElectronPtMinCut) continue; if(fabs(gsfElec->eta()) > _RecoElectronEtaCut) continue; for(pat::TauCollection::const_iterator tauIt = _patTaus->begin(); tauIt != _patTaus->end(); ++tauIt){ if(tauIt->pt() < _RecoTauPtMinCut) continue; if(abs(tauIt->eta()) > _RecoTauEtaCut) continue; } } */ _ElecTauTree->Fill(); } void ElecTauAnalysis::setupBranches(){ _ElecTauTree = new TTree(_NtupleTreeName.c_str(), "MuTauTauTree"); //Event info _ElecTauTree->Branch("runNumber",&runNum); _ElecTauTree->Branch("eventNumber",&eventNum); _ElecTauTree->Branch("TrueNumPU",&_trueNumInteractions); _ElecTauTree->Branch("InTimePU",&_inTimePUNumInteractions); _ElecTauTree->Branch("OutTimePlusPU",&_outTimePlusPUNumInteractions); _ElecTauTree->Branch("OutTimeMinusPU",&_outTimeMinusPUNumInteractions); _ElecTauTree->Branch("nVtx",&_nVtx); _ElecTauTree->Branch("nGoodVtx",&_nGoodVtx); _ElecTauTree->Branch("passedHLTElec27WP80",&_passedHLTElec27WP80); _ElecTauTree->Branch("elecRhoIso",&_elecRhoIsolation); _ElecTauTree->Branch("MEt",&_MEt); _ElecTauTree->Branch("zEvent", &_zEvent); _ElecTauTree->Branch("zMassDiff", &_zMassDiff); _ElecTauTree->Branch("zPtAsymm", &_zPtAsymm); _ElecTauTree->Branch("wCandGenPt", &_genWCandPt); _ElecTauTree->Branch("zCandGenMass", &_genZCandMass); //_ElecTauTree->Branch("passedHLTMu5Elec17",&_passedHLTMu5Elec17); //_ElecTauTree->Branch("passedHLTMu11Elec8",&_passedHLTMu11Elec8); //_ElecTauTree->Branch("passedHLTMu8Elec17",&_passedHLTMu8Elec17); //_ElecTauTree->Branch("passedHLTMu17Elec8",&_passedHLTMu17Elec8); //_ElecTauTree->Branch("passedHLTIsoMu24",&_passedHLTIsoMu24); _ElecTauTree->Branch("PDFWweights", &_PDFWeights); _ElecTauTree->Branch("ISRGluonWeight", &_ISRGluonWeight); _ElecTauTree->Branch("ISRGammaWeight", &_ISRGammaWeight); _ElecTauTree->Branch("FSRWeight", &_FSRWeight); // For the Lead Tau _ElecTauTree->Branch("hadTauMatched", &_hadTauMatched); _ElecTauTree->Branch("hadTauMotherId", &_hadTauMotherId); _ElecTauTree->Branch("hadTauIsGenElec", &_hadTauIsGenElec); _ElecTauTree->Branch("hadTauGenPt", &_hadTauGenPt); _ElecTauTree->Branch("hadTauGenE", &_hadTauGenE); _ElecTauTree->Branch("hadTauGenEta", &_hadTauGenEta); _ElecTauTree->Branch("hadTauGenPhi", &_hadTauGenPhi); _ElecTauTree->Branch("hadTauPt",&_hadTauPt); _ElecTauTree->Branch("hadTauAltLVPt",&_hadTauAltLVPt); _ElecTauTree->Branch("hadTauAltLVEnergy",&_hadTauAltLVEnergy); _ElecTauTree->Branch("hadTauEnergy",&_hadTauEnergy); _ElecTauTree->Branch("hadTauEta",&_hadTauEta); _ElecTauTree->Branch("hadTauPhi",&_hadTauPhi); _ElecTauTree->Branch("hadTauCharge",&_hadTauCharge); _ElecTauTree->Branch("hadTauLeadChargedCandPt",&_hadTauLeadChargedCandPt); _ElecTauTree->Branch("hadTauLeadChargedCandCharge",&_hadTauLeadChargedCandCharge); //_ElecTauTree->Branch("hadTauLeadChargedCandRecHitsSize",&_hadTauLeadChargedCandRecHitsSize); _ElecTauTree->Branch("hadTauLeadChargedCandDxyVtx",&_hadTauLeadChargedCandDxyVtx); _ElecTauTree->Branch("hadTauLeadChargedCandDxyBS",&_hadTauLeadChargedCandDxyBS); _ElecTauTree->Branch("hadTauLeadChargedCandDxyError",&_hadTauLeadChargedCandDxyError); _ElecTauTree->Branch("hadTauLeadChargedCandDzVtx",&_hadTauLeadChargedCandDzVtx); _ElecTauTree->Branch("hadTauLeadChargedCandDzBS",&_hadTauLeadChargedCandDzBS); _ElecTauTree->Branch("hadTauLeadChargedCandDzError",&_hadTauLeadChargedCandDzError); _ElecTauTree->Branch("hadTauLeadChargedCandVx",&_hadTauLeadChargedCandVx); _ElecTauTree->Branch("hadTauLeadChargedCandVy",&_hadTauLeadChargedCandVy); _ElecTauTree->Branch("hadTauLeadChargedCandVz",&_hadTauLeadChargedCandVz); _ElecTauTree->Branch("hadTauDeltaZVtx",&_hadTauDeltaZVtx); _ElecTauTree->Branch("hadTauNProngs",&_hadTauNProngs); _ElecTauTree->Branch("hadTauEmFraction",&_hadTauEmFraction); _ElecTauTree->Branch("hadTauHcalTotOverPLead",&_hadTauHcalTotOverPLead); _ElecTauTree->Branch("hadTauHcalMaxOverPLead",&_hadTauHcalMaxOverPLead); _ElecTauTree->Branch("hadTauHcal3x3OverPLead",&_hadTauHcal3x3OverPLead); _ElecTauTree->Branch("hadTauElectronPreId",&_hadTauElectronPreId); _ElecTauTree->Branch("hadTauModifiedEOverP",&_hadTauModifiedEOverP); _ElecTauTree->Branch("hadTauBremsRecoveryEOverPLead",&_hadTauBremsRecoveryEOverPLead); _ElecTauTree->Branch("hadTauLTSignedIp",&_hadTauLTSignedIp); _ElecTauTree->Branch("hadTauTrkIsoSumPt",&_hadTauTrkIsoSumPt); _ElecTauTree->Branch("hadTauECALIsoSumEt",&_hadTauECALIsoSumEt); _ElecTauTree->Branch("hadTauIdByDecayModeFinding",&_hadTauIdByDecayModeFinding); _ElecTauTree->Branch("hadTauIdByDecayModeFindingNewDMs",&_hadTauIdByDecayModeFindingNewDMs); _ElecTauTree->Branch("hadTauIdByDecayModeFindingOldDMs",&_hadTauIdByDecayModeFindingOldDMs); _ElecTauTree->Branch("hadTauIdByLooseCombinedIsolationDBSumPtCorr", &_hadTauIdByLooseCombinedIsolationDBSumPtCorr); _ElecTauTree->Branch("hadTauIdByMediumCombinedIsolationDBSumPtCorr", &_hadTauIdByMediumCombinedIsolationDBSumPtCorr); _ElecTauTree->Branch("hadTauIdByTightCombinedIsolationDBSumPtCorr", &_hadTauIdByTightCombinedIsolationDBSumPtCorr); _ElecTauTree->Branch("hadTauIdByLooseCombinedIsolationDBSumPtCorr3Hits", &_hadTauIdByLooseCombinedIsolationDBSumPtCorr3Hits); _ElecTauTree->Branch("hadTauIdByMediumCombinedIsolationDBSumPtCorr3Hits", &_hadTauIdByMediumCombinedIsolationDBSumPtCorr3Hits); _ElecTauTree->Branch("hadTauIdByTightCombinedIsolationDBSumPtCorr3Hits", &_hadTauIdByTightCombinedIsolationDBSumPtCorr3Hits); _ElecTauTree->Branch("hadTauIdByVLooseIsolationMVA3newDMwLT",&_hadTauIdByVLooseIsolationMVA3newDMwLT); _ElecTauTree->Branch("hadTauIdByLooseIsolationMVA3newDMwLT",&_hadTauIdByLooseIsolationMVA3newDMwLT); _ElecTauTree->Branch("hadTauIdByMediumIsolationMVA3newDMwLT",&_hadTauIdByMediumIsolationMVA3newDMwLT); _ElecTauTree->Branch("hadTauIdByTightIsolationMVA3newDMwLT",&_hadTauIdByTightIsolationMVA3newDMwLT); _ElecTauTree->Branch("hadTauIdByVTightIsolationMVA3newDMwLT",&_hadTauIdByVTightIsolationMVA3newDMwLT); _ElecTauTree->Branch("hadTauIdByVVTightIsolationMVA3newDMwLT",&_hadTauIdByVVTightIsolationMVA3newDMwLT); _ElecTauTree->Branch("hadTauIdByIsolationMVA3newDMwLTraw",&_hadTauIdByIsolationMVA3newDMwLTraw); _ElecTauTree->Branch("hadTauIdByVLooseIsolationMVA3newDMwoLT",&_hadTauIdByVLooseIsolationMVA3newDMwoLT); _ElecTauTree->Branch("hadTauIdByLooseIsolationMVA3newDMwoLT",&_hadTauIdByLooseIsolationMVA3newDMwoLT); _ElecTauTree->Branch("hadTauIdByMediumIsolationMVA3newDMwoLT",&_hadTauIdByMediumIsolationMVA3newDMwoLT); _ElecTauTree->Branch("hadTauIdByTightIsolationMVA3newDMwoLT",&_hadTauIdByTightIsolationMVA3newDMwoLT); _ElecTauTree->Branch("hadTauIdByVTightIsolationMVA3newDMwoLT",&_hadTauIdByVTightIsolationMVA3newDMwoLT); _ElecTauTree->Branch("hadTauIdByVVTightIsolationMVA3newDMwoLT",&_hadTauIdByVVTightIsolationMVA3newDMwoLT); _ElecTauTree->Branch("hadTauIdByIsolationMVA3newDMwoLTraw",&_hadTauIdByIsolationMVA3newDMwoLTraw); _ElecTauTree->Branch("hadTauIdByVLooseIsolationMVA3oldDMwLT",&_hadTauIdByVLooseIsolationMVA3oldDMwLT); _ElecTauTree->Branch("hadTauIdByLooseIsolationMVA3oldDMwLT",&_hadTauIdByLooseIsolationMVA3oldDMwLT); _ElecTauTree->Branch("hadTauIdByMediumIsolationMVA3oldDMwLT",&_hadTauIdByMediumIsolationMVA3oldDMwLT); _ElecTauTree->Branch("hadTauIdByTightIsolationMVA3oldDMwLT",&_hadTauIdByTightIsolationMVA3oldDMwLT); _ElecTauTree->Branch("hadTauIdByVTightIsolationMVA3oldDMwLT",&_hadTauIdByVTightIsolationMVA3oldDMwLT); _ElecTauTree->Branch("hadTauIdByVVTightIsolationMVA3oldDMwLT",&_hadTauIdByVVTightIsolationMVA3oldDMwLT); _ElecTauTree->Branch("hadTauIdByVLooseIsolationMVA3oldDMwoLT",&_hadTauIdByVLooseIsolationMVA3oldDMwoLT); _ElecTauTree->Branch("hadTauIdByLooseIsolationMVA3oldDMwoLT",&_hadTauIdByLooseIsolationMVA3oldDMwoLT); _ElecTauTree->Branch("hadTauIdByMediumIsolationMVA3oldDMwoLT",&_hadTauIdByMediumIsolationMVA3oldDMwoLT); _ElecTauTree->Branch("hadTauIdByTightIsolationMVA3oldDMwoLT",&_hadTauIdByTightIsolationMVA3oldDMwoLT); _ElecTauTree->Branch("hadTauIdByVTightIsolationMVA3oldDMwoLT",&_hadTauIdByVTightIsolationMVA3oldDMwoLT); _ElecTauTree->Branch("hadTauIdByVVTightIsolationMVA3oldDMwoLT",&_hadTauIdByVVTightIsolationMVA3oldDMwoLT); _ElecTauTree->Branch("hadTauIdByLooseElectronRejection",&_hadTauIdByLooseElectronRejection); _ElecTauTree->Branch("hadTauIdByMediumElectronRejection",&_hadTauIdByMediumElectronRejection); _ElecTauTree->Branch("hadTauIdByTightElectronRejection",&_hadTauIdByTightElectronRejection); _ElecTauTree->Branch("hadTauIdByMVA5rawElectronRejection", &_hadTauIdByMVA5rawElectronRejection); _ElecTauTree->Branch("hadTauIdByMVA5ElectronRejectionCat", &_hadTauIdByMVA5ElectronRejectionCat); _ElecTauTree->Branch("hadTauIdByMVA5VLooseElectronRejection", &_hadTauIdByMVA5VLooseElectronRejection); _ElecTauTree->Branch("hadTauIdByMVA5LooseElectronRejection", &_hadTauIdByMVA5LooseElectronRejection); _ElecTauTree->Branch("hadTauIdByMVA5MediumElectronRejection", &_hadTauIdByMVA5MediumElectronRejection); _ElecTauTree->Branch("hadTauIdByMVA5TightElectronRejection", &_hadTauIdByMVA5TightElectronRejection); _ElecTauTree->Branch("hadTauIdByMVA5VTightElectronRejection", &_hadTauIdByMVA5VTightElectronRejection); _ElecTauTree->Branch("hadTauIdByElectronDeadECAL", &_hadTauIdByElectronDeadECAL); _ElecTauTree->Branch("hadTauIdByLooseMuonRejection",&_hadTauIdByLooseMuonRejection); _ElecTauTree->Branch("hadTauIdByMediumMuonRejection",&_hadTauIdByMediumMuonRejection); _ElecTauTree->Branch("hadTauIdByTightMuonRejection",&_hadTauIdByTightMuonRejection); _ElecTauTree->Branch("hadTauIdByLooseMuonRejection2",&_hadTauIdByLooseMuonRejection2); _ElecTauTree->Branch("hadTauIdByMediumMuonRejection2",&_hadTauIdByMediumMuonRejection2); _ElecTauTree->Branch("hadTauIdByTightMuonRejection2",&_hadTauIdByTightMuonRejection2); _ElecTauTree->Branch("hadTauIdByLooseMuonRejection3",&_hadTauIdByLooseMuonRejection3); _ElecTauTree->Branch("hadTauIdByTightMuonRejection3",&_hadTauIdByTightMuonRejection3); _ElecTauTree->Branch("hadTauIdByLooseMVAMuonRejection",&_hadTauIdByLooseMVAMuonRejection); _ElecTauTree->Branch("hadTauIdByMediumMVAMuonRejection",&_hadTauIdByMediumMVAMuonRejection); _ElecTauTree->Branch("hadTauIdByTightMVAMuonRejection",&_hadTauIdByTightMVAMuonRejection); _ElecTauTree->Branch("hadTauMEtMt", &_hadTauMEtMt); //Elec info _ElecTauTree->Branch("elecMatched", &_elecMatched); _ElecTauTree->Branch("elecMotherId", &_elecMotherId); _ElecTauTree->Branch("elecGenPt", &_elecGenPt); _ElecTauTree->Branch("elecGenE", &_elecGenE); _ElecTauTree->Branch("elecGenEta", &_elecGenEta); _ElecTauTree->Branch("elecGenPhi", &_elecGenPhi); _ElecTauTree->Branch("elecPt", &_elecPt); _ElecTauTree->Branch("elecE", &_elecE); _ElecTauTree->Branch("elecEta", &_elecEta); _ElecTauTree->Branch("elecPhi", &_elecPhi); _ElecTauTree->Branch("elecCharge", &_elecCharge); _ElecTauTree->Branch("elecDxyVtx", &_elecDxyVtx); _ElecTauTree->Branch("elecDxyBS", &_elecDxyBS); _ElecTauTree->Branch("elecDxyError", &_elecDxyError); _ElecTauTree->Branch("elecDzVtx", &_elecDzVtx); _ElecTauTree->Branch("elecDzBS", &_elecDzBS); _ElecTauTree->Branch("elecDzError", &_elecDzError); _ElecTauTree->Branch("elecVx", &_elecVx); _ElecTauTree->Branch("elecVy", &_elecVy); _ElecTauTree->Branch("elecVz", &_elecVz); _ElecTauTree->Branch("elecDEtaIn", &_elecDEtaIn); _ElecTauTree->Branch("elecDPhiIn", &_elecDPhiIn); _ElecTauTree->Branch("elecSigmaIEtaIEta", &_elecSigmaIEtaIEta); _ElecTauTree->Branch("elecHadOverE", &_elecHadOverE); _ElecTauTree->Branch("elecFbrem", &_elecFbrem); _ElecTauTree->Branch("elecEOverPIn", &_elecEOverPIn); _ElecTauTree->Branch("elecOneOverEMinusOneOverPIn", &_elecOneOverEMinusOneOverPIn); _ElecTauTree->Branch("elecMissingHits", &_elecMissingHits); _ElecTauTree->Branch("elecConversionRejection", &_elecConversionRejection); _ElecTauTree->Branch("elecFiducialFlag", &_elecFiducialFlag); _ElecTauTree->Branch("elecPFIsoDR03SumChargedHadronPt", &_elecPFIsoDR03SumChargedHadronPt); _ElecTauTree->Branch("elecPFIsoDR03SumNeutralHadronPt", &_elecPFIsoDR03SumNeutralHadronPt); _ElecTauTree->Branch("elecPFIsoDR03SumPhotonPt", &_elecPFIsoDR03SumPhotonPt); _ElecTauTree->Branch("elecPFIsoDR03SumPUPt", &_elecPFIsoDR03SumPUPt); _ElecTauTree->Branch("elecPFIsoDR04SumChargedHadronPt", &_elecPFIsoDR04SumChargedHadronPt); _ElecTauTree->Branch("elecPFIsoDR04SumNeutralHadronPt", &_elecPFIsoDR04SumNeutralHadronPt); _ElecTauTree->Branch("elecPFIsoDR04SumPhotonPt", &_elecPFIsoDR04SumPhotonPt); _ElecTauTree->Branch("elecPFIsoDR04SumPUPt", &_elecPFIsoDR04SumPUPt); _ElecTauTree->Branch("elecIsoDR03SumPtTrk", &_elecIsoDR03SumPtTrk); _ElecTauTree->Branch("elecIsoDR03SumEtEcal", &_elecIsoDR03SumEtEcal); _ElecTauTree->Branch("_elecIsoDR03SumEtHcal", &_elecIsoDR03SumEtHcal); _ElecTauTree->Branch("elecClass", &_elecClass); _ElecTauTree->Branch("elecMVAStatus", &_elecMVAStatus); _ElecTauTree->Branch("elecMVAOut", &_elecMVAOut); _ElecTauTree->Branch("elecMEtMt", &_elecMEtMt); _ElecTauTree->Branch("elecMetCosDPhi", &_elecMetCosDPhi); //elecTau Info _ElecTauTree->Branch("elecHadTauCosDPhi", &_elecHadTauCosDPhi); _ElecTauTree->Branch("elecHadTauDelatR", &_elecHadTauDelatR); _ElecTauTree->Branch("elecHadTauMass", &_elecHadTauMass); _ElecTauTree->Branch("elecHadTauMetMass", &_elecHadTauMetMass); _ElecTauTree->Branch("elecHadTauCollMass", &_elecHadTauCollMass); _ElecTauTree->Branch("elecHadTauPZeta", &_elecHadTauPZeta); _ElecTauTree->Branch("elecHadTauPZetaVis", &_elecHadTauPZetaVis); //diJetInfo _ElecTauTree->Branch("nVBFJets", &_nVBFJets); _ElecTauTree->Branch("diJetMass", &_diJetMass); _ElecTauTree->Branch("diJetDEta", &_diJetDEta); _ElecTauTree->Branch("jet1Pt", &_jet1Pt); _ElecTauTree->Branch("jet1Eta", &_jet1Eta); _ElecTauTree->Branch("jet2Pt", &_jet2Pt); _ElecTauTree->Branch("jet2Eta", &_jet2Eta); _ElecTauTree->Branch("elecDiJetMass", &_elecDiJetMass); _ElecTauTree->Branch("hadTauDiJetMass", &_hadTauDiJetMass); _ElecTauTree->Branch("elecTauDiJetMass", &_elecTauDiJetMass); //_ElecTauTree->Branch("njets", &_nJets); //_ElecTauTree->Branch("jetsPt", &_jetPt); //_ElecTauTree->Branch("jetsEta", &_jetEta); //_ElecTauTree->Branch("diJetDEtaTest", &_diJetDEtaTest); //_ElecTauTree->Branch("diJetMassTest", &_diJetMassTest); _ElecTauTree->Branch("maxDiJetDEta", &_maxDiJetDEta); _ElecTauTree->Branch("maxDiJetMass", &_maxDiJetMass); //BTag and Jet Counting _ElecTauTree->Branch("nJets", &_nJets); _ElecTauTree->Branch("jetEtSum", &_jetEtSum); _ElecTauTree->Branch("nBtagsHiEffTrkCnt",&_nBtagsHiEffTrkCnt); _ElecTauTree->Branch("nBtagsHiPurityTrkCnt",&_nBtagsHiPurityTrkCnt); _ElecTauTree->Branch("nBTagsCombSecVtxLoose",&_nBTagsCombSecVtxLoose); _ElecTauTree->Branch("nBTagsCombSecVtxMedium",&_nBTagsCombSecVtxMedium); _ElecTauTree->Branch("nBTagsCombSecVtxTight",&_nBTagsCombSecVtxTight); } void ElecTauAnalysis::initializeVectors(){ //Lead Tau Info _hadTauMatched = NULL; _hadTauMotherId = NULL; _hadTauIsGenElec = NULL; _hadTauGenPt = NULL; _hadTauGenE = NULL; _hadTauGenEta = NULL; _hadTauGenPhi = NULL; _hadTauPt = NULL; _hadTauAltLVPt = NULL; _hadTauAltLVEnergy = NULL; _hadTauEnergy = NULL; _hadTauEta = NULL; _hadTauPhi = NULL; _hadTauCharge = NULL; _hadTauLeadChargedCandPt = NULL; _hadTauLeadChargedCandCharge = NULL; //_hadTauLeadChargedCandRecHitsSize = NULL; _hadTauLeadChargedCandDxyVtx = NULL; _hadTauLeadChargedCandDxyBS = NULL; _hadTauLeadChargedCandDxyError = NULL; _hadTauLeadChargedCandDzVtx = NULL; _hadTauLeadChargedCandDzBS = NULL; _hadTauLeadChargedCandDzError = NULL; _hadTauLeadChargedCandVx = NULL; _hadTauLeadChargedCandVy = NULL; _hadTauLeadChargedCandVz = NULL; _hadTauDeltaZVtx = NULL; _hadTauNProngs = NULL; _hadTauEmFraction = NULL; _hadTauHcalTotOverPLead = NULL; _hadTauHcalMaxOverPLead = NULL; _hadTauHcal3x3OverPLead = NULL; _hadTauElectronPreId = NULL; _hadTauModifiedEOverP = NULL; _hadTauBremsRecoveryEOverPLead = NULL; _hadTauLTSignedIp = NULL; _hadTauTrkIsoSumPt = NULL; _hadTauECALIsoSumEt = NULL; _hadTauIdByDecayModeFinding = NULL; _hadTauIdByDecayModeFindingNewDMs = NULL; _hadTauIdByDecayModeFindingOldDMs = NULL; _hadTauIdByLooseCombinedIsolationDBSumPtCorr = NULL; _hadTauIdByMediumCombinedIsolationDBSumPtCorr = NULL; _hadTauIdByTightCombinedIsolationDBSumPtCorr = NULL; _hadTauIdByLooseCombinedIsolationDBSumPtCorr3Hits = NULL; _hadTauIdByMediumCombinedIsolationDBSumPtCorr3Hits = NULL; _hadTauIdByTightCombinedIsolationDBSumPtCorr3Hits = NULL; _hadTauIdByVLooseIsolationMVA3newDMwLT = NULL; _hadTauIdByLooseIsolationMVA3newDMwLT = NULL; _hadTauIdByMediumIsolationMVA3newDMwLT = NULL; _hadTauIdByTightIsolationMVA3newDMwLT = NULL; _hadTauIdByVTightIsolationMVA3newDMwLT = NULL; _hadTauIdByVVTightIsolationMVA3newDMwLT = NULL; _hadTauIdByIsolationMVA3newDMwLTraw = NULL; _hadTauIdByVLooseIsolationMVA3newDMwoLT = NULL; _hadTauIdByLooseIsolationMVA3newDMwoLT = NULL; _hadTauIdByMediumIsolationMVA3newDMwoLT = NULL; _hadTauIdByTightIsolationMVA3newDMwoLT = NULL; _hadTauIdByVTightIsolationMVA3newDMwoLT = NULL; _hadTauIdByVVTightIsolationMVA3newDMwoLT = NULL; _hadTauIdByIsolationMVA3newDMwoLTraw = NULL; _hadTauIdByVLooseIsolationMVA3oldDMwLT = NULL; _hadTauIdByLooseIsolationMVA3oldDMwLT = NULL; _hadTauIdByMediumIsolationMVA3oldDMwLT = NULL; _hadTauIdByTightIsolationMVA3oldDMwLT = NULL; _hadTauIdByVTightIsolationMVA3oldDMwLT = NULL; _hadTauIdByVVTightIsolationMVA3oldDMwLT = NULL; _hadTauIdByVLooseIsolationMVA3oldDMwoLT = NULL; _hadTauIdByLooseIsolationMVA3oldDMwoLT = NULL; _hadTauIdByMediumIsolationMVA3oldDMwoLT = NULL; _hadTauIdByTightIsolationMVA3oldDMwoLT = NULL; _hadTauIdByVTightIsolationMVA3oldDMwoLT = NULL; _hadTauIdByVVTightIsolationMVA3oldDMwoLT = NULL; _hadTauIdByLooseElectronRejection = NULL; _hadTauIdByMediumElectronRejection = NULL; _hadTauIdByTightElectronRejection = NULL; _hadTauIdByMVA5rawElectronRejection = NULL; _hadTauIdByMVA5ElectronRejectionCat = NULL; _hadTauIdByMVA5VLooseElectronRejection = NULL; _hadTauIdByMVA5LooseElectronRejection = NULL; _hadTauIdByMVA5MediumElectronRejection = NULL; _hadTauIdByMVA5TightElectronRejection = NULL; _hadTauIdByMVA5VTightElectronRejection = NULL; _hadTauIdByElectronDeadECAL = NULL; _hadTauIdByLooseMuonRejection = NULL; _hadTauIdByMediumMuonRejection = NULL; _hadTauIdByTightMuonRejection = NULL; _hadTauIdByLooseMuonRejection2 = NULL; _hadTauIdByMediumMuonRejection2 = NULL; _hadTauIdByTightMuonRejection2 = NULL; _hadTauIdByLooseMuonRejection3 = NULL; _hadTauIdByTightMuonRejection3 = NULL; _hadTauIdByLooseMVAMuonRejection = NULL; _hadTauIdByMediumMVAMuonRejection = NULL; _hadTauIdByTightMVAMuonRejection = NULL; _hadTauMEtMt = NULL; //Elec Info _elecMatched = NULL; _elecMotherId = NULL; _elecGenPt = NULL; _elecGenE = NULL; _elecGenEta = NULL; _elecGenPhi = NULL; _elecPt = NULL; _elecE = NULL; _elecEta = NULL; _elecPhi = NULL; _elecCharge = NULL; _elecDxyVtx = NULL; _elecDxyBS = NULL; _elecDxyError = NULL; _elecDzVtx = NULL; _elecDzBS = NULL; _elecDzError = NULL; _elecVx = NULL; _elecVy = NULL; _elecVz = NULL; _elecDEtaIn = NULL; _elecDPhiIn = NULL; _elecSigmaIEtaIEta = NULL; _elecHadOverE = NULL; _elecFbrem = NULL; _elecEOverPIn = NULL; _elecOneOverEMinusOneOverPIn = NULL; _elecConversionRejection = NULL; _elecFiducialFlag = NULL; _elecMissingHits = NULL; _elecPFIsoDR03SumChargedHadronPt = NULL; _elecPFIsoDR03SumNeutralHadronPt = NULL; _elecPFIsoDR03SumPhotonPt = NULL; _elecPFIsoDR03SumPUPt = NULL; _elecPFIsoDR04SumChargedHadronPt = NULL; _elecPFIsoDR04SumNeutralHadronPt = NULL; _elecPFIsoDR04SumPhotonPt = NULL; _elecPFIsoDR04SumPUPt = NULL; _elecIsoDR03SumPtTrk = NULL; _elecIsoDR03SumEtEcal = NULL; _elecIsoDR03SumEtHcal = NULL; _elecClass = NULL; _elecMVAStatus = NULL; _elecMVAOut = NULL; _elecMEtMt = NULL; _elecMetCosDPhi = NULL; //elec-LeadTau Info _elecHadTauCosDPhi = NULL; _elecHadTauDelatR = NULL; _elecHadTauPZeta = NULL; _elecHadTauPZetaVis = NULL; _elecHadTauMass = NULL; _elecHadTauMetMass = NULL; _elecHadTauCollMass = NULL; //dijet info _nVBFJets = NULL; _diJetMass = NULL; _diJetDEta = NULL; _jet1Pt = NULL; _jet1Eta = NULL; _jet2Pt = NULL; _jet2Eta = NULL; _elecDiJetMass = NULL; _hadTauDiJetMass = NULL; _elecTauDiJetMass = NULL; //_jetPt = NULL; //_jetEta = NULL; //_diJetDEtaTest = NULL; //_diJetMassTest = NULL; _jetEtSum = NULL; _nJets = NULL; _nBtagsHiEffTrkCnt = NULL; _nBtagsHiPurityTrkCnt = NULL; _nBTagsCombSecVtxLoose = NULL; _nBTagsCombSecVtxMedium = NULL; _nBTagsCombSecVtxTight = NULL; } void ElecTauAnalysis::clearVectors(){ //Lead Tau Info _hadTauMatched->clear(); _hadTauMotherId->clear(); _hadTauIsGenElec->clear(); _hadTauGenPt->clear(); _hadTauGenE->clear(); _hadTauGenEta->clear(); _hadTauGenPhi->clear(); _hadTauPt->clear(); _hadTauAltLVPt->clear(); _hadTauAltLVEnergy->clear(); _hadTauEnergy->clear(); _hadTauEta->clear(); _hadTauPhi->clear(); _hadTauCharge->clear(); _hadTauLeadChargedCandPt->clear(); _hadTauLeadChargedCandCharge->clear(); //_hadTauLeadChargedCandRecHitsSize->clear(); _hadTauLeadChargedCandDxyVtx->clear(); _hadTauLeadChargedCandDxyBS->clear(); _hadTauLeadChargedCandDxyError->clear(); _hadTauLeadChargedCandDzVtx->clear(); _hadTauLeadChargedCandDzBS->clear(); _hadTauLeadChargedCandDzError->clear(); _hadTauLeadChargedCandVx->clear(); _hadTauLeadChargedCandVy->clear(); _hadTauLeadChargedCandVz->clear(); _hadTauDeltaZVtx->clear(); _hadTauNProngs->clear(); _hadTauEmFraction->clear(); _hadTauHcalTotOverPLead->clear(); _hadTauHcalMaxOverPLead->clear(); _hadTauHcal3x3OverPLead->clear(); _hadTauElectronPreId->clear(); _hadTauModifiedEOverP->clear(); _hadTauBremsRecoveryEOverPLead->clear(); _hadTauLTSignedIp->clear(); _hadTauTrkIsoSumPt->clear(); _hadTauECALIsoSumEt->clear(); _hadTauIdByDecayModeFinding->clear(); _hadTauIdByDecayModeFindingNewDMs->clear(); _hadTauIdByDecayModeFindingOldDMs->clear(); _hadTauIdByLooseCombinedIsolationDBSumPtCorr->clear(); _hadTauIdByMediumCombinedIsolationDBSumPtCorr->clear(); _hadTauIdByTightCombinedIsolationDBSumPtCorr->clear(); _hadTauIdByLooseCombinedIsolationDBSumPtCorr3Hits->clear(); _hadTauIdByMediumCombinedIsolationDBSumPtCorr3Hits->clear(); _hadTauIdByTightCombinedIsolationDBSumPtCorr3Hits->clear(); _hadTauIdByVLooseIsolationMVA3newDMwLT->clear(); _hadTauIdByLooseIsolationMVA3newDMwLT->clear(); _hadTauIdByMediumIsolationMVA3newDMwLT->clear(); _hadTauIdByTightIsolationMVA3newDMwLT->clear(); _hadTauIdByVTightIsolationMVA3newDMwLT->clear(); _hadTauIdByVVTightIsolationMVA3newDMwLT->clear(); _hadTauIdByIsolationMVA3newDMwLTraw->clear(); _hadTauIdByVLooseIsolationMVA3newDMwoLT->clear(); _hadTauIdByLooseIsolationMVA3newDMwoLT->clear(); _hadTauIdByMediumIsolationMVA3newDMwoLT->clear(); _hadTauIdByTightIsolationMVA3newDMwoLT->clear(); _hadTauIdByVTightIsolationMVA3newDMwoLT->clear(); _hadTauIdByVVTightIsolationMVA3newDMwoLT->clear(); _hadTauIdByIsolationMVA3newDMwoLTraw->clear(); _hadTauIdByVLooseIsolationMVA3oldDMwLT->clear(); _hadTauIdByLooseIsolationMVA3oldDMwLT->clear(); _hadTauIdByMediumIsolationMVA3oldDMwLT->clear(); _hadTauIdByTightIsolationMVA3oldDMwLT->clear(); _hadTauIdByVTightIsolationMVA3oldDMwLT->clear(); _hadTauIdByVVTightIsolationMVA3oldDMwLT->clear(); _hadTauIdByVLooseIsolationMVA3oldDMwoLT->clear(); _hadTauIdByLooseIsolationMVA3oldDMwoLT->clear(); _hadTauIdByMediumIsolationMVA3oldDMwoLT->clear(); _hadTauIdByTightIsolationMVA3oldDMwoLT->clear(); _hadTauIdByVTightIsolationMVA3oldDMwoLT->clear(); _hadTauIdByVVTightIsolationMVA3oldDMwoLT->clear(); _hadTauIdByLooseElectronRejection->clear(); _hadTauIdByMediumElectronRejection->clear(); _hadTauIdByTightElectronRejection->clear(); _hadTauIdByMVA5rawElectronRejection->clear(); _hadTauIdByMVA5ElectronRejectionCat->clear(); _hadTauIdByMVA5VLooseElectronRejection->clear(); _hadTauIdByMVA5LooseElectronRejection->clear(); _hadTauIdByMVA5MediumElectronRejection->clear(); _hadTauIdByMVA5TightElectronRejection->clear(); _hadTauIdByMVA5VTightElectronRejection->clear(); _hadTauIdByElectronDeadECAL->clear(); _hadTauIdByLooseMuonRejection->clear(); _hadTauIdByMediumMuonRejection->clear(); _hadTauIdByTightMuonRejection->clear(); _hadTauIdByLooseMuonRejection2->clear(); _hadTauIdByMediumMuonRejection2->clear(); _hadTauIdByTightMuonRejection2->clear(); _hadTauIdByLooseMuonRejection3->clear(); _hadTauIdByTightMuonRejection3->clear(); _hadTauIdByLooseMVAMuonRejection->clear(); _hadTauIdByMediumMVAMuonRejection->clear(); _hadTauIdByTightMVAMuonRejection->clear(); _hadTauMEtMt->clear(); //Elec Info _elecMatched->clear(); _elecMotherId->clear(); _elecGenPt->clear(); _elecGenE->clear(); _elecGenEta->clear(); _elecGenPhi->clear(); _elecPt->clear(); _elecE->clear(); _elecEta->clear(); _elecPhi->clear(); _elecCharge->clear(); _elecDxyVtx->clear(); _elecDxyBS->clear(); _elecDxyError->clear(); _elecDzVtx->clear(); _elecDzBS->clear(); _elecDzError->clear(); _elecVx->clear(); _elecVy->clear(); _elecVz->clear(); _elecDEtaIn->clear(); _elecDPhiIn->clear(); _elecSigmaIEtaIEta->clear(); _elecHadOverE->clear(); _elecFbrem->clear(); _elecEOverPIn->clear(); _elecOneOverEMinusOneOverPIn->clear(); _elecConversionRejection->clear(); _elecFiducialFlag->clear(); _elecMissingHits->clear(); _elecPFIsoDR03SumChargedHadronPt->clear(); _elecPFIsoDR03SumNeutralHadronPt->clear(); _elecPFIsoDR03SumPhotonPt->clear(); _elecPFIsoDR03SumPUPt->clear(); _elecPFIsoDR04SumChargedHadronPt->clear(); _elecPFIsoDR04SumNeutralHadronPt->clear(); _elecPFIsoDR04SumPhotonPt->clear(); _elecPFIsoDR04SumPUPt->clear(); _elecIsoDR03SumPtTrk->clear(); _elecIsoDR03SumEtEcal->clear(); _elecIsoDR03SumEtHcal->clear(); _elecClass->clear(); _elecMVAStatus->clear(); _elecMVAOut->clear(); _elecMEtMt->clear(); _elecMetCosDPhi->clear(); //elec-LeadTau Info _elecHadTauCosDPhi->clear(); _elecHadTauDelatR->clear(); _elecHadTauPZeta->clear(); _elecHadTauPZetaVis->clear(); _elecHadTauMass->clear(); _elecHadTauMetMass->clear(); _elecHadTauCollMass->clear(); //dijet info _nVBFJets->clear(); _diJetMass->clear(); _diJetDEta->clear(); _jet1Pt->clear(); _jet1Eta->clear(); _jet2Pt->clear(); _jet2Eta->clear(); _elecDiJetMass->clear(); _hadTauDiJetMass->clear(); _elecTauDiJetMass->clear(); //_jetPt->clear(); //_jetEta->clear(); //_diJetDEtaTest->clear(); //_diJetMassTest->clear(); _jetEtSum->clear(); _nJets->clear(); _nBtagsHiEffTrkCnt->clear(); _nBtagsHiPurityTrkCnt->clear(); _nBTagsCombSecVtxLoose->clear(); _nBTagsCombSecVtxMedium->clear(); _nBTagsCombSecVtxTight->clear(); } bool ElecTauAnalysis::passedLooseJetId(const pat::Jet& theJet){ bool passedGeneralCuts = theJet.neutralHadronEnergyFraction() < 0.99 && theJet.neutralEmEnergyFraction() < 0.99 && theJet.numberOfDaughters() > 1; bool passedCentralJetCuts = theJet.chargedHadronEnergyFraction() > 0 && theJet.chargedMultiplicity() > 0 && theJet.chargedEmEnergyFraction() < 0.99; if(fabs(theJet.eta()) < 2.4) return passedGeneralCuts && passedCentralJetCuts; else return passedGeneralCuts; //return passedGeneralCuts; } //define this as a plug-in DEFINE_FWK_MODULE(ElecTauAnalysis);