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