66 std::vector<metsig::SigInputObj>
71 std::vector<metsig::SigInputObj> signInputVec;
73 for( ; towerCand != towers->
end(); towerCand++ ) {
74 const Candidate *candidate = &(*towerCand);
78 double sign_tower_et = calotower->
et();
79 if(sign_tower_et<globalThreshold)
82 double sign_tower_phi = calotower->
phi();
83 double sign_tower_sigma_et = 0;
84 double sign_tower_sigma_phi = 0;
85 std::string sign_tower_type =
"";
87 bool hadIsDone =
false;
88 bool emIsDone =
false;
91 while ( --cell >= 0 && (!hadIsDone || !emIsDone) )
98 sign_tower_type =
"hadcalotower";
99 sign_tower_et = calotower->
hadEt();
104 sign_tower_type =
"hadcalotower";
105 sign_tower_et = calotower->
outerEt();
110 sign_tower_type =
"hadcalotower";
111 sign_tower_et = calotower->
hadEt();
116 sign_tower_type =
"hadcalotower";
117 sign_tower_et = calotower->
et();
122 edm::LogWarning(
"SignCaloSpecificAlgo") <<
" HCAL tower cell not assigned to an HCAL subdetector!!!" << std::endl;
125 metsig::SigInputObj temp(sign_tower_type,sign_tower_et,sign_tower_phi,sign_tower_sigma_et,sign_tower_sigma_phi);
127 signInputVec.push_back(temp);
137 sign_tower_type =
"emcalotower";
138 sign_tower_et = calotower->
emEt();
143 sign_tower_type =
"emcalotower";
144 sign_tower_et = calotower->
emEt();
150 edm::LogWarning(
"SignCaloSpecificAlgo") <<
" ECAL tower cell not assigned to an ECAL subdetector!!!" << std::endl;
152 metsig::SigInputObj temp(sign_tower_type,sign_tower_et,sign_tower_phi,sign_tower_sigma_et,sign_tower_sigma_phi);
153 signInputVec.push_back(temp);
159 edm::LogWarning(
"SignCaloSpecificAlgo") <<
"found non-assigned cell, " << std::endl;
182 double sign_calo_met_total=0;
183 double sign_calo_met_phi=0;
184 double sign_calo_met_set=0;
192 signInputVec.clear();
const void addObjects(const std::vector< metsig::SigInputObj > &EventVec)
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
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)
virtual double eta() const
momentum pseudorapidity
void usePreviousSignif(const std::vector< double > &values)
void calculateBaseCaloMET(edm::Handle< edm::View< reco::Candidate > > towers, CommonMETData met, const metsig::SignAlgoResolutions &resolutions, bool noHF, double globalthreshold)
TMatrixD getSignifMatrix() const
Structure containing data common to all types of MET.
const void addSignifMatrix(const TMatrixD &input)
double et(double vtxZ) const
const_iterator end() const
virtual double phi() const
momentum azimuthal angle