Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:42

0001 #ifndef PYTHIAFILTERMOTHERSISTER_h
0002 #define PYTHIAFILTERMOTHERSISTER_h
0003 // -*- C++ -*-
0004 //
0005 // Package:    PythiaFilterMotherSister
0006 // Class:      PythiaFilterMotherSister
0007 //
0008 /**\class PythiaFilterMotherSister PythiaFilterMotherSister.cc IOMC/PythiaFilterMotherSister/src/PythiaFilterMotherSister.cc
0009 
0010  Description: A filter to identify a particle with given id and kinematic 
0011                                                 && given mother id (multiple mothers possible)
0012                                                 && given id and 3d displacement of one among mother's daughters
0013 
0014  Implementation:
0015      Inspired by PythiaFilterMultiMother.cc
0016 */
0017 //
0018 //
0019 //
0020 //
0021 //
0022 
0023 // system include files
0024 #include <memory>
0025 
0026 // user include files
0027 #include "FWCore/Framework/interface/Frameworkfwd.h"
0028 #include "FWCore/Framework/interface/global/EDFilter.h"
0029 
0030 #include "FWCore/Framework/interface/Event.h"
0031 #include "FWCore/Framework/interface/MakerMacros.h"
0032 
0033 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0034 
0035 //
0036 // class decleration
0037 //
0038 namespace edm {
0039   class HepMCProduct;
0040 }
0041 
0042 class PythiaFilterMotherSister : public edm::global::EDFilter<> {
0043 public:
0044   explicit PythiaFilterMotherSister(const edm::ParameterSet&);
0045   ~PythiaFilterMotherSister() override;
0046 
0047   bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
0048 
0049 private:
0050   // ----------member data ---------------------------
0051 
0052   const edm::EDGetTokenT<edm::HepMCProduct> token_;
0053   const int particleID;
0054   const double minpcut;
0055   const double maxpcut;
0056   const double minptcut;
0057   const double maxptcut;
0058   const double minetacut;
0059   const double maxetacut;
0060   const double minrapcut;
0061   const double maxrapcut;
0062   const double minphicut;
0063   const double maxphicut;
0064   const double betaBoost;
0065 
0066   std::vector<int> motherIDs;
0067   const int sisterID;
0068   const double maxSisDisplacement;
0069   std::vector<int> nephewIDs;
0070   std::vector<double> minNephewPts;
0071 };
0072 #endif