// Class: ReadProton_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Proton_Upstream_TMVA TMVA Release : 4.2.0 [262656] ROOT Release : 5.34/18 [336402] Creator : jonesc Date : Tue Jun 17 22:40:33 2014 Host : ec-slc6-x86-64-spi-9 Dir : /var/pcfst/r03/lhcb/jonesc/ANNPID/results/MC12/TrainMixture/TrainPhysTksNoGhosts-EvalPhysTks-ReweightRICH2/TMVA-NoPreSels-NoGECs/MLP/Norm/ScaleF1.4/BP/NCycles750/CE/tanh/CVTest15/CVImp1e-16/NotUseRegulator/Proton/Upstream Training events: 1200000 Analysis type : [Classification] #OPT -*-*-*-*-*-*-*-*-*-*-*-*- options -*-*-*-*-*-*-*-*-*-*-*-*- # Set by User: NCycles: "750" [Number of training cycles] HiddenLayers: "29" [Specification of hidden layer architecture] NeuronType: "tanh" [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 21 TrackP TrackP TrackP TrackP 'F' [253.580001831,4741412] TrackPt TrackPt TrackPt TrackPt 'F' [5.38133239746,954913.375] TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof 'F' [0.00438635889441,2.99875736237] TrackNumDof TrackNumDof TrackNumDof TrackNumDof 'I' [4,27] TrackLikelihood TrackLikelihood TrackLikelihood TrackLikelihood 'F' [-59.4464607239,-0.329912275076] TrackGhostProbability TrackGhostProbability TrackGhostProbability TrackGhostProbability 'F' [0.0295318737626,1] TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 'F' [9.30839669309e-05,48.2787208557] TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF 'I' [1,23] RichUsedAero RichUsedAero RichUsedAero RichUsedAero 'I' [0,1] RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas 'I' [0,1] RichAbovePiThres RichAbovePiThres RichAbovePiThres RichAbovePiThres 'I' [0,1] RichAboveKaThres RichAboveKaThres RichAboveKaThres RichAboveKaThres 'I' [0,1] RichAbovePrThres RichAbovePrThres RichAbovePrThres RichAbovePrThres 'I' [0,1] RichDLLe RichDLLe RichDLLe RichDLLe 'F' [-999,117.404403687] RichDLLmu RichDLLmu RichDLLmu RichDLLmu 'F' [-999,75.9692993164] RichDLLk RichDLLk RichDLLk RichDLLk 'F' [-999,92.4810028076] RichDLLp RichDLLp RichDLLp RichDLLp 'F' [-999,84.875] RichDLLbt RichDLLbt RichDLLbt RichDLLbt 'F' [-999,47.9555015564] InAccBrem InAccBrem InAccBrem InAccBrem 'I' [0,1] BremPIDe BremPIDe BremPIDe BremPIDe 'F' [-999,4.79148387909] VeloCharge VeloCharge VeloCharge VeloCharge 'F' [0.522471904755,3.59951853752] NSpec 0 ============================================================================ */ #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 ReadProton_Upstream_TMVA : public IClassifierReader { public: // constructor ReadProton_Upstream_TMVA( std::vector& theInputVars ) : IClassifierReader(), fClassName( "ReadProton_Upstream_TMVA" ), fNvars( 21 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackLikelihood", "TrackGhostProbability", "TrackFitVeloChi2", "TrackFitVeloNDoF", "RichUsedAero", "RichUsedR1Gas", "RichAbovePiThres", "RichAboveKaThres", "RichAbovePrThres", "RichDLLe", "RichDLLmu", "RichDLLk", "RichDLLp", "RichDLLbt", "InAccBrem", "BremPIDe", "VeloCharge" }; // 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] = 1; 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; fVmin[18] = -1; fVmax[18] = 1; fVmin[19] = -1; fVmax[19] = 1; fVmin[20] = -1; fVmax[20] = 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] = 'F'; fType[7] = 'I'; fType[8] = 'I'; fType[9] = 'I'; fType[10] = 'I'; fType[11] = 'I'; fType[12] = 'I'; fType[13] = 'F'; fType[14] = 'F'; fType[15] = 'F'; fType[16] = 'F'; fType[17] = 'F'; fType[18] = 'I'; fType[19] = 'F'; fType[20] = 'F'; // initialize constants Initialize(); // initialize transformation InitTransform(); } // destructor virtual ~ReadProton_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][21]; double fMax_1[3][21]; 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[21]; double fVmax[21]; 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[21]; // 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[3]; double fWeightMatrix0to1[30][22]; // weight matrix from layer 0 to 1 double fWeightMatrix1to2[1][30]; // weight matrix from layer 1 to 2 double * fWeights[3]; }; inline void ReadProton_Upstream_TMVA::Initialize() { // build network structure fLayers = 3; fLayerSize[0] = 22; fWeights[0] = new double[22]; fLayerSize[1] = 30; fWeights[1] = new double[30]; fLayerSize[2] = 1; fWeights[2] = new double[1]; // weight matrix from layer 0 to 1 fWeightMatrix0to1[0][0] = -0.0629983567517128; fWeightMatrix0to1[1][0] = 1.47456174187249; fWeightMatrix0to1[2][0] = -5.8980941284196; fWeightMatrix0to1[3][0] = -5.6472263362138; fWeightMatrix0to1[4][0] = -3.72362768696575; fWeightMatrix0to1[5][0] = 5.27057382728608; fWeightMatrix0to1[6][0] = -1.24487835239999; fWeightMatrix0to1[7][0] = 1.87289928075901; fWeightMatrix0to1[8][0] = 0.859992350715067; fWeightMatrix0to1[9][0] = -0.106380612218859; fWeightMatrix0to1[10][0] = -1.95098990591717; fWeightMatrix0to1[11][0] = 0.0743602252134409; fWeightMatrix0to1[12][0] = -1.04469645568268; fWeightMatrix0to1[13][0] = -1.38793068868151; fWeightMatrix0to1[14][0] = 1.71468482997826; fWeightMatrix0to1[15][0] = 0.502973806621077; fWeightMatrix0to1[16][0] = -0.662286868224189; fWeightMatrix0to1[17][0] = 2.38567493559555; fWeightMatrix0to1[18][0] = 1.7810100827964; fWeightMatrix0to1[19][0] = -3.61858915701445; fWeightMatrix0to1[20][0] = -1.1447479196783; fWeightMatrix0to1[21][0] = -1.14724349413534; fWeightMatrix0to1[22][0] = 1.05671620293719; fWeightMatrix0to1[23][0] = -0.0654354632882633; fWeightMatrix0to1[24][0] = 0.0650320069885679; fWeightMatrix0to1[25][0] = 0.415260373872153; fWeightMatrix0to1[26][0] = 1.68047108063158; fWeightMatrix0to1[27][0] = -0.445029307645455; fWeightMatrix0to1[28][0] = 1.79307530691634; fWeightMatrix0to1[0][1] = 0.127090363648671; fWeightMatrix0to1[1][1] = 0.0828855361230048; fWeightMatrix0to1[2][1] = -5.23845746864596; fWeightMatrix0to1[3][1] = -6.83584175137355; fWeightMatrix0to1[4][1] = -0.337528572314286; fWeightMatrix0to1[5][1] = 1.57492360618022; fWeightMatrix0to1[6][1] = -0.732311464963715; fWeightMatrix0to1[7][1] = -1.30454474549637; fWeightMatrix0to1[8][1] = 4.10605603386889; fWeightMatrix0to1[9][1] = -1.67214111615834; fWeightMatrix0to1[10][1] = 0.988082724279051; fWeightMatrix0to1[11][1] = 0.959775347979169; fWeightMatrix0to1[12][1] = 2.69899747632881; fWeightMatrix0to1[13][1] = 0.877604819356985; fWeightMatrix0to1[14][1] = 3.5278807736859; fWeightMatrix0to1[15][1] = -0.955817295964149; fWeightMatrix0to1[16][1] = -1.39960145853315; fWeightMatrix0to1[17][1] = 1.595469356262; fWeightMatrix0to1[18][1] = 1.76296831564025; fWeightMatrix0to1[19][1] = 0.994061316573792; fWeightMatrix0to1[20][1] = 0.78595594155304; fWeightMatrix0to1[21][1] = 1.37758121928904; fWeightMatrix0to1[22][1] = 0.878174774104402; fWeightMatrix0to1[23][1] = -1.85494613384664; fWeightMatrix0to1[24][1] = 2.35416755430361; fWeightMatrix0to1[25][1] = -1.66352781078817; fWeightMatrix0to1[26][1] = -1.38115363264317; fWeightMatrix0to1[27][1] = -0.80650146085881; fWeightMatrix0to1[28][1] = 1.8725925225709; fWeightMatrix0to1[0][2] = -0.180675335520662; fWeightMatrix0to1[1][2] = 0.594768637371576; fWeightMatrix0to1[2][2] = 0.498494299200967; fWeightMatrix0to1[3][2] = 0.00668890947867083; fWeightMatrix0to1[4][2] = -0.0159492551728885; fWeightMatrix0to1[5][2] = 0.75300077094661; fWeightMatrix0to1[6][2] = 1.43554286377738; fWeightMatrix0to1[7][2] = 0.0734317824067193; fWeightMatrix0to1[8][2] = -1.56014062179294; fWeightMatrix0to1[9][2] = 0.0363690333551838; fWeightMatrix0to1[10][2] = 0.452901552260781; fWeightMatrix0to1[11][2] = -0.97081219092863; fWeightMatrix0to1[12][2] = -1.06190068551124; fWeightMatrix0to1[13][2] = -0.0202461894907393; fWeightMatrix0to1[14][2] = 0.19708819065701; fWeightMatrix0to1[15][2] = 0.2697464310303; fWeightMatrix0to1[16][2] = 0.88491515148122; fWeightMatrix0to1[17][2] = -0.605783637689239; fWeightMatrix0to1[18][2] = -0.55006208306725; fWeightMatrix0to1[19][2] = -1.29823921564058; fWeightMatrix0to1[20][2] = 0.107243967618552; fWeightMatrix0to1[21][2] = 0.566313259247154; fWeightMatrix0to1[22][2] = 0.566014256415289; fWeightMatrix0to1[23][2] = 0.559428888681409; fWeightMatrix0to1[24][2] = 0.15220893123715; fWeightMatrix0to1[25][2] = -0.0807456119128298; fWeightMatrix0to1[26][2] = -0.53780563491544; fWeightMatrix0to1[27][2] = -1.24949096845305; fWeightMatrix0to1[28][2] = 0.804953648247359; fWeightMatrix0to1[0][3] = 0.376624216675782; fWeightMatrix0to1[1][3] = -1.73504903427178; fWeightMatrix0to1[2][3] = -0.481047405443463; fWeightMatrix0to1[3][3] = 0.573331657536286; fWeightMatrix0to1[4][3] = 0.364760821828578; fWeightMatrix0to1[5][3] = 1.7726208297149; fWeightMatrix0to1[6][3] = -1.67606857720612; fWeightMatrix0to1[7][3] = -0.592554870025039; fWeightMatrix0to1[8][3] = 5.12939384411393; fWeightMatrix0to1[9][3] = -0.240861597962204; fWeightMatrix0to1[10][3] = 1.45240767016899; fWeightMatrix0to1[11][3] = -0.18013046245567; fWeightMatrix0to1[12][3] = -0.511334507320398; fWeightMatrix0to1[13][3] = -0.294688733368923; fWeightMatrix0to1[14][3] = 0.503326685021192; fWeightMatrix0to1[15][3] = -0.380963353944924; fWeightMatrix0to1[16][3] = -5.0605636793064; fWeightMatrix0to1[17][3] = 1.58166912745229; fWeightMatrix0to1[18][3] = 1.59420760384209; fWeightMatrix0to1[19][3] = -1.17058650286534; fWeightMatrix0to1[20][3] = -6.01967165392687; fWeightMatrix0to1[21][3] = -1.66650279816442; fWeightMatrix0to1[22][3] = 0.532667640336668; fWeightMatrix0to1[23][3] = -2.01459803594479; fWeightMatrix0to1[24][3] = 0.469312198725086; fWeightMatrix0to1[25][3] = 1.02931030498855; fWeightMatrix0to1[26][3] = 1.14067536080259; fWeightMatrix0to1[27][3] = 1.11670521986939; fWeightMatrix0to1[28][3] = -0.590834140701596; fWeightMatrix0to1[0][4] = 0.295663570433528; fWeightMatrix0to1[1][4] = -0.42841328932851; fWeightMatrix0to1[2][4] = 2.33122775049843; fWeightMatrix0to1[3][4] = 1.48393721751012; fWeightMatrix0to1[4][4] = -1.89144062231644; fWeightMatrix0to1[5][4] = 2.89829612890664; fWeightMatrix0to1[6][4] = 0.0586132910603775; fWeightMatrix0to1[7][4] = 0.849002615661091; fWeightMatrix0to1[8][4] = 1.7267201264553; fWeightMatrix0to1[9][4] = -2.03875221143383; fWeightMatrix0to1[10][4] = -0.722082024483704; fWeightMatrix0to1[11][4] = 2.29748516621614; fWeightMatrix0to1[12][4] = -5.8874786872551; fWeightMatrix0to1[13][4] = 1.97461787139587; fWeightMatrix0to1[14][4] = -0.0830128838733275; fWeightMatrix0to1[15][4] = -0.462114852249241; fWeightMatrix0to1[16][4] = -1.05167106535791; fWeightMatrix0to1[17][4] = -0.0996649663992901; fWeightMatrix0to1[18][4] = -4.37505865308928; fWeightMatrix0to1[19][4] = 1.04350295271978; fWeightMatrix0to1[20][4] = -0.465434750606061; fWeightMatrix0to1[21][4] = 2.19140985355043; fWeightMatrix0to1[22][4] = 1.41747047791044; fWeightMatrix0to1[23][4] = 1.72216581975002; fWeightMatrix0to1[24][4] = -0.121405597324859; fWeightMatrix0to1[25][4] = -0.0335268007997359; fWeightMatrix0to1[26][4] = -0.514591274775047; fWeightMatrix0to1[27][4] = 3.78046765204527; fWeightMatrix0to1[28][4] = -0.223405682292223; fWeightMatrix0to1[0][5] = 0.229459477777347; fWeightMatrix0to1[1][5] = 0.935748116175153; fWeightMatrix0to1[2][5] = 0.241518523597242; fWeightMatrix0to1[3][5] = -0.383804691437351; fWeightMatrix0to1[4][5] = -0.171721846854451; fWeightMatrix0to1[5][5] = -0.970730731556738; fWeightMatrix0to1[6][5] = 0.247495188567661; fWeightMatrix0to1[7][5] = -0.0451824725426812; fWeightMatrix0to1[8][5] = -0.975120572012262; fWeightMatrix0to1[9][5] = 1.63195577241387; fWeightMatrix0to1[10][5] = 0.286523482366476; fWeightMatrix0to1[11][5] = 0.739907582644587; fWeightMatrix0to1[12][5] = 0.560307642362906; fWeightMatrix0to1[13][5] = -0.203940963113625; fWeightMatrix0to1[14][5] = -0.106168225531777; fWeightMatrix0to1[15][5] = 0.0918467791315508; fWeightMatrix0to1[16][5] = 0.522272841949096; fWeightMatrix0to1[17][5] = 0.411865643396729; fWeightMatrix0to1[18][5] = 1.17946689156869; fWeightMatrix0to1[19][5] = 1.01284142093591; fWeightMatrix0to1[20][5] = 0.18658469614798; fWeightMatrix0to1[21][5] = -0.179828971330425; fWeightMatrix0to1[22][5] = 0.546968327555931; fWeightMatrix0to1[23][5] = -0.693657408266115; fWeightMatrix0to1[24][5] = 0.48359637530088; fWeightMatrix0to1[25][5] = 0.108739744984792; fWeightMatrix0to1[26][5] = -0.682710173310649; fWeightMatrix0to1[27][5] = 0.513728341481424; fWeightMatrix0to1[28][5] = -0.328235954611471; fWeightMatrix0to1[0][6] = 0.524572746997538; fWeightMatrix0to1[1][6] = -2.27426233282322; fWeightMatrix0to1[2][6] = -0.272144392288241; fWeightMatrix0to1[3][6] = 0.103448827415683; fWeightMatrix0to1[4][6] = 0.0126156889993564; fWeightMatrix0to1[5][6] = -0.684572773547218; fWeightMatrix0to1[6][6] = -1.88553044045249; fWeightMatrix0to1[7][6] = 0.260875999819154; fWeightMatrix0to1[8][6] = 1.41055460573829; fWeightMatrix0to1[9][6] = -0.162390941803045; fWeightMatrix0to1[10][6] = 1.54506737036597; fWeightMatrix0to1[11][6] = -1.41756640542977; fWeightMatrix0to1[12][6] = -0.302568034720494; fWeightMatrix0to1[13][6] = 0.252661498737945; fWeightMatrix0to1[14][6] = -0.778003221327473; fWeightMatrix0to1[15][6] = -0.660331675169087; fWeightMatrix0to1[16][6] = -1.30367350957416; fWeightMatrix0to1[17][6] = 2.63424215085335; fWeightMatrix0to1[18][6] = -1.06917948067109; fWeightMatrix0to1[19][6] = 1.70251492468548; fWeightMatrix0to1[20][6] = 0.435611630306581; fWeightMatrix0to1[21][6] = 0.310258043460984; fWeightMatrix0to1[22][6] = -1.4375250668844; fWeightMatrix0to1[23][6] = 0.907084036903209; fWeightMatrix0to1[24][6] = -2.70809063466463; fWeightMatrix0to1[25][6] = -0.0535939307856968; fWeightMatrix0to1[26][6] = 0.459559501522927; fWeightMatrix0to1[27][6] = 2.04349668566501; fWeightMatrix0to1[28][6] = -1.90538594471105; fWeightMatrix0to1[0][7] = -0.526678750644295; fWeightMatrix0to1[1][7] = 1.36596287828231; fWeightMatrix0to1[2][7] = 0.411889571941559; fWeightMatrix0to1[3][7] = -0.215453349471946; fWeightMatrix0to1[4][7] = -0.0147516640083328; fWeightMatrix0to1[5][7] = -2.08818118505978; fWeightMatrix0to1[6][7] = 0.960292462419846; fWeightMatrix0to1[7][7] = 0.436031249877711; fWeightMatrix0to1[8][7] = -3.13562675525395; fWeightMatrix0to1[9][7] = 0.557044188440165; fWeightMatrix0to1[10][7] = -3.74356970474709; fWeightMatrix0to1[11][7] = 2.40362613065412; fWeightMatrix0to1[12][7] = 0.60886177057784; fWeightMatrix0to1[13][7] = 2.0256172911123; fWeightMatrix0to1[14][7] = -0.0798701102111491; fWeightMatrix0to1[15][7] = 0.667342443075793; fWeightMatrix0to1[16][7] = 5.85956122082253; fWeightMatrix0to1[17][7] = -5.20721068785546; fWeightMatrix0to1[18][7] = -2.96877364671095; fWeightMatrix0to1[19][7] = -3.61222770513114; fWeightMatrix0to1[20][7] = 3.30387634491576; fWeightMatrix0to1[21][7] = 0.520204852101721; fWeightMatrix0to1[22][7] = -0.811855618188349; fWeightMatrix0to1[23][7] = 0.599859871807878; fWeightMatrix0to1[24][7] = 3.18491096464721; fWeightMatrix0to1[25][7] = -0.908705657715556; fWeightMatrix0to1[26][7] = -0.475142178539686; fWeightMatrix0to1[27][7] = -3.70517074800225; fWeightMatrix0to1[28][7] = 2.57898150484269; fWeightMatrix0to1[0][8] = 0.304728273610138; fWeightMatrix0to1[1][8] = -0.650749435193489; fWeightMatrix0to1[2][8] = 0.405631813022559; fWeightMatrix0to1[3][8] = 0.0870784562696669; fWeightMatrix0to1[4][8] = 0.00764289040093732; fWeightMatrix0to1[5][8] = -0.141864642235394; fWeightMatrix0to1[6][8] = -1.48341229616573; fWeightMatrix0to1[7][8] = -0.0470726689121195; fWeightMatrix0to1[8][8] = -0.889724595994798; fWeightMatrix0to1[9][8] = -0.296212169668568; fWeightMatrix0to1[10][8] = -1.02463680171252; fWeightMatrix0to1[11][8] = -3.7760664374649; fWeightMatrix0to1[12][8] = -4.47343169499388; fWeightMatrix0to1[13][8] = 0.21044626612089; fWeightMatrix0to1[14][8] = -1.3053822289931; fWeightMatrix0to1[15][8] = 5.28201555274562e-05; fWeightMatrix0to1[16][8] = -0.000203117642136376; fWeightMatrix0to1[17][8] = -3.57139904064441; fWeightMatrix0to1[18][8] = 2.67915243219709; fWeightMatrix0to1[19][8] = -0.076367948934083; fWeightMatrix0to1[20][8] = 4.61834825613083; fWeightMatrix0to1[21][8] = 0.617513352410418; fWeightMatrix0to1[22][8] = 1.92795593412792; fWeightMatrix0to1[23][8] = -1.24263928167922; fWeightMatrix0to1[24][8] = -1.9662601156487; fWeightMatrix0to1[25][8] = -0.0264381227642674; fWeightMatrix0to1[26][8] = -0.259215428242397; fWeightMatrix0to1[27][8] = -1.176776331307; fWeightMatrix0to1[28][8] = 5.83298730553252; fWeightMatrix0to1[0][9] = -0.748270446825359; fWeightMatrix0to1[1][9] = 2.40790195231696; fWeightMatrix0to1[2][9] = 5.56687156308784; fWeightMatrix0to1[3][9] = 7.64049765005174; fWeightMatrix0to1[4][9] = 0.916950484003176; fWeightMatrix0to1[5][9] = -6.65005769648016; fWeightMatrix0to1[6][9] = 1.27081919698961; fWeightMatrix0to1[7][9] = 1.80290836430628; fWeightMatrix0to1[8][9] = -0.673654249716948; fWeightMatrix0to1[9][9] = -2.28584929512375; fWeightMatrix0to1[10][9] = 1.73972381940297; fWeightMatrix0to1[11][9] = -0.124825128981858; fWeightMatrix0to1[12][9] = 3.31282714057905; fWeightMatrix0to1[13][9] = 0.408142719894841; fWeightMatrix0to1[14][9] = -0.593308396769175; fWeightMatrix0to1[15][9] = 1.14598188405158; fWeightMatrix0to1[16][9] = 6.91002270933302; fWeightMatrix0to1[17][9] = 1.14828565094715; fWeightMatrix0to1[18][9] = 1.7627723376976; fWeightMatrix0to1[19][9] = 1.21106335568011; fWeightMatrix0to1[20][9] = -2.21641206442237; fWeightMatrix0to1[21][9] = -2.60827596486593; fWeightMatrix0to1[22][9] = -0.417885691671764; fWeightMatrix0to1[23][9] = -1.78286730538075; fWeightMatrix0to1[24][9] = -1.5925680061759; fWeightMatrix0to1[25][9] = -1.71855654882627; fWeightMatrix0to1[26][9] = 1.32106246471683; fWeightMatrix0to1[27][9] = -0.574779518173403; fWeightMatrix0to1[28][9] = 6.33271454484909; fWeightMatrix0to1[0][10] = -2.43373820991244; fWeightMatrix0to1[1][10] = 1.64975036848061; fWeightMatrix0to1[2][10] = 4.79002543326276; fWeightMatrix0to1[3][10] = 7.85378013288601; fWeightMatrix0to1[4][10] = 2.30275113188582; fWeightMatrix0to1[5][10] = -6.56148200989652; fWeightMatrix0to1[6][10] = 0.25674655958577; fWeightMatrix0to1[7][10] = 0.963040981048109; fWeightMatrix0to1[8][10] = -6.0419485012237; fWeightMatrix0to1[9][10] = -2.7174260183929; fWeightMatrix0to1[10][10] = -0.841945890324552; fWeightMatrix0to1[11][10] = -2.17580458452873; fWeightMatrix0to1[12][10] = 3.8407204684947; fWeightMatrix0to1[13][10] = 0.150228269452364; fWeightMatrix0to1[14][10] = 1.19815709991538; fWeightMatrix0to1[15][10] = -0.966766350738751; fWeightMatrix0to1[16][10] = 4.72631177092709; fWeightMatrix0to1[17][10] = -2.23314377958858; fWeightMatrix0to1[18][10] = -2.03144863591498; fWeightMatrix0to1[19][10] = -0.405787572279199; fWeightMatrix0to1[20][10] = 0.524784588546948; fWeightMatrix0to1[21][10] = -1.84223843573848; fWeightMatrix0to1[22][10] = -1.1081473601217; fWeightMatrix0to1[23][10] = 1.39957553029227; fWeightMatrix0to1[24][10] = 5.19817095343295; fWeightMatrix0to1[25][10] = -0.0173634330043687; fWeightMatrix0to1[26][10] = 1.35967187887726; fWeightMatrix0to1[27][10] = -0.450573224896567; fWeightMatrix0to1[28][10] = 5.98769009884677; fWeightMatrix0to1[0][11] = -0.0955321956080911; fWeightMatrix0to1[1][11] = -0.564829930325788; fWeightMatrix0to1[2][11] = -0.20328434778023; fWeightMatrix0to1[3][11] = 7.49970249352138; fWeightMatrix0to1[4][11] = 0.689590868944397; fWeightMatrix0to1[5][11] = -0.440156210190171; fWeightMatrix0to1[6][11] = 1.42805837154823; fWeightMatrix0to1[7][11] = 0.0217749658491623; fWeightMatrix0to1[8][11] = 0.638198238480101; fWeightMatrix0to1[9][11] = 0.160460859280397; fWeightMatrix0to1[10][11] = 0.810015470864976; fWeightMatrix0to1[11][11] = 0.0358916232852921; fWeightMatrix0to1[12][11] = -1.69811050590248; fWeightMatrix0to1[13][11] = -1.98861133786205; fWeightMatrix0to1[14][11] = -4.34690247613913; fWeightMatrix0to1[15][11] = -0.0644151915389192; fWeightMatrix0to1[16][11] = 7.23665586406063; fWeightMatrix0to1[17][11] = -0.605571715366015; fWeightMatrix0to1[18][11] = 0.0598605579093202; fWeightMatrix0to1[19][11] = 0.406579956509175; fWeightMatrix0to1[20][11] = -8.17156774327383; fWeightMatrix0to1[21][11] = 0.357192648143924; fWeightMatrix0to1[22][11] = 0.415701457287259; fWeightMatrix0to1[23][11] = 1.72608301194311; fWeightMatrix0to1[24][11] = -4.467444973734; fWeightMatrix0to1[25][11] = -0.030543156184292; fWeightMatrix0to1[26][11] = -0.283953035534687; fWeightMatrix0to1[27][11] = 0.390424500122016; fWeightMatrix0to1[28][11] = -0.388202633510108; fWeightMatrix0to1[0][12] = -0.000174473130206938; fWeightMatrix0to1[1][12] = -0.881020786521641; fWeightMatrix0to1[2][12] = -1.85605717922705; fWeightMatrix0to1[3][12] = 9.29720514885237; fWeightMatrix0to1[4][12] = 0.452317745171785; fWeightMatrix0to1[5][12] = 1.04394152058796; fWeightMatrix0to1[6][12] = -1.43935250339117; fWeightMatrix0to1[7][12] = 0.0394098062223761; fWeightMatrix0to1[8][12] = 0.503261602110686; fWeightMatrix0to1[9][12] = 0.2435973628578; fWeightMatrix0to1[10][12] = -0.581634230047525; fWeightMatrix0to1[11][12] = 0.439390324728959; fWeightMatrix0to1[12][12] = -3.06485955349036; fWeightMatrix0to1[13][12] = -3.54236232374268; fWeightMatrix0to1[14][12] = 0.834348062623995; fWeightMatrix0to1[15][12] = 0.00639035550254078; fWeightMatrix0to1[16][12] = 8.36950807270969; fWeightMatrix0to1[17][12] = -2.70891020531091; fWeightMatrix0to1[18][12] = -2.72382878931624; fWeightMatrix0to1[19][12] = -0.436866179141602; fWeightMatrix0to1[20][12] = 0.660968222075494; fWeightMatrix0to1[21][12] = -1.76595782070042; fWeightMatrix0to1[22][12] = 0.0334686613742461; fWeightMatrix0to1[23][12] = -1.65526384294161; fWeightMatrix0to1[24][12] = -3.40086861578849; fWeightMatrix0to1[25][12] = -0.0563757386858677; fWeightMatrix0to1[26][12] = -0.397496573827147; fWeightMatrix0to1[27][12] = 0.355016117223178; fWeightMatrix0to1[28][12] = 1.01469701723752; fWeightMatrix0to1[0][13] = 0.666480401747913; fWeightMatrix0to1[1][13] = 2.07972105803554; fWeightMatrix0to1[2][13] = -3.8257781369268; fWeightMatrix0to1[3][13] = -12.6998513139307; fWeightMatrix0to1[4][13] = 0.194183036131457; fWeightMatrix0to1[5][13] = -1.71945327192574; fWeightMatrix0to1[6][13] = 0.877118613547535; fWeightMatrix0to1[7][13] = 1.39644311779101; fWeightMatrix0to1[8][13] = 1.72123405518164; fWeightMatrix0to1[9][13] = 0.246566877326443; fWeightMatrix0to1[10][13] = 1.70043695636712; fWeightMatrix0to1[11][13] = 0.237889893447787; fWeightMatrix0to1[12][13] = 2.82095728939608; fWeightMatrix0to1[13][13] = 2.39958016736811; fWeightMatrix0to1[14][13] = 2.52884427168095; fWeightMatrix0to1[15][13] = -2.18639415347962; fWeightMatrix0to1[16][13] = -2.76491444245399; fWeightMatrix0to1[17][13] = 0.189353849713803; fWeightMatrix0to1[18][13] = 5.37344700332403; fWeightMatrix0to1[19][13] = 1.31538801490333; fWeightMatrix0to1[20][13] = -1.77586514482484; fWeightMatrix0to1[21][13] = -2.82131196021678; fWeightMatrix0to1[22][13] = -1.05162805350012; fWeightMatrix0to1[23][13] = 1.75834363037737; fWeightMatrix0to1[24][13] = -1.14744963311618; fWeightMatrix0to1[25][13] = 0.0163650415183665; fWeightMatrix0to1[26][13] = -1.79086192802197; fWeightMatrix0to1[27][13] = 5.48653211564681; fWeightMatrix0to1[28][13] = -1.48185669492792; fWeightMatrix0to1[0][14] = -0.368414887364228; fWeightMatrix0to1[1][14] = 2.14320946912972; fWeightMatrix0to1[2][14] = 4.58367666645896; fWeightMatrix0to1[3][14] = -5.67181317260009; fWeightMatrix0to1[4][14] = 1.11460166375373; fWeightMatrix0to1[5][14] = -6.79586013584583; fWeightMatrix0to1[6][14] = 0.399473679836749; fWeightMatrix0to1[7][14] = -1.3471251249019; fWeightMatrix0to1[8][14] = 0.656345348503848; fWeightMatrix0to1[9][14] = -1.34182233457253; fWeightMatrix0to1[10][14] = 2.51627924127954; fWeightMatrix0to1[11][14] = -0.105356631718801; fWeightMatrix0to1[12][14] = 4.91926594755865; fWeightMatrix0to1[13][14] = 0.827097452502838; fWeightMatrix0to1[14][14] = -1.80289056518489; fWeightMatrix0to1[15][14] = 0.071985817813644; fWeightMatrix0to1[16][14] = 2.50056345898118; fWeightMatrix0to1[17][14] = -1.46680929755116; fWeightMatrix0to1[18][14] = 0.880366461973288; fWeightMatrix0to1[19][14] = 0.329893055100319; fWeightMatrix0to1[20][14] = -1.97649880374511; fWeightMatrix0to1[21][14] = -3.18737451608053; fWeightMatrix0to1[22][14] = -1.20130551427617; fWeightMatrix0to1[23][14] = 0.737770565427589; fWeightMatrix0to1[24][14] = 0.824460679479411; fWeightMatrix0to1[25][14] = -2.10967385732138; fWeightMatrix0to1[26][14] = -2.27688370960111; fWeightMatrix0to1[27][14] = -0.237533328657092; fWeightMatrix0to1[28][14] = 6.77781068174862; fWeightMatrix0to1[0][15] = 2.21317212960119; fWeightMatrix0to1[1][15] = 1.72290388025394; fWeightMatrix0to1[2][15] = -11.2692566606674; fWeightMatrix0to1[3][15] = -13.3067640336143; fWeightMatrix0to1[4][15] = -0.473028676174445; fWeightMatrix0to1[5][15] = 0.873310653642759; fWeightMatrix0to1[6][15] = -1.60793881685969; fWeightMatrix0to1[7][15] = -0.288225425555858; fWeightMatrix0to1[8][15] = -0.27932375067629; fWeightMatrix0to1[9][15] = -1.51510038271346; fWeightMatrix0to1[10][15] = 2.33597394589176; fWeightMatrix0to1[11][15] = 2.38918167633729; fWeightMatrix0to1[12][15] = 0.347514009396107; fWeightMatrix0to1[13][15] = -2.63493220846306; fWeightMatrix0to1[14][15] = -4.12850792976494; fWeightMatrix0to1[15][15] = 1.89761643471268; fWeightMatrix0to1[16][15] = -1.42277224442156; fWeightMatrix0to1[17][15] = 0.166950933525402; fWeightMatrix0to1[18][15] = -1.30683622854589; fWeightMatrix0to1[19][15] = 2.4038646381251; fWeightMatrix0to1[20][15] = -0.078435681690898; fWeightMatrix0to1[21][15] = 5.09424535443483; fWeightMatrix0to1[22][15] = -1.66312366732077; fWeightMatrix0to1[23][15] = 1.58446069997234; fWeightMatrix0to1[24][15] = 4.48295777801054; fWeightMatrix0to1[25][15] = 0.493071862149405; fWeightMatrix0to1[26][15] = -0.771706741025796; fWeightMatrix0to1[27][15] = -1.4310907422188; fWeightMatrix0to1[28][15] = -3.46255040949921; fWeightMatrix0to1[0][16] = 1.93692306587316; fWeightMatrix0to1[1][16] = 0.730490357089517; fWeightMatrix0to1[2][16] = -16.8894267918305; fWeightMatrix0to1[3][16] = -16.1786071306975; fWeightMatrix0to1[4][16] = -2.0051407294443; fWeightMatrix0to1[5][16] = 10.7143946203558; fWeightMatrix0to1[6][16] = 0.369392010887558; fWeightMatrix0to1[7][16] = -0.597958956989455; fWeightMatrix0to1[8][16] = -2.17165221247563; fWeightMatrix0to1[9][16] = 3.83813585186465; fWeightMatrix0to1[10][16] = 1.17284672114222; fWeightMatrix0to1[11][16] = 1.4586412316613; fWeightMatrix0to1[12][16] = -4.81055560085032; fWeightMatrix0to1[13][16] = -4.31059690775419; fWeightMatrix0to1[14][16] = -2.29644534598387; fWeightMatrix0to1[15][16] = 1.57134364820763; fWeightMatrix0to1[16][16] = -7.8305804757838; fWeightMatrix0to1[17][16] = -1.18631050558927; fWeightMatrix0to1[18][16] = -2.39877287941768; fWeightMatrix0to1[19][16] = 2.15642824261623; fWeightMatrix0to1[20][16] = 1.23880321260488; fWeightMatrix0to1[21][16] = 5.22597007881975; fWeightMatrix0to1[22][16] = -0.539488901653266; fWeightMatrix0to1[23][16] = -1.27094360711861; fWeightMatrix0to1[24][16] = 3.88187628608415; fWeightMatrix0to1[25][16] = 1.62289211296121; fWeightMatrix0to1[26][16] = 0.763858612555881; fWeightMatrix0to1[27][16] = -3.20255545229532; fWeightMatrix0to1[28][16] = -10.4819528689693; fWeightMatrix0to1[0][17] = -1.12535564934088; fWeightMatrix0to1[1][17] = 0.142613574513101; fWeightMatrix0to1[2][17] = -19.4362354345384; fWeightMatrix0to1[3][17] = -14.6181271760438; fWeightMatrix0to1[4][17] = -2.69169379546528; fWeightMatrix0to1[5][17] = 11.6137375714822; fWeightMatrix0to1[6][17] = 0.294804772298295; fWeightMatrix0to1[7][17] = -1.88657192756112; fWeightMatrix0to1[8][17] = 1.14788469023348; fWeightMatrix0to1[9][17] = 4.43087721535846; fWeightMatrix0to1[10][17] = 1.97488033597333; fWeightMatrix0to1[11][17] = 2.86325930410689; fWeightMatrix0to1[12][17] = -5.89084226936699; fWeightMatrix0to1[13][17] = -1.51689622855551; fWeightMatrix0to1[14][17] = -5.08349734977306; fWeightMatrix0to1[15][17] = 0.546550310626689; fWeightMatrix0to1[16][17] = -10.7758599022728; fWeightMatrix0to1[17][17] = 1.07118543401849; fWeightMatrix0to1[18][17] = -5.39699080771638; fWeightMatrix0to1[19][17] = 1.22982086226783; fWeightMatrix0to1[20][17] = 0.664000048260352; fWeightMatrix0to1[21][17] = 5.69228544255474; fWeightMatrix0to1[22][17] = 0.489612527657466; fWeightMatrix0to1[23][17] = -0.887890765043125; fWeightMatrix0to1[24][17] = 3.49414848190521; fWeightMatrix0to1[25][17] = 1.76068962739124; fWeightMatrix0to1[26][17] = 1.31274408540419; fWeightMatrix0to1[27][17] = -0.553678947911655; fWeightMatrix0to1[28][17] = -11.6297739087905; fWeightMatrix0to1[0][18] = 0.48355004220404; fWeightMatrix0to1[1][18] = -1.3246018837374; fWeightMatrix0to1[2][18] = 6.77939532262978; fWeightMatrix0to1[3][18] = 0.916065403844269; fWeightMatrix0to1[4][18] = 1.6167063810134; fWeightMatrix0to1[5][18] = 0.966030130380418; fWeightMatrix0to1[6][18] = 1.5552233359591; fWeightMatrix0to1[7][18] = -1.62236530108401; fWeightMatrix0to1[8][18] = -1.38734344893418; fWeightMatrix0to1[9][18] = -1.33360579114677; fWeightMatrix0to1[10][18] = 0.988987271652244; fWeightMatrix0to1[11][18] = -0.769540508311687; fWeightMatrix0to1[12][18] = 0.525235009733561; fWeightMatrix0to1[13][18] = -0.805668717070642; fWeightMatrix0to1[14][18] = -0.517650674759188; fWeightMatrix0to1[15][18] = -0.98631593279636; fWeightMatrix0to1[16][18] = 0.727746024030975; fWeightMatrix0to1[17][18] = -3.916337251234; fWeightMatrix0to1[18][18] = 0.0308360303374595; fWeightMatrix0to1[19][18] = 0.943067523816968; fWeightMatrix0to1[20][18] = 1.37413004327004; fWeightMatrix0to1[21][18] = -0.560085115866941; fWeightMatrix0to1[22][18] = 0.575478949188362; fWeightMatrix0to1[23][18] = 0.0911968316598896; fWeightMatrix0to1[24][18] = -3.01157303624151; fWeightMatrix0to1[25][18] = -0.729666484382219; fWeightMatrix0to1[26][18] = 2.13339695511206; fWeightMatrix0to1[27][18] = -1.20021685134968; fWeightMatrix0to1[28][18] = 1.01328456246395; fWeightMatrix0to1[0][19] = -0.214952068817659; fWeightMatrix0to1[1][19] = -0.681970195019792; fWeightMatrix0to1[2][19] = 4.92091107865339; fWeightMatrix0to1[3][19] = -0.643019386001745; fWeightMatrix0to1[4][19] = -1.07222173451311; fWeightMatrix0to1[5][19] = -1.43460639729216; fWeightMatrix0to1[6][19] = -1.02559710161725; fWeightMatrix0to1[7][19] = 1.5560704800435; fWeightMatrix0to1[8][19] = -2.49803652184161; fWeightMatrix0to1[9][19] = 1.06509565485935; fWeightMatrix0to1[10][19] = 2.08241208491348; fWeightMatrix0to1[11][19] = 0.874309301306016; fWeightMatrix0to1[12][19] = 1.99751026378678; fWeightMatrix0to1[13][19] = 0.414762500363348; fWeightMatrix0to1[14][19] = 0.367474116890843; fWeightMatrix0to1[15][19] = -0.867202772238265; fWeightMatrix0to1[16][19] = -0.785205884423838; fWeightMatrix0to1[17][19] = -2.94431061933642; fWeightMatrix0to1[18][19] = -0.17788779079282; fWeightMatrix0to1[19][19] = 2.24314488974203; fWeightMatrix0to1[20][19] = 1.97922379074173; fWeightMatrix0to1[21][19] = 0.77009667000895; fWeightMatrix0to1[22][19] = 1.47123941133575; fWeightMatrix0to1[23][19] = 1.05382298448672; fWeightMatrix0to1[24][19] = -4.19375344212188; fWeightMatrix0to1[25][19] = 0.862515023856497; fWeightMatrix0to1[26][19] = -1.45710495839048; fWeightMatrix0to1[27][19] = 0.0832663024987649; fWeightMatrix0to1[28][19] = -1.23820416569504; fWeightMatrix0to1[0][20] = -0.116552271006643; fWeightMatrix0to1[1][20] = -0.633816873002174; fWeightMatrix0to1[2][20] = 4.09929043655071; fWeightMatrix0to1[3][20] = 0.0622541815397844; fWeightMatrix0to1[4][20] = 1.66279376986313; fWeightMatrix0to1[5][20] = -7.69070099637736; fWeightMatrix0to1[6][20] = -0.643777033313919; fWeightMatrix0to1[7][20] = 0.288245591142494; fWeightMatrix0to1[8][20] = -4.93253320098955; fWeightMatrix0to1[9][20] = -2.07057774631767; fWeightMatrix0to1[10][20] = -12.1303474434701; fWeightMatrix0to1[11][20] = 3.45647931424198; fWeightMatrix0to1[12][20] = -4.35026141886121; fWeightMatrix0to1[13][20] = 1.84162056398772; fWeightMatrix0to1[14][20] = -18.6878200301759; fWeightMatrix0to1[15][20] = -0.251045631602913; fWeightMatrix0to1[16][20] = 12.9973370361349; fWeightMatrix0to1[17][20] = -5.62610050790527; fWeightMatrix0to1[18][20] = -9.90207803293421; fWeightMatrix0to1[19][20] = -7.4104540574396; fWeightMatrix0to1[20][20] = 17.1311506935743; fWeightMatrix0to1[21][20] = 15.0355791150989; fWeightMatrix0to1[22][20] = 0.614419682880109; fWeightMatrix0to1[23][20] = -1.63064734307799; fWeightMatrix0to1[24][20] = 10.5118123760011; fWeightMatrix0to1[25][20] = -0.00383992606700751; fWeightMatrix0to1[26][20] = -0.123120982684321; fWeightMatrix0to1[27][20] = -3.09336953556099; fWeightMatrix0to1[28][20] = -11.3799976070317; fWeightMatrix0to1[0][21] = 0.137396350239204; fWeightMatrix0to1[1][21] = 0.478155033428351; fWeightMatrix0to1[2][21] = 7.45456065657793; fWeightMatrix0to1[3][21] = 5.80930652811373; fWeightMatrix0to1[4][21] = 0.0205170344617301; fWeightMatrix0to1[5][21] = -1.458006526425; fWeightMatrix0to1[6][21] = 1.84290045088184; fWeightMatrix0to1[7][21] = 0.232618249364971; fWeightMatrix0to1[8][21] = -1.54662196102414; fWeightMatrix0to1[9][21] = -0.238939358712967; fWeightMatrix0to1[10][21] = -1.35743431131119; fWeightMatrix0to1[11][21] = 2.33077731531835; fWeightMatrix0to1[12][21] = -2.1349325121901; fWeightMatrix0to1[13][21] = 2.48984642584835; fWeightMatrix0to1[14][21] = -1.07119838451133; fWeightMatrix0to1[15][21] = -0.717351492027505; fWeightMatrix0to1[16][21] = 0.038985368301258; fWeightMatrix0to1[17][21] = -2.44460732001527; fWeightMatrix0to1[18][21] = -2.19935241448375; fWeightMatrix0to1[19][21] = -1.12787025962647; fWeightMatrix0to1[20][21] = 0.78861885777054; fWeightMatrix0to1[21][21] = 0.70621700147334; fWeightMatrix0to1[22][21] = -0.0779993753528654; fWeightMatrix0to1[23][21] = 1.11340535929993; fWeightMatrix0to1[24][21] = -2.94787291652917; fWeightMatrix0to1[25][21] = -1.31420828027631; fWeightMatrix0to1[26][21] = 0.384855130328845; fWeightMatrix0to1[27][21] = -1.27576463628791; fWeightMatrix0to1[28][21] = -3.92920815999865; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = -0.346854818373691; fWeightMatrix1to2[0][1] = -3.3909237679544; fWeightMatrix1to2[0][2] = -0.652504517880585; fWeightMatrix1to2[0][3] = -2.07830391072052; fWeightMatrix1to2[0][4] = -0.813372161526605; fWeightMatrix1to2[0][5] = 0.65963303330441; fWeightMatrix1to2[0][6] = -1.81650565035179; fWeightMatrix1to2[0][7] = 0.0402747723055605; fWeightMatrix1to2[0][8] = -0.893481239607244; fWeightMatrix1to2[0][9] = 0.597561184008959; fWeightMatrix1to2[0][10] = -0.615278650097971; fWeightMatrix1to2[0][11] = 0.232699074692303; fWeightMatrix1to2[0][12] = -0.670797336682843; fWeightMatrix1to2[0][13] = -0.3853934340708; fWeightMatrix1to2[0][14] = -0.736350032325233; fWeightMatrix1to2[0][15] = -0.326657225511831; fWeightMatrix1to2[0][16] = -0.665642768205835; fWeightMatrix1to2[0][17] = -0.935237752197559; fWeightMatrix1to2[0][18] = -0.482286616083768; fWeightMatrix1to2[0][19] = -1.24303969455842; fWeightMatrix1to2[0][20] = 0.74834067973927; fWeightMatrix1to2[0][21] = 0.518581361155433; fWeightMatrix1to2[0][22] = 0.535855964913034; fWeightMatrix1to2[0][23] = 0.847022932461289; fWeightMatrix1to2[0][24] = 0.499636975186705; fWeightMatrix1to2[0][25] = -0.129164264938615; fWeightMatrix1to2[0][26] = 0.454587151018448; fWeightMatrix1to2[0][27] = -0.766724137836758; fWeightMatrix1to2[0][28] = -0.652243910952196; fWeightMatrix1to2[0][29] = 0.670380699525103; } inline double ReadProton_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; } for (int l=0; l& 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 ReadProton_Upstream_TMVA::InitTransform_1() { // Normalization transformation, initialisation fMin_1[0][0] = 253.580001831; fMax_1[0][0] = 4741412; fMin_1[1][0] = 333.600006104; fMax_1[1][0] = 2106659.25; fMin_1[2][0] = 253.580001831; fMax_1[2][0] = 4741412; fMin_1[0][1] = 5.38133239746; fMax_1[0][1] = 954913.375; fMin_1[1][1] = 13.5251541138; fMax_1[1][1] = 548519.9375; fMin_1[2][1] = 5.38133239746; fMax_1[2][1] = 954913.375; fMin_1[0][2] = 0.00438635889441; fMax_1[0][2] = 2.99875736237; fMin_1[1][2] = 0.0253186393529; fMax_1[1][2] = 2.99858546257; fMin_1[2][2] = 0.00438635889441; fMax_1[2][2] = 2.99875736237; fMin_1[0][3] = 4; fMax_1[0][3] = 27; fMin_1[1][3] = 4; fMax_1[1][3] = 26; fMin_1[2][3] = 4; fMax_1[2][3] = 27; fMin_1[0][4] = -59.4464607239; fMax_1[0][4] = -0.329912275076; fMin_1[1][4] = -40.3661956787; fMax_1[1][4] = -0.346602231264; fMin_1[2][4] = -59.4464607239; fMax_1[2][4] = -0.329912275076; fMin_1[0][5] = 0.0295318737626; fMax_1[0][5] = 1; fMin_1[1][5] = 0.0616190172732; fMax_1[1][5] = 1; fMin_1[2][5] = 0.0295318737626; fMax_1[2][5] = 1; fMin_1[0][6] = 9.30839669309e-05; fMax_1[0][6] = 48.2787208557; fMin_1[1][6] = 0.000381643272704; fMax_1[1][6] = 39.7740097046; fMin_1[2][6] = 9.30839669309e-05; fMax_1[2][6] = 48.2787208557; fMin_1[0][7] = 1; fMax_1[0][7] = 23; fMin_1[1][7] = 1; fMax_1[1][7] = 21; fMin_1[2][7] = 1; fMax_1[2][7] = 23; 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] = 0; fMax_1[0][10] = 1; fMin_1[1][10] = 0; fMax_1[1][10] = 1; fMin_1[2][10] = 0; fMax_1[2][10] = 1; fMin_1[0][11] = 0; fMax_1[0][11] = 1; fMin_1[1][11] = 0; fMax_1[1][11] = 1; fMin_1[2][11] = 0; fMax_1[2][11] = 1; fMin_1[0][12] = 0; fMax_1[0][12] = 1; fMin_1[1][12] = 0; fMax_1[1][12] = 1; fMin_1[2][12] = 0; fMax_1[2][12] = 1; fMin_1[0][13] = -999; fMax_1[0][13] = 117.404403687; fMin_1[1][13] = -999; fMax_1[1][13] = 39.4519004822; fMin_1[2][13] = -999; fMax_1[2][13] = 117.404403687; fMin_1[0][14] = -999; fMax_1[0][14] = 75.9692993164; fMin_1[1][14] = -999; fMax_1[1][14] = 33.5007019043; fMin_1[2][14] = -999; fMax_1[2][14] = 75.9692993164; fMin_1[0][15] = -999; fMax_1[0][15] = 92.4810028076; fMin_1[1][15] = -999; fMax_1[1][15] = 55.9215011597; fMin_1[2][15] = -999; fMax_1[2][15] = 92.4810028076; fMin_1[0][16] = -999; fMax_1[0][16] = 84.875; fMin_1[1][16] = -999; fMax_1[1][16] = 51.8648986816; fMin_1[2][16] = -999; fMax_1[2][16] = 84.875; fMin_1[0][17] = -999; fMax_1[0][17] = 47.9555015564; fMin_1[1][17] = -999; fMax_1[1][17] = 45.8507003784; fMin_1[2][17] = -999; fMax_1[2][17] = 47.9555015564; fMin_1[0][18] = 0; fMax_1[0][18] = 1; fMin_1[1][18] = 0; fMax_1[1][18] = 1; fMin_1[2][18] = 0; fMax_1[2][18] = 1; fMin_1[0][19] = -999; fMax_1[0][19] = 4.79148387909; fMin_1[1][19] = -999; fMax_1[1][19] = 4.49353694916; fMin_1[2][19] = -999; fMax_1[2][19] = 4.79148387909; fMin_1[0][20] = 0.522471904755; fMax_1[0][20] = 2.90730333328; fMin_1[1][20] = 0.601123571396; fMax_1[1][20] = 3.59951853752; fMin_1[2][20] = 0.522471904755; fMax_1[2][20] = 3.59951853752; } //_______________________________________________________________________ inline void ReadProton_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 = 21; // 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); indicesGet.push_back( 18); indicesGet.push_back( 19); indicesGet.push_back( 20); } 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); indicesPut.push_back( 18); indicesPut.push_back( 19); indicesPut.push_back( 20); } static std::vector dv; dv.resize(nVar); for (int ivar=0; ivar& iv, int sigOrBgd ) const { Transform_1( iv, sigOrBgd ); }