1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#include "Calibration/Tools/interface/EcalIndexingTools.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include <iostream>
EcalIndexingTools* EcalIndexingTools::instance_ = nullptr;
void EcalIndexingTools::setBinRange(
int nBinsEta, double minEta, double maxEta, int nBinsEt, double minEt, double maxEt) {
// std::cout<< "[EcalIndexingTools::setBinRange] setting values "<< nBinsEta << " " << minEta << " " << maxEta << std::endl;
totNumberOfBins_ = nBinsEta * nBinsEt;
nBinsEt_ = nBinsEt;
nBinsEta_ = nBinsEta;
minEt_ = minEt;
minEta_ = minEta;
maxEt_ = maxEt;
maxEta_ = maxEta;
// std::cout<< "[EcalIndexingTools::setBinRange] read back values: "<< nBinsEta_ << " " << minEta_ << " " << maxEta_ << std::endl;
return;
}
int EcalIndexingTools::getProgressiveIndex(double myEta, double myEt) {
std::cout << "minEt_ " << minEt_ << std::endl;
std::cout << "minEta_ " << minEta_ << std::endl;
std::cout << "maxEt_ " << maxEt_ << std::endl;
std::cout << "maxEta_ " << maxEta_ << std::endl;
///INITIALIZE BOUNDARIES
double BoundaryEt[100] = {-99.};
double BoundaryEta[100] = {-99.};
for (int i = 0; i < (nBinsEt_ + 1); i++) {
BoundaryEt[i] = minEt_ + i * ((maxEt_ - minEt_) / (double)nBinsEt_);
// std::cout << "i " << i << " BoundaryEt[i] "<< BoundaryEt[i] <<std::endl;
}
for (int i = 0; i < (nBinsEta_ + 1); i++) {
BoundaryEta[i] = minEta_ + i * ((maxEta_ - minEta_) / (double)nBinsEta_);
//std::cout << "i " << i << " BoundaryEta[i] "<< BoundaryEta[i] <<std::endl;
}
////FIND ETA BIN AND ET BIN, SEPARATELY
int etBin(-1);
int etaBin(-1);
for (int i = 0; i < nBinsEta_; i++) {
if (myEta > BoundaryEta[i] && myEta <= BoundaryEta[i + 1])
etaBin = i;
}
for (int i = 0; i < nBinsEt_; i++) {
if (myEt > BoundaryEt[i] && myEt <= BoundaryEt[i + 1])
etBin = i;
}
// std::cout << " myEta "<< myEta << " myEt "<< myEt << " etaBin "<< etaBin << " etBin "<< etBin << std::endl;
/////////////FIND UNIQUE PROGRESSIVE INDEX
int in = etaBin * nBinsEta_ + etBin;
//std::cout << "Progressive index " << in << std::endl;
return in;
}
|