ATLAS Offline Software
Loading...
Searching...
No Matches
Puppi.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4#include "fastjet/internal/base.hh"
5#include "fastjet/PseudoJet.hh"
6
7#ifndef JETRECTOOLS_PUPPI_h
8#define JETRECTOOLS_PUPPI_h
9
10//This class can be used to pass in otherchi2 values for each PFO
11class PuppiUserInfo: public fastjet::PseudoJet::UserInfoBase{
12 public:
14 PuppiUserInfo(const std::vector<double>&);
15 PuppiUserInfo(double);
16
17 std::vector<double> otherChi2Vec;
18};
19
20//=================================================================================================================================
21
22class Puppi{
23
24 public:
25 Puppi(double R0, double Rmin, double beta, double centralPTCutOffset, double centralPTCutSlope, double forwardPTCutOffset, double forwardPTCutSlope, double etaBoundary);
26
27 void setParticles(const std::vector<fastjet::PseudoJet>& chargedHS, const std::vector<fastjet::PseudoJet>& chargedPU, const std::vector<fastjet::PseudoJet>& neutral, const std::vector<fastjet::PseudoJet>& forward, int nPU);
28
29 // Returns the weight that would be applied to a particle (assuming it is neutral or forward)
30 double getWeight(const fastjet::PseudoJet& pfo);
31
32 // Returns the value of alpha for this particle
33 double getAlpha(const fastjet::PseudoJet& pfo);
34
35 double getMedian();
36 double getRMS();
37
38 private:
39
40 double getChi2(const fastjet::PseudoJet& pfo);
41
43
44 std::vector<fastjet::PseudoJet> m_chargedHS;
45 std::vector<fastjet::PseudoJet> m_chargedPU;
46 std::vector<fastjet::PseudoJet> m_neutral;
47 std::vector<fastjet::PseudoJet> m_forward;
48
49 std::vector< std::vector< fastjet::PseudoJet >* > m_allParticles;
50
51 double m_R0{};
52 double m_Rmin{};
53 double m_beta{};
58 double m_etaBoundary{};
60
61 double m_median{};
62 double m_rms{};
63
64 double m_nPV{};
65
66};
67
68#endif
69//FASTJET_END_NAMESPACE
std::vector< double > otherChi2Vec
Definition Puppi.h:17
double m_etaBoundary
Definition Puppi.h:58
std::vector< fastjet::PseudoJet > m_chargedHS
Definition Puppi.h:44
double getMedian()
Definition Puppi.cxx:163
bool m_includeCentralNeutralsInAlpha
Definition Puppi.h:59
std::vector< fastjet::PseudoJet > m_neutral
Definition Puppi.h:46
double m_centralPTCutSlope
Definition Puppi.h:55
Puppi(double R0, double Rmin, double beta, double centralPTCutOffset, double centralPTCutSlope, double forwardPTCutOffset, double forwardPTCutSlope, double etaBoundary)
Definition Puppi.cxx:19
void findAlphaMedianAndRMS()
Definition Puppi.cxx:133
std::vector< std::vector< fastjet::PseudoJet > * > m_allParticles
Definition Puppi.h:49
void setParticles(const std::vector< fastjet::PseudoJet > &chargedHS, const std::vector< fastjet::PseudoJet > &chargedPU, const std::vector< fastjet::PseudoJet > &neutral, const std::vector< fastjet::PseudoJet > &forward, int nPU)
Definition Puppi.cxx:26
double getAlpha(const fastjet::PseudoJet &pfo)
Definition Puppi.cxx:83
std::vector< fastjet::PseudoJet > m_forward
Definition Puppi.h:47
double m_centralPTCutOffset
Definition Puppi.h:54
double m_median
Definition Puppi.h:61
double m_nPV
Definition Puppi.h:64
double m_R0
Definition Puppi.h:51
std::vector< fastjet::PseudoJet > m_chargedPU
Definition Puppi.h:45
double m_Rmin
Definition Puppi.h:52
double m_rms
Definition Puppi.h:62
double getWeight(const fastjet::PseudoJet &pfo)
Definition Puppi.cxx:49
double getChi2(const fastjet::PseudoJet &pfo)
Definition Puppi.cxx:42
double m_forwardPTCutOffset
Definition Puppi.h:56
double getRMS()
Definition Puppi.cxx:166
double m_forwardPTCutSlope
Definition Puppi.h:57
double m_beta
Definition Puppi.h:53