#include <EndcapPiZeroDiscriminatorAlgo.h>
|
void | calculateBarrelNNInputVariables (float et, double s1, double s9, double s25, double m2, double cee, double cep, double cpp, double s4, double s6, double ratio, double xcog, double ycog) |
|
bool | calculateNNInputVariables (std::vector< float > &vph1, std::vector< float > &vph2, float pS1_max, float pS9_max, float pS25_max, int EScorr) |
|
| EndcapPiZeroDiscriminatorAlgo () |
|
| EndcapPiZeroDiscriminatorAlgo (double stripEnergyCut, int nStripCut, const std::string &path) |
|
void | findPi0Road (ESDetId strip, EcalPreshowerNavigator &theESNav, int plane, std::vector< ESDetId > &vout) |
|
std::vector< float > | findPreshVector (ESDetId strip, RecHitsMap *rechits_map, CaloSubdetectorTopology *topology_p) |
|
std::vector< float > const & | get_input_vector () const |
|
float | GetBarrelNNOutput (float EB_Et) |
|
float | GetNNOutput (float EE_Et) |
|
bool | goodPi0Strip (RecHitsMap::iterator candidate_it, ESDetId lastID) |
|
|
float | Activation_fun (float SUM) const |
|
float | getNNoutput (int sel_wfile, int Layers, int Indim, int Hidden, int Outdim, int barrelstart) const |
|
void | readWeightFile (const char *WFile, int &Layers, int &Indim, int &Hidden, int &Outdim) |
|
EndcapPiZeroDiscriminatorAlgo::EndcapPiZeroDiscriminatorAlgo |
( |
| ) |
|
|
inline |
Definition at line 19 of file EndcapPiZeroDiscriminatorAlgo.h.
References calculateBarrelNNInputVariables(), calculateNNInputVariables(), EgHLTOffHistBins_cfi::et, findPi0Road(), findPreshVector(), GetBarrelNNOutput(), GetNNOutput(), goodPi0Strip(), castor_dqm_sourceclient_file_cfg::path, particleFlowDisplacedVertex_cfi::ratio, AlCaHLTBitMon_QueryRunRegistry::string, and digitizers_cfi::strip.
double preshStripEnergyCut_
EndcapPiZeroDiscriminatorAlgo::EndcapPiZeroDiscriminatorAlgo |
( |
double |
stripEnergyCut, |
|
|
int |
nStripCut, |
|
|
const std::string & |
path |
|
) |
| |
float EndcapPiZeroDiscriminatorAlgo::Activation_fun |
( |
float |
SUM | ) |
const |
|
private |
void EndcapPiZeroDiscriminatorAlgo::calculateBarrelNNInputVariables |
( |
float |
et, |
|
|
double |
s1, |
|
|
double |
s9, |
|
|
double |
s25, |
|
|
double |
m2, |
|
|
double |
cee, |
|
|
double |
cep, |
|
|
double |
cpp, |
|
|
double |
s4, |
|
|
double |
s6, |
|
|
double |
ratio, |
|
|
double |
xcog, |
|
|
double |
ycog |
|
) |
| |
bool EndcapPiZeroDiscriminatorAlgo::calculateNNInputVariables |
( |
std::vector< float > & |
vph1, |
|
|
std::vector< float > & |
vph2, |
|
|
float |
pS1_max, |
|
|
float |
pS9_max, |
|
|
float |
pS25_max, |
|
|
int |
EScorr |
|
) |
| |
Definition at line 140 of file EndcapPiZeroDiscriminatorAlgo.cc.
References CaloNavigator< T, TOPO >::east(), CaloNavigator< T, TOPO >::home(), LogTrace, GetRecoTauVFromDQM_MC_cff::next, CaloNavigator< T, TOPO >::north(), CaloNavigator< T, TOPO >::setHome(), CaloNavigator< T, TOPO >::south(), digitizers_cfi::strip, and CaloNavigator< T, TOPO >::west().
Referenced by EndcapPiZeroDiscriminatorAlgo().
148 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: starts from strip " <<
strip;
153 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: Go to the East ";
156 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: East: " << n_east <<
" current strip is " 159 vout.push_back(next);
166 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: Go to the West ";
170 LogTrace(
"EcalClusters") <<
"findPi0Road: West: " << n_west <<
" current strip is " <<
next;
172 vout.push_back(next);
178 <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: Total number of strips found in the road at 1-st plane is " 181 }
else if (plane == 2) {
184 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: Go to the North ";
187 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: North: " << n_north
188 <<
" current strip is " <<
next;
190 vout.push_back(next);
197 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: Go to the South ";
201 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: South: " << n_south
202 <<
" current strip is " <<
next;
204 vout.push_back(next);
210 <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: Total number of strips found in the road at 2-nd plane is " 211 << n_south + n_north;
215 <<
"EndcapPiZeroDiscriminatorAlgo: findPi0Road: Wrong plane number, null cluster will be returned! ";
void setHome(const T &startingPoint)
set the starting position
T west() const
move the navigator west
T south() const
move the navigator south
T east() const
move the navigator east
void home() const
move the navigator back to the starting point
T north() const
move the navigator north
Definition at line 40 of file EndcapPiZeroDiscriminatorAlgo.cc.
References mps_fire::i, LogTrace, HLT_2018_cff::navigator, ESDetId::plane(), CaloNavigator< T, TOPO >::setHome(), and ESDetId::strip().
Referenced by EndcapPiZeroDiscriminatorAlgo().
43 vector<float> vout_stripE;
46 if (rechits_map->empty()) {
47 edm::LogWarning(
"EndcapPiZeroDiscriminatorAlgo") <<
"RecHitsMap has size 0.";
53 vector<ESDetId> road_2d;
56 int plane = strip.
plane();
59 <<
"EndcapPiZeroDiscriminatorAlgo: findPreshVectors: Preshower Seeded Algorithm - looking for clusters" 61 <<
"findPreshVectors: Preshower is intersected at strip " << strip.
strip() <<
", at plane " << plane;
64 for (
int i = 0;
i < 11;
i++) {
65 vout_stripE.push_back(-100.);
70 road_2d.push_back(strip);
79 <<
"EndcapPiZeroDiscriminatorAlgo:findPreshVectors: Total number of strips in the central road: " 83 RecHitsMap::iterator final_strip = rechits_map->end();
87 ESDetId last_stripID = final_strip->first;
89 vector<ESDetId>::iterator itID;
90 for (itID = road_2d.begin(); itID != road_2d.end(); itID++) {
91 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPreshVectors: ID = " << *itID;
94 RecHitsMap::iterator strip_it = rechits_map->find(*itID);
96 E = strip_it->second.energy();
98 vout_stripE.push_back(E);
99 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: findPreshVectors: E = " << E;
105 vector<float> vout_ElevenStrips_Energy;
106 for (
int i = 0;
i < 11;
i++) {
107 vout_ElevenStrips_Energy.push_back(0.);
110 for (
unsigned int i = 0;
i < vout_stripE.size();
i++) {
111 vout_ElevenStrips_Energy[
i] = vout_stripE.at(
i);
115 return vout_ElevenStrips_Energy;
void findPi0Road(ESDetId strip, EcalPreshowerNavigator &theESNav, int plane, std::vector< ESDetId > &vout)
bool goodPi0Strip(RecHitsMap::iterator candidate_it, ESDetId lastID)
std::vector<float> const& EndcapPiZeroDiscriminatorAlgo::get_input_vector |
( |
| ) |
const |
|
inline |
float EndcapPiZeroDiscriminatorAlgo::GetBarrelNNOutput |
( |
float |
EB_Et | ) |
|
Definition at line 591 of file EndcapPiZeroDiscriminatorAlgo.cc.
References TkMap_script_phase1::input_var, LogTrace, and findQualityFiles::v.
Referenced by EndcapPiZeroDiscriminatorAlgo().
595 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo::GetBarrelNNoutput :nn_invar_presh = ";
597 LogTrace(
"EcalCluster").log([&](
auto& lt) {
608 }
else if (EB_Et >= 25.0 && EB_Et < 35.0) {
610 }
else if (EB_Et >= 35.0 && EB_Et < 45.0) {
612 }
else if (EB_Et >= 45.0 && EB_Et < 55.0) {
617 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: E_SC = " << EB_Et
618 <<
" and I select Weight file Number = " << sel_wfile;
623 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: ===================> GetNNOutput : NNout = " << nnout;
float getNNoutput(int sel_wfile, int Layers, int Indim, int Hidden, int Outdim, int barrelstart) const
std::vector< float > input_var
float EndcapPiZeroDiscriminatorAlgo::GetNNOutput |
( |
float |
EE_Et | ) |
|
Definition at line 548 of file EndcapPiZeroDiscriminatorAlgo.cc.
References TkMap_script_phase1::input_var, LogTrace, and findQualityFiles::v.
Referenced by EndcapPiZeroDiscriminatorAlgo().
552 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo::GetNNoutput :nn_invar_presh = ";
554 LogTrace(
"EcalClusters").log([&](
auto& lt) {
565 }
else if (EE_Et >= 25.0 && EE_Et < 35.0) {
567 }
else if (EE_Et >= 35.0 && EE_Et < 45.0) {
569 }
else if (EE_Et >= 45.0 && EE_Et < 55.0) {
575 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: Et_SC = " << EE_Et
576 <<
" and I select Weight file Number = " << sel_wfile;
581 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: ===================> GetNNOutput : NNout = " << nnout;
float getNNoutput(int sel_wfile, int Layers, int Indim, int Hidden, int Outdim, int barrelstart) const
std::vector< float > input_var
float EndcapPiZeroDiscriminatorAlgo::getNNoutput |
( |
int |
sel_wfile, |
|
|
int |
Layers, |
|
|
int |
Indim, |
|
|
int |
Hidden, |
|
|
int |
Outdim, |
|
|
int |
barrelstart |
|
) |
| const |
|
private |
Definition at line 296 of file EndcapPiZeroDiscriminatorAlgo.cc.
References h, mps_fire::i, TkMap_script_phase1::input_var, LogTrace, CastorDigiReco::o1, and CfgNavigationSchool_cfi::OUT.
Referenced by get_input_vector().
301 std::vector<float> I_SUM(
size_t(Hidden), 0.0);
302 std::vector<float>
OUT(
size_t(Outdim), 0.0);
304 for (
int h = 0;
h < Hidden;
h++) {
306 for (
int i = 0;
i < Indim;
i++) {
312 for (
int o1 = 0;
o1 < Outdim;
o1++) {
314 sel_wfile * Outdim * Hidden] *
318 for (
int o2 = 0; o2 < Outdim; o2++) {
322 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: getNNoutput :: -> NNout = " << nnout;
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
float Activation_fun(float SUM) const
std::vector< float > O_Thresh_all
std::vector< float > input_var
std::vector< float > I_H_Weight_all
std::vector< float > H_O_Weight_all
std::vector< float > H_Thresh_all
bool EndcapPiZeroDiscriminatorAlgo::goodPi0Strip |
( |
RecHitsMap::iterator |
candidate_it, |
|
|
ESDetId |
lastID |
|
) |
| |
Definition at line 120 of file EndcapPiZeroDiscriminatorAlgo.cc.
References LogTrace.
Referenced by EndcapPiZeroDiscriminatorAlgo().
121 RecHitsMap::iterator candidate_tmp = candidate_it;
125 if (candidate_tmp->first == lastID)
127 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: goodPi0Strip No such a strip in rechits_map ";
131 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: goodPi0Strip Strip energy " 132 << candidate_it->second.energy() <<
" is below threshold ";
double preshStripEnergyCut_
void EndcapPiZeroDiscriminatorAlgo::readWeightFile |
( |
const char * |
WFile, |
|
|
int & |
Layers, |
|
|
int & |
Indim, |
|
|
int & |
Hidden, |
|
|
int & |
Outdim |
|
) |
| |
|
private |
Definition at line 227 of file EndcapPiZeroDiscriminatorAlgo.cc.
References Exception, mps_fire::i, dqmiolumiharvest::j, mps_splice::line, LogTrace, and HGCalRecHit_cfi::weights.
Referenced by get_input_vector().
233 bool checkinit =
false;
237 weights = fopen(Weights_file,
"r");
238 LogTrace(
"EcalClusters") <<
"EndcapPiZeroDiscriminatorAlgo: I opeded the Weights file = " << Weights_file;
239 if (weights ==
nullptr) {
240 throw cms::Exception(
"MissingWeightFile") <<
"Could not open the weights file: " << Weights_file;
248 while (!feof(weights)) {
249 fscanf(weights,
"%s", line);
250 if (line[0] ==
'A') {
251 fscanf(weights,
"%d", &Layers);
252 fscanf(weights,
"%d", &Indim);
253 fscanf(weights,
"%d", &Hidden);
254 fscanf(weights,
"%d", &Outdim);
261 }
else if (line[0] ==
'B') {
263 for (
int i = 0;
i < Indim;
i++) {
264 for (
int j = 0;
j < Hidden;
j++) {
268 }
else if (line[0] ==
'C') {
270 for (
int i = 0;
i < Hidden;
i++) {
273 }
else if (line[0] ==
'D') {
275 for (
int i = 0;
i < Hidden * Outdim;
i++) {
278 }
else if (line[0] ==
'E') {
280 for (
int i = 0;
i < Outdim;
i++) {
284 edm::LogError(
"EEPi0Discrim") <<
"EndcapPiZeroDiscriminatorAlgo: Not a Net file of Corrupted Net file " << endl;
std::vector< float > O_Thresh_all
std::vector< float > I_H_Weight_all
std::vector< float > H_O_Weight_all
std::vector< float > H_Thresh_all
int EndcapPiZeroDiscriminatorAlgo::debugLevel_ |
|
private |
int EndcapPiZeroDiscriminatorAlgo::EB_Hidden |
|
private |
int EndcapPiZeroDiscriminatorAlgo::EB_Indim |
|
private |
int EndcapPiZeroDiscriminatorAlgo::EB_Layers |
|
private |
int EndcapPiZeroDiscriminatorAlgo::EB_Outdim |
|
private |
int EndcapPiZeroDiscriminatorAlgo::EE_Hidden |
|
private |
int EndcapPiZeroDiscriminatorAlgo::EE_Indim |
|
private |
int EndcapPiZeroDiscriminatorAlgo::EE_Layers |
|
private |
int EndcapPiZeroDiscriminatorAlgo::EE_Outdim |
|
private |
std::vector<float> EndcapPiZeroDiscriminatorAlgo::H_O_Weight_all |
|
private |
std::vector<float> EndcapPiZeroDiscriminatorAlgo::H_Thresh_all |
|
private |
std::vector<float> EndcapPiZeroDiscriminatorAlgo::I_H_Weight_all |
|
private |
std::vector<float> EndcapPiZeroDiscriminatorAlgo::input_var |
|
private |
std::vector<float> EndcapPiZeroDiscriminatorAlgo::O_Thresh_all |
|
private |
int EndcapPiZeroDiscriminatorAlgo::preshSeededNstr_ |
|
private |
double EndcapPiZeroDiscriminatorAlgo::preshStripEnergyCut_ |
|
private |