// Class: ReadElectron_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Electron_Upstream_TMVA TMVA Release : 4.2.1 [262657] ROOT Release : 6.12/06 [396294] Creator : jonesc Date : Fri Jun 15 04:16:38 2018 Host : Linux lcgapp-slc6-x86-64-2.cern.ch 2.6.32-696.18.7.el6.x86_64 #1 SMP Thu Jan 4 13:27:39 CET 2018 x86_64 x86_64 x86_64 GNU/Linux Dir : /var/pcfst/r01/lhcb/jonesc/ANNPID/results/UpgradeSim09cUp02RecoUp01/TrainMixture/TrainPhysTks-EvalPhysTks-NoReweight/GhostAccFrac0.001/PrAccF1.0/KaAccF1.0/PiAccF1.0/TMVA-Upgrade-Sim09cUp02RecoUp01/MLP/Norm/L1SF1.6/L2SF1.2/BP/NCycles750/CE/sigmoid/CVTest15/CVImp1e-16/NotUseRegulator/Electron/Upstream Training events: 1800714 Analysis type : [Classification] #OPT -*-*-*-*-*-*-*-*-*-*-*-*- options -*-*-*-*-*-*-*-*-*-*-*-*- # Set by User: NCycles: "750" [Number of training cycles] HiddenLayers: "28,21" [Specification of hidden layer architecture] NeuronType: "sigmoid" [Neuron activation function type] EstimatorType: "CE" [MSE (Mean Square Estimator) for Gaussian Likelihood or CE(Cross-Entropy) for Bernoulli Likelihood] V: "True" [Verbose output (short form of "VerbosityLevel" below - overrides the latter one)] VarTransform: "Norm" [List of variable transformations performed before training, e.g., "D_Background,P_Signal,G,N_AllClasses" for: "Decorrelation, PCA-transformation, Gaussianisation, Normalisation, each for the given class of events ('AllClasses' denotes all events of all classes, if no class indication is given, 'All' is assumed)"] H: "True" [Print method-specific help message] TrainingMethod: "BP" [Train with Back-Propagation (BP), BFGS Algorithm (BFGS), or Genetic Algorithm (GA - slower and worse)] EpochMonitoring: "True" [Provide epoch-wise monitoring plots according to TestRate (caution: causes big ROOT output file!)] ConvergenceImprove: "1.000000e-16" [Minimum improvement which counts as improvement (<0 means automatic convergence check is turned off)] ConvergenceTests: "15" [Number of steps (without improvement) required for convergence (<0 means automatic convergence check is turned off)] UseRegulator: "False" [Use regulator to avoid over-training] # Default: RandomSeed: "1" [Random seed for initial synapse weights (0 means unique seed for each run; default value '1')] NeuronInputType: "sum" [Neuron input function type] VerbosityLevel: "Verbose" [Verbosity level] CreateMVAPdfs: "False" [Create PDFs for classifier outputs (signal and background)] IgnoreNegWeightsInTraining: "False" [Events with negative weights are ignored in the training (but are included for testing and performance evaluation)] LearningRate: "2.000000e-02" [ANN learning rate parameter] DecayRate: "1.000000e-02" [Decay rate for learning parameter] TestRate: "10" [Test for overtraining performed at each #th epochs] Sampling: "1.000000e+00" [Only 'Sampling' (randomly selected) events are trained each epoch] SamplingEpoch: "1.000000e+00" [Sampling is used for the first 'SamplingEpoch' epochs, afterwards, all events are taken for training] SamplingImportance: "1.000000e+00" [ The sampling weights of events in epochs which successful (worse estimator than before) are multiplied with SamplingImportance, else they are divided.] SamplingTraining: "True" [The training sample is sampled] SamplingTesting: "False" [The testing sample is sampled] ResetStep: "50" [How often BFGS should reset history] Tau: "3.000000e+00" [LineSearch "size step"] BPMode: "sequential" [Back-propagation learning mode: sequential or batch] BatchSize: "-1" [Batch size: number of events/batch, only set if in Batch Mode, -1 for BatchSize=number_of_events] UpdateLimit: "10000" [Maximum times of regulator update] CalculateErrors: "False" [Calculates inverse Hessian matrix at the end of the training to be able to calculate the uncertainties of an MVA value] WeightRange: "1.000000e+00" [Take the events for the estimator calculations from small deviations from the desired value to large deviations only over the weight range] ## #VAR -*-*-*-*-*-*-*-*-*-*-*-* variables *-*-*-*-*-*-*-*-*-*-*-*- NVar 18 TrackP TrackP TrackP TrackP 'F' [315.070007324,4985153] TrackPt TrackPt TrackPt TrackPt 'F' [24.4590244293,933283.125] TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof 'F' [4.26244623668e-05,2.99992012978] TrackNumDof TrackNumDof TrackNumDof TrackNumDof 'I' [2,43] TrackGhostProbability TrackGhostProbability TrackGhostProbability TrackGhostProbability 'F' [0.000715613365173,0.999373674393] TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 'F' [1.46430922943e-09,95.3312683105] TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF 'I' [-1,38] RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas 'I' [0,1] RichAboveMuThres RichAboveMuThres RichAboveMuThres RichAboveMuThres 'I' [0,1] RichAboveKaThres RichAboveKaThres RichAboveKaThres RichAboveKaThres 'I' [0,1] RichDLLe RichDLLe RichDLLe RichDLLe 'F' [-999,95.9525985718] RichDLLmu RichDLLmu RichDLLmu RichDLLmu 'F' [-999,73.0131988525] RichDLLk RichDLLk RichDLLk RichDLLk 'F' [-999,80.8281021118] RichDLLp RichDLLp RichDLLp RichDLLp 'F' [-999,81.6336975098] RichDLLd RichDLLd RichDLLd RichDLLd 'F' [-999,70.2487030029] RichDLLbt RichDLLbt RichDLLbt RichDLLbt 'F' [-999,45.0559997559] InAccBrem InAccBrem InAccBrem InAccBrem 'I' [0,1] BremPIDe BremPIDe BremPIDe BremPIDe 'F' [-999,4.79148387909] NSpec 0 ============================================================================ */ #include #include #include #include #include #ifndef IClassifierReader__def #define IClassifierReader__def class IClassifierReader { public: // constructor IClassifierReader() : fStatusIsClean( true ) {} virtual ~IClassifierReader() {} // return classifier response virtual double GetMvaValue( const std::vector& inputValues ) const = 0; // returns classifier status bool IsStatusClean() const { return fStatusIsClean; } protected: bool fStatusIsClean; }; #endif class ReadElectron_Upstream_TMVA : public IClassifierReader { public: // constructor ReadElectron_Upstream_TMVA( std::vector& theInputVars ) : IClassifierReader(), fClassName( "ReadElectron_Upstream_TMVA" ), fNvars( 18 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackGhostProbability", "TrackFitVeloChi2", "TrackFitVeloNDoF", "RichUsedR1Gas", "RichAboveMuThres", "RichAboveKaThres", "RichDLLe", "RichDLLmu", "RichDLLk", "RichDLLp", "RichDLLd", "RichDLLbt", "InAccBrem", "BremPIDe" }; // sanity checks if (theInputVars.size() <= 0) { std::cout << "Problem in class \"" << fClassName << "\": empty input vector" << std::endl; fStatusIsClean = false; } if (theInputVars.size() != fNvars) { std::cout << "Problem in class \"" << fClassName << "\": mismatch in number of input values: " << theInputVars.size() << " != " << fNvars << std::endl; fStatusIsClean = false; } // validate input variables for (size_t ivar = 0; ivar < theInputVars.size(); ivar++) { if (theInputVars[ivar] != inputVars[ivar]) { std::cout << "Problem in class \"" << fClassName << "\": mismatch in input variable names" << std::endl << " for variable [" << ivar << "]: " << theInputVars[ivar].c_str() << " != " << inputVars[ivar] << std::endl; fStatusIsClean = false; } } // initialize min and max vectors (for normalisation) fVmin[0] = -1; fVmax[0] = 1; fVmin[1] = -1; fVmax[1] = 1; fVmin[2] = -1; fVmax[2] = 1; fVmin[3] = -1; fVmax[3] = 0.99999988079071; fVmin[4] = -1; fVmax[4] = 1; fVmin[5] = -1; fVmax[5] = 1; fVmin[6] = -1; fVmax[6] = 1; fVmin[7] = -1; fVmax[7] = 1; fVmin[8] = -1; fVmax[8] = 1; fVmin[9] = -1; fVmax[9] = 1; fVmin[10] = -1; fVmax[10] = 1; fVmin[11] = -1; fVmax[11] = 1; fVmin[12] = -1; fVmax[12] = 1; fVmin[13] = -1; fVmax[13] = 0.99999988079071; fVmin[14] = -1; fVmax[14] = 1; fVmin[15] = -1; fVmax[15] = 1; fVmin[16] = -1; fVmax[16] = 1; fVmin[17] = -1; fVmax[17] = 1; // initialize input variable types fType[0] = 'F'; fType[1] = 'F'; fType[2] = 'F'; fType[3] = 'I'; fType[4] = 'F'; fType[5] = 'F'; fType[6] = 'I'; fType[7] = 'I'; fType[8] = 'I'; fType[9] = 'I'; fType[10] = 'F'; fType[11] = 'F'; fType[12] = 'F'; fType[13] = 'F'; fType[14] = 'F'; fType[15] = 'F'; fType[16] = 'I'; fType[17] = 'F'; // initialize constants Initialize(); // initialize transformation InitTransform(); } // destructor virtual ~ReadElectron_Upstream_TMVA() { Clear(); // method-specific } // the classifier response // "inputValues" is a vector of input values in the same order as the // variables given to the constructor double GetMvaValue( const std::vector& inputValues ) const; private: // method-specific destructor void Clear(); // input variable transformation double fMin_1[3][18]; double fMax_1[3][18]; void InitTransform_1(); void Transform_1( std::vector & iv, int sigOrBgd ) const; void InitTransform(); void Transform( std::vector & iv, int sigOrBgd ) const; // common member variables const char* fClassName; const size_t fNvars; size_t GetNvar() const { return fNvars; } char GetType( int ivar ) const { return fType[ivar]; } // normalisation of input variables const bool fIsNormalised; bool IsNormalised() const { return fIsNormalised; } double fVmin[18]; double fVmax[18]; double NormVariable( double x, double xmin, double xmax ) const { // normalise to output range: [-1, 1] return 2*(x - xmin)/(xmax - xmin) - 1.0; } // type of input variable: 'F' or 'I' char fType[18]; // initialize internal variables void Initialize(); double GetMvaValue__( const std::vector& inputValues ) const; // private members (method specific) double ActivationFnc(double x) const; double OutputActivationFnc(double x) const; int fLayers; int fLayerSize[4]; double fWeightMatrix0to1[29][19]; // weight matrix from layer 0 to 1 double fWeightMatrix1to2[22][29]; // weight matrix from layer 1 to 2 double fWeightMatrix2to3[1][22]; // weight matrix from layer 2 to 3 }; inline void ReadElectron_Upstream_TMVA::Initialize() { // build network structure fLayers = 4; fLayerSize[0] = 19; fLayerSize[1] = 29; fLayerSize[2] = 22; fLayerSize[3] = 1; // weight matrix from layer 0 to 1 fWeightMatrix0to1[0][0] = -0.0538971884299226; fWeightMatrix0to1[1][0] = 2.06412422765009; fWeightMatrix0to1[2][0] = 0.620239687932746; fWeightMatrix0to1[3][0] = 2.05601979213104; fWeightMatrix0to1[4][0] = -1.88274415040017; fWeightMatrix0to1[5][0] = -9.6334312422008; fWeightMatrix0to1[6][0] = -1.1089448723768; fWeightMatrix0to1[7][0] = 3.15182557718596; fWeightMatrix0to1[8][0] = -0.0561790326808899; fWeightMatrix0to1[9][0] = 3.72671476783534; fWeightMatrix0to1[10][0] = -0.38562729900685; fWeightMatrix0to1[11][0] = -0.0131211650943929; fWeightMatrix0to1[12][0] = -5.01755610049532; fWeightMatrix0to1[13][0] = -0.989743768770076; fWeightMatrix0to1[14][0] = 0.158619448418379; fWeightMatrix0to1[15][0] = 8.59568883071982; fWeightMatrix0to1[16][0] = -0.613285877094853; fWeightMatrix0to1[17][0] = 2.12811779135361; fWeightMatrix0to1[18][0] = 0.716909535319692; fWeightMatrix0to1[19][0] = 1.30826936638915; fWeightMatrix0to1[20][0] = -1.77994278320359; fWeightMatrix0to1[21][0] = 1.22848055956024; fWeightMatrix0to1[22][0] = 0.5182859038715; fWeightMatrix0to1[23][0] = 0.492390709750078; fWeightMatrix0to1[24][0] = -1.77621896090027; fWeightMatrix0to1[25][0] = 0.180177468519567; fWeightMatrix0to1[26][0] = 3.17120560985643; fWeightMatrix0to1[27][0] = -0.558970367051556; fWeightMatrix0to1[0][1] = -1.6512505987855; fWeightMatrix0to1[1][1] = 0.180874162337078; fWeightMatrix0to1[2][1] = -0.751959284225579; fWeightMatrix0to1[3][1] = 1.56121477571358; fWeightMatrix0to1[4][1] = -1.08810465601308; fWeightMatrix0to1[5][1] = -9.64299067876328; fWeightMatrix0to1[6][1] = -0.245167912360565; fWeightMatrix0to1[7][1] = -0.0102101634160985; fWeightMatrix0to1[8][1] = -0.470639593378344; fWeightMatrix0to1[9][1] = 7.0512801990157; fWeightMatrix0to1[10][1] = -0.71901850672982; fWeightMatrix0to1[11][1] = 1.39011879622427; fWeightMatrix0to1[12][1] = -2.54347169714415; fWeightMatrix0to1[13][1] = 0.73343110363909; fWeightMatrix0to1[14][1] = 2.65666098568194; fWeightMatrix0to1[15][1] = 9.95894658791891; fWeightMatrix0to1[16][1] = -0.529869001562803; fWeightMatrix0to1[17][1] = -1.29534349605309; fWeightMatrix0to1[18][1] = 1.33448275630508; fWeightMatrix0to1[19][1] = -0.114645318494982; fWeightMatrix0to1[20][1] = 0.47860437832207; fWeightMatrix0to1[21][1] = 3.06455308487919; fWeightMatrix0to1[22][1] = 1.91663643856401; fWeightMatrix0to1[23][1] = 1.25705372439445; fWeightMatrix0to1[24][1] = -1.39875938349653; fWeightMatrix0to1[25][1] = 1.91547161841626; fWeightMatrix0to1[26][1] = -1.33456678411518; fWeightMatrix0to1[27][1] = -0.556464665729599; fWeightMatrix0to1[0][2] = -1.27507536223242; fWeightMatrix0to1[1][2] = -2.86625629653311; fWeightMatrix0to1[2][2] = 1.81688742917502; fWeightMatrix0to1[3][2] = 2.37650475117187; fWeightMatrix0to1[4][2] = 0.749623005660645; fWeightMatrix0to1[5][2] = -1.39653578462975; fWeightMatrix0to1[6][2] = -0.250017659129912; fWeightMatrix0to1[7][2] = 0.349550915662798; fWeightMatrix0to1[8][2] = 0.668915465098606; fWeightMatrix0to1[9][2] = 0.0162857393716877; fWeightMatrix0to1[10][2] = 1.0624773878974; fWeightMatrix0to1[11][2] = -1.3593187880967; fWeightMatrix0to1[12][2] = -1.31752645999809; fWeightMatrix0to1[13][2] = -1.55010599705437; fWeightMatrix0to1[14][2] = 0.226090424436021; fWeightMatrix0to1[15][2] = -0.538521085599702; fWeightMatrix0to1[16][2] = 0.465147738473738; fWeightMatrix0to1[17][2] = 0.860335354643438; fWeightMatrix0to1[18][2] = 1.07530767897025; fWeightMatrix0to1[19][2] = 0.357832215662407; fWeightMatrix0to1[20][2] = -1.21847586877579; fWeightMatrix0to1[21][2] = -0.821640775885389; fWeightMatrix0to1[22][2] = 4.96131193735168; fWeightMatrix0to1[23][2] = -0.666062363621237; fWeightMatrix0to1[24][2] = 0.273058248052476; fWeightMatrix0to1[25][2] = 2.72805146977234; fWeightMatrix0to1[26][2] = 0.447621192196429; fWeightMatrix0to1[27][2] = -0.417189471567763; fWeightMatrix0to1[0][3] = -1.28390519972689; fWeightMatrix0to1[1][3] = -1.0784421693986; fWeightMatrix0to1[2][3] = 3.76201509578282; fWeightMatrix0to1[3][3] = -1.01636857806221; fWeightMatrix0to1[4][3] = 0.595203123818453; fWeightMatrix0to1[5][3] = 3.22107740955209; fWeightMatrix0to1[6][3] = 0.962707833365126; fWeightMatrix0to1[7][3] = -1.76048192351824; fWeightMatrix0to1[8][3] = 4.56023500174066; fWeightMatrix0to1[9][3] = -5.35131027951286; fWeightMatrix0to1[10][3] = 1.17116389453524; fWeightMatrix0to1[11][3] = 2.77776767859991; fWeightMatrix0to1[12][3] = 5.82429270947898; fWeightMatrix0to1[13][3] = -7.37812589413747; fWeightMatrix0to1[14][3] = -0.701566342920291; fWeightMatrix0to1[15][3] = 4.62351717094851; fWeightMatrix0to1[16][3] = -3.29157167112029; fWeightMatrix0to1[17][3] = -4.08590868090664; fWeightMatrix0to1[18][3] = 0.869349971922487; fWeightMatrix0to1[19][3] = -0.896702142650812; fWeightMatrix0to1[20][3] = 2.34225520873705; fWeightMatrix0to1[21][3] = 2.13644165882111; fWeightMatrix0to1[22][3] = -1.42918247363429; fWeightMatrix0to1[23][3] = -1.06068697714308; fWeightMatrix0to1[24][3] = 1.07613284235161; fWeightMatrix0to1[25][3] = 2.18156549575199; fWeightMatrix0to1[26][3] = -0.899261634500673; fWeightMatrix0to1[27][3] = 0.355760850153548; fWeightMatrix0to1[0][4] = 0.00866880210624248; fWeightMatrix0to1[1][4] = 0.771984947918511; fWeightMatrix0to1[2][4] = -1.04409803273666; fWeightMatrix0to1[3][4] = 1.67562172962175; fWeightMatrix0to1[4][4] = 1.7806141360577; fWeightMatrix0to1[5][4] = -0.165198108233277; fWeightMatrix0to1[6][4] = 0.621986702537157; fWeightMatrix0to1[7][4] = -23.0685521766336; fWeightMatrix0to1[8][4] = 0.483063616493435; fWeightMatrix0to1[9][4] = 1.50283753612394; fWeightMatrix0to1[10][4] = 1.15125248161813; fWeightMatrix0to1[11][4] = 1.62318788539471; fWeightMatrix0to1[12][4] = 4.00028290104262; fWeightMatrix0to1[13][4] = 1.34771527498506; fWeightMatrix0to1[14][4] = 0.80691714128574; fWeightMatrix0to1[15][4] = -0.0984979559770789; fWeightMatrix0to1[16][4] = -3.02230488574368; fWeightMatrix0to1[17][4] = -0.757900641054596; fWeightMatrix0to1[18][4] = 0.270806634931606; fWeightMatrix0to1[19][4] = -2.28516067333549; fWeightMatrix0to1[20][4] = 1.10686157129835; fWeightMatrix0to1[21][4] = -2.43911399626411; fWeightMatrix0to1[22][4] = -0.293651790946847; fWeightMatrix0to1[23][4] = 2.49101948485868; fWeightMatrix0to1[24][4] = 3.88972057831099; fWeightMatrix0to1[25][4] = -3.66467389134387; fWeightMatrix0to1[26][4] = -0.539132456421354; fWeightMatrix0to1[27][4] = 1.80900724034514; fWeightMatrix0to1[0][5] = 1.35087342759097; fWeightMatrix0to1[1][5] = -1.00009761916472; fWeightMatrix0to1[2][5] = -3.22441069521687; fWeightMatrix0to1[3][5] = 0.670543137096266; fWeightMatrix0to1[4][5] = -3.02280637989696; fWeightMatrix0to1[5][5] = 3.2609092783209; fWeightMatrix0to1[6][5] = 1.08384948148585; fWeightMatrix0to1[7][5] = -2.54503207884809; fWeightMatrix0to1[8][5] = -1.82048616022137; fWeightMatrix0to1[9][5] = -1.56111380734817; fWeightMatrix0to1[10][5] = -1.54345177568733; fWeightMatrix0to1[11][5] = 0.274916975369653; fWeightMatrix0to1[12][5] = 6.28722255299137; fWeightMatrix0to1[13][5] = 1.31489281138922; fWeightMatrix0to1[14][5] = 0.499827797726661; fWeightMatrix0to1[15][5] = 1.0587149921514; fWeightMatrix0to1[16][5] = 2.7122108093059; fWeightMatrix0to1[17][5] = 1.4247695786837; fWeightMatrix0to1[18][5] = 1.14426126432162; fWeightMatrix0to1[19][5] = -2.60177609099166; fWeightMatrix0to1[20][5] = 3.52676811898208; fWeightMatrix0to1[21][5] = -0.65296570815017; fWeightMatrix0to1[22][5] = 0.716160949712834; fWeightMatrix0to1[23][5] = -0.235272817418192; fWeightMatrix0to1[24][5] = -0.424713967390118; fWeightMatrix0to1[25][5] = 1.17675428803781; fWeightMatrix0to1[26][5] = -1.07684348627668; fWeightMatrix0to1[27][5] = 1.46154120328445; fWeightMatrix0to1[0][6] = -1.04992053026976; fWeightMatrix0to1[1][6] = -1.19037125341777; fWeightMatrix0to1[2][6] = -1.48143178345227; fWeightMatrix0to1[3][6] = 0.882921461682133; fWeightMatrix0to1[4][6] = -0.503284322101512; fWeightMatrix0to1[5][6] = -3.34145157405962; fWeightMatrix0to1[6][6] = 2.67356510935387; fWeightMatrix0to1[7][6] = 1.9028824258944; fWeightMatrix0to1[8][6] = -2.49434067020463; fWeightMatrix0to1[9][6] = 7.28239071598923; fWeightMatrix0to1[10][6] = -1.25974560637939; fWeightMatrix0to1[11][6] = -2.36218802750361; fWeightMatrix0to1[12][6] = -6.62881777503198; fWeightMatrix0to1[13][6] = 3.76378759004202; fWeightMatrix0to1[14][6] = 1.71829739363725; fWeightMatrix0to1[15][6] = -5.00786820032375; fWeightMatrix0to1[16][6] = 2.79400122387231; fWeightMatrix0to1[17][6] = -2.1577633594266; fWeightMatrix0to1[18][6] = 0.454568444095353; fWeightMatrix0to1[19][6] = 0.514895984186851; fWeightMatrix0to1[20][6] = 0.431213121787366; fWeightMatrix0to1[21][6] = -3.29752713571036; fWeightMatrix0to1[22][6] = 2.11726523238809; fWeightMatrix0to1[23][6] = 0.874118777161773; fWeightMatrix0to1[24][6] = 3.34881357182804; fWeightMatrix0to1[25][6] = 1.70925120567248; fWeightMatrix0to1[26][6] = 0.98652959906161; fWeightMatrix0to1[27][6] = -0.707522309362357; fWeightMatrix0to1[0][7] = -1.71310081154318; fWeightMatrix0to1[1][7] = 1.17293883998678; fWeightMatrix0to1[2][7] = 3.81813553671273; fWeightMatrix0to1[3][7] = -1.55325654570256; fWeightMatrix0to1[4][7] = 0.594981050766698; fWeightMatrix0to1[5][7] = 7.81077124241514; fWeightMatrix0to1[6][7] = 0.925539643395043; fWeightMatrix0to1[7][7] = -6.41565660254171; fWeightMatrix0to1[8][7] = 2.63519868396097; fWeightMatrix0to1[9][7] = -4.20839278258943; fWeightMatrix0to1[10][7] = 1.2559430733006; fWeightMatrix0to1[11][7] = 0.0529306084255506; fWeightMatrix0to1[12][7] = 5.41990125646254; fWeightMatrix0to1[13][7] = 0.34848035328536; fWeightMatrix0to1[14][7] = -0.740312161500775; fWeightMatrix0to1[15][7] = -2.33712958879856; fWeightMatrix0to1[16][7] = -3.50623403845919; fWeightMatrix0to1[17][7] = -0.818345402671117; fWeightMatrix0to1[18][7] = 1.10731630339429; fWeightMatrix0to1[19][7] = 0.847436978273551; fWeightMatrix0to1[20][7] = 2.83797268982142; fWeightMatrix0to1[21][7] = 1.10130988784322; fWeightMatrix0to1[22][7] = 1.31606307982233; fWeightMatrix0to1[23][7] = -1.85963760777693; fWeightMatrix0to1[24][7] = -1.2079885482225; fWeightMatrix0to1[25][7] = -0.315085245495765; fWeightMatrix0to1[26][7] = -1.67827264770591; fWeightMatrix0to1[27][7] = 0.155532475690007; fWeightMatrix0to1[0][8] = 1.91692147199461; fWeightMatrix0to1[1][8] = -1.38971470046587; fWeightMatrix0to1[2][8] = 0.214859059150096; fWeightMatrix0to1[3][8] = -0.287012673627466; fWeightMatrix0to1[4][8] = 0.713161863920036; fWeightMatrix0to1[5][8] = 0.226439844735491; fWeightMatrix0to1[6][8] = 0.0739769164866306; fWeightMatrix0to1[7][8] = -0.145730940435488; fWeightMatrix0to1[8][8] = -0.185110865721368; fWeightMatrix0to1[9][8] = -0.47691942662827; fWeightMatrix0to1[10][8] = -0.151899629942175; fWeightMatrix0to1[11][8] = -1.45768505295552; fWeightMatrix0to1[12][8] = 0.0409747531192697; fWeightMatrix0to1[13][8] = -0.05280474810016; fWeightMatrix0to1[14][8] = -2.72828449819547; fWeightMatrix0to1[15][8] = 0.306721422286949; fWeightMatrix0to1[16][8] = 0.416431196601938; fWeightMatrix0to1[17][8] = -0.192011839627286; fWeightMatrix0to1[18][8] = -1.38824746609268; fWeightMatrix0to1[19][8] = 0.513273542720338; fWeightMatrix0to1[20][8] = -0.084717648746197; fWeightMatrix0to1[21][8] = 0.723716042792862; fWeightMatrix0to1[22][8] = 0.430289034723142; fWeightMatrix0to1[23][8] = -0.345942845448283; fWeightMatrix0to1[24][8] = 0.859556842623195; fWeightMatrix0to1[25][8] = -0.155953591782058; fWeightMatrix0to1[26][8] = -0.458737315684415; fWeightMatrix0to1[27][8] = -0.849127947756839; fWeightMatrix0to1[0][9] = 1.95172061754219; fWeightMatrix0to1[1][9] = 2.39596343199618; fWeightMatrix0to1[2][9] = 0.471706269973714; fWeightMatrix0to1[3][9] = -1.01876865821632; fWeightMatrix0to1[4][9] = 0.247085337094914; fWeightMatrix0to1[5][9] = 0.453496153341847; fWeightMatrix0to1[6][9] = -2.10251354583528; fWeightMatrix0to1[7][9] = -0.118072647046943; fWeightMatrix0to1[8][9] = -0.866646340064813; fWeightMatrix0to1[9][9] = 0.35370040518825; fWeightMatrix0to1[10][9] = 0.752415023175564; fWeightMatrix0to1[11][9] = -0.435268411869172; fWeightMatrix0to1[12][9] = 0.204320938393166; fWeightMatrix0to1[13][9] = -0.779036307635407; fWeightMatrix0to1[14][9] = -3.34492966039355; fWeightMatrix0to1[15][9] = -0.513862173177094; fWeightMatrix0to1[16][9] = -2.57741233149588; fWeightMatrix0to1[17][9] = -1.68996195887597; fWeightMatrix0to1[18][9] = -0.471846391358336; fWeightMatrix0to1[19][9] = 0.830605191785413; fWeightMatrix0to1[20][9] = 0.585204582168722; fWeightMatrix0to1[21][9] = 0.170796118180075; fWeightMatrix0to1[22][9] = 0.233395805507795; fWeightMatrix0to1[23][9] = -1.08351890459573; fWeightMatrix0to1[24][9] = 4.49192408404278; fWeightMatrix0to1[25][9] = 0.594197177860711; fWeightMatrix0to1[26][9] = -0.68311294130303; fWeightMatrix0to1[27][9] = -0.00598753354242452; fWeightMatrix0to1[0][10] = -0.263055674104691; fWeightMatrix0to1[1][10] = -0.467797745637286; fWeightMatrix0to1[2][10] = -26.3904292681137; fWeightMatrix0to1[3][10] = -0.715140486617619; fWeightMatrix0to1[4][10] = -11.1851000805465; fWeightMatrix0to1[5][10] = -48.724404008883; fWeightMatrix0to1[6][10] = -0.600263771815316; fWeightMatrix0to1[7][10] = 22.9716188406516; fWeightMatrix0to1[8][10] = -8.24818341165325; fWeightMatrix0to1[9][10] = 40.2751844833552; fWeightMatrix0to1[10][10] = -16.2424182510983; fWeightMatrix0to1[11][10] = 0.613543567404424; fWeightMatrix0to1[12][10] = -27.8158278487916; fWeightMatrix0to1[13][10] = 7.22304193600651; fWeightMatrix0to1[14][10] = 2.08960413085961; fWeightMatrix0to1[15][10] = -37.2519627659979; fWeightMatrix0to1[16][10] = 6.32609701689579; fWeightMatrix0to1[17][10] = 0.618479148516037; fWeightMatrix0to1[18][10] = -2.34822346581759; fWeightMatrix0to1[19][10] = -3.3690122417786; fWeightMatrix0to1[20][10] = -6.41485614321807; fWeightMatrix0to1[21][10] = -7.99322469418092; fWeightMatrix0to1[22][10] = 9.32913939247138; fWeightMatrix0to1[23][10] = -1.13328896666494; fWeightMatrix0to1[24][10] = -1.01983303997307; fWeightMatrix0to1[25][10] = 0.564558045692042; fWeightMatrix0to1[26][10] = -24.1995706963496; fWeightMatrix0to1[27][10] = -2.08399057174419; fWeightMatrix0to1[0][11] = -0.945049342822045; fWeightMatrix0to1[1][11] = -1.45287669571447; fWeightMatrix0to1[2][11] = 5.83794558151931; fWeightMatrix0to1[3][11] = -1.51682480793468; fWeightMatrix0to1[4][11] = 1.58201104574622; fWeightMatrix0to1[5][11] = 14.0315275884659; fWeightMatrix0to1[6][11] = 1.10632602957177; fWeightMatrix0to1[7][11] = -12.6179227884271; fWeightMatrix0to1[8][11] = 7.70623843105252; fWeightMatrix0to1[9][11] = -14.0353236382039; fWeightMatrix0to1[10][11] = 5.61735033932577; fWeightMatrix0to1[11][11] = 1.26374075213286; fWeightMatrix0to1[12][11] = 5.53052981174609; fWeightMatrix0to1[13][11] = -4.38992631068977; fWeightMatrix0to1[14][11] = -0.18637690560611; fWeightMatrix0to1[15][11] = 0.421568635959302; fWeightMatrix0to1[16][11] = -2.60452018101647; fWeightMatrix0to1[17][11] = 2.48771783663528; fWeightMatrix0to1[18][11] = 0.786444036422812; fWeightMatrix0to1[19][11] = 1.65916102505985; fWeightMatrix0to1[20][11] = 0.699930407951625; fWeightMatrix0to1[21][11] = 1.90785708566996; fWeightMatrix0to1[22][11] = -4.88823947701706; fWeightMatrix0to1[23][11] = 0.501639116535023; fWeightMatrix0to1[24][11] = -1.60857666189145; fWeightMatrix0to1[25][11] = -1.4989699756269; fWeightMatrix0to1[26][11] = -2.81290899296816; fWeightMatrix0to1[27][11] = 0.529471937792513; fWeightMatrix0to1[0][12] = 0.238956595423777; fWeightMatrix0to1[1][12] = 1.29359431288787; fWeightMatrix0to1[2][12] = 3.29818647085647; fWeightMatrix0to1[3][12] = -0.341421152735557; fWeightMatrix0to1[4][12] = 0.187656500316861; fWeightMatrix0to1[5][12] = 0.0628588324093341; fWeightMatrix0to1[6][12] = 2.69662354650261; fWeightMatrix0to1[7][12] = -6.39415631231593; fWeightMatrix0to1[8][12] = -1.08283541401095; fWeightMatrix0to1[9][12] = -3.40432646651191; fWeightMatrix0to1[10][12] = 1.02593828257334; fWeightMatrix0to1[11][12] = 0.263277728906479; fWeightMatrix0to1[12][12] = 4.2020674686229; fWeightMatrix0to1[13][12] = -2.99807701296264; fWeightMatrix0to1[14][12] = 1.98781678549002; fWeightMatrix0to1[15][12] = 16.7562236541538; fWeightMatrix0to1[16][12] = -1.15708540736665; fWeightMatrix0to1[17][12] = -0.703927292320133; fWeightMatrix0to1[18][12] = -1.46145357948585; fWeightMatrix0to1[19][12] = -2.29594104676948; fWeightMatrix0to1[20][12] = -0.66902345540145; fWeightMatrix0to1[21][12] = 2.94370646582484; fWeightMatrix0to1[22][12] = -1.32876981883821; fWeightMatrix0to1[23][12] = -1.27080911406842; fWeightMatrix0to1[24][12] = 0.711630684434943; fWeightMatrix0to1[25][12] = -1.9869031634292; fWeightMatrix0to1[26][12] = 5.64560218127513; fWeightMatrix0to1[27][12] = -2.34445078105903; fWeightMatrix0to1[0][13] = 0.925382629161573; fWeightMatrix0to1[1][13] = -1.36421426957354; fWeightMatrix0to1[2][13] = 0.0770592179206911; fWeightMatrix0to1[3][13] = -0.736689014464388; fWeightMatrix0to1[4][13] = -0.401087326478902; fWeightMatrix0to1[5][13] = -1.73891088923676; fWeightMatrix0to1[6][13] = 1.82725467032042; fWeightMatrix0to1[7][13] = -6.24225110686834; fWeightMatrix0to1[8][13] = -1.99572767832562; fWeightMatrix0to1[9][13] = 0.0828642710553797; fWeightMatrix0to1[10][13] = 1.76094437638216; fWeightMatrix0to1[11][13] = 0.488895095477255; fWeightMatrix0to1[12][13] = 2.68212430933295; fWeightMatrix0to1[13][13] = -0.599937219269343; fWeightMatrix0to1[14][13] = 2.93560790647453; fWeightMatrix0to1[15][13] = 14.2858702627832; fWeightMatrix0to1[16][13] = -2.67435955729171; fWeightMatrix0to1[17][13] = -1.02659759014386; fWeightMatrix0to1[18][13] = -2.25647780819985; fWeightMatrix0to1[19][13] = 0.635163146330823; fWeightMatrix0to1[20][13] = 1.33442913748606; fWeightMatrix0to1[21][13] = 0.91062418872975; fWeightMatrix0to1[22][13] = 0.460391962332308; fWeightMatrix0to1[23][13] = 0.83287653263212; fWeightMatrix0to1[24][13] = 1.50232990640442; fWeightMatrix0to1[25][13] = -1.05182932840227; fWeightMatrix0to1[26][13] = 7.86226542906932; fWeightMatrix0to1[27][13] = 0.0226749428557102; fWeightMatrix0to1[0][14] = -1.98221830036139; fWeightMatrix0to1[1][14] = -0.282463445497739; fWeightMatrix0to1[2][14] = -0.211483910341637; fWeightMatrix0to1[3][14] = 0.751340354025029; fWeightMatrix0to1[4][14] = 0.700103338593737; fWeightMatrix0to1[5][14] = -0.583065608188124; fWeightMatrix0to1[6][14] = 2.46821895980391; fWeightMatrix0to1[7][14] = -5.15363035760606; fWeightMatrix0to1[8][14] = 1.12104904030889; fWeightMatrix0to1[9][14] = 1.21794296988125; fWeightMatrix0to1[10][14] = 0.874168267997512; fWeightMatrix0to1[11][14] = -1.03440595814986; fWeightMatrix0to1[12][14] = 3.60835732690103; fWeightMatrix0to1[13][14] = -4.0046863540675; fWeightMatrix0to1[14][14] = 2.21287466703575; fWeightMatrix0to1[15][14] = 14.7850631451724; fWeightMatrix0to1[16][14] = -2.19008621936154; fWeightMatrix0to1[17][14] = -1.1461672612957; fWeightMatrix0to1[18][14] = -0.587956547911903; fWeightMatrix0to1[19][14] = -1.45001601294551; fWeightMatrix0to1[20][14] = 0.695101803156505; fWeightMatrix0to1[21][14] = -1.54375076812295; fWeightMatrix0to1[22][14] = -0.252941702850008; fWeightMatrix0to1[23][14] = -0.318393712365347; fWeightMatrix0to1[24][14] = 1.37337874754623; fWeightMatrix0to1[25][14] = 1.82483397330534; fWeightMatrix0to1[26][14] = 7.59688343254074; fWeightMatrix0to1[27][14] = -1.2633816522551; fWeightMatrix0to1[0][15] = -0.632767545341118; fWeightMatrix0to1[1][15] = 0.466319421966759; fWeightMatrix0to1[2][15] = 1.69661047810822; fWeightMatrix0to1[3][15] = -2.02425336452766; fWeightMatrix0to1[4][15] = -1.3949280643036; fWeightMatrix0to1[5][15] = -3.18781048246381; fWeightMatrix0to1[6][15] = -0.523859984721964; fWeightMatrix0to1[7][15] = -6.94853306877899; fWeightMatrix0to1[8][15] = -2.83167978437354; fWeightMatrix0to1[9][15] = 1.68177885933933; fWeightMatrix0to1[10][15] = -0.181061547878672; fWeightMatrix0to1[11][15] = -1.816869971256; fWeightMatrix0to1[12][15] = 0.257112469984061; fWeightMatrix0to1[13][15] = -2.04390739620923; fWeightMatrix0to1[14][15] = 4.23443239526968; fWeightMatrix0to1[15][15] = 14.5095042208353; fWeightMatrix0to1[16][15] = -0.571746418605066; fWeightMatrix0to1[17][15] = -1.0452508789326; fWeightMatrix0to1[18][15] = -2.49849528677903; fWeightMatrix0to1[19][15] = -0.514293088495999; fWeightMatrix0to1[20][15] = -0.967172121175106; fWeightMatrix0to1[21][15] = -1.51076046894945; fWeightMatrix0to1[22][15] = -1.23116436432917; fWeightMatrix0to1[23][15] = -0.129580461257528; fWeightMatrix0to1[24][15] = -1.83703720741667; fWeightMatrix0to1[25][15] = 2.05362680520153; fWeightMatrix0to1[26][15] = 7.27332689701313; fWeightMatrix0to1[27][15] = -0.625359656936001; fWeightMatrix0to1[0][16] = -1.70946777055504; fWeightMatrix0to1[1][16] = -0.896133351840319; fWeightMatrix0to1[2][16] = 2.24464752194572; fWeightMatrix0to1[3][16] = -0.894979365778251; fWeightMatrix0to1[4][16] = 1.05045284986378; fWeightMatrix0to1[5][16] = 5.41195760450039; fWeightMatrix0to1[6][16] = 1.27843009590481; fWeightMatrix0to1[7][16] = -3.06109376070534; fWeightMatrix0to1[8][16] = 1.68506316911232; fWeightMatrix0to1[9][16] = -4.67109745356172; fWeightMatrix0to1[10][16] = 3.0539205027234; fWeightMatrix0to1[11][16] = 2.64229201736929; fWeightMatrix0to1[12][16] = 2.07086107447964; fWeightMatrix0to1[13][16] = 0.576190728635241; fWeightMatrix0to1[14][16] = -0.889360089431669; fWeightMatrix0to1[15][16] = 2.99311818435394; fWeightMatrix0to1[16][16] = 2.27927701534671; fWeightMatrix0to1[17][16] = 0.52606934309473; fWeightMatrix0to1[18][16] = -0.901513275580113; fWeightMatrix0to1[19][16] = -0.482269179199248; fWeightMatrix0to1[20][16] = 0.011721833739568; fWeightMatrix0to1[21][16] = 2.91526149970366; fWeightMatrix0to1[22][16] = -1.27710995563569; fWeightMatrix0to1[23][16] = -0.617878215954266; fWeightMatrix0to1[24][16] = -2.15487848800866; fWeightMatrix0to1[25][16] = 1.12938389514842; fWeightMatrix0to1[26][16] = 0.178144046327874; fWeightMatrix0to1[27][16] = -1.57797544244697; fWeightMatrix0to1[0][17] = -1.44148373116659; fWeightMatrix0to1[1][17] = -1.03762133295987; fWeightMatrix0to1[2][17] = -2.19085213814286; fWeightMatrix0to1[3][17] = 1.14607826330814; fWeightMatrix0to1[4][17] = -1.44274261872014; fWeightMatrix0to1[5][17] = -5.45297381523971; fWeightMatrix0to1[6][17] = 1.33284929333647; fWeightMatrix0to1[7][17] = 3.17987321356885; fWeightMatrix0to1[8][17] = -1.34070693424117; fWeightMatrix0to1[9][17] = 4.7418455362677; fWeightMatrix0to1[10][17] = -2.57031375110798; fWeightMatrix0to1[11][17] = -0.760580662120919; fWeightMatrix0to1[12][17] = -1.1859138346848; fWeightMatrix0to1[13][17] = 2.51084502726467; fWeightMatrix0to1[14][17] = -0.0110502267768219; fWeightMatrix0to1[15][17] = -2.80171701607721; fWeightMatrix0to1[16][17] = 0.229309333448647; fWeightMatrix0to1[17][17] = -1.65241905230034; fWeightMatrix0to1[18][17] = -0.359607981446333; fWeightMatrix0to1[19][17] = -1.01233966532716; fWeightMatrix0to1[20][17] = -0.2426024105317; fWeightMatrix0to1[21][17] = -0.509790624843429; fWeightMatrix0to1[22][17] = 1.52343482402491; fWeightMatrix0to1[23][17] = 0.365635662863155; fWeightMatrix0to1[24][17] = -2.44078365723353; fWeightMatrix0to1[25][17] = 1.48435307001716; fWeightMatrix0to1[26][17] = 0.0438697293843356; fWeightMatrix0to1[27][17] = 0.704929474318437; fWeightMatrix0to1[0][18] = -0.428054857911556; fWeightMatrix0to1[1][18] = -0.789054199911069; fWeightMatrix0to1[2][18] = 4.99175785751145; fWeightMatrix0to1[3][18] = -1.53843958688956; fWeightMatrix0to1[4][18] = 1.70726608779293; fWeightMatrix0to1[5][18] = 6.22328864596405; fWeightMatrix0to1[6][18] = 1.54350715092418; fWeightMatrix0to1[7][18] = -2.66326016333984; fWeightMatrix0to1[8][18] = 0.689761179010173; fWeightMatrix0to1[9][18] = -5.38806862516432; fWeightMatrix0to1[10][18] = 2.30981711169403; fWeightMatrix0to1[11][18] = -0.830753801879726; fWeightMatrix0to1[12][18] = 2.83504888118587; fWeightMatrix0to1[13][18] = 0.561592224866922; fWeightMatrix0to1[14][18] = -1.0266219607653; fWeightMatrix0to1[15][18] = -2.58354647026692; fWeightMatrix0to1[16][18] = -0.154799143218929; fWeightMatrix0to1[17][18] = -1.96437779587198; fWeightMatrix0to1[18][18] = 0.864955349789663; fWeightMatrix0to1[19][18] = -1.61801527571786; fWeightMatrix0to1[20][18] = 2.57062921515948; fWeightMatrix0to1[21][18] = 0.919531835629646; fWeightMatrix0to1[22][18] = 0.349345115665476; fWeightMatrix0to1[23][18] = 1.74268394487825; fWeightMatrix0to1[24][18] = 1.15781284638629; fWeightMatrix0to1[25][18] = -2.54039738623942; fWeightMatrix0to1[26][18] = -1.19924499120277; fWeightMatrix0to1[27][18] = -1.2764006897121; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = 0.029797361266896; fWeightMatrix1to2[1][0] = -1.56313320877535; fWeightMatrix1to2[2][0] = -0.279285190759739; fWeightMatrix1to2[3][0] = -0.227353818136856; fWeightMatrix1to2[4][0] = -0.143512724650208; fWeightMatrix1to2[5][0] = -0.616678387687984; fWeightMatrix1to2[6][0] = -0.817844672452548; fWeightMatrix1to2[7][0] = -2.48949245623006; fWeightMatrix1to2[8][0] = -1.48812564168484; fWeightMatrix1to2[9][0] = -0.413967038440267; fWeightMatrix1to2[10][0] = -1.86510158253781; fWeightMatrix1to2[11][0] = -1.63842766824666; fWeightMatrix1to2[12][0] = 0.025125425132941; fWeightMatrix1to2[13][0] = 1.02324997843167; fWeightMatrix1to2[14][0] = 0.199416916181497; fWeightMatrix1to2[15][0] = -1.54496802600741; fWeightMatrix1to2[16][0] = 1.97067760472978; fWeightMatrix1to2[17][0] = -0.674362926784242; fWeightMatrix1to2[18][0] = 1.88647045107688; fWeightMatrix1to2[19][0] = 0.804233311170211; fWeightMatrix1to2[20][0] = -1.24773758547793; fWeightMatrix1to2[0][1] = -1.15257751556178; fWeightMatrix1to2[1][1] = -1.72455301991084; fWeightMatrix1to2[2][1] = -2.09057834932085; fWeightMatrix1to2[3][1] = -1.17355953033874; fWeightMatrix1to2[4][1] = -1.48583423757243; fWeightMatrix1to2[5][1] = 2.58573327503781; fWeightMatrix1to2[6][1] = -1.93274723202594; fWeightMatrix1to2[7][1] = 1.32489360017829; fWeightMatrix1to2[8][1] = 1.44821984248983; fWeightMatrix1to2[9][1] = 1.36723414610965; fWeightMatrix1to2[10][1] = -0.403593652333181; fWeightMatrix1to2[11][1] = -0.24512398040674; fWeightMatrix1to2[12][1] = -0.53039885252446; fWeightMatrix1to2[13][1] = -0.724164732730591; fWeightMatrix1to2[14][1] = -1.75011325443661; fWeightMatrix1to2[15][1] = -0.772554387755397; fWeightMatrix1to2[16][1] = -1.46286412623337; fWeightMatrix1to2[17][1] = 1.33713162510316; fWeightMatrix1to2[18][1] = 0.926889203685286; fWeightMatrix1to2[19][1] = 0.241232688435416; fWeightMatrix1to2[20][1] = 1.03039434956344; fWeightMatrix1to2[0][2] = 1.54482413758169; fWeightMatrix1to2[1][2] = 0.131780595799764; fWeightMatrix1to2[2][2] = -0.0479220119239273; fWeightMatrix1to2[3][2] = -3.45090761666183; fWeightMatrix1to2[4][2] = 0.395310290331605; fWeightMatrix1to2[5][2] = -2.31868827063765; fWeightMatrix1to2[6][2] = 0.308550320761342; fWeightMatrix1to2[7][2] = -1.12397700302917; fWeightMatrix1to2[8][2] = 0.467995184855152; fWeightMatrix1to2[9][2] = -2.38550254975329; fWeightMatrix1to2[10][2] = -2.32669489323299; fWeightMatrix1to2[11][2] = -1.85457444542624; fWeightMatrix1to2[12][2] = -0.559118968506445; fWeightMatrix1to2[13][2] = 0.481578698545699; fWeightMatrix1to2[14][2] = -1.79140440850856; fWeightMatrix1to2[15][2] = 0.867905102179629; fWeightMatrix1to2[16][2] = -3.64140344364215; fWeightMatrix1to2[17][2] = 2.9696415716256; fWeightMatrix1to2[18][2] = 3.11473138872438; fWeightMatrix1to2[19][2] = 0.611559672579408; fWeightMatrix1to2[20][2] = -1.93749069939064; fWeightMatrix1to2[0][3] = -1.54444312292547; fWeightMatrix1to2[1][3] = 1.91880207297794; fWeightMatrix1to2[2][3] = -1.85375702108232; fWeightMatrix1to2[3][3] = -1.34512973832968; fWeightMatrix1to2[4][3] = -1.02323869633423; fWeightMatrix1to2[5][3] = 1.78558781289574; fWeightMatrix1to2[6][3] = 1.19962212248334; fWeightMatrix1to2[7][3] = 1.55693872797255; fWeightMatrix1to2[8][3] = -1.70094913391898; fWeightMatrix1to2[9][3] = 0.749115910155302; fWeightMatrix1to2[10][3] = -0.413059827274977; fWeightMatrix1to2[11][3] = -0.189726351248576; fWeightMatrix1to2[12][3] = -1.56077697359856; fWeightMatrix1to2[13][3] = -0.366068986822932; fWeightMatrix1to2[14][3] = 0.844379177456167; fWeightMatrix1to2[15][3] = -0.0670089533617741; fWeightMatrix1to2[16][3] = 2.4109836030425; fWeightMatrix1to2[17][3] = -0.298002728032139; fWeightMatrix1to2[18][3] = 0.0527520124358668; fWeightMatrix1to2[19][3] = -1.09651032936847; fWeightMatrix1to2[20][3] = 1.37705930856263; fWeightMatrix1to2[0][4] = 1.10949109034264; fWeightMatrix1to2[1][4] = 1.94489226815207; fWeightMatrix1to2[2][4] = -0.957617974209692; fWeightMatrix1to2[3][4] = -2.37233578346917; fWeightMatrix1to2[4][4] = 1.17906332042801; fWeightMatrix1to2[5][4] = -0.876909462820309; fWeightMatrix1to2[6][4] = 1.10500220755983; fWeightMatrix1to2[7][4] = -1.77584223313341; fWeightMatrix1to2[8][4] = -1.95455836362776; fWeightMatrix1to2[9][4] = -2.34808577586898; fWeightMatrix1to2[10][4] = 0.629978122062913; fWeightMatrix1to2[11][4] = 0.345950901939575; fWeightMatrix1to2[12][4] = -1.54017845980068; fWeightMatrix1to2[13][4] = 0.0474607492439175; fWeightMatrix1to2[14][4] = -0.432609810492223; fWeightMatrix1to2[15][4] = -0.71358076416548; fWeightMatrix1to2[16][4] = 0.988062399424655; fWeightMatrix1to2[17][4] = -1.82659453073239; fWeightMatrix1to2[18][4] = 0.506877686822806; fWeightMatrix1to2[19][4] = -0.0727704191485498; fWeightMatrix1to2[20][4] = -1.14570473249171; fWeightMatrix1to2[0][5] = 2.04033003263073; fWeightMatrix1to2[1][5] = 4.60707088335569; fWeightMatrix1to2[2][5] = -2.08339329232597; fWeightMatrix1to2[3][5] = -0.488892242839677; fWeightMatrix1to2[4][5] = -2.40225006920361; fWeightMatrix1to2[5][5] = 1.59261865374355; fWeightMatrix1to2[6][5] = 1.03243097635984; fWeightMatrix1to2[7][5] = -4.20412235891586; fWeightMatrix1to2[8][5] = -2.56728275982283; fWeightMatrix1to2[9][5] = -4.97382790530797; fWeightMatrix1to2[10][5] = 2.51572455960616; fWeightMatrix1to2[11][5] = 0.717499075272287; fWeightMatrix1to2[12][5] = 1.95105729566359; fWeightMatrix1to2[13][5] = -0.348470303040163; fWeightMatrix1to2[14][5] = -1.84130161104253; fWeightMatrix1to2[15][5] = -2.0461604140448; fWeightMatrix1to2[16][5] = -2.47995328698215; fWeightMatrix1to2[17][5] = 2.85371416166423; fWeightMatrix1to2[18][5] = 0.339679741071304; fWeightMatrix1to2[19][5] = -0.362350385121285; fWeightMatrix1to2[20][5] = -1.17342905804971; fWeightMatrix1to2[0][6] = 0.343479050879582; fWeightMatrix1to2[1][6] = -1.00266572455964; fWeightMatrix1to2[2][6] = -1.72168697878615; fWeightMatrix1to2[3][6] = 4.23860788360276; fWeightMatrix1to2[4][6] = 0.523815918490041; fWeightMatrix1to2[5][6] = -2.82592156784927; fWeightMatrix1to2[6][6] = -1.17949694066063; fWeightMatrix1to2[7][6] = -0.761693667686354; fWeightMatrix1to2[8][6] = -0.869168544707109; fWeightMatrix1to2[9][6] = 0.424983982978593; fWeightMatrix1to2[10][6] = 0.897790210224539; fWeightMatrix1to2[11][6] = 0.194621157662905; fWeightMatrix1to2[12][6] = -1.78410062623007; fWeightMatrix1to2[13][6] = -2.01571743705683; fWeightMatrix1to2[14][6] = -2.03225707233551; fWeightMatrix1to2[15][6] = -0.747354265706143; fWeightMatrix1to2[16][6] = 0.960855860293355; fWeightMatrix1to2[17][6] = -3.60521964673809; fWeightMatrix1to2[18][6] = -1.2035340905552; fWeightMatrix1to2[19][6] = -0.86672555977638; fWeightMatrix1to2[20][6] = 1.01835837015379; fWeightMatrix1to2[0][7] = -1.55138473239275; fWeightMatrix1to2[1][7] = -0.56355415488252; fWeightMatrix1to2[2][7] = 1.4739533655192; fWeightMatrix1to2[3][7] = 4.44131223840569; fWeightMatrix1to2[4][7] = -3.9917081674662; fWeightMatrix1to2[5][7] = 2.15397492606228; fWeightMatrix1to2[6][7] = -1.07870046799214; fWeightMatrix1to2[7][7] = 1.59972908481416; fWeightMatrix1to2[8][7] = -0.0611371477219336; fWeightMatrix1to2[9][7] = -4.30320662709749; fWeightMatrix1to2[10][7] = -9.92467508094811; fWeightMatrix1to2[11][7] = 0.391618930288559; fWeightMatrix1to2[12][7] = 0.612487560044999; fWeightMatrix1to2[13][7] = -0.0527558084496668; fWeightMatrix1to2[14][7] = 1.85873250346377; fWeightMatrix1to2[15][7] = 0.652386746223855; fWeightMatrix1to2[16][7] = -1.937116766059; fWeightMatrix1to2[17][7] = -0.883004736655013; fWeightMatrix1to2[18][7] = -2.69960996906674; fWeightMatrix1to2[19][7] = -2.48426131859356; fWeightMatrix1to2[20][7] = 1.62267366975324; fWeightMatrix1to2[0][8] = 1.11871693237727; fWeightMatrix1to2[1][8] = 2.29890155972173; fWeightMatrix1to2[2][8] = 0.604447066439347; fWeightMatrix1to2[3][8] = 1.197428674203; fWeightMatrix1to2[4][8] = -1.4779632217008; fWeightMatrix1to2[5][8] = -3.15025255207053; fWeightMatrix1to2[6][8] = -0.86524598729144; fWeightMatrix1to2[7][8] = -1.21107893812612; fWeightMatrix1to2[8][8] = 0.403594975050393; fWeightMatrix1to2[9][8] = 0.204106735509361; fWeightMatrix1to2[10][8] = -1.45172942121251; fWeightMatrix1to2[11][8] = 0.600393059700999; fWeightMatrix1to2[12][8] = 1.19240597034985; fWeightMatrix1to2[13][8] = -1.76878114390262; fWeightMatrix1to2[14][8] = -1.35894094175308; fWeightMatrix1to2[15][8] = 0.585588653431492; fWeightMatrix1to2[16][8] = -0.561332076087276; fWeightMatrix1to2[17][8] = -2.0709402482239; fWeightMatrix1to2[18][8] = -0.245518927039557; fWeightMatrix1to2[19][8] = -0.787503456225977; fWeightMatrix1to2[20][8] = -0.714510593455065; fWeightMatrix1to2[0][9] = -0.77470516686022; fWeightMatrix1to2[1][9] = -4.96815584541348; fWeightMatrix1to2[2][9] = 0.224488128977673; fWeightMatrix1to2[3][9] = 3.27985990171874; fWeightMatrix1to2[4][9] = -0.272544925712635; fWeightMatrix1to2[5][9] = 0.733649993711515; fWeightMatrix1to2[6][9] = -1.45806576343346; fWeightMatrix1to2[7][9] = 3.57605594664351; fWeightMatrix1to2[8][9] = 2.06761700000912; fWeightMatrix1to2[9][9] = 1.00503570903812; fWeightMatrix1to2[10][9] = -0.812853395855232; fWeightMatrix1to2[11][9] = 0.892316314495605; fWeightMatrix1to2[12][9] = 1.1197259478377; fWeightMatrix1to2[13][9] = -1.36246753271753; fWeightMatrix1to2[14][9] = 0.560123054471732; fWeightMatrix1to2[15][9] = 0.357664765035445; fWeightMatrix1to2[16][9] = 4.11900702799431; fWeightMatrix1to2[17][9] = -3.38994129232229; fWeightMatrix1to2[18][9] = 0.0456348890392011; fWeightMatrix1to2[19][9] = -0.243941429201972; fWeightMatrix1to2[20][9] = 1.82796069830846; fWeightMatrix1to2[0][10] = -0.903096210737959; fWeightMatrix1to2[1][10] = 0.184283115467357; fWeightMatrix1to2[2][10] = -1.98027784478279; fWeightMatrix1to2[3][10] = -1.48889572875719; fWeightMatrix1to2[4][10] = 0.968766473411556; fWeightMatrix1to2[5][10] = 0.555916391622789; fWeightMatrix1to2[6][10] = -1.77806638228809; fWeightMatrix1to2[7][10] = -1.72933587419281; fWeightMatrix1to2[8][10] = -2.06009782965747; fWeightMatrix1to2[9][10] = 0.71876923705936; fWeightMatrix1to2[10][10] = 0.50239457989136; fWeightMatrix1to2[11][10] = 1.35301243856412; fWeightMatrix1to2[12][10] = 0.144923750446398; fWeightMatrix1to2[13][10] = -0.0939934098290388; fWeightMatrix1to2[14][10] = -0.00674734896251775; fWeightMatrix1to2[15][10] = -0.0797266880183375; fWeightMatrix1to2[16][10] = -1.61120394171762; fWeightMatrix1to2[17][10] = 1.40098749013751; fWeightMatrix1to2[18][10] = 1.62363361223177; fWeightMatrix1to2[19][10] = 0.304345374962733; fWeightMatrix1to2[20][10] = 0.158421476217367; fWeightMatrix1to2[0][11] = -0.949556110802885; fWeightMatrix1to2[1][11] = 1.91543518161977; fWeightMatrix1to2[2][11] = -0.116701221422367; fWeightMatrix1to2[3][11] = -0.0767015299382517; fWeightMatrix1to2[4][11] = -1.41721569739562; fWeightMatrix1to2[5][11] = -1.31970323365201; fWeightMatrix1to2[6][11] = -0.910352027604364; fWeightMatrix1to2[7][11] = -1.417747862497; fWeightMatrix1to2[8][11] = 0.408883398924592; fWeightMatrix1to2[9][11] = 1.26991239208073; fWeightMatrix1to2[10][11] = 1.41765245742986; fWeightMatrix1to2[11][11] = -0.237364029590659; fWeightMatrix1to2[12][11] = -1.05773505386874; fWeightMatrix1to2[13][11] = -1.61747561896689; fWeightMatrix1to2[14][11] = 1.48510983016312; fWeightMatrix1to2[15][11] = -0.0431923165970871; fWeightMatrix1to2[16][11] = -0.0982801139680728; fWeightMatrix1to2[17][11] = -1.53466661383066; fWeightMatrix1to2[18][11] = 1.10973034874165; fWeightMatrix1to2[19][11] = 1.14508395730794; fWeightMatrix1to2[20][11] = -0.113503760443247; fWeightMatrix1to2[0][12] = -1.08373089323453; fWeightMatrix1to2[1][12] = 1.57559440068635; fWeightMatrix1to2[2][12] = -1.79767376097383; fWeightMatrix1to2[3][12] = -4.07549221358222; fWeightMatrix1to2[4][12] = 0.365368777554696; fWeightMatrix1to2[5][12] = -0.190678085197881; fWeightMatrix1to2[6][12] = 1.41526263404851; fWeightMatrix1to2[7][12] = -1.94849330850719; fWeightMatrix1to2[8][12] = -1.02055824797768; fWeightMatrix1to2[9][12] = -0.489489559145514; fWeightMatrix1to2[10][12] = 4.29248143065379; fWeightMatrix1to2[11][12] = 0.684907735166361; fWeightMatrix1to2[12][12] = -0.0101797376772553; fWeightMatrix1to2[13][12] = 2.48644109393465; fWeightMatrix1to2[14][12] = 0.916069576555123; fWeightMatrix1to2[15][12] = -1.15469249294701; fWeightMatrix1to2[16][12] = 3.03701823579475; fWeightMatrix1to2[17][12] = -0.534814501363401; fWeightMatrix1to2[18][12] = 1.59882216170469; fWeightMatrix1to2[19][12] = -1.03810139792913; fWeightMatrix1to2[20][12] = -3.15960447687062; fWeightMatrix1to2[0][13] = -0.0777336491802545; fWeightMatrix1to2[1][13] = -0.372088529092679; fWeightMatrix1to2[2][13] = -2.01864484122053; fWeightMatrix1to2[3][13] = 1.699349305499; fWeightMatrix1to2[4][13] = -0.740234568988123; fWeightMatrix1to2[5][13] = 2.05305352147195; fWeightMatrix1to2[6][13] = -2.21402857728465; fWeightMatrix1to2[7][13] = -1.68382709981741; fWeightMatrix1to2[8][13] = -0.114868915457878; fWeightMatrix1to2[9][13] = -2.55242840527635; fWeightMatrix1to2[10][13] = -1.73604576487622; fWeightMatrix1to2[11][13] = -1.33658652297551; fWeightMatrix1to2[12][13] = -0.457563200571736; fWeightMatrix1to2[13][13] = 0.233149877077859; fWeightMatrix1to2[14][13] = 0.0660537065899705; fWeightMatrix1to2[15][13] = -2.02626745422873; fWeightMatrix1to2[16][13] = 2.75686419868814; fWeightMatrix1to2[17][13] = -1.44469928728037; fWeightMatrix1to2[18][13] = -3.38379370121506; fWeightMatrix1to2[19][13] = 0.970530752275452; fWeightMatrix1to2[20][13] = -0.613297996399065; fWeightMatrix1to2[0][14] = 0.46487125825157; fWeightMatrix1to2[1][14] = -0.411637807575463; fWeightMatrix1to2[2][14] = 0.277577861025088; fWeightMatrix1to2[3][14] = 0.101267664818215; fWeightMatrix1to2[4][14] = -0.71484335563165; fWeightMatrix1to2[5][14] = 1.74678019555922; fWeightMatrix1to2[6][14] = 1.99562763734548; fWeightMatrix1to2[7][14] = -0.714233541092409; fWeightMatrix1to2[8][14] = -1.14432957471149; fWeightMatrix1to2[9][14] = -0.733199543559419; fWeightMatrix1to2[10][14] = 2.40502975962003; fWeightMatrix1to2[11][14] = -0.190284115677229; fWeightMatrix1to2[12][14] = 0.781201715473433; fWeightMatrix1to2[13][14] = -2.07041466317822; fWeightMatrix1to2[14][14] = -2.56253240632215; fWeightMatrix1to2[15][14] = 0.444628203621663; fWeightMatrix1to2[16][14] = -2.51120126406363; fWeightMatrix1to2[17][14] = -1.93484047904566; fWeightMatrix1to2[18][14] = -4.92755799070383; fWeightMatrix1to2[19][14] = 0.354350022972911; fWeightMatrix1to2[20][14] = -1.40050830570285; fWeightMatrix1to2[0][15] = -1.5488828248624; fWeightMatrix1to2[1][15] = -8.09936604320429; fWeightMatrix1to2[2][15] = 0.161371370620681; fWeightMatrix1to2[3][15] = -10.9654740042183; fWeightMatrix1to2[4][15] = -1.27201144321725; fWeightMatrix1to2[5][15] = -0.479981552524933; fWeightMatrix1to2[6][15] = 3.47733273701826; fWeightMatrix1to2[7][15] = 2.78873998983647; fWeightMatrix1to2[8][15] = 1.15082965024884; fWeightMatrix1to2[9][15] = -1.022342855241; fWeightMatrix1to2[10][15] = 2.963776454205; fWeightMatrix1to2[11][15] = 0.0729504469759726; fWeightMatrix1to2[12][15] = 1.04852555372267; fWeightMatrix1to2[13][15] = 1.07623486789128; fWeightMatrix1to2[14][15] = 0.654780202774298; fWeightMatrix1to2[15][15] = 0.0779636477093509; fWeightMatrix1to2[16][15] = 0.603727384978027; fWeightMatrix1to2[17][15] = 3.14173097425105; fWeightMatrix1to2[18][15] = 7.97670281761757; fWeightMatrix1to2[19][15] = -0.0564178188286786; fWeightMatrix1to2[20][15] = -4.10229662754728; fWeightMatrix1to2[0][16] = 0.309294142877859; fWeightMatrix1to2[1][16] = 2.27913695437342; fWeightMatrix1to2[2][16] = -1.00497742089043; fWeightMatrix1to2[3][16] = 0.0736044811926493; fWeightMatrix1to2[4][16] = 1.226237807156; fWeightMatrix1to2[5][16] = 2.71204862300372; fWeightMatrix1to2[6][16] = -1.22248580808053; fWeightMatrix1to2[7][16] = 1.59935440263924; fWeightMatrix1to2[8][16] = 0.857757949333941; fWeightMatrix1to2[9][16] = -3.17391844673567; fWeightMatrix1to2[10][16] = -1.49572896601289; fWeightMatrix1to2[11][16] = 0.603646825078382; fWeightMatrix1to2[12][16] = -0.0977271229010401; fWeightMatrix1to2[13][16] = 1.20431461152098; fWeightMatrix1to2[14][16] = -1.42436048876647; fWeightMatrix1to2[15][16] = 0.111646797114886; fWeightMatrix1to2[16][16] = -0.167639675911902; fWeightMatrix1to2[17][16] = -1.42038477494916; fWeightMatrix1to2[18][16] = -0.779973494013701; fWeightMatrix1to2[19][16] = -1.00483206759169; fWeightMatrix1to2[20][16] = 2.32032917841957; fWeightMatrix1to2[0][17] = 0.871869980077376; fWeightMatrix1to2[1][17] = 1.52298183184588; fWeightMatrix1to2[2][17] = 0.574839805426291; fWeightMatrix1to2[3][17] = 2.50260047908403; fWeightMatrix1to2[4][17] = 0.480712653405561; fWeightMatrix1to2[5][17] = 1.33001802330086; fWeightMatrix1to2[6][17] = 0.39349742939396; fWeightMatrix1to2[7][17] = -1.66094550360279; fWeightMatrix1to2[8][17] = -2.42252545486203; fWeightMatrix1to2[9][17] = -1.73052360516331; fWeightMatrix1to2[10][17] = 1.3893475483903; fWeightMatrix1to2[11][17] = -0.697903169849286; fWeightMatrix1to2[12][17] = 0.62560272366063; fWeightMatrix1to2[13][17] = 1.95883029004955; fWeightMatrix1to2[14][17] = 1.18642953373718; fWeightMatrix1to2[15][17] = 1.18284642264945; fWeightMatrix1to2[16][17] = 0.933207644057156; fWeightMatrix1to2[17][17] = 2.06589843945782; fWeightMatrix1to2[18][17] = 0.290649064782558; fWeightMatrix1to2[19][17] = 0.896360367423925; fWeightMatrix1to2[20][17] = 2.37933711948151; fWeightMatrix1to2[0][18] = 0.391830119710943; fWeightMatrix1to2[1][18] = -0.957184436826682; fWeightMatrix1to2[2][18] = 1.45795536180533; fWeightMatrix1to2[3][18] = 1.5702842361956; fWeightMatrix1to2[4][18] = -0.583327450112423; fWeightMatrix1to2[5][18] = 0.74946060395042; fWeightMatrix1to2[6][18] = -1.28504309104362; fWeightMatrix1to2[7][18] = 0.553395734842373; fWeightMatrix1to2[8][18] = -1.40308858756483; fWeightMatrix1to2[9][18] = -0.11882896514907; fWeightMatrix1to2[10][18] = -2.46746395806716; fWeightMatrix1to2[11][18] = 1.80444135015703; fWeightMatrix1to2[12][18] = 0.857656136313114; fWeightMatrix1to2[13][18] = 2.50479984792004; fWeightMatrix1to2[14][18] = -0.811965612057867; fWeightMatrix1to2[15][18] = 1.41352272322842; fWeightMatrix1to2[16][18] = -0.756410010585243; fWeightMatrix1to2[17][18] = 0.985544714265911; fWeightMatrix1to2[18][18] = 1.55257076234795; fWeightMatrix1to2[19][18] = 0.342980493890431; fWeightMatrix1to2[20][18] = -0.869967899486692; fWeightMatrix1to2[0][19] = -0.944377253976171; fWeightMatrix1to2[1][19] = 1.41307276165109; fWeightMatrix1to2[2][19] = 1.5878493986459; fWeightMatrix1to2[3][19] = -0.958803368712742; fWeightMatrix1to2[4][19] = 0.700759330794861; fWeightMatrix1to2[5][19] = -0.630410594733882; fWeightMatrix1to2[6][19] = 0.0649887503387858; fWeightMatrix1to2[7][19] = -1.94938100562868; fWeightMatrix1to2[8][19] = 0.658420483386251; fWeightMatrix1to2[9][19] = 0.797194026991931; fWeightMatrix1to2[10][19] = -0.812590246897894; fWeightMatrix1to2[11][19] = 0.0507494101446394; fWeightMatrix1to2[12][19] = 1.30627113026597; fWeightMatrix1to2[13][19] = -0.562973321459918; fWeightMatrix1to2[14][19] = -1.95222668433809; fWeightMatrix1to2[15][19] = -0.166418062278725; fWeightMatrix1to2[16][19] = -1.80096616258726; fWeightMatrix1to2[17][19] = 1.7434361582941; fWeightMatrix1to2[18][19] = 1.87726890864512; fWeightMatrix1to2[19][19] = -1.8839018345817; fWeightMatrix1to2[20][19] = -0.437125357196503; fWeightMatrix1to2[0][20] = -0.506176475136532; fWeightMatrix1to2[1][20] = -0.639423854337236; fWeightMatrix1to2[2][20] = 1.72597019564413; fWeightMatrix1to2[3][20] = 0.438454432251383; fWeightMatrix1to2[4][20] = -2.67078138731264; fWeightMatrix1to2[5][20] = -0.93073153440662; fWeightMatrix1to2[6][20] = -0.128760021908532; fWeightMatrix1to2[7][20] = -1.45420521172718; fWeightMatrix1to2[8][20] = -0.843647603477489; fWeightMatrix1to2[9][20] = 1.92322170717931; fWeightMatrix1to2[10][20] = 2.15518539449318; fWeightMatrix1to2[11][20] = 2.62103586099588; fWeightMatrix1to2[12][20] = 0.363877740374173; fWeightMatrix1to2[13][20] = 0.457542151128387; fWeightMatrix1to2[14][20] = 1.50110541053939; fWeightMatrix1to2[15][20] = -1.03508542342447; fWeightMatrix1to2[16][20] = 1.2873322170244; fWeightMatrix1to2[17][20] = 0.62881595078369; fWeightMatrix1to2[18][20] = 2.63130501369984; fWeightMatrix1to2[19][20] = -0.00807868430037376; fWeightMatrix1to2[20][20] = -0.757910966699962; fWeightMatrix1to2[0][21] = -0.400289788995846; fWeightMatrix1to2[1][21] = -1.54277845353906; fWeightMatrix1to2[2][21] = 1.54780460491446; fWeightMatrix1to2[3][21] = 0.873551219427466; fWeightMatrix1to2[4][21] = -2.13331703691555; fWeightMatrix1to2[5][21] = -1.93073405880101; fWeightMatrix1to2[6][21] = 1.21211609315327; fWeightMatrix1to2[7][21] = 1.18316093737628; fWeightMatrix1to2[8][21] = 1.25555682783374; fWeightMatrix1to2[9][21] = 1.45673088541058; fWeightMatrix1to2[10][21] = -0.85549996747448; fWeightMatrix1to2[11][21] = 0.447571996327089; fWeightMatrix1to2[12][21] = -1.30437092719889; fWeightMatrix1to2[13][21] = -2.24019678694693; fWeightMatrix1to2[14][21] = 2.06735412986423; fWeightMatrix1to2[15][21] = -0.635111140168781; fWeightMatrix1to2[16][21] = -3.08848339241752; fWeightMatrix1to2[17][21] = 1.77775036688618; fWeightMatrix1to2[18][21] = 3.20722459711951; fWeightMatrix1to2[19][21] = 1.45565077108323; fWeightMatrix1to2[20][21] = 0.148655322550152; fWeightMatrix1to2[0][22] = 0.144869603099291; fWeightMatrix1to2[1][22] = -1.01334863897605; fWeightMatrix1to2[2][22] = 2.06925635233041; fWeightMatrix1to2[3][22] = 1.249311479258; fWeightMatrix1to2[4][22] = -2.40996264842875; fWeightMatrix1to2[5][22] = -0.164553633108002; fWeightMatrix1to2[6][22] = -2.31351963960665; fWeightMatrix1to2[7][22] = 0.837222578430721; fWeightMatrix1to2[8][22] = -2.08630444214535; fWeightMatrix1to2[9][22] = -1.512003990143; fWeightMatrix1to2[10][22] = -1.74618371509569; fWeightMatrix1to2[11][22] = -1.38608726230602; fWeightMatrix1to2[12][22] = -2.18178863613875; fWeightMatrix1to2[13][22] = 0.709702281277543; fWeightMatrix1to2[14][22] = 0.698241230958704; fWeightMatrix1to2[15][22] = -1.62128552533106; fWeightMatrix1to2[16][22] = -1.18879812245587; fWeightMatrix1to2[17][22] = 1.24027830156794; fWeightMatrix1to2[18][22] = 0.418987700233725; fWeightMatrix1to2[19][22] = -1.60748797684976; fWeightMatrix1to2[20][22] = -0.432677633657947; fWeightMatrix1to2[0][23] = -0.557443091831915; fWeightMatrix1to2[1][23] = 0.621603339517928; fWeightMatrix1to2[2][23] = -1.59226544115082; fWeightMatrix1to2[3][23] = -1.76556258626006; fWeightMatrix1to2[4][23] = 0.795454364994331; fWeightMatrix1to2[5][23] = 0.112953413154662; fWeightMatrix1to2[6][23] = -0.108795621047927; fWeightMatrix1to2[7][23] = -1.37423277381045; fWeightMatrix1to2[8][23] = -0.686450880528632; fWeightMatrix1to2[9][23] = -2.94553553524047; fWeightMatrix1to2[10][23] = -0.803863004503326; fWeightMatrix1to2[11][23] = -0.61931298230772; fWeightMatrix1to2[12][23] = -2.11218069065627; fWeightMatrix1to2[13][23] = 0.757066869078496; fWeightMatrix1to2[14][23] = -1.46086396229842; fWeightMatrix1to2[15][23] = -0.0983561898481208; fWeightMatrix1to2[16][23] = 1.15278635166581; fWeightMatrix1to2[17][23] = 0.45103064231641; fWeightMatrix1to2[18][23] = -0.235132817819012; fWeightMatrix1to2[19][23] = -1.33970516539567; fWeightMatrix1to2[20][23] = 0.22426087662537; fWeightMatrix1to2[0][24] = -0.777216597687247; fWeightMatrix1to2[1][24] = 0.614057987904347; fWeightMatrix1to2[2][24] = 2.22725566149644; fWeightMatrix1to2[3][24] = -4.11832725659762; fWeightMatrix1to2[4][24] = 1.07556071350479; fWeightMatrix1to2[5][24] = -1.15271906141837; fWeightMatrix1to2[6][24] = -0.425032403450442; fWeightMatrix1to2[7][24] = -1.64709032073012; fWeightMatrix1to2[8][24] = 1.77918654905724; fWeightMatrix1to2[9][24] = -0.0434401774626882; fWeightMatrix1to2[10][24] = 2.18237162373932; fWeightMatrix1to2[11][24] = 3.00373131126703; fWeightMatrix1to2[12][24] = -0.418596393304526; fWeightMatrix1to2[13][24] = 0.348162208161394; fWeightMatrix1to2[14][24] = -1.57667264983411; fWeightMatrix1to2[15][24] = 0.526712304764006; fWeightMatrix1to2[16][24] = -1.48731895673416; fWeightMatrix1to2[17][24] = -1.98129764322129; fWeightMatrix1to2[18][24] = -1.35363747171747; fWeightMatrix1to2[19][24] = -1.74397564594849; fWeightMatrix1to2[20][24] = -0.460552351134428; fWeightMatrix1to2[0][25] = 0.286376525573184; fWeightMatrix1to2[1][25] = -1.12227808734856; fWeightMatrix1to2[2][25] = -0.462512510189821; fWeightMatrix1to2[3][25] = 1.86756816082448; fWeightMatrix1to2[4][25] = -0.0919400929742377; fWeightMatrix1to2[5][25] = -0.330859716590459; fWeightMatrix1to2[6][25] = 1.33028762266155; fWeightMatrix1to2[7][25] = 2.33735969850798; fWeightMatrix1to2[8][25] = 0.539580566126033; fWeightMatrix1to2[9][25] = 1.51101330608477; fWeightMatrix1to2[10][25] = -2.70705082302965; fWeightMatrix1to2[11][25] = 1.31120427548805; fWeightMatrix1to2[12][25] = -1.46666173651028; fWeightMatrix1to2[13][25] = 0.343619000065957; fWeightMatrix1to2[14][25] = 1.03197543097828; fWeightMatrix1to2[15][25] = 0.863432277649388; fWeightMatrix1to2[16][25] = -0.971276298326832; fWeightMatrix1to2[17][25] = 0.0425517660008769; fWeightMatrix1to2[18][25] = -0.153952524916787; fWeightMatrix1to2[19][25] = -1.98149195070139; fWeightMatrix1to2[20][25] = 1.75703908821483; fWeightMatrix1to2[0][26] = -2.40161567838753; fWeightMatrix1to2[1][26] = -3.04497750372394; fWeightMatrix1to2[2][26] = -0.581949747087975; fWeightMatrix1to2[3][26] = -8.49819813639261; fWeightMatrix1to2[4][26] = 1.10763102358763; fWeightMatrix1to2[5][26] = 2.93173687425923; fWeightMatrix1to2[6][26] = 0.90454221798958; fWeightMatrix1to2[7][26] = 1.96598501521066; fWeightMatrix1to2[8][26] = -1.99134362686448; fWeightMatrix1to2[9][26] = 0.344439869066533; fWeightMatrix1to2[10][26] = -2.02654011089844; fWeightMatrix1to2[11][26] = -3.81325029673779; fWeightMatrix1to2[12][26] = -2.4342221772761; fWeightMatrix1to2[13][26] = 0.337214674131086; fWeightMatrix1to2[14][26] = 0.869171357015699; fWeightMatrix1to2[15][26] = -0.507573434989191; fWeightMatrix1to2[16][26] = -0.0641707777304453; fWeightMatrix1to2[17][26] = 4.7361315172049; fWeightMatrix1to2[18][26] = 5.25309267633828; fWeightMatrix1to2[19][26] = -1.30481141073794; fWeightMatrix1to2[20][26] = -2.1332220346687; fWeightMatrix1to2[0][27] = -0.601059018155701; fWeightMatrix1to2[1][27] = -0.685255602195971; fWeightMatrix1to2[2][27] = 0.367990344260615; fWeightMatrix1to2[3][27] = -0.58115159616676; fWeightMatrix1to2[4][27] = -2.0273549869039; fWeightMatrix1to2[5][27] = 1.37155158085614; fWeightMatrix1to2[6][27] = -1.23507394261533; fWeightMatrix1to2[7][27] = -0.220027976594155; fWeightMatrix1to2[8][27] = 1.34991855179617; fWeightMatrix1to2[9][27] = -1.65503317469031; fWeightMatrix1to2[10][27] = -2.14747895096619; fWeightMatrix1to2[11][27] = -0.502450575515639; fWeightMatrix1to2[12][27] = -2.27385876798228; fWeightMatrix1to2[13][27] = 0.945208636361726; fWeightMatrix1to2[14][27] = 1.23225640818689; fWeightMatrix1to2[15][27] = 0.696479835652396; fWeightMatrix1to2[16][27] = 1.59507859676111; fWeightMatrix1to2[17][27] = 1.53558968314248; fWeightMatrix1to2[18][27] = -0.21203389569742; fWeightMatrix1to2[19][27] = -1.50680046260886; fWeightMatrix1to2[20][27] = -0.484960740212905; fWeightMatrix1to2[0][28] = -2.80939070593291; fWeightMatrix1to2[1][28] = 0.601632586590972; fWeightMatrix1to2[2][28] = -0.391413825032563; fWeightMatrix1to2[3][28] = 2.91114308117213; fWeightMatrix1to2[4][28] = 0.981817463766915; fWeightMatrix1to2[5][28] = -1.01542719416965; fWeightMatrix1to2[6][28] = -2.24654316730791; fWeightMatrix1to2[7][28] = 2.79514963226991; fWeightMatrix1to2[8][28] = -0.241771872461309; fWeightMatrix1to2[9][28] = 0.12063541197986; fWeightMatrix1to2[10][28] = -1.01102861206733; fWeightMatrix1to2[11][28] = 0.562442303126282; fWeightMatrix1to2[12][28] = -0.619730726148466; fWeightMatrix1to2[13][28] = -0.334410673393734; fWeightMatrix1to2[14][28] = 0.826673849186223; fWeightMatrix1to2[15][28] = -1.76617067298657; fWeightMatrix1to2[16][28] = 0.351897375968195; fWeightMatrix1to2[17][28] = -0.417303799328079; fWeightMatrix1to2[18][28] = -3.53945103308971; fWeightMatrix1to2[19][28] = -1.84361068907808; fWeightMatrix1to2[20][28] = 0.688941402442385; // weight matrix from layer 2 to 3 fWeightMatrix2to3[0][0] = -1.39564005599896; fWeightMatrix2to3[0][1] = -5.62385806828618; fWeightMatrix2to3[0][2] = 1.34627265863349; fWeightMatrix2to3[0][3] = 3.92808156640715; fWeightMatrix2to3[0][4] = 3.26635230949175; fWeightMatrix2to3[0][5] = 5.49113494999295; fWeightMatrix2to3[0][6] = -2.17413807918816; fWeightMatrix2to3[0][7] = 1.90407809801608; fWeightMatrix2to3[0][8] = 2.49068244752458; fWeightMatrix2to3[0][9] = 3.79575867717143; fWeightMatrix2to3[0][10] = -4.32394696342178; fWeightMatrix2to3[0][11] = -2.36234016386233; fWeightMatrix2to3[0][12] = -1.65671908623108; fWeightMatrix2to3[0][13] = 7.11844510559337; fWeightMatrix2to3[0][14] = 2.00569521361704; fWeightMatrix2to3[0][15] = 0.668460216655716; fWeightMatrix2to3[0][16] = 1.45035223355378; fWeightMatrix2to3[0][17] = -3.15764705740166; fWeightMatrix2to3[0][18] = -4.4046651614313; fWeightMatrix2to3[0][19] = 1.2795377095615; fWeightMatrix2to3[0][20] = -3.42081387891615; fWeightMatrix2to3[0][21] = -2.97640822286833; } inline double ReadElectron_Upstream_TMVA::GetMvaValue__( const std::vector& inputValues ) const { if (inputValues.size() != (unsigned int)fLayerSize[0]-1) { std::cout << "Input vector needs to be of size " << fLayerSize[0]-1 << std::endl; return 0; } std::array fWeights0 {{}}; std::array fWeights1 {{}}; std::array fWeights2 {{}}; std::array fWeights3 {{}}; fWeights0.back() = 1.; fWeights1.back() = 1.; fWeights2.back() = 1.; for (int i=0; i& inputValues ) const { // classifier response value double retval = 0; // classifier response, sanity check first if (!IsStatusClean()) { std::cout << "Problem in class \"" << fClassName << "\": cannot return classifier response" << " because status is dirty" << std::endl; retval = 0; } else { if (IsNormalised()) { // normalise variables std::vector iV; iV.reserve(inputValues.size()); int ivar = 0; for (std::vector::const_iterator varIt = inputValues.begin(); varIt != inputValues.end(); varIt++, ivar++) { iV.push_back(NormVariable( *varIt, fVmin[ivar], fVmax[ivar] )); } Transform( iV, -1 ); retval = GetMvaValue__( iV ); } else { std::vector iV; int ivar = 0; for (std::vector::const_iterator varIt = inputValues.begin(); varIt != inputValues.end(); varIt++, ivar++) { iV.push_back(*varIt); } Transform( iV, -1 ); retval = GetMvaValue__( iV ); } } return retval; } //_______________________________________________________________________ inline void ReadElectron_Upstream_TMVA::InitTransform_1() { // Normalization transformation, initialisation fMin_1[0][0] = 391.399993896; fMax_1[0][0] = 4020014.25; fMin_1[1][0] = 315.070007324; fMax_1[1][0] = 4985153; fMin_1[2][0] = 315.070007324; fMax_1[2][0] = 4985153; fMin_1[0][1] = 32.6843109131; fMax_1[0][1] = 933283.125; fMin_1[1][1] = 24.4590244293; fMax_1[1][1] = 897099.3125; fMin_1[2][1] = 24.4590244293; fMax_1[2][1] = 933283.125; fMin_1[0][2] = 0.0318285860121; fMax_1[0][2] = 2.99704194069; fMin_1[1][2] = 4.26244623668e-05; fMax_1[1][2] = 2.99992012978; fMin_1[2][2] = 4.26244623668e-05; fMax_1[2][2] = 2.99992012978; fMin_1[0][3] = 2; fMax_1[0][3] = 37; fMin_1[1][3] = 2; fMax_1[1][3] = 43; fMin_1[2][3] = 2; fMax_1[2][3] = 43; fMin_1[0][4] = 0.00129354000092; fMax_1[0][4] = 0.994550943375; fMin_1[1][4] = 0.000715613365173; fMax_1[1][4] = 0.999373674393; fMin_1[2][4] = 0.000715613365173; fMax_1[2][4] = 0.999373674393; fMin_1[0][5] = 3.28468701127e-07; fMax_1[0][5] = 71.6229400635; fMin_1[1][5] = 1.46430922943e-09; fMax_1[1][5] = 95.3312683105; fMin_1[2][5] = 1.46430922943e-09; fMax_1[2][5] = 95.3312683105; fMin_1[0][6] = -1; fMax_1[0][6] = 33; fMin_1[1][6] = -1; fMax_1[1][6] = 38; fMin_1[2][6] = -1; fMax_1[2][6] = 38; fMin_1[0][7] = 0; fMax_1[0][7] = 1; fMin_1[1][7] = 0; fMax_1[1][7] = 1; fMin_1[2][7] = 0; fMax_1[2][7] = 1; fMin_1[0][8] = 0; fMax_1[0][8] = 1; fMin_1[1][8] = 0; fMax_1[1][8] = 1; fMin_1[2][8] = 0; fMax_1[2][8] = 1; fMin_1[0][9] = 0; fMax_1[0][9] = 1; fMin_1[1][9] = 0; fMax_1[1][9] = 1; fMin_1[2][9] = 0; fMax_1[2][9] = 1; fMin_1[0][10] = -999; fMax_1[0][10] = 95.9525985718; fMin_1[1][10] = -999; fMax_1[1][10] = 76.25050354; fMin_1[2][10] = -999; fMax_1[2][10] = 95.9525985718; fMin_1[0][11] = -999; fMax_1[0][11] = 39.8655014038; fMin_1[1][11] = -999; fMax_1[1][11] = 73.0131988525; fMin_1[2][11] = -999; fMax_1[2][11] = 73.0131988525; fMin_1[0][12] = -999; fMax_1[0][12] = 31.1793994904; fMin_1[1][12] = -999; fMax_1[1][12] = 80.8281021118; fMin_1[2][12] = -999; fMax_1[2][12] = 80.8281021118; fMin_1[0][13] = -999; fMax_1[0][13] = 31.1793994904; fMin_1[1][13] = -999; fMax_1[1][13] = 81.6336975098; fMin_1[2][13] = -999; fMax_1[2][13] = 81.6336975098; fMin_1[0][14] = -999; fMax_1[0][14] = 31.1793994904; fMin_1[1][14] = -999; fMax_1[1][14] = 70.2487030029; fMin_1[2][14] = -999; fMax_1[2][14] = 70.2487030029; fMin_1[0][15] = -999; fMax_1[0][15] = 31.1793994904; fMin_1[1][15] = -999; fMax_1[1][15] = 45.0559997559; fMin_1[2][15] = -999; fMax_1[2][15] = 45.0559997559; fMin_1[0][16] = 0; fMax_1[0][16] = 1; fMin_1[1][16] = 0; fMax_1[1][16] = 1; fMin_1[2][16] = 0; fMax_1[2][16] = 1; fMin_1[0][17] = -999; fMax_1[0][17] = 4.79148387909; fMin_1[1][17] = -999; fMax_1[1][17] = 4.79148387909; fMin_1[2][17] = -999; fMax_1[2][17] = 4.79148387909; } //_______________________________________________________________________ inline void ReadElectron_Upstream_TMVA::Transform_1( std::vector& iv, int cls) const { // Normalization transformation if (cls < 0 || cls > 2) { if (2 > 1 ) cls = 2; else cls = 2; } const int nVar = 18; // get indices of used variables // define the indices of the variables which are transformed by this transformation static std::vector indicesGet; static std::vector indicesPut; if ( indicesGet.empty() ) { indicesGet.reserve(fNvars); indicesGet.push_back( 0); indicesGet.push_back( 1); indicesGet.push_back( 2); indicesGet.push_back( 3); indicesGet.push_back( 4); indicesGet.push_back( 5); indicesGet.push_back( 6); indicesGet.push_back( 7); indicesGet.push_back( 8); indicesGet.push_back( 9); indicesGet.push_back( 10); indicesGet.push_back( 11); indicesGet.push_back( 12); indicesGet.push_back( 13); indicesGet.push_back( 14); indicesGet.push_back( 15); indicesGet.push_back( 16); indicesGet.push_back( 17); } if ( indicesPut.empty() ) { indicesPut.reserve(fNvars); indicesPut.push_back( 0); indicesPut.push_back( 1); indicesPut.push_back( 2); indicesPut.push_back( 3); indicesPut.push_back( 4); indicesPut.push_back( 5); indicesPut.push_back( 6); indicesPut.push_back( 7); indicesPut.push_back( 8); indicesPut.push_back( 9); indicesPut.push_back( 10); indicesPut.push_back( 11); indicesPut.push_back( 12); indicesPut.push_back( 13); indicesPut.push_back( 14); indicesPut.push_back( 15); indicesPut.push_back( 16); indicesPut.push_back( 17); } static std::vector dv; dv.resize(nVar); for (int ivar=0; ivar& iv, int sigOrBgd ) const { Transform_1( iv, sigOrBgd ); }