PandaTree
Jet.h
1 #ifndef PandaTree_Objects_Jet_h
2 #define PandaTree_Objects_Jet_h
3 #include "Constants.h"
4 #include "MicroJet.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 "GenJet.h"
10 #include "PFCandBase.h"
11 #include "SecondaryVertex.h"
12 
13 namespace panda {
14 
15  class Jet : public MicroJet {
16  public:
17  struct datastore : public MicroJet::datastore {
19  ~datastore() { deallocate(); }
20 
21  /* MicroJet
22  Float_t* csv{0};
23  Float_t* qgl{0};
24  Float_t* cmva{0};
25  Float_t* deepCSVudsg{0};
26  Float_t* deepCSVb{0};
27  Float_t* deepCSVc{0};
28  Float_t* deepCSVbb{0};
29  Float_t* deepCSVcc{0};
30  Float_t* deepCMVAudsg{0};
31  Float_t* deepCMVAb{0};
32  Float_t* deepCMVAc{0};
33  Float_t* deepCMVAbb{0};
34  Float_t* deepCMVAcc{0};
35  */
36  Float_t* rawPt{0};
37  Float_t* ptCorrUp{0};
38  Float_t* ptCorrDown{0};
39  Float_t* ptSmear{0};
40  Float_t* ptSmearUp{0};
41  Float_t* ptSmearDown{0};
42  Float_t* area{0};
43  Float_t* nhf{0};
44  Float_t* chf{0};
45  Float_t* cef{0};
46  Float_t* nef{0};
47  Float_t* puid{0};
48  Bool_t* loose{0};
49  Bool_t* tight{0};
50  Bool_t* tightLepVeto{0};
51  Bool_t* monojet{0};
52  ContainerBase const* matchedGenJetContainer_{0};
53  Short_t* matchedGenJet_{0};
54  ContainerBase const* constituentsContainer_{0};
55  std::vector<std::vector<Short_t>>* constituents_{0};
56  ContainerBase const* secondaryVertexContainer_{0};
57  Short_t* secondaryVertex_{0};
58 
59  void allocate(UInt_t n) override;
60  void deallocate() override;
61  void setStatus(TTree&, TString const&, utils::BranchList const&) override;
62  utils::BranchList getStatus(TTree&, TString const&) const override;
63  utils::BranchList getBranchNames(TString const& = "") const override;
64  void setAddress(TTree&, TString const&, utils::BranchList const& = {"*"}, Bool_t setStatus = kTRUE) override;
65  void book(TTree&, TString const&, utils::BranchList const& = {"*"}, Bool_t dynamic = kTRUE) override;
66  void releaseTree(TTree&, TString const&) override;
67  void resizeVectors_(UInt_t) override;
68  };
69 
70  typedef Array<Jet> array_type;
72 
73  typedef MicroJet base_type;
74 
75  Jet(char const* name = "");
76  Jet(Jet const&);
77  Jet(datastore&, UInt_t idx);
78  ~Jet();
79  Jet& operator=(Jet const&);
80 
81  static char const* typeName() { return "Jet"; }
82 
83  void print(std::ostream& = std::cout, UInt_t level = 1) const override;
84  void dump(std::ostream& = std::cout) const override;
85 
86  /* MicroJet
87  Float_t& csv;
88  Float_t& qgl;
89  Float_t& cmva;
90  Float_t& deepCSVudsg;
91  Float_t& deepCSVb;
92  Float_t& deepCSVc;
93  Float_t& deepCSVbb;
94  Float_t& deepCSVcc;
95  Float_t& deepCMVAudsg;
96  Float_t& deepCMVAb;
97  Float_t& deepCMVAc;
98  Float_t& deepCMVAbb;
99  Float_t& deepCMVAcc;
100  */
101  Float_t& rawPt;
102  Float_t& ptCorrUp;
103  Float_t& ptCorrDown;
104  Float_t& ptSmear;
105  Float_t& ptSmearUp;
106  Float_t& ptSmearDown;
107  Float_t& area;
108  Float_t& nhf;
109  Float_t& chf;
110  Float_t& cef;
111  Float_t& nef;
112  Float_t& puid;
113  Bool_t& loose;
114  Bool_t& tight;
115  Bool_t& tightLepVeto;
116  Bool_t& monojet;
117  Ref<GenJet> matchedGenJet;
118  RefVector<PFCandBase> constituents;
119  Ref<SecondaryVertex> secondaryVertex;
120 
121  /* BEGIN CUSTOM Jet.h.classdef */
122  /* END CUSTOM */
123 
124  static utils::BranchList getListOfBranches();
125 
126  void destructor(Bool_t recursive = kFALSE);
127 
128  protected:
129  Jet(ArrayBase*);
130 
131  void doBook_(TTree&, TString const&, utils::BranchList const& = {"*"}) override;
132  void doInit_() override;
133  };
134 
135  typedef Array<Jet> JetArray;
137  typedef Ref<Jet> JetRef;
139 
140  /* BEGIN CUSTOM Jet.h.global */
141  /* END CUSTOM */
142 
143 }
144 
145 #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
void dump(std::ostream &=std::cout) const override
Dump the object content.
Definition: Jet.cc:456
Base class for dynamic-size containers.
Definition: CollectionBase.h:16
Definition: MicroJet.h:14
Template class for fixed-size container implementations. Inherits from base_type::array_type of the e...
Definition: Array.h:20
void print(std::ostream &=std::cout, UInt_t level=1) const override
Print the object content.
Definition: Jet.cc:432
List of branch names.
Definition: IOUtils.h:64
void resizeVectors_(UInt_t) override
Override when there are vector members.
Definition: Jet.cc:219
Base class for all containers.
Definition: ContainerBase.h:18
Definition: Jet.h:15
Definition: MicroJet.h:12
Definition: Array.h:11
A vector of references to elements in a container.
Definition: RefVector.h:18