ATLAS Offline Software
Puppi.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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
11 class PuppiUserInfo: public fastjet::PseudoJet::UserInfoBase{
12  public:
13  PuppiUserInfo();
14  PuppiUserInfo(const std::vector<double>&);
15  PuppiUserInfo(double);
16 
17  std::vector<double> otherChi2Vec;
18 };
19 
20 //=================================================================================================================================
21 
22 class 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 
42  void findAlphaMedianAndRMS();
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
Puppi::m_includeCentralNeutralsInAlpha
bool m_includeCentralNeutralsInAlpha
Definition: Puppi.h:59
Puppi::getMedian
double getMedian()
Definition: Puppi.cxx:163
Puppi::m_forwardPTCutOffset
double m_forwardPTCutOffset
Definition: Puppi.h:56
Puppi::m_Rmin
double m_Rmin
Definition: Puppi.h:52
Puppi::m_beta
double m_beta
Definition: Puppi.h:53
Puppi
Definition: Puppi.h:22
PuppiUserInfo::PuppiUserInfo
PuppiUserInfo()
Definition: Puppi.cxx:13
Puppi::setParticles
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
Puppi::m_nPV
double m_nPV
Definition: Puppi.h:64
Puppi::m_forwardPTCutSlope
double m_forwardPTCutSlope
Definition: Puppi.h:57
Puppi::m_neutral
std::vector< fastjet::PseudoJet > m_neutral
Definition: Puppi.h:46
Puppi::getChi2
double getChi2(const fastjet::PseudoJet &pfo)
Definition: Puppi.cxx:42
Puppi::m_centralPTCutSlope
double m_centralPTCutSlope
Definition: Puppi.h:55
Puppi::m_R0
double m_R0
Definition: Puppi.h:51
Puppi::getAlpha
double getAlpha(const fastjet::PseudoJet &pfo)
Definition: Puppi.cxx:83
Puppi::m_rms
double m_rms
Definition: Puppi.h:62
Puppi::m_etaBoundary
double m_etaBoundary
Definition: Puppi.h:58
Puppi::m_allParticles
std::vector< std::vector< fastjet::PseudoJet > * > m_allParticles
Definition: Puppi.h:49
PuppiUserInfo::otherChi2Vec
std::vector< double > otherChi2Vec
Definition: Puppi.h:17
Puppi::m_forward
std::vector< fastjet::PseudoJet > m_forward
Definition: Puppi.h:47
PuppiUserInfo
Definition: Puppi.h:11
CP::neutral
@ neutral
Definition: Reconstruction/PFlow/PFlowUtils/PFlowUtils/PFODefs.h:11
Puppi::getRMS
double getRMS()
Definition: Puppi.cxx:166
Puppi::m_chargedPU
std::vector< fastjet::PseudoJet > m_chargedPU
Definition: Puppi.h:45
Puppi::getWeight
double getWeight(const fastjet::PseudoJet &pfo)
Definition: Puppi.cxx:49
Puppi::m_chargedHS
std::vector< fastjet::PseudoJet > m_chargedHS
Definition: Puppi.h:44
Rmin
double Rmin
Definition: LArDetectorConstructionTBEC.cxx:54
Puppi::findAlphaMedianAndRMS
void findAlphaMedianAndRMS()
Definition: Puppi.cxx:133
Puppi::m_centralPTCutOffset
double m_centralPTCutOffset
Definition: Puppi.h:54
Puppi::Puppi
Puppi(double R0, double Rmin, double beta, double centralPTCutOffset, double centralPTCutSlope, double forwardPTCutOffset, double forwardPTCutSlope, double etaBoundary)
Definition: Puppi.cxx:19
MuonParameters::beta
@ beta
Definition: MuonParamDefs.h:144
Puppi::m_median
double m_median
Definition: Puppi.h:61