Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:15:37

0001 /*
0002  *  See header file for a description of this class.
0003  *
0004  *  \author Paolo Ronchese INFN Padova
0005  *
0006  */
0007 
0008 //-----------------------
0009 // This Class' Header --
0010 //-----------------------
0011 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayToResResBuilderBase.h"
0012 
0013 //-------------------------------
0014 // Collaborating Class Headers --
0015 //-------------------------------
0016 #include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"
0017 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
0018 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
0019 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
0020 
0021 //---------------
0022 // C++ Headers --
0023 //---------------
0024 #include <iostream>
0025 using namespace std;
0026 
0027 //-------------------
0028 // Initializations --
0029 //-------------------
0030 
0031 //----------------
0032 // Constructors --
0033 //----------------
0034 BPHDecayToResResBuilderBase::BPHDecayToResResBuilderBase(
0035     const BPHEventSetupWrapper& es, const string& res1Name, double res1Mass, double res1Width, const string& res2Name)
0036     : BPHDecayGenericBuilderBase(es, nullptr),
0037       BPHDecayConstrainedBuilderBase(res1Name, res1Mass, res1Width),
0038       sName(res2Name),
0039       res2Sel(new BPHMassSelect(-2.0e+06, -1.0e+06)),
0040       dzFilter(&rName) {}
0041 
0042 BPHDecayToResResBuilderBase::BPHDecayToResResBuilderBase(const string& res2Name)
0043     : sName(res2Name), res2Sel(new BPHMassSelect(-2.0e+06, -1.0e+06)), dzFilter(&rName) {}
0044 
0045 //--------------
0046 // Destructor --
0047 //--------------
0048 BPHDecayToResResBuilderBase::~BPHDecayToResResBuilderBase() { delete res2Sel; }
0049 
0050 //--------------
0051 // Operations --
0052 //--------------
0053 
0054 /// set cuts
0055 void BPHDecayToResResBuilderBase::setRes2MassMin(double m) {
0056   outdated = true;
0057   res2Sel->setMassMin(m);
0058   return;
0059 }
0060 
0061 void BPHDecayToResResBuilderBase::setRes2MassMax(double m) {
0062   outdated = true;
0063   res2Sel->setMassMax(m);
0064   return;
0065 }
0066 
0067 void BPHDecayToResResBuilderBase::setRes2MassRange(double mMin, double mMax) {
0068   outdated = true;
0069   res2Sel->setMassMin(mMin);
0070   res2Sel->setMassMax(mMax);
0071   return;
0072 }
0073 
0074 /// build candidates
0075 void BPHDecayToResResBuilderBase::fill(BPHRecoBuilder& brb, void* parameters) {
0076   brb.setMinPDiffererence(minPDiff);
0077   addRes1Collection(brb);
0078   addRes2Collection(brb);
0079 
0080   if (massSel->getMassMax() >= 0.0)
0081     brb.filter(*massSel);
0082   if (chi2Sel->getProbMin() >= 0.0)
0083     brb.filter(*chi2Sel);
0084   if (mFitSel->getMassMax() >= 0.0)
0085     brb.filter(*mFitSel);
0086 
0087   setup(parameters);
0088 
0089   return;
0090 }