48 std::vector<metsig::SigInputObj>
53 std::vector<metsig::SigInputObj> signInputVec;
55 for( ; towerCand != towers->
end(); towerCand++ ) {
56 const Candidate *candidate = &(*towerCand);
60 double sign_tower_et = calotower->
et();
61 if(sign_tower_et<globalThreshold)
64 double sign_tower_phi = calotower->
phi();
65 double sign_tower_sigma_et = 0;
66 double sign_tower_sigma_phi = 0;
69 bool hadIsDone =
false;
70 bool emIsDone =
false;
73 while ( --cell >= 0 && (!hadIsDone || !emIsDone) )
80 sign_tower_type =
"hadcalotower";
81 sign_tower_et = calotower->
hadEt();
86 sign_tower_type =
"hadcalotower";
87 sign_tower_et = calotower->
outerEt();
92 sign_tower_type =
"hadcalotower";
93 sign_tower_et = calotower->
hadEt();
98 sign_tower_type =
"hadcalotower";
99 sign_tower_et = calotower->
et();
104 edm::LogWarning(
"SignCaloSpecificAlgo") <<
" HCAL tower cell not assigned to an HCAL subdetector!!!" << std::endl;
107 metsig::SigInputObj temp(sign_tower_type,sign_tower_et,sign_tower_phi,sign_tower_sigma_et,sign_tower_sigma_phi);
109 signInputVec.push_back(temp);
119 sign_tower_type =
"emcalotower";
120 sign_tower_et = calotower->
emEt();
125 sign_tower_type =
"emcalotower";
126 sign_tower_et = calotower->
emEt();
132 edm::LogWarning(
"SignCaloSpecificAlgo") <<
" ECAL tower cell not assigned to an ECAL subdetector!!!" << std::endl;
134 metsig::SigInputObj temp(sign_tower_type,sign_tower_et,sign_tower_phi,sign_tower_sigma_et,sign_tower_sigma_phi);
135 signInputVec.push_back(temp);
141 edm::LogWarning(
"SignCaloSpecificAlgo") <<
"found non-assigned cell, " << std::endl;
164 double sign_calo_met_total=0;
165 double sign_calo_met_phi=0;
166 double sign_calo_met_set=0;
174 signInputVec.clear();
const void addObjects(const std::vector< metsig::SigInputObj > &EventVec)
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
virtual float phi() const
momentum azimuthal angle
const double significance(double &met_r, double &met_phi, double &met_set)
reco::METCovMatrix matrix_
void usePreviousSignif(const std::vector< double > &values)
virtual float eta() const
momentum pseudorapidity
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
const_iterator end() const