本文整理汇总了C++中JetPointer::isBJet方法的典型用法代码示例。如果您正苦于以下问题:C++ JetPointer::isBJet方法的具体用法?C++ JetPointer::isBJet怎么用?C++ JetPointer::isBJet使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JetPointer
的用法示例。
在下文中一共展示了JetPointer::isBJet方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: analyse
void JetAnalyser::analyse(const EventPtr event) {
histMan_->setCurrentHistogramFolder(histogramFolder_);
weight_ = event->weight() * prescale_ * scale_;
const JetCollection jets = event->Jets();
unsigned int numberOfBJets(0);
for (unsigned int index = 0; index < jets.size(); ++index) {
const JetPointer jet(jets.at(index));
histMan_->H1D_BJetBinned("all_jet_pT")->Fill(jet->pt(), weight_);
histMan_->H1D_BJetBinned("all_jet_phi")->Fill(jet->phi(), weight_);
histMan_->H1D_BJetBinned("all_jet_eta")->Fill(jet->eta(), weight_);
if (jet->isBJet(BtagAlgorithm::CombinedSecondaryVertex, BtagAlgorithm::MEDIUM))
++numberOfBJets;
if (index < 7) {
stringstream temp;
temp << "jet" << (index + 1);
string nthJet = temp.str();
histMan_->H1D_BJetBinned(nthJet + "_pT")->Fill(jet->pt(), weight_);
histMan_->H1D_BJetBinned(nthJet + "_phi")->Fill(jet->phi(), weight_);
histMan_->H1D_BJetBinned(nthJet + "_eta")->Fill(jet->eta(), weight_);
}
}
histMan_->H1D_BJetBinned("N_Jets")->Fill(jets.size(), weight_);
histMan_->H1D("N_BJets")->Fill(numberOfBJets, weight_);
}
示例2: GetBJetCollection
JetCollection Event::GetBJetCollection(const JetCollection& jets, BtagAlgorithm::value btagAlgorithm,
BtagAlgorithm::workingPoint WP) const {
JetCollection bjets;
for (unsigned int index = 0; index < jets.size(); ++index) {
const JetPointer jet = jets.at(index);
if (jet->isBJet(btagAlgorithm, WP))
bjets.push_back(jet);
}
return bjets;
}
示例3: selectGoodJets
void Event::selectGoodJets() {
goodJets.clear();
for (unsigned int index = 0; index < allJets.size(); ++index) {
const JetPointer jet = allJets.at(index);
if (jet->isGood()) {
goodJets.push_back(jet);
}
}
cleanGoodJets();
for (unsigned int index = 0; index < goodJets.size(); ++index) {
const JetPointer jet = goodJets.at(index);
if (jet->isBJet(BtagAlgorithm::SimpleSecondaryVertexHighEffBTag))
goodBJets.push_back(jet);
}
}
示例4: analyse
void Analysis::analyse() {
cout << "detected samples:" << endl;
for (unsigned int sample = 0; sample < DataType::NUMBER_OF_DATA_TYPES; ++sample) {
if (eventReader->getSeenDatatypes()[sample])
cout << DataType::names[sample] << endl;
}
createHistograms();
while (eventReader->hasNextEvent()) {
initiateEvent();
printNumberOfProccessedEventsEvery(Globals::printEveryXEvents);
inspectEvents();
const JetCollection jets(currentEvent->Jets());
unsigned int numberOfJets(jets.size());
unsigned int numberOfBJets(0);
for (unsigned int index = 0; index < numberOfJets; ++index) {
const JetPointer jet(currentEvent->Jets().at(index));
if (jet->isBJet(BtagAlgorithm::CombinedSecondaryVertexV2, BtagAlgorithm::MEDIUM))
++numberOfBJets;
}
histMan->setCurrentBJetBin(numberOfBJets);
histMan->setCurrentJetBin(numberOfJets);
vector<double> bjetWeights;
if (currentEvent->isRealData()) {
for (unsigned int index = 0; index <= numberOfBJets; ++index) {
if (index == numberOfBJets)
bjetWeights.push_back(1.);
else
bjetWeights.push_back(0);
}
} else
bjetWeights = BjetWeights(jets, numberOfBJets);
ttbar_plus_X_analyser_->analyse(currentEvent);
if ( ( currentEvent->getDataType() == DataType::TTJets_amcatnloFXFX || currentEvent->getDataType() == DataType::TTJets_madgraphMLM ) && Globals::treePrefix_ == "" ) {
pseudoTopAnalyser_->analyse(currentEvent);
unfoldingRecoAnalyser_->analyse(currentEvent);
partonAnalyser_->analyse(currentEvent);
// likelihoodInputAnalyser_->analyse(currentEvent);
}
treeMan->FillTrees();
}
}
示例5: printJet
extern void printJet(const JetPointer jet) {
printParticle(jet);
cout << "Jet Information" << endl;
cout << setw(30) << "JECUnc" << endl;
cout << setw(30) << jet->JECUnc() << endl;
cout << setw(30) << "ptRaw" << setw(30) << "pxRaw" << setw(30) << "pyRaw" << setw(30) << "pzRaw" << endl;
cout << setw(30) << sqrt(jet->PxRaw() * jet->PxRaw() + jet->PyRaw() * jet->PyRaw()) << setw(30) << jet->PxRaw()
<< setw(30) << jet->PyRaw() << setw(30) << jet->PzRaw() << endl;
cout << setw(30) << "L1OffJEC" << setw(30) << "L2L3ResJEC" << setw(30) << "L2RelJEC" << setw(30) << "L3AbsJEC" << endl;
cout << setw(30) << jet->L1OffJEC() << setw(30) << jet->L2L3ResJEC() << setw(30) << jet->L2RelJEC() << setw(30) << jet->L3AbsJEC() << endl;;
cout << setw(30) << "emf" << setw(30) << "n90Hits" << setw(30) << "fHPD" << setw(30) << "B tag(SSV)" << endl;
cout << setw(30) << jet->emf() << setw(30) << jet->n90Hits() << setw(30) << jet->fHPD() << setw(30)
<< jet->isBJet(BtagAlgorithm::CombinedSecondaryVertexV2, BtagAlgorithm::MEDIUM) << endl << endl;
if (jet->getUsedAlgorithm() == JetAlgorithm::CA08PF || jet->getUsedAlgorithm() == JetAlgorithm::PF2PAT) {
printPFJetExtra(jet);
}
}
示例6: analyse
void Analysis::analyse() {
createHistograms();
cout << "detected samples:" << endl;
for (unsigned int sample = 0; sample < DataType::NUMBER_OF_DATA_TYPES; ++sample) {
if (eventReader->getSeenDatatypes()[sample])
cout << DataType::names[sample] << endl;
}
while (eventReader->hasNextEvent()) {
initiateEvent();
printNumberOfProccessedEventsEvery(Globals::printEveryXEvents);
inspectEvents();
const JetCollection jets(currentEvent->Jets());
unsigned int numberOfJets(jets.size());
unsigned int numberOfBJets(0);
for (unsigned int index = 0; index < numberOfJets; ++index) {
const JetPointer jet(currentEvent->Jets().at(index));
if (jet->isBJet(BtagAlgorithm::CombinedSecondaryVertex, BtagAlgorithm::MEDIUM))
++numberOfBJets;
}
histMan->setCurrentBJetBin(numberOfBJets);
histMan->setCurrentJetBin(numberOfJets);
vector<double> bjetWeights;
if (currentEvent->isRealData()) {
for (unsigned int index = 0; index <= numberOfBJets; ++index) {
if (index == numberOfBJets)
bjetWeights.push_back(1.);
else
bjetWeights.push_back(0);
}
} else
bjetWeights = BjetWeights(jets, numberOfBJets);
eventcountAnalyser->analyse(currentEvent);
// mttbarAnalyser->analyse(currentEvent);
ttbar_plus_X_analyser_->analyse(currentEvent);
diffVariablesAnalyser->analyse(currentEvent);
// binningAnalyser->analyse(currentEvent);
}
}
示例7: weight
double BTagWeight::weight(const JetCollection jets, const int systematic) const {
float bTaggedMCJet = 1.0;
float nonBTaggedMCJet = 1.0;
float bTaggedDataJet = 1.0;
float nonBTaggedDataJet = 1.0;
for (unsigned int index = 0; index < jets.size(); ++index) {
// Info on this jet
const JetPointer jet(jets.at(index));
double jetPt = jet->pt();
if ( jetPt < 25 ) continue;
// If the pt of the jet is outside the pt range of the SFs,
// use the pt at the upper/lower edge and double the uncertainty.
bool ptOutOfRange = false;
if ( jetPt <= 30 || jet->pt() >= 670 ) {
ptOutOfRange = true;
}
const unsigned int partonFlavour = abs( jet->partonFlavour() );
const bool isBTagged = jet->isBJet();
// Get scale factor for this jet
const double sf = jet->getBTagSF( 0 );
double sf_up = jet->getBTagSF( 1 );
double sf_down = jet->getBTagSF( -1 );
if ( ptOutOfRange ) {
sf_up = sf + 2 * ( sf_up - sf );
sf_down = sf - 2 * ( sf - sf_down );
if ( sf_up < 0 ) sf_up = 0;
if ( sf_down < 0 ) sf_down = 0;
}
// Get efficiency for this jet
const double eff = getEfficiency( partonFlavour, jet );
double sfToUse = sf;
if ( systematic == 1 ) {
sfToUse = sf_up;
}
else if ( systematic == -1 ) {
sfToUse = sf_down;
}
if ( isBTagged ) {
bTaggedMCJet *= eff;
if ( eff*sfToUse > 1 ) {
bTaggedDataJet *= 1;
}
else if ( eff*sfToUse < 0 ) {
bTaggedDataJet *= 0;
}
else {
bTaggedDataJet *= eff*sfToUse;
}
}
else {
nonBTaggedMCJet *= ( 1 - eff );
if ( eff*sfToUse > 1 ) {
nonBTaggedDataJet *= 0;
}
else if ( eff*sfToUse < 0 ) {
nonBTaggedDataJet *= 1;
}
else {
bTaggedDataJet *= ( 1 - eff*sfToUse );
}
}
// if ( nonBTaggedMCJet < 0 || nonBTaggedDataJet < 0 ) {
// cout << nonBTaggedMCJet << " " << nonBTaggedDataJet << endl;
// cout << eff << " " << sfToUse << endl;
// }
}
double bTagWeight = (nonBTaggedDataJet * bTaggedDataJet) / (nonBTaggedMCJet * bTaggedMCJet);
return bTagWeight;
}
示例8: isBJet
bool TopPairEMuReferenceSelection::isBJet(const JetPointer jet) const {
return jet->isBJet(BtagAlgorithm::CombinedSecondaryVertex, BtagAlgorithm::MEDIUM);
}