File indexing completed on 2024-04-06 12:26:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef METProducers_CaloMETInfo_h
0019 #define METProducers_CaloMETInfo_h
0020
0021
0022 #include "DataFormats/Common/interface/Handle.h"
0023 #include "DataFormats/Common/interface/View.h"
0024 #include "DataFormats/Math/interface/LorentzVector.h"
0025 #include "DataFormats/Math/interface/Point3D.h"
0026 #include "DataFormats/METReco/interface/CaloMET.h"
0027 #include "DataFormats/METReco/interface/CommonMETData.h"
0028 #include "DataFormats/METReco/interface/SpecificCaloMETData.h"
0029 #include "DataFormats/DetId/interface/DetId.h"
0030
0031 #include <vector>
0032
0033 class CaloTower;
0034 struct SpecificCaloMETData;
0035
0036
0037 class CaloSpecificAlgo {
0038 public:
0039 reco::CaloMET addInfo(edm::Handle<edm::View<reco::Candidate> > towers,
0040 const CommonMETData &met,
0041 bool noHF,
0042 double globalThreshold);
0043
0044 private:
0045 typedef math::XYZTLorentzVector LorentzVector;
0046 typedef math::XYZPoint Point;
0047 void update_totalEt_totalEm(double &totalEt, double &totalEm, const CaloTower *calotower, bool noHF);
0048 void update_MaxTowerEm_MaxTowerHad(float &MaxTowerEm, float &MaxTowerHad, const CaloTower *calotower, bool noHF);
0049 void update_EmEtInEB_EmEtInEE(float &EmEtInEB, float &EmEtInEE, const CaloTower *calotower);
0050 void update_HadEtInHB_HadEtInHE_HadEtInHO_HadEtInHF_EmEtInHF(float &HadEtInHB,
0051 float &HadEtInHE,
0052 float &HadEtInHO,
0053 float &HadEtInHF,
0054 float &EmEtInHF,
0055 const CaloTower *calotower,
0056 bool noHF);
0057 void update_sumEtInpHF_MExInpHF_MEyInpHF_sumEtInmHF_MExInmHF_MEyInmHF(double &sumEtInpHF,
0058 double &MExInpHF,
0059 double &MEyInpHF,
0060 double &sumEtInmHF,
0061 double &MExInmHF,
0062 double &MEyInmHF,
0063 const CaloTower *calotower);
0064 void remove_HF_from_MET(CommonMETData &met,
0065 double sumEtInpHF,
0066 double MExInpHF,
0067 double MEyInpHF,
0068 double sumEtInmHF,
0069 double MExInmHF,
0070 double MEyInmHF);
0071 void add_MET_in_HF(SpecificCaloMETData &specific,
0072 double sumEtInpHF,
0073 double MExInpHF,
0074 double MEyInpHF,
0075 double sumEtInmHF,
0076 double MExInmHF,
0077 double MEyInmHF);
0078
0079 DetId find_DetId_of_HCAL_cell_in_constituent_of(const CaloTower *calotower);
0080 DetId find_DetId_of_ECAL_cell_in_constituent_of(const CaloTower *calotower);
0081 };
0082
0083
0084 #endif