Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:10

0001 // Class Header
0002 #include "MuonSeeddPhiScale.h"
0003 
0004 // Framework
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 
0007 #include "TFile.h"
0008 #include "TVector3.h"
0009 
0010 #include <iostream>
0011 #include <fstream>
0012 #include <map>
0013 #include <utility>
0014 #include <string>
0015 #include <stdio.h>
0016 #include <algorithm>
0017 
0018 using namespace std;
0019 using namespace edm;
0020 
0021 // constructors
0022 MuonSeeddPhiScale::MuonSeeddPhiScale(const ParameterSet& pset) {
0023   // dPhi scale factors
0024   CSC01_1 = pset.getParameter<std::vector<double> >("CSC_01_1_scale");
0025   CSC12_1 = pset.getParameter<std::vector<double> >("CSC_12_1_scale");
0026   CSC12_2 = pset.getParameter<std::vector<double> >("CSC_12_2_scale");
0027   CSC12_3 = pset.getParameter<std::vector<double> >("CSC_12_3_scale");
0028   CSC13_2 = pset.getParameter<std::vector<double> >("CSC_13_2_scale");
0029   CSC13_3 = pset.getParameter<std::vector<double> >("CSC_13_3_scale");
0030   CSC14_3 = pset.getParameter<std::vector<double> >("CSC_14_3_scale");
0031   CSC23_1 = pset.getParameter<std::vector<double> >("CSC_23_1_scale");
0032   CSC23_2 = pset.getParameter<std::vector<double> >("CSC_23_2_scale");
0033   CSC24_1 = pset.getParameter<std::vector<double> >("CSC_24_1_scale");
0034   CSC34_1 = pset.getParameter<std::vector<double> >("CSC_34_1_scale");
0035 
0036   DT12_1 = pset.getParameter<std::vector<double> >("DT_12_1_scale");
0037   DT12_2 = pset.getParameter<std::vector<double> >("DT_12_2_scale");
0038   DT13_1 = pset.getParameter<std::vector<double> >("DT_13_1_scale");
0039   DT13_2 = pset.getParameter<std::vector<double> >("DT_13_2_scale");
0040   DT14_1 = pset.getParameter<std::vector<double> >("DT_14_1_scale");
0041   DT14_2 = pset.getParameter<std::vector<double> >("DT_14_2_scale");
0042   DT23_1 = pset.getParameter<std::vector<double> >("DT_23_1_scale");
0043   DT23_2 = pset.getParameter<std::vector<double> >("DT_23_2_scale");
0044   DT24_1 = pset.getParameter<std::vector<double> >("DT_24_1_scale");
0045   DT24_2 = pset.getParameter<std::vector<double> >("DT_24_2_scale");
0046   DT34_1 = pset.getParameter<std::vector<double> >("DT_34_1_scale");
0047   DT34_2 = pset.getParameter<std::vector<double> >("DT_34_2_scale");
0048 
0049   OL1213 = pset.getParameter<std::vector<double> >("OL_1213_0_scale");
0050   OL1222 = pset.getParameter<std::vector<double> >("OL_1222_0_scale");
0051   OL1232 = pset.getParameter<std::vector<double> >("OL_1232_0_scale");
0052   OL2213 = pset.getParameter<std::vector<double> >("OL_2213_0_scale");
0053   OL2222 = pset.getParameter<std::vector<double> >("OL_2222_0_scale");
0054 
0055   SMB_10S = pset.getParameter<std::vector<double> >("SMB_10_0_scale");
0056   SMB_11S = pset.getParameter<std::vector<double> >("SMB_11_0_scale");
0057   SMB_12S = pset.getParameter<std::vector<double> >("SMB_12_0_scale");
0058   SMB_20S = pset.getParameter<std::vector<double> >("SMB_20_0_scale");
0059   SMB_21S = pset.getParameter<std::vector<double> >("SMB_21_0_scale");
0060   SMB_22S = pset.getParameter<std::vector<double> >("SMB_22_0_scale");
0061   SMB_30S = pset.getParameter<std::vector<double> >("SMB_30_0_scale");
0062   SMB_31S = pset.getParameter<std::vector<double> >("SMB_31_0_scale");
0063   SMB_32S = pset.getParameter<std::vector<double> >("SMB_32_0_scale");
0064 
0065   SME_11S = pset.getParameter<std::vector<double> >("SME_11_0_scale");
0066   SME_12S = pset.getParameter<std::vector<double> >("SME_12_0_scale");
0067   SME_13S = pset.getParameter<std::vector<double> >("SME_13_0_scale");
0068   SME_21S = pset.getParameter<std::vector<double> >("SME_21_0_scale");
0069   SME_22S = pset.getParameter<std::vector<double> >("SME_22_0_scale");
0070 }
0071 
0072 // destructor
0073 MuonSeeddPhiScale::~MuonSeeddPhiScale() {}
0074 
0075 void MuonSeeddPhiScale::ScaleCSCdPhi(double dPhiP1[2][5][5], double EtaP1[2][5]) {
0076   // fill the information for CSC pT parameterization from segment pair
0077   if (dPhiP1[1][0][1] != 99.0) {
0078     double oPh = 1. / dPhiP1[0][0][1];
0079     double oPhi = 1. / dPhiP1[1][0][1];
0080     dPhiP1[0][0][1] = dPhiP1[0][0][1] / (1. + (CSC01_1[3] / fabs(oPh + 10.)));
0081     dPhiP1[1][0][1] = dPhiP1[1][0][1] / (1. + (CSC01_1[3] / fabs(oPhi + 10.)));
0082   }
0083 
0084   if (dPhiP1[1][0][2] != 99.0 && fabs(EtaP1[1][0]) > 1.6) {
0085     double oPh = 1. / dPhiP1[0][0][2];
0086     double oPhi = 1. / dPhiP1[1][0][2];
0087     dPhiP1[0][0][2] = dPhiP1[0][0][2] / (1. + (CSC12_3[3] / fabs(oPh + 10.)));
0088     dPhiP1[1][0][2] = dPhiP1[1][0][2] / (1. + (CSC12_3[3] / fabs(oPhi + 10.)));
0089   }
0090   if (dPhiP1[1][1][2] != 99.0 && fabs(EtaP1[1][1]) <= 1.6 && fabs(EtaP1[1][0]) > 1.2) {
0091     double oPh = 1. / dPhiP1[0][1][2];
0092     double oPhi = 1. / dPhiP1[1][1][2];
0093     dPhiP1[0][1][2] = dPhiP1[0][1][2] / (1. + (CSC12_2[3] / fabs(oPh + 10.)));
0094     dPhiP1[1][1][2] = dPhiP1[1][1][2] / (1. + (CSC12_2[3] / fabs(oPhi + 10.)));
0095   }
0096   if (dPhiP1[1][1][2] != 99.0 && fabs(EtaP1[1][1]) <= 1.2) {
0097     double oPh = 1. / dPhiP1[0][1][2];
0098     double oPhi = 1. / dPhiP1[1][1][2];
0099     dPhiP1[0][1][2] = dPhiP1[0][1][2] / (1. + (CSC12_1[3] / fabs(oPh + 10.)));
0100     dPhiP1[1][1][2] = dPhiP1[1][1][2] / (1. + (CSC12_1[3] / fabs(oPhi + 10.)));
0101   }
0102 
0103   if (dPhiP1[1][0][3] != 99.0) {
0104     double oPh = 1. / dPhiP1[0][0][3];
0105     double oPhi = 1. / dPhiP1[1][0][3];
0106     dPhiP1[0][0][3] = dPhiP1[0][0][3] / (1. + (CSC13_3[3] / fabs(oPh + 10.)));
0107     dPhiP1[1][0][3] = dPhiP1[1][0][3] / (1. + (CSC13_3[3] / fabs(oPhi + 10.)));
0108   }
0109   if (dPhiP1[1][1][3] != 99.0) {
0110     double oPh = 1. / dPhiP1[0][1][3];
0111     double oPhi = 1. / dPhiP1[1][1][3];
0112     dPhiP1[0][1][3] = dPhiP1[0][1][3] / (1. + (CSC13_2[3] / fabs(oPh + 10.)));
0113     dPhiP1[1][1][3] = dPhiP1[1][1][3] / (1. + (CSC13_2[3] / fabs(oPhi + 10.)));
0114   }
0115 
0116   if (dPhiP1[1][0][4] != 99.0) {
0117     double oPh = 1. / dPhiP1[0][0][4];
0118     double oPhi = 1. / dPhiP1[1][0][4];
0119     dPhiP1[0][0][4] = dPhiP1[0][0][4] / (1. + (CSC14_3[3] / fabs(oPh + 10.)));
0120     dPhiP1[1][0][4] = dPhiP1[1][0][4] / (1. + (CSC14_3[3] / fabs(oPhi + 10.)));
0121   }
0122   if (dPhiP1[1][1][4] != 99.0) {
0123     double oPh = 1. / dPhiP1[0][1][4];
0124     double oPhi = 1. / dPhiP1[1][1][4];
0125     dPhiP1[0][1][4] = dPhiP1[0][1][4] / (1. + (CSC14_3[3] / fabs(oPh + 10.)));
0126     dPhiP1[1][1][4] = dPhiP1[1][1][4] / (1. + (CSC14_3[3] / fabs(oPhi + 10.)));
0127   }
0128 
0129   if (dPhiP1[1][2][3] != 99.0 && fabs(EtaP1[1][2]) > 1.7) {
0130     double oPh = 1. / dPhiP1[0][2][3];
0131     double oPhi = 1. / dPhiP1[1][2][3];
0132     dPhiP1[0][2][3] = dPhiP1[0][2][3] / (1. + (CSC23_2[3] / fabs(oPh + 10.)));
0133     dPhiP1[1][2][3] = dPhiP1[1][2][3] / (1. + (CSC23_2[3] / fabs(oPhi + 10.)));
0134   }
0135   if (dPhiP1[1][2][3] != 99.0 && fabs(EtaP1[1][2]) <= 1.7) {
0136     double oPh = 1. / dPhiP1[0][2][3];
0137     double oPhi = 1. / dPhiP1[1][2][3];
0138     dPhiP1[0][2][3] = dPhiP1[0][2][3] / (1. + (CSC23_1[3] / fabs(oPh + 10.)));
0139     dPhiP1[1][2][3] = dPhiP1[1][2][3] / (1. + (CSC23_1[3] / fabs(oPhi + 10.)));
0140   }
0141 
0142   if (dPhiP1[1][2][4] != 99.0) {
0143     double oPh = 1. / dPhiP1[0][2][4];
0144     double oPhi = 1. / dPhiP1[1][2][4];
0145     dPhiP1[0][2][4] = dPhiP1[0][2][4] / (1. + (CSC24_1[3] / fabs(oPh + 10.)));
0146     dPhiP1[1][2][4] = dPhiP1[1][2][4] / (1. + (CSC24_1[3] / fabs(oPhi + 10.)));
0147   }
0148   if (dPhiP1[1][3][4] != 99.0) {
0149     double oPh = 1. / dPhiP1[0][3][4];
0150     double oPhi = 1. / dPhiP1[1][3][4];
0151     dPhiP1[0][3][4] = dPhiP1[0][3][4] / (1. + (CSC34_1[3] / fabs(oPh + 10.)));
0152     dPhiP1[1][3][4] = dPhiP1[1][3][4] / (1. + (CSC34_1[3] / fabs(oPhi + 10.)));
0153   }
0154 }
0155 
0156 void MuonSeeddPhiScale::ScaleDTdPhi(double dPhiP3[2][5][5], double EtaP3[2][5]) {
0157   /// For DT
0158   //  fill the information for DT pT parameterization from segment pair
0159   if (dPhiP3[1][1][2] != 99.0 && fabs(EtaP3[1][1]) <= 0.7) {
0160     double oPh = 1. / dPhiP3[0][1][2];
0161     double oPhi = 1. / dPhiP3[1][1][2];
0162     dPhiP3[0][1][2] = dPhiP3[0][1][2] / (1. + (DT12_1[3] / fabs(oPh + 10.)));
0163     dPhiP3[1][1][2] = dPhiP3[1][1][2] / (1. + (DT12_1[3] / fabs(oPhi + 10.)));
0164   }
0165   if (dPhiP3[1][1][2] != 99.0 && fabs(EtaP3[1][1]) > 0.7) {
0166     double oPh = 1. / dPhiP3[0][1][2];
0167     double oPhi = 1. / dPhiP3[1][1][2];
0168     dPhiP3[0][1][2] = dPhiP3[0][1][2] / (1. + (DT12_2[3] / fabs(oPh + 10.)));
0169     dPhiP3[1][1][2] = dPhiP3[1][1][2] / (1. + (DT12_2[3] / fabs(oPhi + 10.)));
0170   }
0171 
0172   if (dPhiP3[1][1][3] != 99.0 && fabs(EtaP3[1][1]) <= 0.6) {
0173     double oPh = 1. / dPhiP3[0][1][3];
0174     double oPhi = 1. / dPhiP3[1][1][3];
0175     dPhiP3[0][1][3] = dPhiP3[0][1][3] / (1. + (DT13_1[3] / fabs(oPh + 10.)));
0176     dPhiP3[1][1][3] = dPhiP3[1][1][3] / (1. + (DT13_1[3] / fabs(oPhi + 10.)));
0177   }
0178   if (dPhiP3[1][1][3] != 99.0 && fabs(EtaP3[1][1]) > 0.6) {
0179     double oPh = 1. / dPhiP3[0][1][3];
0180     double oPhi = 1. / dPhiP3[1][1][3];
0181     dPhiP3[0][1][3] = dPhiP3[0][1][3] / (1. + (DT13_2[3] / fabs(oPh + 10.)));
0182     dPhiP3[1][1][3] = dPhiP3[1][1][3] / (1. + (DT13_2[3] / fabs(oPhi + 10.)));
0183   }
0184 
0185   if (dPhiP3[1][1][4] != 99.0 && fabs(EtaP3[1][1]) <= 0.52) {
0186     double oPh = 1. / dPhiP3[0][1][4];
0187     double oPhi = 1. / dPhiP3[1][1][4];
0188     dPhiP3[0][1][4] = dPhiP3[0][1][4] / (1. + (DT14_1[3] / fabs(oPh + 10.)));
0189     dPhiP3[1][1][4] = dPhiP3[1][1][4] / (1. + (DT14_1[3] / fabs(oPhi + 10.)));
0190   }
0191   if (dPhiP3[1][1][4] != 99.0 && fabs(EtaP3[1][1]) > 0.52) {
0192     double oPh = 1. / dPhiP3[0][1][4];
0193     double oPhi = 1. / dPhiP3[1][1][4];
0194     dPhiP3[0][1][4] = dPhiP3[0][1][4] / (1. + (DT14_2[3] / fabs(oPh + 10.)));
0195     dPhiP3[1][1][4] = dPhiP3[1][1][4] / (1. + (DT14_2[3] / fabs(oPhi + 10.)));
0196   }
0197 
0198   if (dPhiP3[1][2][3] != 99.0 && fabs(EtaP3[1][2]) <= 0.6) {
0199     double oPh = 1. / dPhiP3[0][2][3];
0200     double oPhi = 1. / dPhiP3[1][2][3];
0201     dPhiP3[0][2][3] = dPhiP3[0][2][3] / (1. + (DT23_1[3] / fabs(oPh + 10.)));
0202     dPhiP3[1][2][3] = dPhiP3[1][2][3] / (1. + (DT23_1[3] / fabs(oPhi + 10.)));
0203   }
0204   if (dPhiP3[1][2][3] != 99.0 && fabs(EtaP3[1][2]) > 0.6) {
0205     double oPh = 1. / dPhiP3[0][2][3];
0206     double oPhi = 1. / dPhiP3[1][2][3];
0207     dPhiP3[0][2][3] = dPhiP3[0][2][3] / (1. + (DT23_2[3] / fabs(oPh + 10.)));
0208     dPhiP3[1][2][3] = dPhiP3[1][2][3] / (1. + (DT23_2[3] / fabs(oPhi + 10.)));
0209   }
0210 
0211   if (dPhiP3[1][2][4] != 99.0 && fabs(EtaP3[1][2]) <= 0.52) {
0212     double oPh = 1. / dPhiP3[0][2][4];
0213     double oPhi = 1. / dPhiP3[1][2][4];
0214     dPhiP3[0][2][4] = dPhiP3[0][2][4] / (1. + (DT24_1[3] / fabs(oPh + 10.)));
0215     dPhiP3[1][2][4] = dPhiP3[1][2][4] / (1. + (DT24_1[3] / fabs(oPhi + 10.)));
0216   }
0217   if (dPhiP3[1][2][4] != 99.0 && fabs(EtaP3[1][2]) > 0.52) {
0218     double oPh = 1. / dPhiP3[0][2][4];
0219     double oPhi = 1. / dPhiP3[1][2][4];
0220     dPhiP3[0][2][4] = dPhiP3[0][2][4] / (1. + (DT24_2[3] / fabs(oPh + 10.)));
0221     dPhiP3[1][2][4] = dPhiP3[1][2][4] / (1. + (DT24_2[3] / fabs(oPhi + 10.)));
0222   }
0223 
0224   if (dPhiP3[1][3][4] != 99.0 && fabs(EtaP3[1][3]) <= 0.51) {
0225     double oPh = 1. / dPhiP3[0][3][4];
0226     double oPhi = 1. / dPhiP3[1][3][4];
0227     dPhiP3[0][3][4] = dPhiP3[0][3][4] / (1. + (DT34_1[3] / fabs(oPh + 10.)));
0228     dPhiP3[1][3][4] = dPhiP3[1][3][4] / (1. + (DT34_1[3] / fabs(oPhi + 10.)));
0229   }
0230   if (dPhiP3[1][3][4] != 99.0 && fabs(EtaP3[1][3]) > 0.51) {
0231     double oPh = 1. / dPhiP3[0][3][4];
0232     double oPhi = 1. / dPhiP3[1][3][4];
0233     dPhiP3[0][3][4] = dPhiP3[0][3][4] / (1. + (DT34_2[3] / fabs(oPh + 10.)));
0234     dPhiP3[1][3][4] = dPhiP3[1][3][4] / (1. + (DT34_2[3] / fabs(oPhi + 10.)));
0235   }
0236 }
0237 
0238 void MuonSeeddPhiScale::ScaleOLdPhi(double dPhiP2[2][5][5], bool MBPath[2][5][3], bool MEPath[2][5][4]) {
0239   if (MBPath[1][1][2] && MEPath[1][1][3]) {
0240     double oPh = 1. / dPhiP2[0][1][1];
0241     double oPhi = 1. / dPhiP2[1][1][1];
0242     dPhiP2[0][1][1] = dPhiP2[0][1][1] / (1. + (OL1213[3] / fabs(oPh + 10.)));
0243     dPhiP2[1][1][1] = dPhiP2[1][1][1] / (1. + (OL1213[3] / fabs(oPhi + 10.)));
0244   }
0245   if (MBPath[1][1][2] && MEPath[1][2][2]) {
0246     double oPh = 1. / dPhiP2[0][1][2];
0247     double oPhi = 1. / dPhiP2[1][1][2];
0248     dPhiP2[0][1][2] = dPhiP2[0][1][2] / (1. + (OL1222[3] / fabs(oPh + 10.)));
0249     dPhiP2[1][1][2] = dPhiP2[1][1][2] / (1. + (OL1222[3] / fabs(oPhi + 10.)));
0250   }
0251   if (MBPath[1][1][2] && MEPath[1][3][2]) {
0252     double oPh = 1. / dPhiP2[0][1][3];
0253     double oPhi = 1. / dPhiP2[1][1][3];
0254     dPhiP2[0][1][3] = dPhiP2[0][1][3] / (1. + (OL1232[3] / fabs(oPh + 10.)));
0255     dPhiP2[1][1][3] = dPhiP2[1][1][3] / (1. + (OL1232[3] / fabs(oPhi + 10.)));
0256   }
0257   if (MBPath[1][2][2] && MEPath[1][1][3]) {
0258     double oPh = 1. / dPhiP2[0][2][1];
0259     double oPhi = 1. / dPhiP2[1][2][1];
0260     dPhiP2[0][2][1] = dPhiP2[0][2][1] / (1. + (OL2213[3] / fabs(oPh + 10.)));
0261     dPhiP2[1][2][1] = dPhiP2[1][2][1] / (1. + (OL2213[3] / fabs(oPhi + 10.)));
0262   }
0263   if (MBPath[1][2][2] && MEPath[1][2][2]) {
0264     double oPh = 1. / dPhiP2[0][2][2];
0265     double oPhi = 1. / dPhiP2[1][2][2];
0266     dPhiP2[0][2][2] = dPhiP2[0][2][2] / (1. + (OL2222[3] / fabs(oPh + 10.)));
0267     dPhiP2[1][2][2] = dPhiP2[1][2][1] / (1. + (OL2222[3] / fabs(oPhi + 10.)));
0268   }
0269 }
0270 
0271 void MuonSeeddPhiScale::ScaleMESingle(double ME_phi[2][5][4], bool MEPath[2][5][4]) {
0272   if (MEPath[1][0][1] && MEPath[0][0][1]) {
0273     double oPh = 1. / ME_phi[0][0][1];
0274     double oPhi = 1. / ME_phi[1][0][1];
0275     ME_phi[0][0][1] = ME_phi[0][0][1] / (1. + (SME_11S[3] / fabs(oPh + 10.)));
0276     ME_phi[1][0][1] = ME_phi[1][0][1] / (1. + (SME_11S[3] / fabs(oPhi + 10.)));
0277   }
0278   if (MEPath[1][1][2] && MEPath[0][1][2]) {
0279     double oPh = 1. / ME_phi[0][1][2];
0280     double oPhi = 1. / ME_phi[1][1][2];
0281     ME_phi[0][1][2] = ME_phi[0][1][2] / (1. + (SME_12S[3] / fabs(oPh + 10.)));
0282     ME_phi[1][1][2] = ME_phi[1][1][2] / (1. + (SME_12S[3] / fabs(oPhi + 10.)));
0283   }
0284   if (MEPath[1][1][3] && MEPath[0][1][3]) {
0285     double oPh = 1. / ME_phi[0][1][3];
0286     double oPhi = 1. / ME_phi[1][1][3];
0287     ME_phi[0][1][3] = ME_phi[0][1][3] / (1. + (SME_13S[3] / fabs(oPh + 10.)));
0288     ME_phi[1][1][3] = ME_phi[1][1][3] / (1. + (SME_13S[3] / fabs(oPhi + 10.)));
0289   }
0290   if (MEPath[1][2][1] && MEPath[0][2][1]) {
0291     double oPh = 1. / ME_phi[0][2][1];
0292     double oPhi = 1. / ME_phi[1][2][1];
0293     ME_phi[0][2][1] = ME_phi[0][2][1] / (1. + (SME_21S[3] / fabs(oPh + 10.)));
0294     ME_phi[1][2][1] = ME_phi[1][2][1] / (1. + (SME_21S[3] / fabs(oPhi + 10.)));
0295   }
0296   if (MEPath[1][2][2] && MEPath[0][2][2]) {
0297     double oPh = 1. / ME_phi[0][2][2];
0298     double oPhi = 1. / ME_phi[1][2][2];
0299     ME_phi[0][2][2] = ME_phi[0][2][2] / (1. + (SME_22S[3] / fabs(oPh + 10.)));
0300     ME_phi[1][2][2] = ME_phi[1][2][2] / (1. + (SME_22S[3] / fabs(oPhi + 10.)));
0301   }
0302 }
0303 
0304 void MuonSeeddPhiScale::ScaleMBSingle(double MB_phi[2][5][3], bool MBPath[2][5][3]) {
0305   if (MBPath[1][1][0] && MBPath[0][1][0]) {
0306     double oPh = 1. / MB_phi[0][1][0];
0307     double oPhi = 1. / MB_phi[1][1][0];
0308     MB_phi[0][1][0] = MB_phi[0][1][0] / (1. + (SMB_10S[3] / fabs(oPh + 10.)));
0309     MB_phi[1][1][0] = MB_phi[1][1][0] / (1. + (SMB_10S[3] / fabs(oPhi + 10.)));
0310   }
0311   if (MBPath[1][1][1] && MBPath[0][1][1]) {
0312     double oPh = 1. / MB_phi[0][1][1];
0313     double oPhi = 1. / MB_phi[1][1][1];
0314     MB_phi[0][1][1] = MB_phi[0][1][1] / (1. + (SMB_11S[3] / fabs(oPh + 10.)));
0315     MB_phi[1][1][1] = MB_phi[1][1][1] / (1. + (SMB_11S[3] / fabs(oPhi + 10.)));
0316   }
0317   if (MBPath[1][1][2] && MBPath[0][1][2]) {
0318     double oPh = 1. / MB_phi[0][1][2];
0319     double oPhi = 1. / MB_phi[1][1][2];
0320     MB_phi[0][1][2] = MB_phi[0][1][2] / (1. + (SMB_12S[3] / fabs(oPh + 10.)));
0321     MB_phi[1][1][2] = MB_phi[1][1][2] / (1. + (SMB_12S[3] / fabs(oPhi + 10.)));
0322   }
0323   if (MBPath[1][2][0] && MBPath[0][2][0]) {
0324     double oPh = 1. / MB_phi[0][2][0];
0325     double oPhi = 1. / MB_phi[1][2][0];
0326     MB_phi[0][2][0] = MB_phi[0][2][0] / (1. + (SMB_20S[3] / fabs(oPh + 10.)));
0327     MB_phi[1][2][0] = MB_phi[1][2][0] / (1. + (SMB_20S[3] / fabs(oPhi + 10.)));
0328   }
0329   if (MBPath[1][2][1] && MBPath[0][2][1]) {
0330     double oPh = 1. / MB_phi[0][2][1];
0331     double oPhi = 1. / MB_phi[1][2][1];
0332     MB_phi[0][2][1] = MB_phi[0][2][1] / (1. + (SMB_21S[3] / fabs(oPh + 10.)));
0333     MB_phi[1][2][1] = MB_phi[1][2][1] / (1. + (SMB_21S[3] / fabs(oPhi + 10.)));
0334   }
0335   if (MBPath[1][2][2] && MBPath[0][2][2]) {
0336     double oPh = 1. / MB_phi[0][2][2];
0337     double oPhi = 1. / MB_phi[1][2][2];
0338     MB_phi[0][2][2] = MB_phi[0][2][2] / (1. + (SMB_22S[3] / fabs(oPh + 10.)));
0339     MB_phi[1][2][2] = MB_phi[1][2][2] / (1. + (SMB_22S[3] / fabs(oPhi + 10.)));
0340   }
0341   if (MBPath[1][3][0] && MBPath[0][3][0]) {
0342     double oPh = 1. / MB_phi[0][3][0];
0343     double oPhi = 1. / MB_phi[1][3][0];
0344     MB_phi[0][3][0] = MB_phi[0][3][0] / (1. + (SMB_30S[3] / fabs(oPh + 10.)));
0345     MB_phi[1][3][0] = MB_phi[1][3][0] / (1. + (SMB_30S[3] / fabs(oPhi + 10.)));
0346   }
0347   if (MBPath[1][3][1] && MBPath[0][3][1]) {
0348     double oPh = 1. / MB_phi[0][3][1];
0349     double oPhi = 1. / MB_phi[1][3][1];
0350     MB_phi[0][3][1] = MB_phi[0][3][1] / (1. + (SMB_31S[3] / fabs(oPh + 10.)));
0351     MB_phi[1][3][1] = MB_phi[1][3][1] / (1. + (SMB_31S[3] / fabs(oPhi + 10.)));
0352   }
0353   if (MBPath[1][3][2] && MBPath[0][3][2]) {
0354     double oPh = 1. / MB_phi[0][3][2];
0355     double oPhi = 1. / MB_phi[1][3][2];
0356     MB_phi[0][3][2] = MB_phi[0][3][2] / (1. + (SMB_32S[3] / fabs(oPh + 10.)));
0357     MB_phi[1][3][2] = MB_phi[1][3][2] / (1. + (SMB_32S[3] / fabs(oPhi + 10.)));
0358   }
0359 }