31 if (values.size() != 4)
49 std::vector<metsig::SigInputObj> signInputVec;
51 for (; towerCand !=
towers->end(); towerCand++) {
52 const Candidate* candidate = &(*towerCand);
56 double sign_tower_et = calotower->
et();
57 if (sign_tower_et < globalThreshold)
60 double sign_tower_phi = calotower->
phi();
61 double sign_tower_sigma_et = 0;
62 double sign_tower_sigma_phi = 0;
65 bool hadIsDone =
false;
66 bool emIsDone =
false;
69 while (--cell >= 0 && (!hadIsDone || !emIsDone)) {
74 sign_tower_type =
"hadcalotower";
75 sign_tower_et = calotower->
hadEt();
78 sign_tower_sigma_phi =
81 sign_tower_type =
"hadcalotower";
82 sign_tower_et = calotower->
outerEt();
85 sign_tower_sigma_phi =
88 sign_tower_type =
"hadcalotower";
89 sign_tower_et = calotower->
hadEt();
92 sign_tower_sigma_phi =
95 sign_tower_type =
"hadcalotower";
96 sign_tower_et = calotower->
et();
99 sign_tower_sigma_phi =
103 <<
" HCAL tower cell not assigned to an HCAL subdetector!!!" << std::endl;
107 sign_tower_type, sign_tower_et, sign_tower_phi, sign_tower_sigma_et, sign_tower_sigma_phi);
109 signInputVec.push_back(temp);
117 sign_tower_type =
"emcalotower";
118 sign_tower_et = calotower->
emEt();
119 sign_tower_sigma_et =
121 sign_tower_sigma_phi =
124 sign_tower_type =
"emcalotower";
125 sign_tower_et = calotower->
emEt();
126 sign_tower_sigma_et =
128 sign_tower_sigma_phi =
133 <<
" ECAL tower cell not assigned to an ECAL subdetector!!!" << std::endl;
136 sign_tower_type, sign_tower_et, sign_tower_phi, sign_tower_sigma_et, sign_tower_sigma_phi);
137 signInputVec.push_back(temp);
143 edm::LogWarning(
"SignCaloSpecificAlgo") <<
"found non-assigned cell, " << std::endl;
166 double sign_calo_met_total = 0;
167 double sign_calo_met_phi = 0;
168 double sign_calo_met_set = 0;
176 signInputVec.clear();
const void addObjects(const std::vector< metsig::SigInputObj > &EventVec)
double eta() const final
momentum pseudorapidity
std::vector< metsig::SigInputObj > makeVectorOutOfCaloTowers(edm::Handle< edm::View< reco::Candidate > > towers, const metsig::SignAlgoResolutions &resolutions, bool noHF, double globalthreshold)
size_t constituentsSize() const
HcalSubdetector subdet() const
get the subdetector
DetId constituent(size_t i) const
const double significance(double &met_r, double &met_phi, double &met_set)
reco::METCovMatrix matrix_
void usePreviousSignif(const std::vector< double > &values)
Structure containing data common to all types of MET.
const void addSignifMatrix(const reco::METCovMatrix &input)
void calculateBaseCaloMET(edm::Handle< edm::View< reco::Candidate > > towers, const CommonMETData &met, const metsig::SignAlgoResolutions &resolutions, bool noHF, double globalthreshold)
reco::METCovMatrix getSignifMatrix() const
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
double et(double vtxZ) const
double phi() const final
momentum azimuthal angle