69 std::vector<eflowRecCluster*> matchedClusters;
70 const std::vector<eflowTrackClusterLink*>& links = thisEfRecTrack->getClusterMatches();
71 for (
auto* itLink : links) {
72 matchedClusters.push_back(itLink->getCluster());
75 double trackEM1eta = thisEfRecTrack->getTrackCaloPoints().getEM1eta();
77 if(trackEM1eta<-998.) trackEM1eta = thisEfRecTrack->getTrackCaloPoints().getEM2eta();
79 if(trackEM1eta<-998.) trackEM1eta = thisEfRecTrack->getTrackCaloPoints().getFCAL0eta();
81 double trackE = thisEfRecTrack->getTrack()->e();
83 if (!binnedParameters->
binExists(trackE, trackEM1eta)) {
84 thisEfRecTrack->setHasBin(
false);
93 thisEfRecTrack->setLayerHED(j1st);
97 cellSubtractionManager.
getOrdering(binnedParameters, trackE, trackEM1eta, j1st,useLegacyEnergyBinIndexing);
100 const double expectedEnergy = energyP ? energyP->
nnEnergyPrediction(thisEfRecTrack) : cellSubtractionManager.
fudgeMean() * thisEfRecTrack->getTrack()->e();
101 const double expectedEnergySigma = std::fabs(cellSubtractionManager.
fudgeStdDev() * thisEfRecTrack->getTrack()->e());
103 const std::vector<eflowTrackClusterLink*>* bestClusters_015 = thisEfRecTrack->getAlternativeClusterMatches(
"cone_015");
104 const std::vector<eflowTrackClusterLink*>* bestClusters_02 = thisEfRecTrack->getAlternativeClusterMatches(
"cone_02");
107 float totalE_015 = 0.0;
110 if (bestClusters_015){
113 if (thisBestCluster){
116 if (theCluster->
e()>0.0){
117 totalE_015 += theCluster->
e();
124 double pull_015 = NAN;
125 if (expectedEnergySigma > 1e-6 ) pull_015 = (totalE_015-expectedEnergy)/expectedEnergySigma;
126 thisEfRecTrack->setpull15(pull_015);
128 double trackPt = thisEfRecTrack->getTrack()->pt();
130 if (!std::isnan(pull_015)){
136 if (pull_015 > 0.0 + (log10(40000)-log10(trackPt))*33.2 && 0.0 != expectedEnergySigma && bestClusters_015 && bestClusters_02){
137 thisEfRecTrack->setSubtracted();
138 thisEfRecTrack->setIsInDenseEnvironment();
141 std::vector<eflowRecCluster*> theBestEfRecClusters_02;
142 for (
eflowTrackClusterLink* thisLink : *bestClusters_02)
if (thisLink->getCluster()->getCluster()->e() > 0.0) theBestEfRecClusters_02.push_back(thisLink->getCluster());
143 integrator->
measureNewClus(theBestEfRecClusters_02, thisEfRecTrack);
145 cellSubtractionManager.
getOrdering(binnedParameters, trackE, trackEM1eta, j1st,useLegacyEnergyBinIndexing);
146 thisEfRecTrack->setEExpect(cellSubtractionManager.
fudgeMean() * trackE, std::fabs(cellSubtractionManager.
fudgeStdDev()*trackE)*std::fabs(cellSubtractionManager.
fudgeStdDev()*trackE));
149 thisEfRecTrack->setEExpect(expectedEnergy, expectedEnergySigma*expectedEnergySigma);