BPHDecayGenericBuilder

Macros

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
#ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayGenericBuilder_h
#define HeavyFlavorAnalysis_SpecificDecay_BPHDecayGenericBuilder_h
/** \class BPHDecayGenericBuilder
 *
 *  Description: 
 *     Class to build a generic decay applying selections to the
 *     reconstructed particle
 *
 *  \author Paolo Ronchese INFN Padova
 *
 */

//----------------------
// Base Class Headers --
//----------------------
#include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayGenericBuilderBase.h"

//------------------------------------
// Collaborating Class Declarations --
//------------------------------------
#include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHMassSelect.h"
#include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHChi2Select.h"
#include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHMassFitSelect.h"

#include "FWCore/Framework/interface/EventSetup.h"

class BPHEventSetupWrapper;

//---------------
// C++ Headers --
//---------------
#include <vector>
#include <iostream>

//              ---------------------
//              -- Class Interface --
//              ---------------------

template <class ProdType>
class BPHDecayGenericBuilder : public virtual BPHDecayGenericBuilderBase {
public:
  typedef typename ProdType::const_pointer prod_ptr;

  /** Constructor
   */
  BPHDecayGenericBuilder(const BPHEventSetupWrapper& es, BPHMassFitSelect* mfs) : BPHDecayGenericBuilderBase(es, mfs) {}

  // deleted copy constructor and assignment operator
  BPHDecayGenericBuilder(const BPHDecayGenericBuilder& x) = delete;
  BPHDecayGenericBuilder& operator=(const BPHDecayGenericBuilder& x) = delete;

  /** Destructor
   */
  ~BPHDecayGenericBuilder() override = default;

  /** Operations
   */
  /// build candidates
  virtual std::vector<prod_ptr> build() {
    if (outdated) {
      recList.clear();
      fillRecList();
      outdated = false;
    }
    return recList;
  }

protected:
  BPHDecayGenericBuilder() {}

  std::vector<prod_ptr> recList;
};

#endif