CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FastjetJetProducer.h
Go to the documentation of this file.
1 #ifndef RecoJets_JetProducers_plugins_FastjetJetProducer_h
2 #define RecoJets_JetProducers_plugins_FastjetJetProducer_h
3 
5 
8 
10 
11 #include <fastjet/tools/Transformer.hh>
12 
13 // a function returning
14 // min(Rmax, deltaR_factor * deltaR(j1,j2))
15 // where j1 and j2 are the 2 subjets of j
16 // if the jet does not have exactly 2 pieces, Rmax is used.
17 class DynamicRfilt : public fastjet::FunctionOfPseudoJet<double>{
18 public:
19  // default ctor
20  DynamicRfilt(double Rmax, double deltaR_factor) : _Rmax(Rmax), _deltaR_factor(deltaR_factor){}
21 
22  // action of the function
23  double result(const fastjet::PseudoJet &j) const{
24  if (! j.has_pieces()) return _Rmax;
25 
26  std::vector<fastjet::PseudoJet> pieces = j.pieces();
27  if (! pieces.size()==2) return _Rmax;
28 
29  double deltaR = pieces[0].delta_R(pieces[1]);
30  return std::min(_Rmax, _deltaR_factor * deltaR);
31  }
32 
33 private:
35 };
36 
37 
38 
40 {
41 
42 public:
43  // typedefs
44  typedef fastjet::Transformer transformer;
45  typedef std::unique_ptr<transformer> transformer_ptr;
46  typedef std::vector<transformer_ptr> transformer_coll;
47  //
48  // construction/destruction
49  //
50  explicit FastjetJetProducer(const edm::ParameterSet& iConfig);
51  virtual ~FastjetJetProducer();
52 
53  virtual void produce( edm::Event & iEvent, const edm::EventSetup & iSetup );
54 
55  // typedefs
56  typedef boost::shared_ptr<DynamicRfilt> DynamicRfiltPtr;
57 
58 protected:
59 
60  //
61  // member functions
62  //
63 
64  virtual void produceTrackJets( edm::Event & iEvent, const edm::EventSetup & iSetup );
65  virtual void runAlgorithm( edm::Event& iEvent, const edm::EventSetup& iSetup );
66 
67  private:
68 
69  // trackjet clustering parameters
72  float dzTrVtxMax_;
73  float dxyTrVtxMax_;
75  float maxVtxZ_;
76 
77  // jet trimming parameters
81  bool useTrimming_;
82  bool usePruning_;
86  bool useSoftDrop_;
87  double muCut_;
88  double yCut_;
89  double rFilt_;
91  double rFiltFactor_;
92  int nFilt_;
93  double trimPtFracMin_;
94  double zCut_;
95  double RcutFactor_;
96  double csRho_EtaMax_;
97  double csRParam_;
98  double beta_;
99  double R0_;
100 
101 
102  double subjetPtMin_;
103  double muMin_;
104  double muMax_;
105  double yMin_;
106  double yMax_;
107  double dRMin_;
108  double dRMax_;
109  int maxDepth_;
110 
111 
112  // tokens for the data access
114 
115 };
116 
117 
118 #endif
double muMin_
for CMSBoostedTauSeedingAlgorithm : subjet pt min
double yMin_
for CMSBoostedTauSeedingAlgorithm : max mass-drop
bool useFiltering_
Mass-drop tagging for boosted Higgs.
double rFilt_
for mass-drop tagging, symmetry cut: min(pt1^2,pt2^2) * dR(1,2) / mjet &gt; ycut
double dRMax_
for CMSBoostedTauSeedingAlgorithm : min dR
double subjetPtMin_
for soft drop : R0 (angular distance normalization - should be set to jet radius in most cases) ...
virtual void runAlgorithm(edm::Event &iEvent, const edm::EventSetup &iSetup)
tuple pieces
Definition: csv2json.py:31
bool useDynamicFiltering_
Jet filtering technique.
double result(const fastjet::PseudoJet &j) const
double RcutFactor_
for pruning OR soft drop: constituent minimum pt fraction of parent cluster
bool useSoftDrop_
constituent subtraction technique
double yMax_
for CMSBoostedTauSeedingAlgorithm : min asymmetry
bool useKtPruning_
algorithm for seeding reconstruction of boosted Taus (similar to mass-drop tagging) ...
FastjetJetProducer(const edm::ParameterSet &iConfig)
bool useTrimming_
Use dynamic filtering radius (as in arXiv:0802.2470)
double csRParam_
for constituent subtraction : maximum rapidity for ghosts
DynamicRfilt(double Rmax, double deltaR_factor)
std::vector< transformer_ptr > transformer_coll
virtual void produce(edm::Event &iEvent, const edm::EventSetup &iSetup)
double trimPtFracMin_
for filtering, pruning: number of subjets expected
int iEvent
Definition: GenABIO.cc:230
bool usePruning_
Jet trimming technique.
bool useCMSBoostedTauSeedingAlgorithm_
Jet pruning technique.
virtual void produceTrackJets(edm::Event &iEvent, const edm::EventSetup &iSetup)
edm::EDGetTokenT< edm::View< reco::RecoChargedRefCandidate > > input_chrefcand_token_
for CMSBoostedTauSeedingAlgorithm : max depth for descending into clustering sequence ...
double csRho_EtaMax_
for pruning: constituent dR * pt/2m &lt; rcut_factor
double muMax_
for CMSBoostedTauSeedingAlgorithm : min mass-drop
double muCut_
Soft drop.
int j
Definition: DBlmapReader.cc:9
double rFiltFactor_
for dynamic filtering radius (as in arXiv:0802.2470)
DynamicRfiltPtr rFiltDynamic_
for filtering, trimming: dR scale of sub-clustering
double dRMin_
for CMSBoostedTauSeedingAlgorithm : max asymmetry
boost::shared_ptr< DynamicRfilt > DynamicRfiltPtr
T min(T a, T b)
Definition: MathUtil.h:58
double beta_
for constituent subtraction : R parameter for KT alg in jet median background estimator ...
double zCut_
for trimming: constituent minimum pt fraction of full jet
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
int nFilt_
for dynamic filtering radius (as in arXiv:0802.2470)
int maxDepth_
for CMSBoostedTauSeedingAlgorithm : max dR
fastjet::Transformer transformer
double R0_
for soft drop : beta (angular exponent)
std::unique_ptr< transformer > transformer_ptr
double yCut_
for mass-drop tagging, m0/mjet (m0 = mass of highest mass subjet)
bool useConstituentSubtraction_
Use Kt clustering algorithm for pruning (default is Cambridge/Aachen)
const double Rmax[kNumberCalorimeter]