PandaTree
PackedMomentumMixin.h
1 #ifndef PandaTree_Objects_PackedMomentumMixin_h
2 #define PandaTree_Objects_PackedMomentumMixin_h
3 #include "../../Framework/interface/Element.h"
4 
5 namespace panda {
6 
8  public:
9  struct datastore {
10  UShort_t* packedPt{0};
11  Short_t* packedEta{0};
12  Short_t* packedPhi{0};
13  UShort_t* packedM{0};
14  };
15 
16  PackedMomentumMixin(datastore&, UInt_t idx);
17 
18  UShort_t& packedPt;
19  Short_t& packedEta;
20  Short_t& packedPhi;
21  UShort_t& packedM;
22 
23  /* BEGIN CUSTOM PackedMomentumMixin.h.classdef */
24  protected:
25  void pack_();
26  void unpack_() const;
27  void setPtEtaPhiMPacked_(double pt, double eta, double phi, double m);
28  void setXYZEPacked_(double px, double py, double pz, double e);
29 
30  mutable Double_t pt_{0.};
31  mutable Double_t eta_{0.};
32  mutable Double_t phi_{0.};
33  mutable Double_t mass_{0.};
34  mutable Bool_t unpacked_{kFALSE};
35  /* END CUSTOM */
36 
37  static utils::BranchList getListOfBranches();
38  };
39  /* BEGIN CUSTOM PackedMomentumMixin.h.global */
40  /* END CUSTOM */
41 
42 }
43 
44 #endif
Definition: PackedMomentumMixin.h:7
List of branch names.
Definition: IOUtils.h:64
Definition: PackedMomentumMixin.h:9
Definition: Array.h:11