CMS 3D CMS Logo

MCMultiParticleFilter.h
Go to the documentation of this file.
1 #ifndef MCMultiParticleFilter_h
2 #define MCMultiParticleFilter_h
3 // -*- C++ -*-
4 //
5 // Package: MCMultiParticleFilter
6 // Class: MCMultiParticleFilter
7 //
8 /*
9 
10  Description: Filter to select events with an arbitrary number of given particle(s).
11 
12  Implementation: derived from MCSingleParticleFilter
13 
14 */
15 //
16 // Original Author: Paul Lujan
17 // Created: Wed Feb 29 04:22:16 CST 2012
18 //
19 //
20 
21 // system include files
22 #include <memory>
23 
24 // user include files
27 
30 
32 
33 namespace edm {
34  class HepMCProduct;
35 }
36 
37 //
38 // class declaration
39 //
40 
42  public:
44  ~MCMultiParticleFilter() override;
45 
46  private:
47  bool filter(edm::Event&, const edm::EventSetup&) override;
48  void endJob() override;
49 
50  // ----------member data ---------------------------
51 
52  edm::InputTag src_; // input tag
54  int numRequired_; // number of particles required to pass filter
55  bool acceptMore_; // if true (default), accept numRequired or more.
56  // if false, accept events with exactly equal to numRequired.
57  std::vector<int> particleID_; // vector of particle IDs to look for
58  // the four next variables can either be a vector of length 1 (in which case the same
59  // value is used for all particle IDs) or of length equal to the length of ParticleID (in which
60  // case the corresponding value is used for each).
61  std::vector<int> motherID_; // mother ID of particles (optional)
62  std::vector<double> ptMin_; // minimum Pt of particles
63  std::vector<double> etaMax_; // maximum fabs(eta) of particles
64  std::vector<int> status_; // status of particles
65  std::vector<double> decayRadiusMin;
66  std::vector<double> decayRadiusMax;
67  std::vector<double> decayZMin;
68  std::vector<double> decayZMax;
69  int totalEvents_; // counters
71 };
72 #endif
edm::EDGetTokenT< edm::HepMCProduct > token_
std::vector< double > decayRadiusMin
std::vector< int > status_
std::vector< double > decayZMax
std::vector< int > particleID_
std::vector< double > decayRadiusMax
HLT enums.
std::vector< int > motherID_
std::vector< double > decayZMin
std::vector< double > ptMin_
std::vector< double > etaMax_