File indexing completed on 2024-11-01 06:11:54
0001 #ifndef UCTSummaryCard_hh
0002 #define UCTSummaryCard_hh
0003
0004 #include <vector>
0005 #include <list>
0006 #include <memory>
0007
0008 #include "UCTGeometryExtended.hh"
0009
0010 class UCTLayer1;
0011 class UCTObject;
0012 class UCTRegion;
0013
0014 class UCTSummaryCard {
0015 public:
0016 UCTSummaryCard(const std::vector<std::vector<std::vector<uint32_t>>>* l,
0017 uint32_t jetSeedIn = 10,
0018 uint32_t tauSeedIn = 10,
0019 double tauIsolationFactorIn = 0.3,
0020 uint32_t eGammaSeedIn = 5,
0021 double eGammaIsolationFactorIn = 0.3);
0022
0023
0024
0025 UCTSummaryCard(const UCTSummaryCard&) = delete;
0026
0027
0028
0029 const UCTSummaryCard& operator=(const UCTSummaryCard&) = delete;
0030
0031 virtual ~UCTSummaryCard() = default;
0032
0033
0034
0035 const UCTRegion* getRegion(int regionEtaIndex, uint32_t regionPhiIndex) const;
0036
0037
0038
0039 bool clearEvent();
0040 bool clearRegions();
0041 bool setRegionData(
0042 std::vector<UCTRegion> inputRegions);
0043 bool process();
0044
0045
0046
0047 const std::list<std::shared_ptr<UCTObject>>& getEMObjs() { return emObjs; }
0048 const std::list<std::shared_ptr<UCTObject>>& getIsoEMObjs() { return isoEMObjs; }
0049 const std::list<std::shared_ptr<UCTObject>>& getTauObjs() { return tauObjs; }
0050 const std::list<std::shared_ptr<UCTObject>>& getIsoTauObjs() { return isoTauObjs; }
0051 const std::list<std::shared_ptr<UCTObject>>& getCentralJetObjs() { return centralJetObjs; }
0052 const std::list<std::shared_ptr<UCTObject>>& getForwardJetObjs() { return forwardJetObjs; }
0053 const std::list<std::shared_ptr<UCTObject>>& getBoostedJetObjs() { return boostedJetObjs; }
0054
0055 const std::shared_ptr<UCTObject> getET() { return ET; }
0056 const std::shared_ptr<UCTObject> getMET() { return MET; }
0057
0058 const std::shared_ptr<UCTObject> getHT() { return HT; }
0059 const std::shared_ptr<UCTObject> getMHT() { return MHT; }
0060
0061 void print();
0062
0063 private:
0064
0065
0066 bool processRegion(UCTRegionIndex regionIndex);
0067
0068
0069
0070
0071 const std::vector<std::vector<std::vector<uint32_t>>>* pumLUT;
0072 uint32_t jetSeed;
0073 uint32_t tauSeed;
0074 double tauIsolationFactor;
0075 uint32_t eGammaSeed;
0076 double eGammaIsolationFactor;
0077
0078
0079
0080 std::vector<UCTRegion> regions;
0081
0082 double sinPhi[73];
0083 double cosPhi[73];
0084
0085 std::list<std::shared_ptr<UCTObject>> emObjs;
0086 std::list<std::shared_ptr<UCTObject>> isoEMObjs;
0087 std::list<std::shared_ptr<UCTObject>> tauObjs;
0088 std::list<std::shared_ptr<UCTObject>> isoTauObjs;
0089 std::list<std::shared_ptr<UCTObject>> centralJetObjs;
0090 std::list<std::shared_ptr<UCTObject>> forwardJetObjs;
0091 std::list<std::shared_ptr<UCTObject>> boostedJetObjs;
0092
0093 std::shared_ptr<UCTObject> ET;
0094 std::shared_ptr<UCTObject> MET;
0095
0096 std::shared_ptr<UCTObject> HT;
0097 std::shared_ptr<UCTObject> MHT;
0098
0099 uint32_t cardSummary;
0100
0101
0102
0103 uint32_t pumLevel;
0104 uint32_t pumBin;
0105 };
0106
0107 #endif