// Class: ReadProton_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Proton_Upstream_TMVA TMVA Release : 4.1.4 [262404] ROOT Release : 5.34/05 [336389] Creator : jonrob Date : Thu Apr 11 05:32:57 2013 Host : Linux lxbuild175.cern.ch 2.6.18-308.4.1.el5 #1 SMP Wed Apr 18 16:26:27 CEST 2012 x86_64 x86_64 x86_64 GNU/Linux Dir : /afs/cern.ch/work/j/jonrob/www/ANNPID/MC12/TrainAllTks-EvalAllTks-ReweightRICH2/TMVA-NoPreSels-NoGECs/MLP/Norm/ScaleF1.2/BP/NCycles750/CE/tanh/Proton/Upstream Training events: 1000000 Analysis type : [Classification] #OPT -*-*-*-*-*-*-*-*-*-*-*-*- options -*-*-*-*-*-*-*-*-*-*-*-*- # Set by User: NCycles: "750" [Number of training cycles] HiddenLayers: "26" [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!)] # 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] ConvergenceImprove: "1.000000e-30" [Minimum improvement which counts as improvement (<0 means automatic convergence check is turned off)] ConvergenceTests: "-1" [Number of steps (without improvement) required for convergence (<0 means automatic convergence check is turned off)] UseRegulator: "False" [Use regulator to avoid over-training] 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 22 TrackP TrackP TrackP TrackP 'F' [172.490005493,4970293.5] TrackPt TrackPt TrackPt TrackPt 'F' [0.832938909531,995273.875] TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof 'F' [0.00302399252541,2.999573946] TrackNumDof TrackNumDof TrackNumDof TrackNumDof 'I' [4,28] TrackLikelihood TrackLikelihood TrackLikelihood TrackLikelihood 'F' [-99.6241531372,-0.319228202105] TrackGhostProbability TrackGhostProbability TrackGhostProbability TrackGhostProbability 'F' [0.0317582078278,1] TrackCloneDist TrackCloneDist TrackCloneDist TrackCloneDist 'F' [-999,4999.73632812] TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 'F' [2.50487555604e-05,51.0802001953] TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF 'I' [1,24] 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,107.511299133] RichDLLmu RichDLLmu RichDLLmu RichDLLmu 'F' [-999,69.573600769] RichDLLk RichDLLk RichDLLk RichDLLk 'F' [-999,99.5278015137] RichDLLp RichDLLp RichDLLp RichDLLp 'F' [-999,62.6166000366] RichDLLbt RichDLLbt RichDLLbt RichDLLbt 'F' [-999,47.8530006409] InAccBrem InAccBrem InAccBrem InAccBrem 'I' [0,1] BremPIDe BremPIDe BremPIDe BremPIDe 'F' [-999,4.79148387909] VeloCharge VeloCharge VeloCharge VeloCharge 'F' [0.486891388893,5.4943819046] 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( 22 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackLikelihood", "TrackGhostProbability", "TrackCloneDist", "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] = 1; 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; fVmin[21] = -1; fVmax[21] = 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] = 'F'; fType[8] = 'I'; fType[9] = 'I'; fType[10] = 'I'; fType[11] = 'I'; fType[12] = 'I'; fType[13] = 'I'; fType[14] = 'F'; fType[15] = 'F'; fType[16] = 'F'; fType[17] = 'F'; fType[18] = 'F'; fType[19] = 'I'; fType[20] = 'F'; fType[21] = '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][22]; double fMax_1[3][22]; 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[22]; double fVmax[22]; 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[22]; // 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[27][23]; // weight matrix from layer 0 to 1 double fWeightMatrix1to2[1][27]; // weight matrix from layer 1 to 2 double * fWeights[3]; }; inline void ReadProton_Upstream_TMVA::Initialize() { // build network structure fLayers = 3; fLayerSize[0] = 23; fWeights[0] = new double[23]; fLayerSize[1] = 27; fWeights[1] = new double[27]; fLayerSize[2] = 1; fWeights[2] = new double[1]; // weight matrix from layer 0 to 1 fWeightMatrix0to1[0][0] = -0.55758714234901; fWeightMatrix0to1[1][0] = 2.37576054533249; fWeightMatrix0to1[2][0] = 1.18758804100385; fWeightMatrix0to1[3][0] = 5.14982282463625; fWeightMatrix0to1[4][0] = -2.08013599686921; fWeightMatrix0to1[5][0] = -2.79889917626675; fWeightMatrix0to1[6][0] = -2.98426162700294; fWeightMatrix0to1[7][0] = 2.90378459224543; fWeightMatrix0to1[8][0] = -1.6504695937444; fWeightMatrix0to1[9][0] = 0.258630583477514; fWeightMatrix0to1[10][0] = 1.38422634456637; fWeightMatrix0to1[11][0] = 7.75116789062796; fWeightMatrix0to1[12][0] = -1.26492648197404; fWeightMatrix0to1[13][0] = 3.3877679200987; fWeightMatrix0to1[14][0] = -0.0188662846257798; fWeightMatrix0to1[15][0] = 1.50059301767309; fWeightMatrix0to1[16][0] = -1.45501008042085; fWeightMatrix0to1[17][0] = -0.0949599401440345; fWeightMatrix0to1[18][0] = 2.90316350649793; fWeightMatrix0to1[19][0] = 6.42273970536767; fWeightMatrix0to1[20][0] = -0.242926362340559; fWeightMatrix0to1[21][0] = 0.428886989399257; fWeightMatrix0to1[22][0] = 1.10965793628995; fWeightMatrix0to1[23][0] = -0.206361263870316; fWeightMatrix0to1[24][0] = -2.25081991535921; fWeightMatrix0to1[25][0] = -0.233268225769164; fWeightMatrix0to1[0][1] = 1.15100939685929; fWeightMatrix0to1[1][1] = -0.772237783332798; fWeightMatrix0to1[2][1] = -0.39770315340225; fWeightMatrix0to1[3][1] = -0.938936985312055; fWeightMatrix0to1[4][1] = 1.07589238489398; fWeightMatrix0to1[5][1] = 1.80042776025337; fWeightMatrix0to1[6][1] = 0.489709262703863; fWeightMatrix0to1[7][1] = -0.994672090117759; fWeightMatrix0to1[8][1] = 0.596847048658619; fWeightMatrix0to1[9][1] = -0.324394292921921; fWeightMatrix0to1[10][1] = 1.45260098554874; fWeightMatrix0to1[11][1] = 1.89470381412742; fWeightMatrix0to1[12][1] = -1.55002859667534; fWeightMatrix0to1[13][1] = 2.35303687246104; fWeightMatrix0to1[14][1] = 2.06449303350958; fWeightMatrix0to1[15][1] = 0.660189669938298; fWeightMatrix0to1[16][1] = 0.661287738134704; fWeightMatrix0to1[17][1] = -1.2751032369765; fWeightMatrix0to1[18][1] = -0.839235419119543; fWeightMatrix0to1[19][1] = -1.68939900935024; fWeightMatrix0to1[20][1] = 0.700080164129256; fWeightMatrix0to1[21][1] = 1.2063082343645; fWeightMatrix0to1[22][1] = 1.75064626375076; fWeightMatrix0to1[23][1] = 1.05137481798629; fWeightMatrix0to1[24][1] = 1.28683831048996; fWeightMatrix0to1[25][1] = 1.30942990022717; fWeightMatrix0to1[0][2] = -0.719615476821786; fWeightMatrix0to1[1][2] = 0.20397518777077; fWeightMatrix0to1[2][2] = -1.25979005054041; fWeightMatrix0to1[3][2] = -0.152235588632684; fWeightMatrix0to1[4][2] = 0.68223261221278; fWeightMatrix0to1[5][2] = -2.00666817520788; fWeightMatrix0to1[6][2] = 0.603603824440256; fWeightMatrix0to1[7][2] = 0.392326997954647; fWeightMatrix0to1[8][2] = -0.356041476301349; fWeightMatrix0to1[9][2] = 0.838809503495333; fWeightMatrix0to1[10][2] = 0.170753413609443; fWeightMatrix0to1[11][2] = -0.286357552733831; fWeightMatrix0to1[12][2] = -0.445848290074902; fWeightMatrix0to1[13][2] = -0.525430748429599; fWeightMatrix0to1[14][2] = -0.654202586796756; fWeightMatrix0to1[15][2] = 4.13153070571295; fWeightMatrix0to1[16][2] = 0.264906730983486; fWeightMatrix0to1[17][2] = 0.0669118983156542; fWeightMatrix0to1[18][2] = 1.39707756373158; fWeightMatrix0to1[19][2] = 0.315785145564729; fWeightMatrix0to1[20][2] = 0.68422334594325; fWeightMatrix0to1[21][2] = 0.333811369598845; fWeightMatrix0to1[22][2] = 0.630462511804372; fWeightMatrix0to1[23][2] = -0.276248964967218; fWeightMatrix0to1[24][2] = -2.10767173831259; fWeightMatrix0to1[25][2] = -1.86907759481307; fWeightMatrix0to1[0][3] = 0.584571982279205; fWeightMatrix0to1[1][3] = -0.159899874719471; fWeightMatrix0to1[2][3] = 0.0294250556424717; fWeightMatrix0to1[3][3] = -2.08189286206583; fWeightMatrix0to1[4][3] = 2.21671466601482; fWeightMatrix0to1[5][3] = -1.68047877933716; fWeightMatrix0to1[6][3] = -14.8288554356732; fWeightMatrix0to1[7][3] = 0.0633519335636; fWeightMatrix0to1[8][3] = -0.251379000003669; fWeightMatrix0to1[9][3] = -0.451265351008507; fWeightMatrix0to1[10][3] = -2.80315819968829; fWeightMatrix0to1[11][3] = 4.22986619075529; fWeightMatrix0to1[12][3] = -1.09204171250489; fWeightMatrix0to1[13][3] = 0.922605262487186; fWeightMatrix0to1[14][3] = 0.734615890048561; fWeightMatrix0to1[15][3] = -1.59289658510995; fWeightMatrix0to1[16][3] = -1.16461672990746; fWeightMatrix0to1[17][3] = 1.70336659205042; fWeightMatrix0to1[18][3] = 2.78530611656587; fWeightMatrix0to1[19][3] = 0.49431758446429; fWeightMatrix0to1[20][3] = -1.27230977583001; fWeightMatrix0to1[21][3] = 1.84272454436572; fWeightMatrix0to1[22][3] = -2.03159357437054; fWeightMatrix0to1[23][3] = -0.804604953759099; fWeightMatrix0to1[24][3] = 0.796741913574872; fWeightMatrix0to1[25][3] = 1.64380493103631; fWeightMatrix0to1[0][4] = -10.6860178123136; fWeightMatrix0to1[1][4] = 0.487536544609038; fWeightMatrix0to1[2][4] = -0.303550575938954; fWeightMatrix0to1[3][4] = 0.456775535207171; fWeightMatrix0to1[4][4] = 0.697442508803396; fWeightMatrix0to1[5][4] = -1.65964276733883; fWeightMatrix0to1[6][4] = -5.28267081360887; fWeightMatrix0to1[7][4] = 1.35976545641401; fWeightMatrix0to1[8][4] = -0.359929079493426; fWeightMatrix0to1[9][4] = 0.0640953121840182; fWeightMatrix0to1[10][4] = -2.54481880755417; fWeightMatrix0to1[11][4] = 3.00301156061859; fWeightMatrix0to1[12][4] = 0.323026788854178; fWeightMatrix0to1[13][4] = -0.610923236848776; fWeightMatrix0to1[14][4] = -1.95953582158654; fWeightMatrix0to1[15][4] = -0.88463625156443; fWeightMatrix0to1[16][4] = 0.408839240977821; fWeightMatrix0to1[17][4] = 9.83462051009038; fWeightMatrix0to1[18][4] = 5.37459238424219; fWeightMatrix0to1[19][4] = 8.57797571053831; fWeightMatrix0to1[20][4] = 2.17955675708919; fWeightMatrix0to1[21][4] = 1.84751150858487; fWeightMatrix0to1[22][4] = 0.0725189877825163; fWeightMatrix0to1[23][4] = 0.201455367349689; fWeightMatrix0to1[24][4] = -0.827203485238098; fWeightMatrix0to1[25][4] = 1.06667218162822; fWeightMatrix0to1[0][5] = 0.234325393538547; fWeightMatrix0to1[1][5] = -0.56171948524666; fWeightMatrix0to1[2][5] = 0.9640615553508; fWeightMatrix0to1[3][5] = 0.212586797182316; fWeightMatrix0to1[4][5] = -1.03833200230176; fWeightMatrix0to1[5][5] = 0.0890284007139611; fWeightMatrix0to1[6][5] = -0.884766754689162; fWeightMatrix0to1[7][5] = 0.0219426336155279; fWeightMatrix0to1[8][5] = 0.352041035183542; fWeightMatrix0to1[9][5] = 0.471706374541224; fWeightMatrix0to1[10][5] = 0.135642155990109; fWeightMatrix0to1[11][5] = -0.547276819844429; fWeightMatrix0to1[12][5] = 0.265010558905023; fWeightMatrix0to1[13][5] = 0.00924731166689534; fWeightMatrix0to1[14][5] = 0.197858434304059; fWeightMatrix0to1[15][5] = -0.00610366230617477; fWeightMatrix0to1[16][5] = -0.175145372875576; fWeightMatrix0to1[17][5] = 0.429615791341646; fWeightMatrix0to1[18][5] = -0.601449528633752; fWeightMatrix0to1[19][5] = 0.186229700014554; fWeightMatrix0to1[20][5] = 0.143249589106026; fWeightMatrix0to1[21][5] = -0.2133384019492; fWeightMatrix0to1[22][5] = 1.70566444167578; fWeightMatrix0to1[23][5] = 0.0816123577965218; fWeightMatrix0to1[24][5] = -2.1146971222167; fWeightMatrix0to1[25][5] = 0.271983935415309; fWeightMatrix0to1[0][6] = -0.708718040384754; fWeightMatrix0to1[1][6] = 0.945429845395464; fWeightMatrix0to1[2][6] = -0.571651204298061; fWeightMatrix0to1[3][6] = -4.92948454651941; fWeightMatrix0to1[4][6] = 1.41127426287127; fWeightMatrix0to1[5][6] = 2.24627222797336; fWeightMatrix0to1[6][6] = 0.522911951600893; fWeightMatrix0to1[7][6] = -2.00644655194279; fWeightMatrix0to1[8][6] = 1.99808810890425; fWeightMatrix0to1[9][6] = 0.618048171489727; fWeightMatrix0to1[10][6] = 7.40548890975139; fWeightMatrix0to1[11][6] = -0.869971567375776; fWeightMatrix0to1[12][6] = -1.12363088807774; fWeightMatrix0to1[13][6] = 0.698805673595247; fWeightMatrix0to1[14][6] = 0.481500965933195; fWeightMatrix0to1[15][6] = -1.72849723943215; fWeightMatrix0to1[16][6] = -0.253624562324988; fWeightMatrix0to1[17][6] = 0.0274318306974506; fWeightMatrix0to1[18][6] = 1.76822902649579; fWeightMatrix0to1[19][6] = -4.43823739728264; fWeightMatrix0to1[20][6] = 0.905107248368464; fWeightMatrix0to1[21][6] = 0.146154685958022; fWeightMatrix0to1[22][6] = 1.07393158008625; fWeightMatrix0to1[23][6] = -2.16558718246046; fWeightMatrix0to1[24][6] = 0.0262450761446896; fWeightMatrix0to1[25][6] = 1.16343026077836; fWeightMatrix0to1[0][7] = 0.74607598112695; fWeightMatrix0to1[1][7] = -1.81645798574315; fWeightMatrix0to1[2][7] = -0.711263920176256; fWeightMatrix0to1[3][7] = 1.55898515872772; fWeightMatrix0to1[4][7] = 0.0790176086820385; fWeightMatrix0to1[5][7] = 2.17083952432119; fWeightMatrix0to1[6][7] = 0.628782835558997; fWeightMatrix0to1[7][7] = 0.0576034435409535; fWeightMatrix0to1[8][7] = -0.883880739129428; fWeightMatrix0to1[9][7] = -1.27474174502234; fWeightMatrix0to1[10][7] = -1.03716469920372; fWeightMatrix0to1[11][7] = 0.441630995097436; fWeightMatrix0to1[12][7] = 1.60164349495113; fWeightMatrix0to1[13][7] = 0.242964340088138; fWeightMatrix0to1[14][7] = 1.47655577999535; fWeightMatrix0to1[15][7] = 3.40829901471085; fWeightMatrix0to1[16][7] = -0.471696288967357; fWeightMatrix0to1[17][7] = -0.362191173405004; fWeightMatrix0to1[18][7] = -3.94328720741834; fWeightMatrix0to1[19][7] = 3.32860275623554; fWeightMatrix0to1[20][7] = -0.130410703592801; fWeightMatrix0to1[21][7] = -0.251587865002949; fWeightMatrix0to1[22][7] = 1.13149237304075; fWeightMatrix0to1[23][7] = 0.353370402191358; fWeightMatrix0to1[24][7] = 2.46906357972294; fWeightMatrix0to1[25][7] = -0.12935458275566; fWeightMatrix0to1[0][8] = 1.15284801592255; fWeightMatrix0to1[1][8] = 0.881336213844678; fWeightMatrix0to1[2][8] = -0.388497226349466; fWeightMatrix0to1[3][8] = 1.22441600492398; fWeightMatrix0to1[4][8] = -3.07593962791289; fWeightMatrix0to1[5][8] = -1.63180729048943; fWeightMatrix0to1[6][8] = 11.7911762070703; fWeightMatrix0to1[7][8] = 0.962197986816979; fWeightMatrix0to1[8][8] = -0.211210594649276; fWeightMatrix0to1[9][8] = 0.498190094400473; fWeightMatrix0to1[10][8] = 2.49299743075396; fWeightMatrix0to1[11][8] = -5.3040881337463; fWeightMatrix0to1[12][8] = -2.08176750829582; fWeightMatrix0to1[13][8] = -0.80971453036187; fWeightMatrix0to1[14][8] = -2.38362668921099; fWeightMatrix0to1[15][8] = -0.513071532571418; fWeightMatrix0to1[16][8] = 1.83432972128824; fWeightMatrix0to1[17][8] = -0.124563462923204; fWeightMatrix0to1[18][8] = 2.79188690053078; fWeightMatrix0to1[19][8] = -1.92965813918219; fWeightMatrix0to1[20][8] = -1.20612030863533; fWeightMatrix0to1[21][8] = -0.718739542308068; fWeightMatrix0to1[22][8] = 1.66862986539254; fWeightMatrix0to1[23][8] = 0.836948846020807; fWeightMatrix0to1[24][8] = 0.635726333808539; fWeightMatrix0to1[25][8] = -1.19261041153065; fWeightMatrix0to1[0][9] = 3.6506386214082; fWeightMatrix0to1[1][9] = -2.04087032400175; fWeightMatrix0to1[2][9] = 0.682400252212739; fWeightMatrix0to1[3][9] = 0.377792804892238; fWeightMatrix0to1[4][9] = 0.209610688514701; fWeightMatrix0to1[5][9] = -1.57756339780859; fWeightMatrix0to1[6][9] = -0.0785071705771873; fWeightMatrix0to1[7][9] = 0.568577297630207; fWeightMatrix0to1[8][9] = -1.07824679729373; fWeightMatrix0to1[9][9] = -3.28477553386798; fWeightMatrix0to1[10][9] = -4.17300300095067; fWeightMatrix0to1[11][9] = -0.0594673961087924; fWeightMatrix0to1[12][9] = -1.49199097982495; fWeightMatrix0to1[13][9] = -2.93782145957764; fWeightMatrix0to1[14][9] = 2.82339573913446; fWeightMatrix0to1[15][9] = -1.31663248842755; fWeightMatrix0to1[16][9] = 0.393029230244257; fWeightMatrix0to1[17][9] = -4.59590046590933; fWeightMatrix0to1[18][9] = -2.72456073318598; fWeightMatrix0to1[19][9] = 1.61250040260897; fWeightMatrix0to1[20][9] = 0.183348208047065; fWeightMatrix0to1[21][9] = -2.97584626641073; fWeightMatrix0to1[22][9] = -0.934091895774739; fWeightMatrix0to1[23][9] = -0.0298629026216115; fWeightMatrix0to1[24][9] = -2.83418090701822; fWeightMatrix0to1[25][9] = -1.64096838991359; fWeightMatrix0to1[0][10] = 1.18882780093944; fWeightMatrix0to1[1][10] = 0.403229496153558; fWeightMatrix0to1[2][10] = 0.531096868705765; fWeightMatrix0to1[3][10] = -4.88730525563784; fWeightMatrix0to1[4][10] = -1.84175666724574; fWeightMatrix0to1[5][10] = -0.803458629789094; fWeightMatrix0to1[6][10] = -1.45566730015285; fWeightMatrix0to1[7][10] = 8.54202434145971; fWeightMatrix0to1[8][10] = 1.40964641302403; fWeightMatrix0to1[9][10] = 0.0191507505155124; fWeightMatrix0to1[10][10] = 0.275333592485963; fWeightMatrix0to1[11][10] = -5.0189422936712; fWeightMatrix0to1[12][10] = 1.53062403037856; fWeightMatrix0to1[13][10] = -3.09430063150142; fWeightMatrix0to1[14][10] = -0.941754851806136; fWeightMatrix0to1[15][10] = -0.999189851743341; fWeightMatrix0to1[16][10] = 0.291460537652645; fWeightMatrix0to1[17][10] = -1.03508434798149; fWeightMatrix0to1[18][10] = 2.07900176298683; fWeightMatrix0to1[19][10] = 0.733281716794238; fWeightMatrix0to1[20][10] = -1.32143061054911; fWeightMatrix0to1[21][10] = -1.51684337400435; fWeightMatrix0to1[22][10] = -1.71085516277814; fWeightMatrix0to1[23][10] = 0.0959112777483932; fWeightMatrix0to1[24][10] = -2.21024140440823; fWeightMatrix0to1[25][10] = -1.37823282504536; fWeightMatrix0to1[0][11] = -3.12145805665677; fWeightMatrix0to1[1][11] = 1.73477115926618; fWeightMatrix0to1[2][11] = -2.00623726366397; fWeightMatrix0to1[3][11] = -0.347577334247589; fWeightMatrix0to1[4][11] = 0.413228437956859; fWeightMatrix0to1[5][11] = -0.103467420728751; fWeightMatrix0to1[6][11] = -0.0760308795607389; fWeightMatrix0to1[7][11] = 7.81054546427114; fWeightMatrix0to1[8][11] = 0.630445939638621; fWeightMatrix0to1[9][11] = -2.7197976943221; fWeightMatrix0to1[10][11] = 4.58671255985119; fWeightMatrix0to1[11][11] = -5.19951782151154; fWeightMatrix0to1[12][11] = -1.56661736651196; fWeightMatrix0to1[13][11] = -4.68226060719312; fWeightMatrix0to1[14][11] = -2.40390167794453; fWeightMatrix0to1[15][11] = -1.30549426501688; fWeightMatrix0to1[16][11] = -0.318181096963376; fWeightMatrix0to1[17][11] = -2.58087729513576; fWeightMatrix0to1[18][11] = -0.761253672322862; fWeightMatrix0to1[19][11] = -0.701919959390902; fWeightMatrix0to1[20][11] = -2.73322932719062; fWeightMatrix0to1[21][11] = -3.60469919769144; fWeightMatrix0to1[22][11] = -1.07575587466637; fWeightMatrix0to1[23][11] = 0.00118822592834885; fWeightMatrix0to1[24][11] = -1.90515614138667; fWeightMatrix0to1[25][11] = -1.35965645883601; fWeightMatrix0to1[0][12] = 0.171435595685513; fWeightMatrix0to1[1][12] = 2.30258752535293; fWeightMatrix0to1[2][12] = 1.25233793339063; fWeightMatrix0to1[3][12] = 0.884470376983614; fWeightMatrix0to1[4][12] = 0.0978970141435553; fWeightMatrix0to1[5][12] = -3.07632205165628; fWeightMatrix0to1[6][12] = -0.0565142656534301; fWeightMatrix0to1[7][12] = 7.07113772647607; fWeightMatrix0to1[8][12] = -0.238498637866043; fWeightMatrix0to1[9][12] = -0.602833932954706; fWeightMatrix0to1[10][12] = -2.46103777473032; fWeightMatrix0to1[11][12] = -6.91726842578292; fWeightMatrix0to1[12][12] = 0.422261658220692; fWeightMatrix0to1[13][12] = -0.228093460119692; fWeightMatrix0to1[14][12] = 0.0464847572909564; fWeightMatrix0to1[15][12] = 1.09589210448707; fWeightMatrix0to1[16][12] = -0.0583179416718331; fWeightMatrix0to1[17][12] = 0.416638762711734; fWeightMatrix0to1[18][12] = -4.9910305608919; fWeightMatrix0to1[19][12] = -0.422511115633395; fWeightMatrix0to1[20][12] = -0.0757582855184566; fWeightMatrix0to1[21][12] = -5.65945019110913; fWeightMatrix0to1[22][12] = -0.132370072321488; fWeightMatrix0to1[23][12] = -0.151824634839934; fWeightMatrix0to1[24][12] = -0.0723746845028618; fWeightMatrix0to1[25][12] = 1.04433158343626; fWeightMatrix0to1[0][13] = -3.91710044533451; fWeightMatrix0to1[1][13] = 0.38853156423779; fWeightMatrix0to1[2][13] = 0.760436328625525; fWeightMatrix0to1[3][13] = -0.822908517884796; fWeightMatrix0to1[4][13] = 0.215135310242809; fWeightMatrix0to1[5][13] = -1.08834489930605; fWeightMatrix0to1[6][13] = 0.101000033746663; fWeightMatrix0to1[7][13] = -0.785634005981534; fWeightMatrix0to1[8][13] = -0.252138819403345; fWeightMatrix0to1[9][13] = -0.214865427625299; fWeightMatrix0to1[10][13] = -0.522451871844542; fWeightMatrix0to1[11][13] = -5.9244932096865; fWeightMatrix0to1[12][13] = 0.688340733395381; fWeightMatrix0to1[13][13] = 2.88837982530503; fWeightMatrix0to1[14][13] = -0.687093924674328; fWeightMatrix0to1[15][13] = -0.498412176840688; fWeightMatrix0to1[16][13] = -0.421693530893731; fWeightMatrix0to1[17][13] = -1.52712262499378; fWeightMatrix0to1[18][13] = -2.29092739743205; fWeightMatrix0to1[19][13] = 0.263498879591963; fWeightMatrix0to1[20][13] = -0.809833710692681; fWeightMatrix0to1[21][13] = -0.666928938956947; fWeightMatrix0to1[22][13] = 0.448607132186918; fWeightMatrix0to1[23][13] = -0.103174527764998; fWeightMatrix0to1[24][13] = -0.848118101520245; fWeightMatrix0to1[25][13] = -1.62550664052725; fWeightMatrix0to1[0][14] = 9.32078725536279; fWeightMatrix0to1[1][14] = -0.36682151965358; fWeightMatrix0to1[2][14] = -2.8038442786599; fWeightMatrix0to1[3][14] = -3.05714763285778; fWeightMatrix0to1[4][14] = -1.07941486820033; fWeightMatrix0to1[5][14] = 0.297472659774001; fWeightMatrix0to1[6][14] = 12.1467977791887; fWeightMatrix0to1[7][14] = -5.40876746160359; fWeightMatrix0to1[8][14] = -1.06605970243457; fWeightMatrix0to1[9][14] = 2.8084873179674; fWeightMatrix0to1[10][14] = 6.90122218524215; fWeightMatrix0to1[11][14] = 4.75212323641824; fWeightMatrix0to1[12][14] = 0.00640929887213694; fWeightMatrix0to1[13][14] = 4.36319947277652; fWeightMatrix0to1[14][14] = 2.39485398291269; fWeightMatrix0to1[15][14] = -0.176145647618089; fWeightMatrix0to1[16][14] = 27.7745136526437; fWeightMatrix0to1[17][14] = -5.12115154562781; fWeightMatrix0to1[18][14] = -8.41769585526347; fWeightMatrix0to1[19][14] = 1.73576866114988; fWeightMatrix0to1[20][14] = 0.903925404763654; fWeightMatrix0to1[21][14] = -1.88809315286211; fWeightMatrix0to1[22][14] = 0.912401735913795; fWeightMatrix0to1[23][14] = 1.84573543648491; fWeightMatrix0to1[24][14] = 1.23644304396817; fWeightMatrix0to1[25][14] = -1.33153239282971; fWeightMatrix0to1[0][15] = 3.72086341488094; fWeightMatrix0to1[1][15] = 0.900718895425939; fWeightMatrix0to1[2][15] = -3.10469635073564; fWeightMatrix0to1[3][15] = -1.76071154402054; fWeightMatrix0to1[4][15] = -2.79326811162646; fWeightMatrix0to1[5][15] = 0.459672813970019; fWeightMatrix0to1[6][15] = 3.30825854537511; fWeightMatrix0to1[7][15] = 6.52260562901093; fWeightMatrix0to1[8][15] = 1.7678018925461; fWeightMatrix0to1[9][15] = 0.431851420783801; fWeightMatrix0to1[10][15] = 3.57054728381421; fWeightMatrix0to1[11][15] = 2.33813321425576; fWeightMatrix0to1[12][15] = 0.357102191144431; fWeightMatrix0to1[13][15] = -1.77409356658252; fWeightMatrix0to1[14][15] = 0.771212231267427; fWeightMatrix0to1[15][15] = -2.65017305950873; fWeightMatrix0to1[16][15] = -0.689154457271435; fWeightMatrix0to1[17][15] = -1.99177722839581; fWeightMatrix0to1[18][15] = 0.914083579125654; fWeightMatrix0to1[19][15] = 0.0841097854348124; fWeightMatrix0to1[20][15] = -1.55164570050636; fWeightMatrix0to1[21][15] = -3.63707888740838; fWeightMatrix0to1[22][15] = 0.214304130273068; fWeightMatrix0to1[23][15] = -1.27429108700635; fWeightMatrix0to1[24][15] = -0.0915660882204561; fWeightMatrix0to1[25][15] = -0.184639300823973; fWeightMatrix0to1[0][16] = -1.35304320547011; fWeightMatrix0to1[1][16] = 1.30291592410203; fWeightMatrix0to1[2][16] = 0.582609395349437; fWeightMatrix0to1[3][16] = 5.14660624082604; fWeightMatrix0to1[4][16] = 1.13750626472778; fWeightMatrix0to1[5][16] = -0.317510804432597; fWeightMatrix0to1[6][16] = -0.965529109108407; fWeightMatrix0to1[7][16] = -10.6342463962503; fWeightMatrix0to1[8][16] = -3.15638352846188; fWeightMatrix0to1[9][16] = -0.986453432124447; fWeightMatrix0to1[10][16] = -3.57650482194059; fWeightMatrix0to1[11][16] = 5.87039485912345; fWeightMatrix0to1[12][16] = -2.86675647454685; fWeightMatrix0to1[13][16] = 2.18779740116503; fWeightMatrix0to1[14][16] = 1.0856372976738; fWeightMatrix0to1[15][16] = -2.62312386150355; fWeightMatrix0to1[16][16] = -9.91593005418262; fWeightMatrix0to1[17][16] = 2.7809561858349; fWeightMatrix0to1[18][16] = 4.08444424998606; fWeightMatrix0to1[19][16] = 2.74833157494037; fWeightMatrix0to1[20][16] = 0.980621073881363; fWeightMatrix0to1[21][16] = -4.54798913325927; fWeightMatrix0to1[22][16] = -2.12192689354179; fWeightMatrix0to1[23][16] = -0.286780717158194; fWeightMatrix0to1[24][16] = -1.06939331925075; fWeightMatrix0to1[25][16] = -1.57148691001002; fWeightMatrix0to1[0][17] = -4.14041051941226; fWeightMatrix0to1[1][17] = 0.073085571901321; fWeightMatrix0to1[2][17] = -2.66101682961401; fWeightMatrix0to1[3][17] = 10.1617861215397; fWeightMatrix0to1[4][17] = 4.19342825382986; fWeightMatrix0to1[5][17] = -0.715771885565938; fWeightMatrix0to1[6][17] = -5.98450693665845; fWeightMatrix0to1[7][17] = -15.6850227121014; fWeightMatrix0to1[8][17] = -0.915615103824703; fWeightMatrix0to1[9][17] = -1.36156895971909; fWeightMatrix0to1[10][17] = -4.18141425330431; fWeightMatrix0to1[11][17] = 11.9485183008492; fWeightMatrix0to1[12][17] = -0.770753452098706; fWeightMatrix0to1[13][17] = 1.34872723533048; fWeightMatrix0to1[14][17] = 5.37174770528096; fWeightMatrix0to1[15][17] = -2.5904545371384; fWeightMatrix0to1[16][17] = -6.43400025527037; fWeightMatrix0to1[17][17] = 7.08422161280834; fWeightMatrix0to1[18][17] = 2.23855221914172; fWeightMatrix0to1[19][17] = 0.67945734445912; fWeightMatrix0to1[20][17] = 0.64391142974873; fWeightMatrix0to1[21][17] = -4.72541747149398; fWeightMatrix0to1[22][17] = 0.986799110073498; fWeightMatrix0to1[23][17] = -0.149284901033446; fWeightMatrix0to1[24][17] = 0.161996550954955; fWeightMatrix0to1[25][17] = -1.48641351470438; fWeightMatrix0to1[0][18] = -3.59617222286418; fWeightMatrix0to1[1][18] = 1.85889014521272; fWeightMatrix0to1[2][18] = -0.826602034549955; fWeightMatrix0to1[3][18] = 9.12634811739075; fWeightMatrix0to1[4][18] = 1.42005613530131; fWeightMatrix0to1[5][18] = 0.940911110830744; fWeightMatrix0to1[6][18] = -5.94329894699302; fWeightMatrix0to1[7][18] = -18.4715344534569; fWeightMatrix0to1[8][18] = -3.29078730643128; fWeightMatrix0to1[9][18] = -2.05739288500123; fWeightMatrix0to1[10][18] = -3.49852066031491; fWeightMatrix0to1[11][18] = 14.1609131287299; fWeightMatrix0to1[12][18] = -3.43326620274886; fWeightMatrix0to1[13][18] = 2.82541636324911; fWeightMatrix0to1[14][18] = 6.22181162926903; fWeightMatrix0to1[15][18] = 0.569557069378998; fWeightMatrix0to1[16][18] = -8.0292738755817; fWeightMatrix0to1[17][18] = 5.6263866261402; fWeightMatrix0to1[18][18] = 1.17667779292151; fWeightMatrix0to1[19][18] = -0.250926531411744; fWeightMatrix0to1[20][18] = 1.87572833415424; fWeightMatrix0to1[21][18] = -3.83084771444067; fWeightMatrix0to1[22][18] = 0.225145532886867; fWeightMatrix0to1[23][18] = -2.308343090432; fWeightMatrix0to1[24][18] = -0.571535191462169; fWeightMatrix0to1[25][18] = -1.9288188517273; fWeightMatrix0to1[0][19] = -0.887897740563302; fWeightMatrix0to1[1][19] = -1.674716815375; fWeightMatrix0to1[2][19] = 0.462437507015467; fWeightMatrix0to1[3][19] = -5.6412033751495; fWeightMatrix0to1[4][19] = 1.63391649143651; fWeightMatrix0to1[5][19] = 0.61029155148071; fWeightMatrix0to1[6][19] = -2.00978276544984; fWeightMatrix0to1[7][19] = 8.81322862228981; fWeightMatrix0to1[8][19] = 2.32441690638809; fWeightMatrix0to1[9][19] = 0.615353860026453; fWeightMatrix0to1[10][19] = -4.84459260938114; fWeightMatrix0to1[11][19] = -6.83968607411817; fWeightMatrix0to1[12][19] = 1.110861320274; fWeightMatrix0to1[13][19] = -0.840592253029335; fWeightMatrix0to1[14][19] = 0.437127036810631; fWeightMatrix0to1[15][19] = -0.258852216633384; fWeightMatrix0to1[16][19] = 0.450604612461483; fWeightMatrix0to1[17][19] = 0.283770940891759; fWeightMatrix0to1[18][19] = 0.406722759495984; fWeightMatrix0to1[19][19] = 0.985148070083451; fWeightMatrix0to1[20][19] = 0.308864672896404; fWeightMatrix0to1[21][19] = -0.895376574554417; fWeightMatrix0to1[22][19] = -0.218904992076637; fWeightMatrix0to1[23][19] = 0.990146616229298; fWeightMatrix0to1[24][19] = 1.93043551699303; fWeightMatrix0to1[25][19] = 0.799106017237126; fWeightMatrix0to1[0][20] = 0.917286457164541; fWeightMatrix0to1[1][20] = -1.57588980245888; fWeightMatrix0to1[2][20] = 0.70728870740027; fWeightMatrix0to1[3][20] = -7.7126247510939; fWeightMatrix0to1[4][20] = 0.571294396282212; fWeightMatrix0to1[5][20] = 1.615723758421; fWeightMatrix0to1[6][20] = 2.09997398414596; fWeightMatrix0to1[7][20] = 9.26668245349407; fWeightMatrix0to1[8][20] = 2.0272538498123; fWeightMatrix0to1[9][20] = -2.48156101033822; fWeightMatrix0to1[10][20] = -3.89612801011337; fWeightMatrix0to1[11][20] = -6.79454017900808; fWeightMatrix0to1[12][20] = 0.0884240413864831; fWeightMatrix0to1[13][20] = 0.554169497225788; fWeightMatrix0to1[14][20] = -0.533068957981826; fWeightMatrix0to1[15][20] = 0.356970749519409; fWeightMatrix0to1[16][20] = -0.11992361896346; fWeightMatrix0to1[17][20] = -0.35645505524433; fWeightMatrix0to1[18][20] = -0.907507160235724; fWeightMatrix0to1[19][20] = -1.15340687662026; fWeightMatrix0to1[20][20] = -0.81085040601292; fWeightMatrix0to1[21][20] = 0.415583255348181; fWeightMatrix0to1[22][20] = -0.094701419032115; fWeightMatrix0to1[23][20] = -1.22792101371899; fWeightMatrix0to1[24][20] = 2.02337019054488; fWeightMatrix0to1[25][20] = 0.254791890378229; fWeightMatrix0to1[0][21] = -6.40549851173141; fWeightMatrix0to1[1][21] = -3.29959025463188; fWeightMatrix0to1[2][21] = 10.8249421636888; fWeightMatrix0to1[3][21] = -1.46393661868988; fWeightMatrix0to1[4][21] = 2.724099126744; fWeightMatrix0to1[5][21] = -0.26618898614214; fWeightMatrix0to1[6][21] = -0.832335677245185; fWeightMatrix0to1[7][21] = 5.78527952063823; fWeightMatrix0to1[8][21] = -1.54522229032156; fWeightMatrix0to1[9][21] = 2.40213728842943; fWeightMatrix0to1[10][21] = -25.9524432875467; fWeightMatrix0to1[11][21] = -10.8790267446431; fWeightMatrix0to1[12][21] = -1.50108606881508; fWeightMatrix0to1[13][21] = -11.3729269935276; fWeightMatrix0to1[14][21] = 10.3777966569066; fWeightMatrix0to1[15][21] = 6.41443773067301; fWeightMatrix0to1[16][21] = 5.46967254419969; fWeightMatrix0to1[17][21] = 19.4534648889396; fWeightMatrix0to1[18][21] = 8.96151152511966; fWeightMatrix0to1[19][21] = 1.69123322748399; fWeightMatrix0to1[20][21] = 0.185212428428418; fWeightMatrix0to1[21][21] = -23.2843270003237; fWeightMatrix0to1[22][21] = -0.885654844618728; fWeightMatrix0to1[23][21] = -1.68525941186336; fWeightMatrix0to1[24][21] = 1.15906156888652; fWeightMatrix0to1[25][21] = 0.167588148051412; fWeightMatrix0to1[0][22] = 0.277554184403043; fWeightMatrix0to1[1][22] = 1.13691736522943; fWeightMatrix0to1[2][22] = -0.302594039971594; fWeightMatrix0to1[3][22] = -0.253367623408508; fWeightMatrix0to1[4][22] = -0.867618221803433; fWeightMatrix0to1[5][22] = -2.00457729180294; fWeightMatrix0to1[6][22] = 0.625455113818489; fWeightMatrix0to1[7][22] = 0.76424956442315; fWeightMatrix0to1[8][22] = -0.282976834171609; fWeightMatrix0to1[9][22] = 0.633824015842193; fWeightMatrix0to1[10][22] = -1.87472955351401; fWeightMatrix0to1[11][22] = -1.58217689280801; fWeightMatrix0to1[12][22] = 0.735039864909408; fWeightMatrix0to1[13][22] = -2.33058048319444; fWeightMatrix0to1[14][22] = -0.630204349855216; fWeightMatrix0to1[15][22] = 1.59067211282268; fWeightMatrix0to1[16][22] = 0.34431957355367; fWeightMatrix0to1[17][22] = 3.92274519475463; fWeightMatrix0to1[18][22] = -1.17162541650453; fWeightMatrix0to1[19][22] = 1.81903961992277; fWeightMatrix0to1[20][22] = -0.752218750913415; fWeightMatrix0to1[21][22] = -0.347399902955231; fWeightMatrix0to1[22][22] = -2.24944294919251; fWeightMatrix0to1[23][22] = -0.590972505344453; fWeightMatrix0to1[24][22] = 0.759285348434365; fWeightMatrix0to1[25][22] = -1.81515493754185; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = -0.82080305723594; fWeightMatrix1to2[0][1] = 0.239833523241046; fWeightMatrix1to2[0][2] = 1.64769992249621; fWeightMatrix1to2[0][3] = 1.0755982555071; fWeightMatrix1to2[0][4] = 0.781778325866221; fWeightMatrix1to2[0][5] = -0.196635370115589; fWeightMatrix1to2[0][6] = -1.3116596209878; fWeightMatrix1to2[0][7] = -0.786536079642662; fWeightMatrix1to2[0][8] = -0.237235984623312; fWeightMatrix1to2[0][9] = -1.19995630611968; fWeightMatrix1to2[0][10] = -0.743468638138259; fWeightMatrix1to2[0][11] = 0.595126885705398; fWeightMatrix1to2[0][12] = -0.546715266407794; fWeightMatrix1to2[0][13] = 1.08444439471905; fWeightMatrix1to2[0][14] = 0.984754958436843; fWeightMatrix1to2[0][15] = 1.30442253221455; fWeightMatrix1to2[0][16] = -2.44766751915988; fWeightMatrix1to2[0][17] = 0.471992283493142; fWeightMatrix1to2[0][18] = 0.580717811643617; fWeightMatrix1to2[0][19] = 0.802505416245087; fWeightMatrix1to2[0][20] = 0.619275091089908; fWeightMatrix1to2[0][21] = -0.849083457545954; fWeightMatrix1to2[0][22] = 2.45273383616664; fWeightMatrix1to2[0][23] = 0.337633274324313; fWeightMatrix1to2[0][24] = 0.542177525645249; fWeightMatrix1to2[0][25] = 1.43829421044942; fWeightMatrix1to2[0][26] = -2.70654126276694; } 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; 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] = 172.490005493; fMax_1[0][0] = 4970293.5; fMin_1[1][0] = 354.790008545; fMax_1[1][0] = 2577281.75; fMin_1[2][0] = 172.490005493; fMax_1[2][0] = 4970293.5; fMin_1[0][1] = 0.832938909531; fMax_1[0][1] = 995273.875; fMin_1[1][1] = 10.4774341583; fMax_1[1][1] = 492416.46875; fMin_1[2][1] = 0.832938909531; fMax_1[2][1] = 995273.875; fMin_1[0][2] = 0.00302399252541; fMax_1[0][2] = 2.999573946; fMin_1[1][2] = 0.035362098366; fMax_1[1][2] = 2.99956655502; fMin_1[2][2] = 0.00302399252541; fMax_1[2][2] = 2.999573946; fMin_1[0][3] = 4; fMax_1[0][3] = 28; fMin_1[1][3] = 4; fMax_1[1][3] = 24; fMin_1[2][3] = 4; fMax_1[2][3] = 28; fMin_1[0][4] = -99.6241531372; fMax_1[0][4] = -0.319228202105; fMin_1[1][4] = -42.5662536621; fMax_1[1][4] = -0.393063545227; fMin_1[2][4] = -99.6241531372; fMax_1[2][4] = -0.319228202105; fMin_1[0][5] = 0.0317582078278; fMax_1[0][5] = 1; fMin_1[1][5] = 0.0724393799901; fMax_1[1][5] = 1; fMin_1[2][5] = 0.0317582078278; fMax_1[2][5] = 1; fMin_1[0][6] = -999; fMax_1[0][6] = 4999.73632812; fMin_1[1][6] = -999; fMax_1[1][6] = 4993.29345703; fMin_1[2][6] = -999; fMax_1[2][6] = 4999.73632812; fMin_1[0][7] = 2.50487555604e-05; fMax_1[0][7] = 51.0802001953; fMin_1[1][7] = 0.000132516477606; fMax_1[1][7] = 35.2648658752; fMin_1[2][7] = 2.50487555604e-05; fMax_1[2][7] = 51.0802001953; fMin_1[0][8] = 1; fMax_1[0][8] = 24; fMin_1[1][8] = 1; fMax_1[1][8] = 19; fMin_1[2][8] = 1; fMax_1[2][8] = 24; 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] = 0; fMax_1[0][13] = 1; fMin_1[1][13] = 0; fMax_1[1][13] = 1; fMin_1[2][13] = 0; fMax_1[2][13] = 1; fMin_1[0][14] = -999; fMax_1[0][14] = 107.511299133; fMin_1[1][14] = -999; fMax_1[1][14] = 71.3093032837; fMin_1[2][14] = -999; fMax_1[2][14] = 107.511299133; fMin_1[0][15] = -999; fMax_1[0][15] = 69.573600769; fMin_1[1][15] = -999; fMax_1[1][15] = 31.6660003662; fMin_1[2][15] = -999; fMax_1[2][15] = 69.573600769; fMin_1[0][16] = -999; fMax_1[0][16] = 99.5278015137; fMin_1[1][16] = -999; fMax_1[1][16] = 48.7415008545; fMin_1[2][16] = -999; fMax_1[2][16] = 99.5278015137; fMin_1[0][17] = -999; fMax_1[0][17] = 62.6166000366; fMin_1[1][17] = -999; fMax_1[1][17] = 54.5975990295; fMin_1[2][17] = -999; fMax_1[2][17] = 62.6166000366; fMin_1[0][18] = -999; fMax_1[0][18] = 47.8530006409; fMin_1[1][18] = -999; fMax_1[1][18] = 43.57970047; fMin_1[2][18] = -999; fMax_1[2][18] = 47.8530006409; fMin_1[0][19] = 0; fMax_1[0][19] = 1; fMin_1[1][19] = 0; fMax_1[1][19] = 1; fMin_1[2][19] = 0; fMax_1[2][19] = 1; fMin_1[0][20] = -999; fMax_1[0][20] = 4.79148387909; fMin_1[1][20] = -999; fMax_1[1][20] = 4.39659738541; fMin_1[2][20] = -999; fMax_1[2][20] = 4.79148387909; fMin_1[0][21] = 0.486891388893; fMax_1[0][21] = 5.4943819046; fMin_1[1][21] = 0.58426964283; fMax_1[1][21] = 3.85955047607; fMin_1[2][21] = 0.486891388893; fMax_1[2][21] = 5.4943819046; } //_______________________________________________________________________ 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 = 22; // get indices of used variables // define the indices of the variables which are transformed by this transformation std::vector indicesGet; std::vector indicesPut; 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); indicesGet.push_back( 21); 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); indicesPut.push_back( 21); std::vector dv(nVar); for (int ivar=0; ivar& iv, int sigOrBgd ) const { Transform_1( iv, sigOrBgd ); }