PandaTree
FatJet.h
1 #ifndef PandaTree_Objects_FatJet_h
2 #define PandaTree_Objects_FatJet_h
3 #include "Constants.h"
4 #include "Jet.h"
5 #include "../../Framework/interface/Array.h"
6 #include "../../Framework/interface/Collection.h"
7 #include "../../Framework/interface/Ref.h"
8 #include "../../Framework/interface/RefVector.h"
9 #include "MicroJet.h"
10 
11 namespace panda {
12 
13  class FatJet : public Jet {
14  public:
15  struct datastore : public Jet::datastore {
16  datastore() : Jet::datastore() {}
17  ~datastore() { deallocate(); }
18 
19  /* MicroJet
20  Float_t* csv{0};
21  Float_t* qgl{0};
22  Float_t* cmva{0};
23  Float_t* deepCSVudsg{0};
24  Float_t* deepCSVb{0};
25  Float_t* deepCSVc{0};
26  Float_t* deepCSVbb{0};
27  Float_t* deepCSVcc{0};
28  Float_t* deepCMVAudsg{0};
29  Float_t* deepCMVAb{0};
30  Float_t* deepCMVAc{0};
31  Float_t* deepCMVAbb{0};
32  Float_t* deepCMVAcc{0};
33  */
34  /* Jet
35  Float_t* rawPt{0};
36  Float_t* ptCorrUp{0};
37  Float_t* ptCorrDown{0};
38  Float_t* ptSmear{0};
39  Float_t* ptSmearUp{0};
40  Float_t* ptSmearDown{0};
41  Float_t* area{0};
42  Float_t* nhf{0};
43  Float_t* chf{0};
44  Float_t* cef{0};
45  Float_t* nef{0};
46  Float_t* puid{0};
47  Bool_t* loose{0};
48  Bool_t* tight{0};
49  Bool_t* tightLepVeto{0};
50  Bool_t* monojet{0};
51  ContainerBase const* matchedGenJetContainer_{0};
52  Short_t* matchedGenJet_{0};
53  ContainerBase const* constituentsContainer_{0};
54  std::vector<std::vector<Short_t>>* constituents_{0};
55  ContainerBase const* secondaryVertexContainer_{0};
56  Short_t* secondaryVertex_{0};
57  */
58  Float_t* tau1{0};
59  Float_t* tau2{0};
60  Float_t* tau3{0};
61  Float_t* mSD{0};
62  Float_t* mPruned{0};
63  Float_t* tau1SD{0};
64  Float_t* tau2SD{0};
65  Float_t* tau3SD{0};
66  Float_t* htt_mass{0};
67  Float_t* htt_frec{0};
68  Float_t* double_sub{0};
69  Float_t* deepBBprobQ{0};
70  Float_t* deepBBprobH{0};
71  Float_t (*ecfs)[3][4][4]{0};
72  ContainerBase const* subjetsContainer_{0};
73  std::vector<std::vector<Short_t>>* subjets_{0};
74 
75  void allocate(UInt_t n) override;
76  void deallocate() override;
77  void setStatus(TTree&, TString const&, utils::BranchList const&) override;
78  utils::BranchList getStatus(TTree&, TString const&) const override;
79  utils::BranchList getBranchNames(TString const& = "") const override;
80  void setAddress(TTree&, TString const&, utils::BranchList const& = {"*"}, Bool_t setStatus = kTRUE) override;
81  void book(TTree&, TString const&, utils::BranchList const& = {"*"}, Bool_t dynamic = kTRUE) override;
82  void releaseTree(TTree&, TString const&) override;
83  void resizeVectors_(UInt_t) override;
84  };
85 
86  typedef Array<FatJet> array_type;
88 
89  typedef Jet base_type;
90 
91  FatJet(char const* name = "");
92  FatJet(FatJet const&);
93  FatJet(datastore&, UInt_t idx);
94  ~FatJet();
95  FatJet& operator=(FatJet const&);
96 
97  static char const* typeName() { return "FatJet"; }
98 
99  void print(std::ostream& = std::cout, UInt_t level = 1) const override;
100  void dump(std::ostream& = std::cout) const override;
101 
102  double get_ecf(int o_, int N_, int ib_) const;
103  bool set_ecf(int o_, int N_, int ib_, float x_);
104 
105  /* MicroJet
106  Float_t& csv;
107  Float_t& qgl;
108  Float_t& cmva;
109  Float_t& deepCSVudsg;
110  Float_t& deepCSVb;
111  Float_t& deepCSVc;
112  Float_t& deepCSVbb;
113  Float_t& deepCSVcc;
114  Float_t& deepCMVAudsg;
115  Float_t& deepCMVAb;
116  Float_t& deepCMVAc;
117  Float_t& deepCMVAbb;
118  Float_t& deepCMVAcc;
119  */
120  /* Jet
121  Float_t& rawPt;
122  Float_t& ptCorrUp;
123  Float_t& ptCorrDown;
124  Float_t& ptSmear;
125  Float_t& ptSmearUp;
126  Float_t& ptSmearDown;
127  Float_t& area;
128  Float_t& nhf;
129  Float_t& chf;
130  Float_t& cef;
131  Float_t& nef;
132  Float_t& puid;
133  Bool_t& loose;
134  Bool_t& tight;
135  Bool_t& tightLepVeto;
136  Bool_t& monojet;
137  Ref<GenJet> matchedGenJet;
138  RefVector<PFCandBase> constituents;
139  Ref<SecondaryVertex> secondaryVertex;
140  */
141  Float_t& tau1;
142  Float_t& tau2;
143  Float_t& tau3;
144  Float_t& mSD;
145  Float_t& mPruned;
146  Float_t& tau1SD;
147  Float_t& tau2SD;
148  Float_t& tau3SD;
149  Float_t& htt_mass;
150  Float_t& htt_frec;
151  Float_t& double_sub;
152  Float_t& deepBBprobQ;
153  Float_t& deepBBprobH;
154  Float_t (&ecfs)[3][4][4];
155  RefVector<MicroJet> subjets;
156 
157  /* BEGIN CUSTOM FatJet.h.classdef */
158  /* END CUSTOM */
159 
160  static utils::BranchList getListOfBranches();
161 
162  void destructor(Bool_t recursive = kFALSE);
163 
164  protected:
165  FatJet(ArrayBase*);
166 
167  void doBook_(TTree&, TString const&, utils::BranchList const& = {"*"}) override;
168  void doInit_() override;
169  };
170 
171  typedef Array<FatJet> FatJetArray;
173  typedef Ref<FatJet> FatJetRef;
175 
176  /* BEGIN CUSTOM FatJet.h.global */
177  /* END CUSTOM */
178 
179 }
180 
181 #endif
Base class for fixed-size containers.
Definition: ArrayBase.h:13
Definition: Jet.h:17
A reference to an element in a container.
Definition: Ref.h:20
Definition: FatJet.h:13
Base class for dynamic-size containers.
Definition: CollectionBase.h:16
void print(std::ostream &=std::cout, UInt_t level=1) const override
Print the object content.
Definition: FatJet.cc:372
void dump(std::ostream &=std::cout) const override
Dump the object content.
Definition: FatJet.cc:380
Template class for fixed-size container implementations. Inherits from base_type::array_type of the e...
Definition: Array.h:20
List of branch names.
Definition: IOUtils.h:64
void resizeVectors_(UInt_t) override
Override when there are vector members.
Definition: FatJet.cc:187
Base class for all containers.
Definition: ContainerBase.h:18
Definition: Jet.h:15
Definition: Array.h:11
A vector of references to elements in a container.
Definition: RefVector.h:18
Definition: FatJet.h:15