1 #ifndef RecoLocalCalo_HGCalRecProducers_HGCalCLUEAlgo_h 2 #define RecoLocalCalo_HGCalRecProducers_HGCalCLUEAlgo_h 28 #define DEBUG_CLUSTERS_ALPAKA 0 30 #if DEBUG_CLUSTERS_ALPAKA 34 template <
typename TILE,
typename STRATEGY>
42 kappa_(ps.getParameter<double>(
"kappa")),
43 ecut_(ps.getParameter<double>(
"ecut")),
51 fcPerEle_(ps.getParameter<double>(
"fcPerEle")),
58 #if DEBUG_CLUSTERS_ALPAKA 75 std::vector<reco::BasicCluster>
getClusters(
bool)
override;
86 cells.shrink_to_fit();
93 iDesc.
add<std::vector<double>>(
"thresholdW0", {2.9, 2.9, 2.9});
94 iDesc.
add<
double>(
"positionDeltaRho2", 1.69);
95 iDesc.
add<std::vector<double>>(
"deltac",
102 iDesc.
add<
bool>(
"dependSensor",
true);
103 iDesc.
add<
double>(
"ecut", 3.0);
104 iDesc.
add<
double>(
"kappa", 9.0);
106 iDesc.
add<std::vector<double>>(
"dEdXweights", {});
107 iDesc.
add<std::vector<double>>(
"thicknessCorrection", {});
108 iDesc.
add<
double>(
"sciThicknessCorrection", 0.9);
109 iDesc.
add<
int>(
"deltasi_index_regemfac", 3);
110 iDesc.
add<
unsigned>(
"maxNumberOfThickIndices", 6);
111 iDesc.
add<std::vector<double>>(
"fcPerMip", {});
112 iDesc.
add<
double>(
"fcPerEle", 0.0);
113 iDesc.
add<std::vector<double>>(
"noises", {});
115 descNestedNoiseMIP.
add<
bool>(
"scaleByDose",
false);
116 descNestedNoiseMIP.add<
unsigned int>(
"scaleByDoseAlgo", 0);
117 descNestedNoiseMIP.add<
double>(
"scaleByDoseFactor", 1.);
118 descNestedNoiseMIP.add<
std::string>(
"doseMap",
"");
119 descNestedNoiseMIP.add<
std::string>(
"sipmMap",
"");
120 descNestedNoiseMIP.add<
double>(
"referenceIdark", -1);
121 descNestedNoiseMIP.add<
double>(
"referenceXtalk", -1);
122 descNestedNoiseMIP.add<
double>(
"noise_MIP", 1. / 100.);
124 iDesc.
add<
bool>(
"use2x2",
true);
193 detid.shrink_to_fit();
194 dim1.shrink_to_fit();
195 dim2.shrink_to_fit();
198 delta.shrink_to_fit();
211 #if DEBUG_CLUSTERS_ALPAKA 234 const unsigned int layerId,
std::vector< double > nonAgedNoises_
T getParameter(std::string const &) const
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
~HGCalCLUEAlgoT() override
HGCalCLUEAlgoT(const edm::ParameterSet &ps)
std::vector< double > vecDeltas_
std::vector< reco::BasicCluster > clusters_v_
std::vector< int > clusterIndex
void calculateDistanceToHigher(const TILE <, const unsigned int layerId, float delta)
int deltasi_index_regemfac_
void populate(const HGCRecHitCollection &hits) override
float outlierDeltaFactor_
double positionDeltaRho2_
double sciThicknessCorrection_
std::vector< std::vector< int > > followers
std::vector< int > nearestHigher
std::vector< double > thicknessCorrection_
void makeClusters() override
std::vector< bool > isSeed
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< double > fcPerMip_
std::vector< float > weight
float distance(const TILE <, int cell1, int cell2, int layerId) const
std::vector< double > dEdXweights_
std::vector< std::vector< double > > v_sigmaNoise_
void getEventSetupPerAlgorithm(const edm::EventSetup &es) override
std::vector< int > numberOfClustersPerLayer_
void calculateLocalDensity(const TILE <, const unsigned int layerId, float delta)
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
XYZPointD XYZPoint
point in space with cartesian internal representation
unsigned maxNumberOfThickIndices_
std::vector< double > thresholdW0_
std::vector< CellsOnLayer > cells_
math::XYZPoint Point
point in the space
void prepareDataStructures(const unsigned int layerId)
std::vector< float > delta
std::vector< DetId > detid
std::vector< float > dim1
std::vector< float > sigmaNoise
std::vector< std::vector< double > > thresholds_
float distance2(const TILE <, int cell1, int cell2, int layerId) const
int findAndAssignClusters(const unsigned int layerId, float delta)
std::vector< reco::BasicCluster > getClusters(bool) override
std::vector< float > dim2