31 double maxProbChi2 = 0.;
32 for(
unsigned int s=0;
s<sols.size();
s++){
33 maxProbChi2 =
std::max(maxProbChi2,sols[
s].getProbChi2());
37 std::vector<unsigned int> indices;
39 for(
unsigned int s=0;
s<sols.size();
s++){
40 if(fabs(sols[
s].getProbChi2()-maxProbChi2) < 0.0001) indices.push_back(
s);
45 double prev_W1b = 999.;
46 double prev_W2b = 999.;
48 if(indices.size() == 1) bestSol = indices[0];
49 if(indices.size() > 1){
50 for(
unsigned int i=0;
i!=indices.size();
i++){
51 double DPhi_W1b0 = fabs(sols[indices[
i]].getFitHadW_plus().
phi()-sols[indices[
i]].getFitHadb().
phi());
52 double DPhi_W1b1 = fabs(sols[indices[
i]].getFitHadW_plus().
phi()-sols[indices[
i]].getFitHadbbar().
phi());
53 double DPhi_W2b0 = fabs(sols[indices[
i]].getFitHadW_minus().
phi()-sols[indices[
i]].getFitHadb().
phi());
54 double DPhi_W2b1 = fabs(sols[indices[
i]].getFitHadW_minus().
phi()-sols[indices[
i]].getFitHadbbar().
phi());
56 if(DPhi_W1b0>3.1415) DPhi_W1b0 = 2.*3.1415-DPhi_W1b0;
57 if(DPhi_W1b1>3.1415) DPhi_W1b1 = 2.*3.1415-DPhi_W1b1;
58 if(DPhi_W2b0>3.1415) DPhi_W2b0 = 2.*3.1415-DPhi_W2b0;
59 if(DPhi_W2b1>3.1415) DPhi_W2b1 = 2.*3.1415-DPhi_W2b1;
63 if(DPhi_W1b0<DPhi_W2b0 && DPhi_W1b1<DPhi_W2b1){
64 if(DPhi_W1b0<prev_W1b && DPhi_W1b1<prev_W2b){
68 if(DPhi_W1b0>DPhi_W2b0 && DPhi_W1b1>DPhi_W2b1){
69 if(DPhi_W2b0<prev_W1b && DPhi_W2b1<prev_W2b){
73 if((DPhi_W1b0<DPhi_W2b0 && DPhi_W1b1>DPhi_W2b1)||(DPhi_W1b0>DPhi_W2b0 && DPhi_W1b1<DPhi_W2b1)){
74 if((DPhi_W1b0+DPhi_W1b1)<(DPhi_W2b0+DPhi_W2b1)){
75 if(DPhi_W1b0<prev_W1b && DPhi_W1b1<prev_W2b){
79 if(DPhi_W2b0<prev_W1b && DPhi_W2b1<prev_W2b){
~TtHadSimpleBestJetComb()
const T & max(const T &a, const T &b)
int operator()(std::vector< TtHadEvtSolution > &)