Fork me on GitHub

source: git/external/PUPPI/puppiCleanContainer.hh

Last change on this file was 659c7b6, checked in by Michele Selvaggi <michele.selvaggi@…>, 8 years ago

fix PUPPI includes

  • Property mode set to 100644
File size: 3.0 KB
RevLine 
[0e11b5c]1#ifndef PUPPICLEANCONTAINER_HH
2#define PUPPICLEANCONTAINER_HH
3
4
5#include "PUPPI/RecoObj.hh"
6#include "PUPPI/puppiParticle.hh"
7#include "PUPPI/puppiAlgoBin.hh"
8
9#include "fastjet/PseudoJet.hh"
10#include <algorithm>
11
12using namespace std;
13
14//......................
15
16class puppiCleanContainer{
17
18 public:
19
20 // basic constructor which takes input particles as RecoObj, the tracker eta extension and other two boolean info
21 puppiCleanContainer(std::vector<RecoObj> inParticles, // incoming particles of the event
22 std::vector<puppiAlgoBin> puppiAlgo, // vector with the definition of the puppi algorithm in different eta region (one for each eta)
23 float minPuppiWeight = 0.01, // min puppi weight cut
24 bool useExp = false // useDz vertex probability
25 );
26
27 ~puppiCleanContainer();
28
29 // ----- get methods
30
31 // get all the PF particles
32 std::vector<fastjet::PseudoJet> pfParticles() { return fPFParticles_; }
33 // get all the PF charged from PV
34 std::vector<fastjet::PseudoJet> pvParticles() { return fChargedPV_; }
35 // get all the PF charged from PU
36 std::vector<fastjet::PseudoJet> puParticles() { return fChargedNoPV_; }
37 // get CHS particle collection
38 std::vector<fastjet::PseudoJet> pfchsParticles(){ return fPFchsParticles_; }
39 // get puppi weight for all particles
40 std::vector<float> getPuppiWeights() { return fPuppiWeights_; };
41
42 // process puppi
43 std::vector<fastjet::PseudoJet> puppiEvent();
44
45 protected:
46
47 void getRMSAvg(const int &, std::vector<fastjet::PseudoJet> &, std::vector<fastjet::PseudoJet> &);
48 float goodVar (const fastjet::PseudoJet &, const std::vector<fastjet::PseudoJet> &, const int &, const float &);
49 void computeMedRMS(const int &);
50 float compute(const float &, const std::vector<puppiParticle> &, const std::vector<puppiAlgoBin> &, const std::vector<int> &);
51
52 // some get functions
53 float getNeutralPtCut(const float&, const float&, const int&);
54 std::vector<int> getPuppiId(const float &, const float &, const std::vector<puppiAlgoBin> &);
55 bool isGoodPuppiId(const float &, const float &, const puppiAlgoBin &);
56 float getChi2FromdZ(float);
57 // other functions
58 float var_within_R(const int &, const vector<fastjet::PseudoJet> &, const fastjet::PseudoJet &, const float &);
59 float pt_within_R(const std::vector<fastjet::PseudoJet> &, const fastjet::PseudoJet &, const float &);
60 fastjet::PseudoJet flow_within_R(const vector<fastjet::PseudoJet> &, const fastjet::PseudoJet &, const float &);
61
62
63 private:
64
65 std::vector<RecoObj> fRecoParticles_;
66 std::vector<fastjet::PseudoJet> fPFParticles_;
67 std::vector<fastjet::PseudoJet> fPFchsParticles_;
68 std::vector<fastjet::PseudoJet> fChargedPV_;
69 std::vector<fastjet::PseudoJet> fChargedNoPV_;
70
71 std::vector<puppiAlgoBin> puppiAlgo_;
72 std::vector<float> fPuppiWeights_;
73
74 float fMinPuppiWeight_;
75 float fPVFrac_;
76
77 int fNPV_;
78 bool fUseExp_ ;
79
80};
81
82#endif
Note: See TracBrowser for help on using the repository browser.