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 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
/*
 *  See header file for a description of this class.
 *
 *  \author Paolo Ronchese INFN Padova
 *
 */

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

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

//---------------
// C++ Headers --
//---------------
using namespace std;

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

//----------------
// Constructors --
//----------------
BPHDecayToResTrkTrkSameMassBuilderBase::BPHDecayToResTrkTrkSameMassBuilderBase(
    const BPHEventSetupWrapper& es,
    const string& resName,
    double resMass,
    double resWidth,
    const string& posName,
    const std::string& negName,
    double trkMass,
    double trkSigma,
    const BPHRecoBuilder::BPHGenericCollection* posCollection,
    const BPHRecoBuilder::BPHGenericCollection* negCollection)
    : BPHDecayGenericBuilderBase(es, nullptr),
      BPHDecayConstrainedBuilderBase(resName, resMass, resWidth),
      pName(posName),
      nName(negName),
      tMass(trkMass),
      tSigma(trkSigma),
      pCollection(posCollection),
      nCollection(negCollection),
      ptMin(0.0),
      etaMax(100.0) {}

BPHDecayToResTrkTrkSameMassBuilderBase::BPHDecayToResTrkTrkSameMassBuilderBase(
    const string& posName,
    const std::string& negName,
    double trkMass,
    double trkSigma,
    const BPHRecoBuilder::BPHGenericCollection* posCollection,
    const BPHRecoBuilder::BPHGenericCollection* negCollection)
    : pName(posName),
      nName(negName),
      tMass(trkMass),
      tSigma(trkSigma),
      pCollection(posCollection),
      nCollection(negCollection),
      ptMin(0.0),
      etaMax(100.0) {}

//--------------
// Operations --
//--------------
void BPHDecayToResTrkTrkSameMassBuilderBase::fillTrkTrkList() {
  double mTotMax = massSel->getMassMax();

  BPHDecayToChargedXXbarBuilder ttBuilder(*evSetup, pName, nName, tMass, tSigma, pCollection, nCollection);
  ttBuilder.setPtMin(ptMin);
  ttBuilder.setEtaMax(etaMax);
  ttBuilder.setDzMax(1.0);
  ttBuilder.setMassMin(0.0);
  if (mTotMax >= 0.0)
    ttBuilder.setMassMax(mTotMax - (0.8 * rMass));
  else
    ttBuilder.setMassMax(-1.0);
  ttBuilder.setMinPDiff(minPDiff);

  ttPairs = ttBuilder.build();

  return;
}

/// set cuts
void BPHDecayToResTrkTrkSameMassBuilderBase::setTrkPtMin(double pt) {
  outdated = true;
  ptMin = pt;
  return;
}

void BPHDecayToResTrkTrkSameMassBuilderBase::setTrkEtaMax(double eta) {
  outdated = true;
  etaMax = eta;
  return;
}