Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
/*
 *  See header file for a description of this class.
 *
 *  \author Paolo Ronchese INFN Padova
 *
 */

//-----------------------
// This Class' Header --
//-----------------------
#include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToResResBuilderBase.h"

//-------------------------------
// Collaborating Class Headers --
//-------------------------------
#include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"
#include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
#include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
#include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"

//---------------
// C++ Headers --
//---------------
#include <iostream>
using namespace std;

//-------------------
// Initializations --
//-------------------

//----------------
// Constructors --
//----------------
BPHDecayToResResBuilderBase::BPHDecayToResResBuilderBase(
    const BPHEventSetupWrapper& es, const string& res1Name, double res1Mass, double res1Width, const string& res2Name)
    : BPHDecayGenericBuilderBase(es, nullptr),
      BPHDecayConstrainedBuilderBase(res1Name, res1Mass, res1Width),
      sName(res2Name),
      res2Sel(new BPHMassSelect(-2.0e+06, -1.0e+06)),
      dzFilter(&rName) {}

BPHDecayToResResBuilderBase::BPHDecayToResResBuilderBase(const string& res2Name)
    : sName(res2Name), res2Sel(new BPHMassSelect(-2.0e+06, -1.0e+06)), dzFilter(&rName) {}

//--------------
// Destructor --
//--------------
BPHDecayToResResBuilderBase::~BPHDecayToResResBuilderBase() { delete res2Sel; }

//--------------
// Operations --
//--------------

/// set cuts
void BPHDecayToResResBuilderBase::setRes2MassMin(double m) {
  outdated = true;
  res2Sel->setMassMin(m);
  return;
}

void BPHDecayToResResBuilderBase::setRes2MassMax(double m) {
  outdated = true;
  res2Sel->setMassMax(m);
  return;
}

void BPHDecayToResResBuilderBase::setRes2MassRange(double mMin, double mMax) {
  outdated = true;
  res2Sel->setMassMin(mMin);
  res2Sel->setMassMax(mMax);
  return;
}

/// build candidates
void BPHDecayToResResBuilderBase::fill(BPHRecoBuilder& brb, void* parameters) {
  brb.setMinPDiffererence(minPDiff);
  addRes1Collection(brb);
  addRes2Collection(brb);

  if (massSel->getMassMax() >= 0.0)
    brb.filter(*massSel);
  if (chi2Sel->getProbMin() >= 0.0)
    brb.filter(*chi2Sel);
  if (mFitSel->getMassMax() >= 0.0)
    brb.filter(*mFitSel);

  setup(parameters);

  return;
}