// Class: ReadElectron_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Electron_Upstream_TMVA TMVA Release : 4.1.4 [262404] ROOT Release : 5.34/05 [336389] Creator : jonrob Date : Wed Apr 10 15:24:53 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.4/BP/NCycles750/CE/tanh/Electron/Upstream Training events: 1000000 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!)] # 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 21 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] RichAboveMuThres RichAboveMuThres RichAboveMuThres RichAboveMuThres 'I' [0,1] RichAboveKaThres RichAboveKaThres RichAboveKaThres RichAboveKaThres '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 ReadElectron_Upstream_TMVA : public IClassifierReader { public: // constructor ReadElectron_Upstream_TMVA( std::vector& theInputVars ) : IClassifierReader(), fClassName( "ReadElectron_Upstream_TMVA" ), fNvars( 21 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackLikelihood", "TrackGhostProbability", "TrackCloneDist", "TrackFitVeloChi2", "TrackFitVeloNDoF", "RichUsedAero", "RichUsedR1Gas", "RichAboveMuThres", "RichAboveKaThres", "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; // 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] = '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 ~ReadElectron_Upstream_TMVA() { Clear(); // method-specific } // the classifier response // "inputValues" is a vector of input values in the same order as the // variables given to the constructor double GetMvaValue( const std::vector& inputValues ) const; private: // method-specific destructor void Clear(); // input variable transformation double fMin_1[3][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 ReadElectron_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.161388331028621; fWeightMatrix0to1[1][0] = 1.24412333800516; fWeightMatrix0to1[2][0] = 0.738841261871319; fWeightMatrix0to1[3][0] = -2.68428838861646; fWeightMatrix0to1[4][0] = 0.205828418824458; fWeightMatrix0to1[5][0] = -2.39187904807069; fWeightMatrix0to1[6][0] = -0.206569485384614; fWeightMatrix0to1[7][0] = -0.00721115007954469; fWeightMatrix0to1[8][0] = -2.28644141305978; fWeightMatrix0to1[9][0] = -1.04216866732318; fWeightMatrix0to1[10][0] = 2.21284162246233; fWeightMatrix0to1[11][0] = -7.10402991859157; fWeightMatrix0to1[12][0] = -2.32565949864873; fWeightMatrix0to1[13][0] = -2.77880999466555; fWeightMatrix0to1[14][0] = -1.25906718695674; fWeightMatrix0to1[15][0] = 3.01953599372347; fWeightMatrix0to1[16][0] = -2.14479653835402; fWeightMatrix0to1[17][0] = 2.49036832331569; fWeightMatrix0to1[18][0] = -3.35693936954398; fWeightMatrix0to1[19][0] = 0.0673774276035419; fWeightMatrix0to1[20][0] = -6.37628857861806; fWeightMatrix0to1[21][0] = -4.64035392677932; fWeightMatrix0to1[22][0] = 3.07457295655803; fWeightMatrix0to1[23][0] = 0.353749560576557; fWeightMatrix0to1[24][0] = -1.54177386842395; fWeightMatrix0to1[25][0] = -0.848206633542253; fWeightMatrix0to1[26][0] = 4.80246779858698; fWeightMatrix0to1[27][0] = -1.66581039104125; fWeightMatrix0to1[28][0] = -3.07146574078411; fWeightMatrix0to1[0][1] = 1.22381293142401; fWeightMatrix0to1[1][1] = -0.0616510464293201; fWeightMatrix0to1[2][1] = 2.01970559462385; fWeightMatrix0to1[3][1] = -4.98746254872791; fWeightMatrix0to1[4][1] = 1.04844218071046; fWeightMatrix0to1[5][1] = 0.265713535272766; fWeightMatrix0to1[6][1] = -0.191852415950667; fWeightMatrix0to1[7][1] = -2.4434699352133; fWeightMatrix0to1[8][1] = 0.676823460974061; fWeightMatrix0to1[9][1] = -0.929513260579161; fWeightMatrix0to1[10][1] = 2.46253512849902; fWeightMatrix0to1[11][1] = -3.92629522202621; fWeightMatrix0to1[12][1] = -0.465554129274938; fWeightMatrix0to1[13][1] = 0.940193657187766; fWeightMatrix0to1[14][1] = 0.567446286294475; fWeightMatrix0to1[15][1] = -0.839522456590207; fWeightMatrix0to1[16][1] = -2.37214733908121; fWeightMatrix0to1[17][1] = 1.58997514040961; fWeightMatrix0to1[18][1] = -2.1033610420145; fWeightMatrix0to1[19][1] = 0.310075643275249; fWeightMatrix0to1[20][1] = 0.793461330587011; fWeightMatrix0to1[21][1] = 0.189752819489699; fWeightMatrix0to1[22][1] = 0.950946171523217; fWeightMatrix0to1[23][1] = -1.30193546013823; fWeightMatrix0to1[24][1] = 1.46084602361604; fWeightMatrix0to1[25][1] = -2.57626563186994; fWeightMatrix0to1[26][1] = 1.22504464385497; fWeightMatrix0to1[27][1] = -1.90605775261205; fWeightMatrix0to1[28][1] = -3.08331297448862; fWeightMatrix0to1[0][2] = 0.390117195939382; fWeightMatrix0to1[1][2] = 0.986108975521244; fWeightMatrix0to1[2][2] = -0.455553316081042; fWeightMatrix0to1[3][2] = 1.11971215748887; fWeightMatrix0to1[4][2] = 1.93474437252262; fWeightMatrix0to1[5][2] = -0.579785583750198; fWeightMatrix0to1[6][2] = 0.277006982102954; fWeightMatrix0to1[7][2] = -1.265498850857; fWeightMatrix0to1[8][2] = 4.5137005101102; fWeightMatrix0to1[9][2] = -1.94564282724387; fWeightMatrix0to1[10][2] = 0.520535785179296; fWeightMatrix0to1[11][2] = -0.565456800628394; fWeightMatrix0to1[12][2] = 0.0678838059342017; fWeightMatrix0to1[13][2] = -1.0353244134528; fWeightMatrix0to1[14][2] = 0.117798955927749; fWeightMatrix0to1[15][2] = -2.95112908460308; fWeightMatrix0to1[16][2] = -0.0443625230194657; fWeightMatrix0to1[17][2] = 0.24726063562737; fWeightMatrix0to1[18][2] = -5.65922659229303; fWeightMatrix0to1[19][2] = -2.19735037801238; fWeightMatrix0to1[20][2] = 1.42854060161023; fWeightMatrix0to1[21][2] = 0.304560891091714; fWeightMatrix0to1[22][2] = 0.381248407249413; fWeightMatrix0to1[23][2] = 0.232388030741638; fWeightMatrix0to1[24][2] = 0.0835153000389184; fWeightMatrix0to1[25][2] = -0.278446727497451; fWeightMatrix0to1[26][2] = 1.87305454220127; fWeightMatrix0to1[27][2] = 0.174357903420653; fWeightMatrix0to1[28][2] = 0.0200171530323994; fWeightMatrix0to1[0][3] = -0.306038106798581; fWeightMatrix0to1[1][3] = -0.837519774265109; fWeightMatrix0to1[2][3] = -3.69381548972842; fWeightMatrix0to1[3][3] = -5.52613258582784; fWeightMatrix0to1[4][3] = -1.76640817886193; fWeightMatrix0to1[5][3] = 4.17587716542952; fWeightMatrix0to1[6][3] = -0.447804047148297; fWeightMatrix0to1[7][3] = -0.283517983609854; fWeightMatrix0to1[8][3] = 2.62456597575573; fWeightMatrix0to1[9][3] = 0.229897660688707; fWeightMatrix0to1[10][3] = 1.31642615241604; fWeightMatrix0to1[11][3] = -1.24361734895914; fWeightMatrix0to1[12][3] = -4.62933738460917; fWeightMatrix0to1[13][3] = -1.9820597915735; fWeightMatrix0to1[14][3] = -1.98947412860924; fWeightMatrix0to1[15][3] = -0.77209492248607; fWeightMatrix0to1[16][3] = 0.437831187772455; fWeightMatrix0to1[17][3] = -0.384597995619074; fWeightMatrix0to1[18][3] = 7.40456451198428; fWeightMatrix0to1[19][3] = -2.44182535888105; fWeightMatrix0to1[20][3] = 29.107947789068; fWeightMatrix0to1[21][3] = -0.00335811602014175; fWeightMatrix0to1[22][3] = 4.1558174808906; fWeightMatrix0to1[23][3] = -0.484799685416; fWeightMatrix0to1[24][3] = -1.17761833565334; fWeightMatrix0to1[25][3] = 2.92405253062665; fWeightMatrix0to1[26][3] = -13.7490080798147; fWeightMatrix0to1[27][3] = -1.76672983251106; fWeightMatrix0to1[28][3] = 3.52692693822374; fWeightMatrix0to1[0][4] = 2.13130363641383; fWeightMatrix0to1[1][4] = -0.660764901104573; fWeightMatrix0to1[2][4] = 1.66224987817057; fWeightMatrix0to1[3][4] = -5.51958812552494; fWeightMatrix0to1[4][4] = -3.64762847576745; fWeightMatrix0to1[5][4] = 2.17870570960009; fWeightMatrix0to1[6][4] = 0.521127633248369; fWeightMatrix0to1[7][4] = 1.45483754885053; fWeightMatrix0to1[8][4] = -0.617482529858315; fWeightMatrix0to1[9][4] = 1.2644271877996; fWeightMatrix0to1[10][4] = 4.56445329161398; fWeightMatrix0to1[11][4] = -3.536585796307; fWeightMatrix0to1[12][4] = -8.65171014314292; fWeightMatrix0to1[13][4] = 0.865597533637665; fWeightMatrix0to1[14][4] = 0.7491680078232; fWeightMatrix0to1[15][4] = -0.0746404765027284; fWeightMatrix0to1[16][4] = 1.5882602778888; fWeightMatrix0to1[17][4] = -0.848520152983627; fWeightMatrix0to1[18][4] = -3.60852745136991; fWeightMatrix0to1[19][4] = -0.240797331254536; fWeightMatrix0to1[20][4] = -1.84014447850265; fWeightMatrix0to1[21][4] = -0.510970585825988; fWeightMatrix0to1[22][4] = 1.87597789930266; fWeightMatrix0to1[23][4] = 4.40293894834139; fWeightMatrix0to1[24][4] = -4.46748471494517; fWeightMatrix0to1[25][4] = 0.482583500463396; fWeightMatrix0to1[26][4] = -0.746212990172976; fWeightMatrix0to1[27][4] = 0.242457450912051; fWeightMatrix0to1[28][4] = -0.385161916737824; fWeightMatrix0to1[0][5] = -0.616229934241575; fWeightMatrix0to1[1][5] = 1.59902088644206; fWeightMatrix0to1[2][5] = -0.618296055206474; fWeightMatrix0to1[3][5] = -1.00996843258307; fWeightMatrix0to1[4][5] = 0.132180386538525; fWeightMatrix0to1[5][5] = 0.667634140178266; fWeightMatrix0to1[6][5] = -0.756199190729077; fWeightMatrix0to1[7][5] = 4.61824473931826; fWeightMatrix0to1[8][5] = -1.8926765107252; fWeightMatrix0to1[9][5] = -0.290545797542859; fWeightMatrix0to1[10][5] = 0.943880560268771; fWeightMatrix0to1[11][5] = 0.424552478330224; fWeightMatrix0to1[12][5] = -0.575345569364212; fWeightMatrix0to1[13][5] = -1.777998282758; fWeightMatrix0to1[14][5] = -0.614086124027211; fWeightMatrix0to1[15][5] = 10.5073830434837; fWeightMatrix0to1[16][5] = 0.69325409445851; fWeightMatrix0to1[17][5] = 1.08217703464806; fWeightMatrix0to1[18][5] = -3.3959166651497; fWeightMatrix0to1[19][5] = 5.50132641139135; fWeightMatrix0to1[20][5] = 0.273872467910904; fWeightMatrix0to1[21][5] = -0.228758563771953; fWeightMatrix0to1[22][5] = -0.937867273266433; fWeightMatrix0to1[23][5] = -0.0561536117360809; fWeightMatrix0to1[24][5] = 0.29249169208093; fWeightMatrix0to1[25][5] = 1.64111796769791; fWeightMatrix0to1[26][5] = -1.67018167396992; fWeightMatrix0to1[27][5] = -0.521641333095583; fWeightMatrix0to1[28][5] = 0.669969729114541; fWeightMatrix0to1[0][6] = 5.61824613642181; fWeightMatrix0to1[1][6] = -1.44208171177481; fWeightMatrix0to1[2][6] = -0.212892519201237; fWeightMatrix0to1[3][6] = 0.440488936282459; fWeightMatrix0to1[4][6] = -0.145679182361685; fWeightMatrix0to1[5][6] = -5.49587496246076; fWeightMatrix0to1[6][6] = -1.55083771925672; fWeightMatrix0to1[7][6] = -0.195226688855261; fWeightMatrix0to1[8][6] = 2.56512734593966; fWeightMatrix0to1[9][6] = -3.45127821243542; fWeightMatrix0to1[10][6] = -5.45075038802771; fWeightMatrix0to1[11][6] = 0.286876100005026; fWeightMatrix0to1[12][6] = 0.919498935426651; fWeightMatrix0to1[13][6] = 3.10451205045111; fWeightMatrix0to1[14][6] = -2.2260226924331; fWeightMatrix0to1[15][6] = -0.100748765007074; fWeightMatrix0to1[16][6] = 0.0098215226233238; fWeightMatrix0to1[17][6] = -0.706560391013024; fWeightMatrix0to1[18][6] = 5.50078646228901; fWeightMatrix0to1[19][6] = 1.28707747724802; fWeightMatrix0to1[20][6] = 0.350594563554473; fWeightMatrix0to1[21][6] = 0.296080464750074; fWeightMatrix0to1[22][6] = -1.51996070980137; fWeightMatrix0to1[23][6] = 1.31247621717884; fWeightMatrix0to1[24][6] = -0.328910251585605; fWeightMatrix0to1[25][6] = -3.56818208596691; fWeightMatrix0to1[26][6] = -1.14526285201101; fWeightMatrix0to1[27][6] = -0.246765627945317; fWeightMatrix0to1[28][6] = -0.203180575742223; fWeightMatrix0to1[0][7] = 0.704540537917767; fWeightMatrix0to1[1][7] = 0.892034035896318; fWeightMatrix0to1[2][7] = 1.20629898171941; fWeightMatrix0to1[3][7] = -1.8179333089748; fWeightMatrix0to1[4][7] = -3.14280727667655; fWeightMatrix0to1[5][7] = 0.703917567344352; fWeightMatrix0to1[6][7] = 1.39241634268855; fWeightMatrix0to1[7][7] = 1.99761739995543; fWeightMatrix0to1[8][7] = -2.10149588048172; fWeightMatrix0to1[9][7] = 2.14746556751524; fWeightMatrix0to1[10][7] = 0.871646549723412; fWeightMatrix0to1[11][7] = 0.601989976644855; fWeightMatrix0to1[12][7] = 0.474087206770703; fWeightMatrix0to1[13][7] = 2.05706415700551; fWeightMatrix0to1[14][7] = -0.93242958586454; fWeightMatrix0to1[15][7] = -2.58176473621411; fWeightMatrix0to1[16][7] = 1.40368692146648; fWeightMatrix0to1[17][7] = 0.697392572153584; fWeightMatrix0to1[18][7] = 1.58213161180083; fWeightMatrix0to1[19][7] = -0.317134503820698; fWeightMatrix0to1[20][7] = -3.24396075448711; fWeightMatrix0to1[21][7] = 4.51810388597822; fWeightMatrix0to1[22][7] = 0.766107248883588; fWeightMatrix0to1[23][7] = -1.23587382663473; fWeightMatrix0to1[24][7] = -0.176191350698106; fWeightMatrix0to1[25][7] = -2.16202043360125; fWeightMatrix0to1[26][7] = -9.7153657711687; fWeightMatrix0to1[27][7] = 1.03971125174673; fWeightMatrix0to1[28][7] = -0.286217422546735; fWeightMatrix0to1[0][8] = 0.916091871344295; fWeightMatrix0to1[1][8] = -0.262916488574594; fWeightMatrix0to1[2][8] = 2.39578163184237; fWeightMatrix0to1[3][8] = 1.15862737723604; fWeightMatrix0to1[4][8] = 1.19544751746025; fWeightMatrix0to1[5][8] = -4.64326912374314; fWeightMatrix0to1[6][8] = -0.0627313946286702; fWeightMatrix0to1[7][8] = 0.858674994614511; fWeightMatrix0to1[8][8] = -0.0748591620715754; fWeightMatrix0to1[9][8] = -1.62477828984988; fWeightMatrix0to1[10][8] = -1.55724106096744; fWeightMatrix0to1[11][8] = -1.40472880814299; fWeightMatrix0to1[12][8] = -0.104151291570953; fWeightMatrix0to1[13][8] = 0.788333780622984; fWeightMatrix0to1[14][8] = -1.38906849562358; fWeightMatrix0to1[15][8] = 7.20928606424524; fWeightMatrix0to1[16][8] = 0.66521373041301; fWeightMatrix0to1[17][8] = -1.23913294433414; fWeightMatrix0to1[18][8] = -5.12709997656975; fWeightMatrix0to1[19][8] = -2.687628387278; fWeightMatrix0to1[20][8] = -26.3941717158619; fWeightMatrix0to1[21][8] = 0.432144125771355; fWeightMatrix0to1[22][8] = 6.94817825426723; fWeightMatrix0to1[23][8] = 0.598973478317682; fWeightMatrix0to1[24][8] = 1.172032160464; fWeightMatrix0to1[25][8] = -1.28626606633369; fWeightMatrix0to1[26][8] = 17.0548665988643; fWeightMatrix0to1[27][8] = -1.90966655779258; fWeightMatrix0to1[28][8] = -2.07532912102205; fWeightMatrix0to1[0][9] = 0.460051177313513; fWeightMatrix0to1[1][9] = 1.11974815564462; fWeightMatrix0to1[2][9] = -0.0156317734900031; fWeightMatrix0to1[3][9] = 3.78299021353; fWeightMatrix0to1[4][9] = -0.758080764814049; fWeightMatrix0to1[5][9] = -7.19670497448623; fWeightMatrix0to1[6][9] = 1.20694083863583; fWeightMatrix0to1[7][9] = -0.136689632298007; fWeightMatrix0to1[8][9] = -0.0656455631465305; fWeightMatrix0to1[9][9] = -0.695217127328532; fWeightMatrix0to1[10][9] = 1.55784732627136; fWeightMatrix0to1[11][9] = -0.0519292408634252; fWeightMatrix0to1[12][9] = 0.448742370928431; fWeightMatrix0to1[13][9] = 1.33896176961691; fWeightMatrix0to1[14][9] = -0.595451779619732; fWeightMatrix0to1[15][9] = -0.192444081213264; fWeightMatrix0to1[16][9] = 0.463453211882288; fWeightMatrix0to1[17][9] = -0.440205730731116; fWeightMatrix0to1[18][9] = 0.556197382469343; fWeightMatrix0to1[19][9] = 0.531197178119898; fWeightMatrix0to1[20][9] = -0.0476269479051039; fWeightMatrix0to1[21][9] = -6.89261238528194; fWeightMatrix0to1[22][9] = -1.06025972714735; fWeightMatrix0to1[23][9] = -1.36506270435922; fWeightMatrix0to1[24][9] = 0.050605689215721; fWeightMatrix0to1[25][9] = -3.52228970751488; fWeightMatrix0to1[26][9] = 0.116474368938576; fWeightMatrix0to1[27][9] = -1.51429696693245; fWeightMatrix0to1[28][9] = 0.595949325650918; fWeightMatrix0to1[0][10] = -3.71162309212316; fWeightMatrix0to1[1][10] = 1.83692673083455; fWeightMatrix0to1[2][10] = -0.460723043644806; fWeightMatrix0to1[3][10] = 2.29862896920077; fWeightMatrix0to1[4][10] = 1.45654405891961; fWeightMatrix0to1[5][10] = 0.884444502988143; fWeightMatrix0to1[6][10] = 0.577997669061718; fWeightMatrix0to1[7][10] = 0.938156710578661; fWeightMatrix0to1[8][10] = -1.31013192915376; fWeightMatrix0to1[9][10] = -2.99660079313588; fWeightMatrix0to1[10][10] = -0.739394143988732; fWeightMatrix0to1[11][10] = -3.09227689655811; fWeightMatrix0to1[12][10] = 3.4059037781465; fWeightMatrix0to1[13][10] = -1.20644991198557; fWeightMatrix0to1[14][10] = 0.812912985141775; fWeightMatrix0to1[15][10] = 0.396813908615871; fWeightMatrix0to1[16][10] = -1.21772541366447; fWeightMatrix0to1[17][10] = -1.63505732168714; fWeightMatrix0to1[18][10] = -1.7008516627376; fWeightMatrix0to1[19][10] = -0.0971991472698481; fWeightMatrix0to1[20][10] = -4.46982223686465; fWeightMatrix0to1[21][10] = -2.1446031507894; fWeightMatrix0to1[22][10] = -1.66304961598952; fWeightMatrix0to1[23][10] = 2.14998134476063; fWeightMatrix0to1[24][10] = -1.73419779781903; fWeightMatrix0to1[25][10] = -0.0215644437725882; fWeightMatrix0to1[26][10] = 2.51649310694697; fWeightMatrix0to1[27][10] = -1.43652020744877; fWeightMatrix0to1[28][10] = 4.95269012328008; fWeightMatrix0to1[0][11] = 6.20789929635061; fWeightMatrix0to1[1][11] = -0.5953128398748; fWeightMatrix0to1[2][11] = 0.148307167219769; fWeightMatrix0to1[3][11] = 0.188759023114509; fWeightMatrix0to1[4][11] = 0.341741979860961; fWeightMatrix0to1[5][11] = -1.50991761837366; fWeightMatrix0to1[6][11] = 1.89633513298487; fWeightMatrix0to1[7][11] = 0.284704957068517; fWeightMatrix0to1[8][11] = -0.551067211909437; fWeightMatrix0to1[9][11] = -3.94379656023195; fWeightMatrix0to1[10][11] = 1.75538595218603; fWeightMatrix0to1[11][11] = -3.43574347631628; fWeightMatrix0to1[12][11] = 2.20806980541515; fWeightMatrix0to1[13][11] = -0.584953272730046; fWeightMatrix0to1[14][11] = -1.30107884046171; fWeightMatrix0to1[15][11] = 0.0932341143680339; fWeightMatrix0to1[16][11] = -0.3741323181801; fWeightMatrix0to1[17][11] = -1.40861629322363; fWeightMatrix0to1[18][11] = -0.812923408129209; fWeightMatrix0to1[19][11] = 0.76242909879048; fWeightMatrix0to1[20][11] = -0.0294978462898425; fWeightMatrix0to1[21][11] = 0.33653817661175; fWeightMatrix0to1[22][11] = 0.264632521179447; fWeightMatrix0to1[23][11] = 2.34972957698239; fWeightMatrix0to1[24][11] = -3.53419418527903; fWeightMatrix0to1[25][11] = 0.0248548619373424; fWeightMatrix0to1[26][11] = -0.380581220745031; fWeightMatrix0to1[27][11] = -0.140900730224663; fWeightMatrix0to1[28][11] = -0.223094698268628; fWeightMatrix0to1[0][12] = -0.206429287019649; fWeightMatrix0to1[1][12] = 0.394734149220267; fWeightMatrix0to1[2][12] = -0.135052439435293; fWeightMatrix0to1[3][12] = 3.35004620729504; fWeightMatrix0to1[4][12] = 0.444749273443771; fWeightMatrix0to1[5][12] = 0.00370896636043471; fWeightMatrix0to1[6][12] = -0.971104870288327; fWeightMatrix0to1[7][12] = -0.420821309946375; fWeightMatrix0to1[8][12] = 0.0197551683296053; fWeightMatrix0to1[9][12] = 0.704004318505974; fWeightMatrix0to1[10][12] = 0.191659189199589; fWeightMatrix0to1[11][12] = 0.0199333253807623; fWeightMatrix0to1[12][12] = 0.0758147057273196; fWeightMatrix0to1[13][12] = -3.02639801430796; fWeightMatrix0to1[14][12] = -1.18930146028544; fWeightMatrix0to1[15][12] = -6.74626965982534; fWeightMatrix0to1[16][12] = 0.146134404193496; fWeightMatrix0to1[17][12] = -0.727452890796802; fWeightMatrix0to1[18][12] = -0.334225684217927; fWeightMatrix0to1[19][12] = -1.48584040306583; fWeightMatrix0to1[20][12] = -0.182410778254028; fWeightMatrix0to1[21][12] = -0.773685445625653; fWeightMatrix0to1[22][12] = 2.27706924345744; fWeightMatrix0to1[23][12] = -1.03167822846549; fWeightMatrix0to1[24][12] = -0.662607908679742; fWeightMatrix0to1[25][12] = 2.87121017773374; fWeightMatrix0to1[26][12] = -0.35465066410725; fWeightMatrix0to1[27][12] = 0.451909892070235; fWeightMatrix0to1[28][12] = 0.286729166446718; fWeightMatrix0to1[0][13] = 25.6321599370985; fWeightMatrix0to1[1][13] = 2.15094491261187; fWeightMatrix0to1[2][13] = 1.43906033303884; fWeightMatrix0to1[3][13] = -5.35702953318301; fWeightMatrix0to1[4][13] = -3.59993046300243; fWeightMatrix0to1[5][13] = -46.6040872155974; fWeightMatrix0to1[6][13] = 1.205882592295; fWeightMatrix0to1[7][13] = 2.75431092721116; fWeightMatrix0to1[8][13] = -3.94525157061008; fWeightMatrix0to1[9][13] = 5.9368483865861; fWeightMatrix0to1[10][13] = 1.88869997062979; fWeightMatrix0to1[11][13] = 17.8509634345299; fWeightMatrix0to1[12][13] = -20.3094294457995; fWeightMatrix0to1[13][13] = 3.42755234089358; fWeightMatrix0to1[14][13] = 1.04723103385108; fWeightMatrix0to1[15][13] = -9.21813847819302; fWeightMatrix0to1[16][13] = 3.1376756605025; fWeightMatrix0to1[17][13] = -0.920719987184584; fWeightMatrix0to1[18][13] = 4.56704983032603; fWeightMatrix0to1[19][13] = 1.15261983561354; fWeightMatrix0to1[20][13] = 28.6296537296221; fWeightMatrix0to1[21][13] = 2.83014989599001; fWeightMatrix0to1[22][13] = -1.01015704835599; fWeightMatrix0to1[23][13] = 2.19590959560496; fWeightMatrix0to1[24][13] = 37.365867366552; fWeightMatrix0to1[25][13] = 0.618736604445914; fWeightMatrix0to1[26][13] = -13.2639823038096; fWeightMatrix0to1[27][13] = 1.92025273648086; fWeightMatrix0to1[28][13] = -42.0846997971999; fWeightMatrix0to1[0][14] = -6.01834437041335; fWeightMatrix0to1[1][14] = 2.31333604694401; fWeightMatrix0to1[2][14] = -0.0445664939685951; fWeightMatrix0to1[3][14] = 2.07707108243362; fWeightMatrix0to1[4][14] = 1.67083501349757; fWeightMatrix0to1[5][14] = 3.80220476616942; fWeightMatrix0to1[6][14] = 0.731330280395668; fWeightMatrix0to1[7][14] = -2.60056680300165; fWeightMatrix0to1[8][14] = 2.04885449996168; fWeightMatrix0to1[9][14] = -4.12597538327676; fWeightMatrix0to1[10][14] = 2.65821123845656; fWeightMatrix0to1[11][14] = -3.46102072913302; fWeightMatrix0to1[12][14] = 3.58096085963882; fWeightMatrix0to1[13][14] = -2.52966076243143; fWeightMatrix0to1[14][14] = 0.00900738081351682; fWeightMatrix0to1[15][14] = 3.59644413581732; fWeightMatrix0to1[16][14] = 1.1531758080148; fWeightMatrix0to1[17][14] = -1.74320709005455; fWeightMatrix0to1[18][14] = -3.02526933865336; fWeightMatrix0to1[19][14] = 0.51035053219551; fWeightMatrix0to1[20][14] = -9.79092534212908; fWeightMatrix0to1[21][14] = -3.41433063816812; fWeightMatrix0to1[22][14] = -1.96020607660983; fWeightMatrix0to1[23][14] = 1.16791597427576; fWeightMatrix0to1[24][14] = -5.51203977345045; fWeightMatrix0to1[25][14] = -2.42477637733131; fWeightMatrix0to1[26][14] = 0.316256357020162; fWeightMatrix0to1[27][14] = 0.129576939935175; fWeightMatrix0to1[28][14] = 9.40715295873888; fWeightMatrix0to1[0][15] = 1.98399152369704; fWeightMatrix0to1[1][15] = 1.82234574874298; fWeightMatrix0to1[2][15] = 0.167928979492817; fWeightMatrix0to1[3][15] = -2.40697442210989; fWeightMatrix0to1[4][15] = -0.273768562578651; fWeightMatrix0to1[5][15] = 4.99057497132231; fWeightMatrix0to1[6][15] = -1.27404504382503; fWeightMatrix0to1[7][15] = 0.237062725661032; fWeightMatrix0to1[8][15] = 0.15001765870686; fWeightMatrix0to1[9][15] = -0.283055784463806; fWeightMatrix0to1[10][15] = 2.48886320375303; fWeightMatrix0to1[11][15] = -0.014768895058343; fWeightMatrix0to1[12][15] = 2.81846121941953; fWeightMatrix0to1[13][15] = -0.686032090119896; fWeightMatrix0to1[14][15] = -0.49718238662551; fWeightMatrix0to1[15][15] = 2.09328913576649; fWeightMatrix0to1[16][15] = -0.141077909894381; fWeightMatrix0to1[17][15] = 0.407130210244099; fWeightMatrix0to1[18][15] = 1.07332652667729; fWeightMatrix0to1[19][15] = 2.52621905353902; fWeightMatrix0to1[20][15] = -3.45038699142394; fWeightMatrix0to1[21][15] = 1.89881915428556; fWeightMatrix0to1[22][15] = -2.46104113447043; fWeightMatrix0to1[23][15] = 2.01675616965794; fWeightMatrix0to1[24][15] = 1.73875846303758; fWeightMatrix0to1[25][15] = -0.530299047685678; fWeightMatrix0to1[26][15] = 1.98408393807678; fWeightMatrix0to1[27][15] = 0.464368511664431; fWeightMatrix0to1[28][15] = 2.06209338423308; fWeightMatrix0to1[0][16] = 0.995667210820539; fWeightMatrix0to1[1][16] = 0.866001802638574; fWeightMatrix0to1[2][16] = -0.0518900147126045; fWeightMatrix0to1[3][16] = -1.79208030871874; fWeightMatrix0to1[4][16] = -0.133670355147468; fWeightMatrix0to1[5][16] = 9.0626775511395; fWeightMatrix0to1[6][16] = 0.712962761885943; fWeightMatrix0to1[7][16] = 0.190070778724905; fWeightMatrix0to1[8][16] = -1.79992444743093; fWeightMatrix0to1[9][16] = 2.81499199848897; fWeightMatrix0to1[10][16] = 1.32925180837854; fWeightMatrix0to1[11][16] = -2.26587536226446; fWeightMatrix0to1[12][16] = 2.70378695860926; fWeightMatrix0to1[13][16] = -1.06403860166442; fWeightMatrix0to1[14][16] = 1.61848893194729; fWeightMatrix0to1[15][16] = 1.81983794431624; fWeightMatrix0to1[16][16] = -0.327247970386608; fWeightMatrix0to1[17][16] = -1.00045336806254; fWeightMatrix0to1[18][16] = 1.0969080600766; fWeightMatrix0to1[19][16] = 2.35286357073732; fWeightMatrix0to1[20][16] = -2.68227727821635; fWeightMatrix0to1[21][16] = 0.682485012360445; fWeightMatrix0to1[22][16] = -1.79846732249538; fWeightMatrix0to1[23][16] = -0.839792728365213; fWeightMatrix0to1[24][16] = 0.706202167781695; fWeightMatrix0to1[25][16] = 0.00723587976474678; fWeightMatrix0to1[26][16] = 2.87773653975205; fWeightMatrix0to1[27][16] = -1.49711625759646; fWeightMatrix0to1[28][16] = 1.55736802493925; fWeightMatrix0to1[0][17] = -5.82829843259071; fWeightMatrix0to1[1][17] = 0.252989663086758; fWeightMatrix0to1[2][17] = -1.19734658160886; fWeightMatrix0to1[3][17] = 0.487670983671384; fWeightMatrix0to1[4][17] = 0.212333437660579; fWeightMatrix0to1[5][17] = 16.8549853116412; fWeightMatrix0to1[6][17] = 0.629239538278898; fWeightMatrix0to1[7][17] = -1.58207375613369; fWeightMatrix0to1[8][17] = 2.10657830699213; fWeightMatrix0to1[9][17] = 0.965937895337875; fWeightMatrix0to1[10][17] = 2.10383388635338; fWeightMatrix0to1[11][17] = -4.23610426804481; fWeightMatrix0to1[12][17] = 3.93724771198422; fWeightMatrix0to1[13][17] = 1.84158142606062; fWeightMatrix0to1[14][17] = -1.29686584857582; fWeightMatrix0to1[15][17] = 0.879997256291387; fWeightMatrix0to1[16][17] = -1.59484549003693; fWeightMatrix0to1[17][17] = 1.36443704377975; fWeightMatrix0to1[18][17] = -1.67028405110681; fWeightMatrix0to1[19][17] = 1.44732700087835; fWeightMatrix0to1[20][17] = -6.92983178742881; fWeightMatrix0to1[21][17] = 1.10317900277271; fWeightMatrix0to1[22][17] = -1.08714435701163; fWeightMatrix0to1[23][17] = -0.462538879443331; fWeightMatrix0to1[24][17] = -5.34768027135308; fWeightMatrix0to1[25][17] = 0.0101013374107612; fWeightMatrix0to1[26][17] = 5.03976330315385; fWeightMatrix0to1[27][17] = 1.32817597317097; fWeightMatrix0to1[28][17] = 7.53084227208773; fWeightMatrix0to1[0][18] = -0.497107935138346; fWeightMatrix0to1[1][18] = -1.16134124325135; fWeightMatrix0to1[2][18] = 1.23600800843317; fWeightMatrix0to1[3][18] = 0.335807061636862; fWeightMatrix0to1[4][18] = 2.83183413785635; fWeightMatrix0to1[5][18] = 2.69224044462262; fWeightMatrix0to1[6][18] = 1.61314809793063; fWeightMatrix0to1[7][18] = -1.59372683796776; fWeightMatrix0to1[8][18] = -1.03685269822153; fWeightMatrix0to1[9][18] = -2.77395604185733; fWeightMatrix0to1[10][18] = -0.185044944367881; fWeightMatrix0to1[11][18] = -0.444124960498698; fWeightMatrix0to1[12][18] = -0.568857939873308; fWeightMatrix0to1[13][18] = -0.662144425586594; fWeightMatrix0to1[14][18] = -0.221221549671019; fWeightMatrix0to1[15][18] = -0.0755715030352791; fWeightMatrix0to1[16][18] = 0.39967207810621; fWeightMatrix0to1[17][18] = -1.94647037604144; fWeightMatrix0to1[18][18] = 0.0494246545863002; fWeightMatrix0to1[19][18] = -0.46529489827619; fWeightMatrix0to1[20][18] = -1.32682265112251; fWeightMatrix0to1[21][18] = -0.718130603263905; fWeightMatrix0to1[22][18] = 0.891807582214673; fWeightMatrix0to1[23][18] = -0.550817616095885; fWeightMatrix0to1[24][18] = -2.27275688302004; fWeightMatrix0to1[25][18] = -0.883985411775596; fWeightMatrix0to1[26][18] = 1.75095745913044; fWeightMatrix0to1[27][18] = -0.232020696911541; fWeightMatrix0to1[28][18] = 2.39796306239253; fWeightMatrix0to1[0][19] = 0.230430096711743; fWeightMatrix0to1[1][19] = -0.526420151838407; fWeightMatrix0to1[2][19] = -0.664950277947481; fWeightMatrix0to1[3][19] = -0.475447302459391; fWeightMatrix0to1[4][19] = -0.204027432478055; fWeightMatrix0to1[5][19] = -2.69288422027295; fWeightMatrix0to1[6][19] = -1.07294208618787; fWeightMatrix0to1[7][19] = 1.75848395343768; fWeightMatrix0to1[8][19] = -2.21145704760575; fWeightMatrix0to1[9][19] = 0.341349702697154; fWeightMatrix0to1[10][19] = 0.197200993748255; fWeightMatrix0to1[11][19] = 3.07348559271121; fWeightMatrix0to1[12][19] = 0.168642737209161; fWeightMatrix0to1[13][19] = 0.543755509859986; fWeightMatrix0to1[14][19] = 0.306921319458205; fWeightMatrix0to1[15][19] = -0.0225438666861197; fWeightMatrix0to1[16][19] = -0.937782063413221; fWeightMatrix0to1[17][19] = -1.31167910943237; fWeightMatrix0to1[18][19] = -0.274328984111253; fWeightMatrix0to1[19][19] = 0.751797769527064; fWeightMatrix0to1[20][19] = 1.38208720942793; fWeightMatrix0to1[21][19] = 0.556795920441857; fWeightMatrix0to1[22][19] = 1.80974580634639; fWeightMatrix0to1[23][19] = 0.401130406440176; fWeightMatrix0to1[24][19] = -0.805697882981719; fWeightMatrix0to1[25][19] = 0.913920811140843; fWeightMatrix0to1[26][19] = -1.91856630236574; fWeightMatrix0to1[27][19] = 1.01226186021156; fWeightMatrix0to1[28][19] = -2.25666442194372; fWeightMatrix0to1[0][20] = 9.00768294056264; fWeightMatrix0to1[1][20] = -0.429297477011864; fWeightMatrix0to1[2][20] = -1.23515006543229; fWeightMatrix0to1[3][20] = 1.00083222233248; fWeightMatrix0to1[4][20] = -2.36176245849141; fWeightMatrix0to1[5][20] = -3.08949788131549; fWeightMatrix0to1[6][20] = -1.07347764446842; fWeightMatrix0to1[7][20] = 3.29290175632259; fWeightMatrix0to1[8][20] = -3.8156986649556; fWeightMatrix0to1[9][20] = -0.0864971875928317; fWeightMatrix0to1[10][20] = -13.7658269813037; fWeightMatrix0to1[11][20] = 17.3616688922441; fWeightMatrix0to1[12][20] = 2.72694242645362; fWeightMatrix0to1[13][20] = 4.19067396487862; fWeightMatrix0to1[14][20] = -1.6588882501271; fWeightMatrix0to1[15][20] = -4.05066993310247; fWeightMatrix0to1[16][20] = 4.58786315057169; fWeightMatrix0to1[17][20] = -5.14079615368862; fWeightMatrix0to1[18][20] = 2.36555115493075; fWeightMatrix0to1[19][20] = -1.42067783510853; fWeightMatrix0to1[20][20] = 2.23960252736116; fWeightMatrix0to1[21][20] = 9.44661408206984; fWeightMatrix0to1[22][20] = -3.02827470743813; fWeightMatrix0to1[23][20] = -5.47026802726544; fWeightMatrix0to1[24][20] = 6.28266907859992; fWeightMatrix0to1[25][20] = -2.41762612763833; fWeightMatrix0to1[26][20] = 2.41642750705679; fWeightMatrix0to1[27][20] = -1.83129287959744; fWeightMatrix0to1[28][20] = -1.34186289868291; fWeightMatrix0to1[0][21] = -2.27670210910443; fWeightMatrix0to1[1][21] = 0.612682053178257; fWeightMatrix0to1[2][21] = 1.15342341372126; fWeightMatrix0to1[3][21] = 4.11353881908398; fWeightMatrix0to1[4][21] = -0.78423374457102; fWeightMatrix0to1[5][21] = 1.65960125713519; fWeightMatrix0to1[6][21] = 1.43323532183406; fWeightMatrix0to1[7][21] = 0.963240610965006; fWeightMatrix0to1[8][21] = 2.57296027789637; fWeightMatrix0to1[9][21] = -1.65330696468539; fWeightMatrix0to1[10][21] = -2.12157887346615; fWeightMatrix0to1[11][21] = 5.49695696280247; fWeightMatrix0to1[12][21] = 2.36296904369427; fWeightMatrix0to1[13][21] = 2.19382100419528; fWeightMatrix0to1[14][21] = 0.518861536687238; fWeightMatrix0to1[15][21] = -0.186352921847153; fWeightMatrix0to1[16][21] = -0.784295631688577; fWeightMatrix0to1[17][21] = -2.23398634927473; fWeightMatrix0to1[18][21] = 1.4863768658583; fWeightMatrix0to1[19][21] = -0.0176323733632879; fWeightMatrix0to1[20][21] = -1.89102482980787; fWeightMatrix0to1[21][21] = 0.923571199893109; fWeightMatrix0to1[22][21] = 0.129457726399768; fWeightMatrix0to1[23][21] = 0.518600691460154; fWeightMatrix0to1[24][21] = -4.12738655037269; fWeightMatrix0to1[25][21] = -0.55862369027901; fWeightMatrix0to1[26][21] = -1.17295786174403; fWeightMatrix0to1[27][21] = -0.418605422634853; fWeightMatrix0to1[28][21] = 3.99068086490768; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = 0.637928654881887; fWeightMatrix1to2[0][1] = -1.93294639920983; fWeightMatrix1to2[0][2] = 1.28085680174944; fWeightMatrix1to2[0][3] = -0.751190028009885; fWeightMatrix1to2[0][4] = -0.465082031134437; fWeightMatrix1to2[0][5] = -1.62786502427001; fWeightMatrix1to2[0][6] = -0.251039668054036; fWeightMatrix1to2[0][7] = 0.365264805110193; fWeightMatrix1to2[0][8] = -0.360676767971952; fWeightMatrix1to2[0][9] = 0.649033009649722; fWeightMatrix1to2[0][10] = -0.488326071292657; fWeightMatrix1to2[0][11] = 0.650888778177387; fWeightMatrix1to2[0][12] = -0.719950946034104; fWeightMatrix1to2[0][13] = 0.391557918962392; fWeightMatrix1to2[0][14] = -2.77840194637357; fWeightMatrix1to2[0][15] = -0.384617149707779; fWeightMatrix1to2[0][16] = 0.512958585998187; fWeightMatrix1to2[0][17] = -0.401192517919997; fWeightMatrix1to2[0][18] = 0.344982141556336; fWeightMatrix1to2[0][19] = -0.890547479917303; fWeightMatrix1to2[0][20] = 0.817852235611641; fWeightMatrix1to2[0][21] = 0.446353171509876; fWeightMatrix1to2[0][22] = -0.487936172188266; fWeightMatrix1to2[0][23] = 2.59944985682941; fWeightMatrix1to2[0][24] = 0.903090705822136; fWeightMatrix1to2[0][25] = 0.625188206394165; fWeightMatrix1to2[0][26] = -1.33478851171056; fWeightMatrix1to2[0][27] = -3.18058745296867; fWeightMatrix1to2[0][28] = -0.991302004157595; fWeightMatrix1to2[0][29] = 0.0896636562472355; } inline double ReadElectron_Upstream_TMVA::GetMvaValue__( const std::vector& inputValues ) const { if (inputValues.size() != (unsigned int)fLayerSize[0]-1) { std::cout << "Input vector needs to be of size " << fLayerSize[0]-1 << std::endl; return 0; } 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 ReadElectron_Upstream_TMVA::InitTransform_1() { // Normalization transformation, initialisation fMin_1[0][0] = 172.490005493; fMax_1[0][0] = 4970293.5; fMin_1[1][0] = 306.070007324; fMax_1[1][0] = 2027513.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] = 7.72294712067; fMax_1[1][1] = 107110.921875; 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.0204406045377; fMax_1[1][2] = 2.99342513084; 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] = 25; 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] = -45.5855255127; fMax_1[1][4] = -0.36918053031; 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.0619621761143; 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] = 4995.34619141; fMin_1[2][6] = -999; fMax_1[2][6] = 4999.73632812; fMin_1[0][7] = 2.50487555604e-05; fMax_1[0][7] = 50.0615081787; fMin_1[1][7] = 0.000161014046171; fMax_1[1][7] = 51.0802001953; 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] = 22; 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] = -999; fMax_1[0][13] = 89.5529022217; fMin_1[1][13] = -999; fMax_1[1][13] = 107.511299133; fMin_1[2][13] = -999; fMax_1[2][13] = 107.511299133; fMin_1[0][14] = -999; fMax_1[0][14] = 69.573600769; fMin_1[1][14] = -999; fMax_1[1][14] = 44.6925010681; fMin_1[2][14] = -999; fMax_1[2][14] = 69.573600769; fMin_1[0][15] = -999; fMax_1[0][15] = 99.5278015137; fMin_1[1][15] = -999; fMax_1[1][15] = 29.4733009338; fMin_1[2][15] = -999; fMax_1[2][15] = 99.5278015137; fMin_1[0][16] = -999; fMax_1[0][16] = 62.6166000366; fMin_1[1][16] = -999; fMax_1[1][16] = 29.5107002258; fMin_1[2][16] = -999; fMax_1[2][16] = 62.6166000366; fMin_1[0][17] = -999; fMax_1[0][17] = 47.8530006409; fMin_1[1][17] = -999; fMax_1[1][17] = 32.1589012146; fMin_1[2][17] = -999; fMax_1[2][17] = 47.8530006409; 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.79148387909; fMin_1[2][19] = -999; fMax_1[2][19] = 4.79148387909; fMin_1[0][20] = 0.486891388893; fMax_1[0][20] = 5.4943819046; fMin_1[1][20] = 0.573033690453; fMax_1[1][20] = 2.93539333344; fMin_1[2][20] = 0.486891388893; fMax_1[2][20] = 5.4943819046; } //_______________________________________________________________________ inline void ReadElectron_Upstream_TMVA::Transform_1( std::vector& iv, int cls) const { // Normalization transformation if (cls < 0 || cls > 2) { if (2 > 1 ) cls = 2; else cls = 2; } const int nVar = 21; // 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); 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); std::vector dv(nVar); for (int ivar=0; ivar& iv, int sigOrBgd ) const { Transform_1( iv, sigOrBgd ); }