// Class: ReadKaon_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Kaon_Upstream_TMVA TMVA Release : 4.2.0 [262656] ROOT Release : 5.34/18 [336402] Creator : jonesc Date : Sat Jun 14 13:30:49 2014 Host : ec-slc6-x86-64-spi-9 Dir : /var/pcfst/r03/lhcb/jonesc/ANNPID/results/MC12/TrainHeavy/TrainPhysTksNoGhosts-EvalPhysTks-ReweightRICH2/TMVA-NoPreSels-NoGECs/MLP/Norm/ScaleF1.4/BP/NCycles750/CE/sigmoid/CVTest15/CVImp1e-16/NotUseRegulator/Kaon/Upstream Training events: 1200000 Analysis type : [Classification] #OPT -*-*-*-*-*-*-*-*-*-*-*-*- options -*-*-*-*-*-*-*-*-*-*-*-*- # Set by User: NCycles: "750" [Number of training cycles] HiddenLayers: "29" [Specification of hidden layer architecture] NeuronType: "sigmoid" [Neuron activation function type] EstimatorType: "CE" [MSE (Mean Square Estimator) for Gaussian Likelihood or CE(Cross-Entropy) for Bernoulli Likelihood] V: "True" [Verbose output (short form of "VerbosityLevel" below - overrides the latter one)] VarTransform: "Norm" [List of variable transformations performed before training, e.g., "D_Background,P_Signal,G,N_AllClasses" for: "Decorrelation, PCA-transformation, Gaussianisation, Normalisation, each for the given class of events ('AllClasses' denotes all events of all classes, if no class indication is given, 'All' is assumed)"] H: "True" [Print method-specific help message] TrainingMethod: "BP" [Train with Back-Propagation (BP), BFGS Algorithm (BFGS), or Genetic Algorithm (GA - slower and worse)] EpochMonitoring: "True" [Provide epoch-wise monitoring plots according to TestRate (caution: causes big ROOT output file!)] ConvergenceImprove: "1.000000e-16" [Minimum improvement which counts as improvement (<0 means automatic convergence check is turned off)] ConvergenceTests: "15" [Number of steps (without improvement) required for convergence (<0 means automatic convergence check is turned off)] UseRegulator: "False" [Use regulator to avoid over-training] # Default: RandomSeed: "1" [Random seed for initial synapse weights (0 means unique seed for each run; default value '1')] NeuronInputType: "sum" [Neuron input function type] VerbosityLevel: "Verbose" [Verbosity level] CreateMVAPdfs: "False" [Create PDFs for classifier outputs (signal and background)] IgnoreNegWeightsInTraining: "False" [Events with negative weights are ignored in the training (but are included for testing and performance evaluation)] LearningRate: "2.000000e-02" [ANN learning rate parameter] DecayRate: "1.000000e-02" [Decay rate for learning parameter] TestRate: "10" [Test for overtraining performed at each #th epochs] Sampling: "1.000000e+00" [Only 'Sampling' (randomly selected) events are trained each epoch] SamplingEpoch: "1.000000e+00" [Sampling is used for the first 'SamplingEpoch' epochs, afterwards, all events are taken for training] SamplingImportance: "1.000000e+00" [ The sampling weights of events in epochs which successful (worse estimator than before) are multiplied with SamplingImportance, else they are divided.] SamplingTraining: "True" [The training sample is sampled] SamplingTesting: "False" [The testing sample is sampled] ResetStep: "50" [How often BFGS should reset history] Tau: "3.000000e+00" [LineSearch "size step"] BPMode: "sequential" [Back-propagation learning mode: sequential or batch] BatchSize: "-1" [Batch size: number of events/batch, only set if in Batch Mode, -1 for BatchSize=number_of_events] UpdateLimit: "10000" [Maximum times of regulator update] CalculateErrors: "False" [Calculates inverse Hessian matrix at the end of the training to be able to calculate the uncertainties of an MVA value] WeightRange: "1.000000e+00" [Take the events for the estimator calculations from small deviations from the desired value to large deviations only over the weight range] ## #VAR -*-*-*-*-*-*-*-*-*-*-*-* variables *-*-*-*-*-*-*-*-*-*-*-*- NVar 21 TrackP TrackP TrackP TrackP 'F' [256.920013428,4793400] TrackPt TrackPt TrackPt TrackPt 'F' [6.0154671669,882678.1875] TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof 'F' [0.00387042481452,2.99801039696] TrackNumDof TrackNumDof TrackNumDof TrackNumDof 'I' [4,28] TrackLikelihood TrackLikelihood TrackLikelihood TrackLikelihood 'F' [-49.2771110535,-0.336537152529] TrackGhostProbability TrackGhostProbability TrackGhostProbability TrackGhostProbability 'F' [0.0309826973826,1] TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 'F' [5.73693614569e-06,54.0769615173] TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF 'I' [1,23] RichUsedAero RichUsedAero RichUsedAero RichUsedAero 'I' [0,1] RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas 'I' [0,1] RichAbovePiThres RichAbovePiThres RichAbovePiThres RichAbovePiThres 'I' [0,1] RichAboveKaThres RichAboveKaThres RichAboveKaThres RichAboveKaThres 'I' [0,1] RichAbovePrThres RichAbovePrThres RichAbovePrThres RichAbovePrThres 'I' [0,1] RichDLLe RichDLLe RichDLLe RichDLLe 'F' [-999,116.291496277] RichDLLmu RichDLLmu RichDLLmu RichDLLmu 'F' [-999,86.09349823] RichDLLk RichDLLk RichDLLk RichDLLk 'F' [-999,79.6075973511] RichDLLp RichDLLp RichDLLp RichDLLp 'F' [-999,78.3151016235] RichDLLbt RichDLLbt RichDLLbt RichDLLbt 'F' [-999,47.5948982239] InAccBrem InAccBrem InAccBrem InAccBrem 'I' [0,1] BremPIDe BremPIDe BremPIDe BremPIDe 'F' [-999,4.79148387909] VeloCharge VeloCharge VeloCharge VeloCharge 'F' [0.498595505953,3.5272872448] 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 ReadKaon_Upstream_TMVA : public IClassifierReader { public: // constructor ReadKaon_Upstream_TMVA( std::vector& theInputVars ) : IClassifierReader(), fClassName( "ReadKaon_Upstream_TMVA" ), fNvars( 21 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackLikelihood", "TrackGhostProbability", "TrackFitVeloChi2", "TrackFitVeloNDoF", "RichUsedAero", "RichUsedR1Gas", "RichAbovePiThres", "RichAboveKaThres", "RichAbovePrThres", "RichDLLe", "RichDLLmu", "RichDLLk", "RichDLLp", "RichDLLbt", "InAccBrem", "BremPIDe", "VeloCharge" }; // sanity checks if (theInputVars.size() <= 0) { std::cout << "Problem in class \"" << fClassName << "\": empty input vector" << std::endl; fStatusIsClean = false; } if (theInputVars.size() != fNvars) { std::cout << "Problem in class \"" << fClassName << "\": mismatch in number of input values: " << theInputVars.size() << " != " << fNvars << std::endl; fStatusIsClean = false; } // validate input variables for (size_t ivar = 0; ivar < theInputVars.size(); ivar++) { if (theInputVars[ivar] != inputVars[ivar]) { std::cout << "Problem in class \"" << fClassName << "\": mismatch in input variable names" << std::endl << " for variable [" << ivar << "]: " << theInputVars[ivar].c_str() << " != " << inputVars[ivar] << std::endl; fStatusIsClean = false; } } // initialize min and max vectors (for normalisation) fVmin[0] = -1; fVmax[0] = 1; fVmin[1] = -1; fVmax[1] = 1; fVmin[2] = -1; fVmax[2] = 0.99999988079071; fVmin[3] = -1; fVmax[3] = 1; fVmin[4] = -1; fVmax[4] = 1; fVmin[5] = -1; fVmax[5] = 0.99999988079071; 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] = 0.99999988079071; // initialize input variable types fType[0] = 'F'; fType[1] = 'F'; fType[2] = 'F'; fType[3] = 'I'; fType[4] = 'F'; fType[5] = 'F'; fType[6] = 'F'; fType[7] = 'I'; fType[8] = 'I'; fType[9] = 'I'; fType[10] = 'I'; fType[11] = 'I'; fType[12] = 'I'; fType[13] = 'F'; fType[14] = 'F'; fType[15] = 'F'; fType[16] = 'F'; fType[17] = 'F'; fType[18] = 'I'; fType[19] = 'F'; fType[20] = 'F'; // initialize constants Initialize(); // initialize transformation InitTransform(); } // destructor virtual ~ReadKaon_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 ReadKaon_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.209949722588505; fWeightMatrix0to1[1][0] = 0.640577529362414; fWeightMatrix0to1[2][0] = -3.93608300234258; fWeightMatrix0to1[3][0] = 4.53077437851378; fWeightMatrix0to1[4][0] = -2.05470482507991; fWeightMatrix0to1[5][0] = 4.80711058205757; fWeightMatrix0to1[6][0] = 1.92640199052544; fWeightMatrix0to1[7][0] = 1.92225856351087; fWeightMatrix0to1[8][0] = 0.842456204317536; fWeightMatrix0to1[9][0] = -1.77971541635344; fWeightMatrix0to1[10][0] = -2.78691128611244; fWeightMatrix0to1[11][0] = 2.10314933956146; fWeightMatrix0to1[12][0] = -0.479882516452365; fWeightMatrix0to1[13][0] = -5.14369693347386; fWeightMatrix0to1[14][0] = -1.49501315258063; fWeightMatrix0to1[15][0] = 2.20802722328856; fWeightMatrix0to1[16][0] = -0.262087448942017; fWeightMatrix0to1[17][0] = 3.28232138247148; fWeightMatrix0to1[18][0] = 2.26130889105412; fWeightMatrix0to1[19][0] = 0.898830316523752; fWeightMatrix0to1[20][0] = 1.70822395408319; fWeightMatrix0to1[21][0] = -0.378681842200648; fWeightMatrix0to1[22][0] = -3.61420026361083; fWeightMatrix0to1[23][0] = 0.333942209470943; fWeightMatrix0to1[24][0] = 1.60970402864303; fWeightMatrix0to1[25][0] = 2.14879669922572; fWeightMatrix0to1[26][0] = 2.68100627669376; fWeightMatrix0to1[27][0] = 1.89081394465256; fWeightMatrix0to1[28][0] = -14.245585306037; fWeightMatrix0to1[0][1] = -0.0472783432299383; fWeightMatrix0to1[1][1] = -0.0458000984471056; fWeightMatrix0to1[2][1] = -3.49040976548811; fWeightMatrix0to1[3][1] = 2.31084721697087; fWeightMatrix0to1[4][1] = 1.71493858234274; fWeightMatrix0to1[5][1] = 4.35537535468967; fWeightMatrix0to1[6][1] = 1.14881109185895; fWeightMatrix0to1[7][1] = -2.04323513642635; fWeightMatrix0to1[8][1] = 4.1323399099285; fWeightMatrix0to1[9][1] = -1.43425453526423; fWeightMatrix0to1[10][1] = 0.448292882989127; fWeightMatrix0to1[11][1] = 2.81256921583325; fWeightMatrix0to1[12][1] = 1.76964603803738; fWeightMatrix0to1[13][1] = -3.32717277745783; fWeightMatrix0to1[14][1] = 0.0194733513129578; fWeightMatrix0to1[15][1] = 1.1720984929832; fWeightMatrix0to1[16][1] = -1.31817860588489; fWeightMatrix0to1[17][1] = 1.43697588476484; fWeightMatrix0to1[18][1] = 3.00186296572243; fWeightMatrix0to1[19][1] = 1.03091001508421; fWeightMatrix0to1[20][1] = 1.66812242708819; fWeightMatrix0to1[21][1] = 2.51607765982973; fWeightMatrix0to1[22][1] = -3.24870964247919; fWeightMatrix0to1[23][1] = -1.99975185923964; fWeightMatrix0to1[24][1] = 3.11322205348937; fWeightMatrix0to1[25][1] = 0.0551959783958732; fWeightMatrix0to1[26][1] = 0.101489134229907; fWeightMatrix0to1[27][1] = 1.87060712947744; fWeightMatrix0to1[28][1] = -15.8945682733408; fWeightMatrix0to1[0][2] = 2.86111849563422; fWeightMatrix0to1[1][2] = -0.785377666660496; fWeightMatrix0to1[2][2] = 1.47836717109231; fWeightMatrix0to1[3][2] = -0.346986512190373; fWeightMatrix0to1[4][2] = -1.51373996537357; fWeightMatrix0to1[5][2] = 0.154817496294531; fWeightMatrix0to1[6][2] = 0.912492956161147; fWeightMatrix0to1[7][2] = -0.310367240355606; fWeightMatrix0to1[8][2] = -0.463456964789556; fWeightMatrix0to1[9][2] = -0.198583948029431; fWeightMatrix0to1[10][2] = 1.05969028867484; fWeightMatrix0to1[11][2] = -1.14859653019252; fWeightMatrix0to1[12][2] = -0.453531850360548; fWeightMatrix0to1[13][2] = 0.25778699063797; fWeightMatrix0to1[14][2] = -0.293959246006407; fWeightMatrix0to1[15][2] = 1.02630983852425; fWeightMatrix0to1[16][2] = -0.915592883732756; fWeightMatrix0to1[17][2] = -1.56930970811848; fWeightMatrix0to1[18][2] = -2.31557751826733; fWeightMatrix0to1[19][2] = -1.57596854814665; fWeightMatrix0to1[20][2] = 1.0964790838071; fWeightMatrix0to1[21][2] = -2.38127019139491; fWeightMatrix0to1[22][2] = 0.925266707332522; fWeightMatrix0to1[23][2] = 1.19691810706318; fWeightMatrix0to1[24][2] = -0.719783033492328; fWeightMatrix0to1[25][2] = 0.669174525775314; fWeightMatrix0to1[26][2] = -0.332768171537063; fWeightMatrix0to1[27][2] = -0.370727685431015; fWeightMatrix0to1[28][2] = -0.700449761130909; fWeightMatrix0to1[0][3] = 0.97186962710927; fWeightMatrix0to1[1][3] = -2.79760539842871; fWeightMatrix0to1[2][3] = -2.9400735747632; fWeightMatrix0to1[3][3] = -2.32399329134901; fWeightMatrix0to1[4][3] = -1.99492737457662; fWeightMatrix0to1[5][3] = 2.50114843561942; fWeightMatrix0to1[6][3] = -4.40019764533379; fWeightMatrix0to1[7][3] = -0.653903883410942; fWeightMatrix0to1[8][3] = 3.81493439061721; fWeightMatrix0to1[9][3] = 4.28642708220502; fWeightMatrix0to1[10][3] = 2.80676786197419; fWeightMatrix0to1[11][3] = -2.4494455990169; fWeightMatrix0to1[12][3] = 0.847851458130762; fWeightMatrix0to1[13][3] = -0.120552851398234; fWeightMatrix0to1[14][3] = 0.617598472054789; fWeightMatrix0to1[15][3] = 0.417166949860958; fWeightMatrix0to1[16][3] = 3.08781208324748; fWeightMatrix0to1[17][3] = -1.73385214524183; fWeightMatrix0to1[18][3] = 3.6323070407505; fWeightMatrix0to1[19][3] = -0.641331478703194; fWeightMatrix0to1[20][3] = -4.3727694119413; fWeightMatrix0to1[21][3] = 1.13126032621644; fWeightMatrix0to1[22][3] = -1.33377011186045; fWeightMatrix0to1[23][3] = -2.99034058065231; fWeightMatrix0to1[24][3] = 0.998416771909688; fWeightMatrix0to1[25][3] = -3.47510238608135; fWeightMatrix0to1[26][3] = 0.681821277183716; fWeightMatrix0to1[27][3] = 2.5693174109553; fWeightMatrix0to1[28][3] = 2.96949927273368; fWeightMatrix0to1[0][4] = -0.758909966770586; fWeightMatrix0to1[1][4] = -1.02306046776807; fWeightMatrix0to1[2][4] = 1.43091454511169; fWeightMatrix0to1[3][4] = -1.17454825573746; fWeightMatrix0to1[4][4] = -3.78509065628434; fWeightMatrix0to1[5][4] = 1.47859088469742; fWeightMatrix0to1[6][4] = -0.683622253643648; fWeightMatrix0to1[7][4] = 2.47065483047287; fWeightMatrix0to1[8][4] = 1.16562609501607; fWeightMatrix0to1[9][4] = -1.6110247073755; fWeightMatrix0to1[10][4] = -0.233926150572859; fWeightMatrix0to1[11][4] = -2.74280163617127; fWeightMatrix0to1[12][4] = -1.39586998246364; fWeightMatrix0to1[13][4] = -0.0781677279587633; fWeightMatrix0to1[14][4] = -1.66168396166467; fWeightMatrix0to1[15][4] = -1.82514623666704; fWeightMatrix0to1[16][4] = 2.6631127947903; fWeightMatrix0to1[17][4] = -2.19170276921214; fWeightMatrix0to1[18][4] = -2.04624570411413; fWeightMatrix0to1[19][4] = 1.47402474316095; fWeightMatrix0to1[20][4] = 3.38954515320738; fWeightMatrix0to1[21][4] = -3.44159349777946; fWeightMatrix0to1[22][4] = 0.843699500768307; fWeightMatrix0to1[23][4] = 0.560128553593681; fWeightMatrix0to1[24][4] = 0.660542877307754; fWeightMatrix0to1[25][4] = 1.28646879205787; fWeightMatrix0to1[26][4] = -1.41457690478286; fWeightMatrix0to1[27][4] = 0.888983207731223; fWeightMatrix0to1[28][4] = 0.911370441006497; fWeightMatrix0to1[0][5] = -1.69287790925839; fWeightMatrix0to1[1][5] = 0.270133435786852; fWeightMatrix0to1[2][5] = -1.06354409279521; fWeightMatrix0to1[3][5] = -0.457052094013146; fWeightMatrix0to1[4][5] = 1.17782064108678; fWeightMatrix0to1[5][5] = -0.327108180071671; fWeightMatrix0to1[6][5] = 0.106607534429536; fWeightMatrix0to1[7][5] = -0.777355639441405; fWeightMatrix0to1[8][5] = -1.34585723896604; fWeightMatrix0to1[9][5] = -3.43882019070725; fWeightMatrix0to1[10][5] = -0.877506990507268; fWeightMatrix0to1[11][5] = 1.81964122520458; fWeightMatrix0to1[12][5] = 1.16266631917706; fWeightMatrix0to1[13][5] = -0.100389206829366; fWeightMatrix0to1[14][5] = -0.226630085995465; fWeightMatrix0to1[15][5] = 0.28572468500216; fWeightMatrix0to1[16][5] = -0.239562015812915; fWeightMatrix0to1[17][5] = -0.0609411605616918; fWeightMatrix0to1[18][5] = 0.0160049633876475; fWeightMatrix0to1[19][5] = 0.409126419305996; fWeightMatrix0to1[20][5] = -1.17101361294083; fWeightMatrix0to1[21][5] = -1.24127243468581; fWeightMatrix0to1[22][5] = -1.66088759251628; fWeightMatrix0to1[23][5] = 0.140311021418391; fWeightMatrix0to1[24][5] = -1.16387435003084; fWeightMatrix0to1[25][5] = -1.04334127816644; fWeightMatrix0to1[26][5] = 0.297205125121611; fWeightMatrix0to1[27][5] = 0.0731427093742854; fWeightMatrix0to1[28][5] = -0.558787069516392; fWeightMatrix0to1[0][6] = 2.70526552233902; fWeightMatrix0to1[1][6] = -2.64946242849117; fWeightMatrix0to1[2][6] = 1.6802654222207; fWeightMatrix0to1[3][6] = -0.711688876007231; fWeightMatrix0to1[4][6] = 2.28484789856063; fWeightMatrix0to1[5][6] = -0.369232825706637; fWeightMatrix0to1[6][6] = -1.05546165405492; fWeightMatrix0to1[7][6] = 0.966156769618106; fWeightMatrix0to1[8][6] = 0.0342272941387032; fWeightMatrix0to1[9][6] = 0.668812458445875; fWeightMatrix0to1[10][6] = 2.06762820550408; fWeightMatrix0to1[11][6] = -2.2084639916804; fWeightMatrix0to1[12][6] = 1.8970639414573; fWeightMatrix0to1[13][6] = -0.104858240277431; fWeightMatrix0to1[14][6] = 0.246194885152025; fWeightMatrix0to1[15][6] = -1.48798877654884; fWeightMatrix0to1[16][6] = 0.106680215831922; fWeightMatrix0to1[17][6] = 0.558297248746535; fWeightMatrix0to1[18][6] = 3.22033679809086; fWeightMatrix0to1[19][6] = 1.01389261650212; fWeightMatrix0to1[20][6] = 0.0344581700632398; fWeightMatrix0to1[21][6] = -0.0323754511280503; fWeightMatrix0to1[22][6] = -3.35964724112424; fWeightMatrix0to1[23][6] = -0.0135897398583694; fWeightMatrix0to1[24][6] = 0.19879841786159; fWeightMatrix0to1[25][6] = -1.52343036192694; fWeightMatrix0to1[26][6] = -0.0163488144607202; fWeightMatrix0to1[27][6] = 0.659736660664495; fWeightMatrix0to1[28][6] = 1.5522456437391; fWeightMatrix0to1[0][7] = -2.57990923067287; fWeightMatrix0to1[1][7] = -0.380432528227653; fWeightMatrix0to1[2][7] = 0.0130964062978322; fWeightMatrix0to1[3][7] = 0.662399195080542; fWeightMatrix0to1[4][7] = -0.577244872154435; fWeightMatrix0to1[5][7] = 0.70995761619118; fWeightMatrix0to1[6][7] = 5.33769216177231; fWeightMatrix0to1[7][7] = 2.01929810560932; fWeightMatrix0to1[8][7] = -2.17836701780184; fWeightMatrix0to1[9][7] = -5.05494210730865; fWeightMatrix0to1[10][7] = -4.10364738090267; fWeightMatrix0to1[11][7] = 3.54814781417741; fWeightMatrix0to1[12][7] = 2.9950978897038; fWeightMatrix0to1[13][7] = 0.360324857030924; fWeightMatrix0to1[14][7] = -1.18506457499389; fWeightMatrix0to1[15][7] = 0.897564417404814; fWeightMatrix0to1[16][7] = 1.26872683790137; fWeightMatrix0to1[17][7] = -0.670455949676574; fWeightMatrix0to1[18][7] = -1.33133958431765; fWeightMatrix0to1[19][7] = -1.30955573463965; fWeightMatrix0to1[20][7] = 5.62728500978012; fWeightMatrix0to1[21][7] = 1.01738330524693; fWeightMatrix0to1[22][7] = 0.675437745009825; fWeightMatrix0to1[23][7] = 1.83858881732203; fWeightMatrix0to1[24][7] = 0.700739485861862; fWeightMatrix0to1[25][7] = -5.16486824373495; fWeightMatrix0to1[26][7] = -0.866587022885259; fWeightMatrix0to1[27][7] = -1.85350184151513; fWeightMatrix0to1[28][7] = -2.53000345358317; fWeightMatrix0to1[0][8] = 0.905295541746503; fWeightMatrix0to1[1][8] = -0.321079956142527; fWeightMatrix0to1[2][8] = 5.58580459302816; fWeightMatrix0to1[3][8] = -0.859457627977048; fWeightMatrix0to1[4][8] = 0.957951063776119; fWeightMatrix0to1[5][8] = -0.287058397651812; fWeightMatrix0to1[6][8] = -0.721119375753073; fWeightMatrix0to1[7][8] = -2.21489044615828; fWeightMatrix0to1[8][8] = -3.4316314205377; fWeightMatrix0to1[9][8] = -0.728469302193039; fWeightMatrix0to1[10][8] = -0.431610434569674; fWeightMatrix0to1[11][8] = -1.66761988941274; fWeightMatrix0to1[12][8] = 0.960558067279976; fWeightMatrix0to1[13][8] = 4.02167942937912; fWeightMatrix0to1[14][8] = -4.23868167799848; fWeightMatrix0to1[15][8] = -3.02889587560604; fWeightMatrix0to1[16][8] = 4.16026462330818; fWeightMatrix0to1[17][8] = -0.480105167246326; fWeightMatrix0to1[18][8] = 0.0719925217131286; fWeightMatrix0to1[19][8] = 0.0372654816381444; fWeightMatrix0to1[20][8] = -1.52035849350376; fWeightMatrix0to1[21][8] = 1.22664472994145; fWeightMatrix0to1[22][8] = 4.27939286976985; fWeightMatrix0to1[23][8] = -0.813087386339927; fWeightMatrix0to1[24][8] = -2.96136001204858; fWeightMatrix0to1[25][8] = -2.24401202208449; fWeightMatrix0to1[26][8] = 0.307768577269304; fWeightMatrix0to1[27][8] = -3.7402309444424; fWeightMatrix0to1[28][8] = -0.383953543625571; fWeightMatrix0to1[0][9] = -1.45884427777459; fWeightMatrix0to1[1][9] = 2.67195982051362; fWeightMatrix0to1[2][9] = 3.91314913980097; fWeightMatrix0to1[3][9] = 2.89213385611581; fWeightMatrix0to1[4][9] = -0.286775126440218; fWeightMatrix0to1[5][9] = -9.72638311584999; fWeightMatrix0to1[6][9] = 2.21567283587865; fWeightMatrix0to1[7][9] = 1.366694325006; fWeightMatrix0to1[8][9] = 0.398794924371741; fWeightMatrix0to1[9][9] = -10.5314744214332; fWeightMatrix0to1[10][9] = 2.32984736634312; fWeightMatrix0to1[11][9] = -0.329598285642465; fWeightMatrix0to1[12][9] = 0.144597745624239; fWeightMatrix0to1[13][9] = 3.17212189113834; fWeightMatrix0to1[14][9] = 0.326467518150789; fWeightMatrix0to1[15][9] = 2.25235522289988; fWeightMatrix0to1[16][9] = 4.11282830676039; fWeightMatrix0to1[17][9] = 0.450114276474237; fWeightMatrix0to1[18][9] = -2.83118729168358; fWeightMatrix0to1[19][9] = 1.47376736333234; fWeightMatrix0to1[20][9] = -2.60301677748752; fWeightMatrix0to1[21][9] = -1.28648493309352; fWeightMatrix0to1[22][9] = 3.10025905034736; fWeightMatrix0to1[23][9] = -2.43596224886826; fWeightMatrix0to1[24][9] = -3.01942730719287; fWeightMatrix0to1[25][9] = -2.35460813890121; fWeightMatrix0to1[26][9] = 1.93315947624174; fWeightMatrix0to1[27][9] = -5.38751860679597; fWeightMatrix0to1[28][9] = 14.3101088979234; fWeightMatrix0to1[0][10] = -1.62421369056237; fWeightMatrix0to1[1][10] = 1.7579123568174; fWeightMatrix0to1[2][10] = 3.05355658886336; fWeightMatrix0to1[3][10] = 3.06638564103983; fWeightMatrix0to1[4][10] = 1.10509666620889; fWeightMatrix0to1[5][10] = -0.204469176719301; fWeightMatrix0to1[6][10] = 1.27224413054162; fWeightMatrix0to1[7][10] = 1.53066894675884; fWeightMatrix0to1[8][10] = -5.49780911033025; fWeightMatrix0to1[9][10] = -10.9336225201853; fWeightMatrix0to1[10][10] = -0.253747305507419; fWeightMatrix0to1[11][10] = -1.09242144639508; fWeightMatrix0to1[12][10] = 1.63881563946599; fWeightMatrix0to1[13][10] = -4.16064254343664; fWeightMatrix0to1[14][10] = -0.450538615581368; fWeightMatrix0to1[15][10] = -2.79145005945067; fWeightMatrix0to1[16][10] = 1.88792914457254; fWeightMatrix0to1[17][10] = -1.40114604966864; fWeightMatrix0to1[18][10] = 0.617498155881406; fWeightMatrix0to1[19][10] = -0.23919072227603; fWeightMatrix0to1[20][10] = -0.999231104165294; fWeightMatrix0to1[21][10] = -2.53171048233157; fWeightMatrix0to1[22][10] = 2.40481722876856; fWeightMatrix0to1[23][10] = 0.189312664104621; fWeightMatrix0to1[24][10] = 3.05554957732631; fWeightMatrix0to1[25][10] = -0.196523035803338; fWeightMatrix0to1[26][10] = 1.81327557102649; fWeightMatrix0to1[27][10] = -4.67292786072627; fWeightMatrix0to1[28][10] = 13.9885964866993; fWeightMatrix0to1[0][11] = 1.25440636668826; fWeightMatrix0to1[1][11] = -0.461238402875217; fWeightMatrix0to1[2][11] = 4.1088466565522; fWeightMatrix0to1[3][11] = 2.7267126698013; fWeightMatrix0to1[4][11] = 1.05035527028447; fWeightMatrix0to1[5][11] = 1.3734890679684; fWeightMatrix0to1[6][11] = 2.27447983290718; fWeightMatrix0to1[7][11] = 1.45231052216442; fWeightMatrix0to1[8][11] = -0.6073612878467; fWeightMatrix0to1[9][11] = 0.103542387133449; fWeightMatrix0to1[10][11] = 0.808832896367718; fWeightMatrix0to1[11][11] = -1.87140254274272; fWeightMatrix0to1[12][11] = 0.879446751507693; fWeightMatrix0to1[13][11] = 0.0618365838574336; fWeightMatrix0to1[14][11] = -4.51695705623054; fWeightMatrix0to1[15][11] = -0.964547446052313; fWeightMatrix0to1[16][11] = 3.80605533149903; fWeightMatrix0to1[17][11] = 0.618603100814081; fWeightMatrix0to1[18][11] = 0.670543002228647; fWeightMatrix0to1[19][11] = 0.736267822237327; fWeightMatrix0to1[20][11] = -0.88533145197869; fWeightMatrix0to1[21][11] = -1.19106905743709; fWeightMatrix0to1[22][11] = 4.00682430107876; fWeightMatrix0to1[23][11] = 2.8453924931042; fWeightMatrix0to1[24][11] = -2.72021962261805; fWeightMatrix0to1[25][11] = -0.61397912761952; fWeightMatrix0to1[26][11] = -1.6745423968757; fWeightMatrix0to1[27][11] = -0.248694455276835; fWeightMatrix0to1[28][11] = 0.0364199570515159; fWeightMatrix0to1[0][12] = 0.726295672136356; fWeightMatrix0to1[1][12] = -0.70182905063158; fWeightMatrix0to1[2][12] = 0.599422803647445; fWeightMatrix0to1[3][12] = 3.91618847790872; fWeightMatrix0to1[4][12] = 1.04797571087328; fWeightMatrix0to1[5][12] = -1.89137179231422; fWeightMatrix0to1[6][12] = 1.34213634110394; fWeightMatrix0to1[7][12] = -2.45900803804872; fWeightMatrix0to1[8][12] = 2.32155455092601; fWeightMatrix0to1[9][12] = 0.0833249718739063; fWeightMatrix0to1[10][12] = -0.840853060333255; fWeightMatrix0to1[11][12] = -0.0430830136853325; fWeightMatrix0to1[12][12] = 2.36916110967702; fWeightMatrix0to1[13][12] = -5.76262510234088; fWeightMatrix0to1[14][12] = -3.08694621436447; fWeightMatrix0to1[15][12] = -0.000693234114890575; fWeightMatrix0to1[16][12] = -0.807295416597986; fWeightMatrix0to1[17][12] = -0.820492489138164; fWeightMatrix0to1[18][12] = 1.90485449812369; fWeightMatrix0to1[19][12] = -0.182566681366125; fWeightMatrix0to1[20][12] = -0.676534518645226; fWeightMatrix0to1[21][12] = -0.817216228595948; fWeightMatrix0to1[22][12] = 0.381360233910086; fWeightMatrix0to1[23][12] = -0.873275722028773; fWeightMatrix0to1[24][12] = -0.00291730214319436; fWeightMatrix0to1[25][12] = -0.484841845932001; fWeightMatrix0to1[26][12] = 0.88761324974133; fWeightMatrix0to1[27][12] = 3.99541431945662; fWeightMatrix0to1[28][12] = 1.16953308162661; fWeightMatrix0to1[0][13] = 0.644845678489944; fWeightMatrix0to1[1][13] = 2.19060531450155; fWeightMatrix0to1[2][13] = -7.92454864108047; fWeightMatrix0to1[3][13] = -0.765970260495142; fWeightMatrix0to1[4][13] = -0.744190796714692; fWeightMatrix0to1[5][13] = -1.87037936714176; fWeightMatrix0to1[6][13] = 0.375289570703629; fWeightMatrix0to1[7][13] = -1.07899437569408; fWeightMatrix0to1[8][13] = 1.03135828553997; fWeightMatrix0to1[9][13] = -2.30505405895523; fWeightMatrix0to1[10][13] = 2.15929948304645; fWeightMatrix0to1[11][13] = 0.366244403784082; fWeightMatrix0to1[12][13] = -1.51431068534647; fWeightMatrix0to1[13][13] = 5.68586279838506; fWeightMatrix0to1[14][13] = 6.36401485705443; fWeightMatrix0to1[15][13] = -1.9405941694686; fWeightMatrix0to1[16][13] = -1.93827239510642; fWeightMatrix0to1[17][13] = -1.43737252834737; fWeightMatrix0to1[18][13] = 1.85486321020928; fWeightMatrix0to1[19][13] = 1.45813479253071; fWeightMatrix0to1[20][13] = -1.00040134437786; fWeightMatrix0to1[21][13] = 2.7168894386773; fWeightMatrix0to1[22][13] = -7.98153473196023; fWeightMatrix0to1[23][13] = 0.514510193412186; fWeightMatrix0to1[24][13] = 1.32108404761947; fWeightMatrix0to1[25][13] = -0.414883438716386; fWeightMatrix0to1[26][13] = -1.37205129217658; fWeightMatrix0to1[27][13] = 4.5729850166551; fWeightMatrix0to1[28][13] = -24.8765602105721; fWeightMatrix0to1[0][14] = -0.161091568859442; fWeightMatrix0to1[1][14] = 2.32469019563177; fWeightMatrix0to1[2][14] = -2.93864519725914; fWeightMatrix0to1[3][14] = 0.123878792668144; fWeightMatrix0to1[4][14] = 0.169635692214447; fWeightMatrix0to1[5][14] = -9.39745313858495; fWeightMatrix0to1[6][14] = 0.0359999781171585; fWeightMatrix0to1[7][14] = -0.822489476680355; fWeightMatrix0to1[8][14] = 1.80943161384978; fWeightMatrix0to1[9][14] = -8.47429593159356; fWeightMatrix0to1[10][14] = 3.00055154197125; fWeightMatrix0to1[11][14] = -0.0124899135826737; fWeightMatrix0to1[12][14] = 1.15123647339675; fWeightMatrix0to1[13][14] = 13.7709002827987; fWeightMatrix0to1[14][14] = -3.13815249995738; fWeightMatrix0to1[15][14] = 1.51815374874212; fWeightMatrix0to1[16][14] = 5.69575541630019; fWeightMatrix0to1[17][14] = -2.32447515327471; fWeightMatrix0to1[18][14] = -2.74913297200207; fWeightMatrix0to1[19][14] = 0.513931823562307; fWeightMatrix0to1[20][14] = -3.62352574471059; fWeightMatrix0to1[21][14] = -1.45358187093258; fWeightMatrix0to1[22][14] = -4.09164051656066; fWeightMatrix0to1[23][14] = 0.729572979604049; fWeightMatrix0to1[24][14] = -1.52394928975773; fWeightMatrix0to1[25][14] = -2.60062877661185; fWeightMatrix0to1[26][14] = -1.82383972979737; fWeightMatrix0to1[27][14] = -0.65606982768438; fWeightMatrix0to1[28][14] = 2.19469674708075; fWeightMatrix0to1[0][15] = 2.10653258334377; fWeightMatrix0to1[1][15] = 1.7990093315563; fWeightMatrix0to1[2][15] = -14.8619577791619; fWeightMatrix0to1[3][15] = -10.4828122710543; fWeightMatrix0to1[4][15] = -1.75217399354215; fWeightMatrix0to1[5][15] = 4.15204351806844; fWeightMatrix0to1[6][15] = -10.3087691254762; fWeightMatrix0to1[7][15] = -6.57368344345951; fWeightMatrix0to1[8][15] = -0.683701559471298; fWeightMatrix0to1[9][15] = 13.7268158061305; fWeightMatrix0to1[10][15] = 2.83595843694686; fWeightMatrix0to1[11][15] = 0.469858502897543; fWeightMatrix0to1[12][15] = -1.39087847102569; fWeightMatrix0to1[13][15] = -2.4532899862503; fWeightMatrix0to1[14][15] = -9.89041700053208; fWeightMatrix0to1[15][15] = 1.26574778653601; fWeightMatrix0to1[16][15] = -4.22272018738455; fWeightMatrix0to1[17][15] = -0.104004722905724; fWeightMatrix0to1[18][15] = 11.0065096195574; fWeightMatrix0to1[19][15] = 2.55317723117082; fWeightMatrix0to1[20][15] = -3.09175296514002; fWeightMatrix0to1[21][15] = 0.996677245398811; fWeightMatrix0to1[22][15] = -14.4284607541203; fWeightMatrix0to1[23][15] = 2.81610113922518; fWeightMatrix0to1[24][15] = 2.28616280458722; fWeightMatrix0to1[25][15] = -3.21386139109071; fWeightMatrix0to1[26][15] = -0.969647545104073; fWeightMatrix0to1[27][15] = 9.87837848529978; fWeightMatrix0to1[28][15] = -38.4196326024055; fWeightMatrix0to1[0][16] = -0.268743255140775; fWeightMatrix0to1[1][16] = 0.850079035020163; fWeightMatrix0to1[2][16] = -9.68803167282195; fWeightMatrix0to1[3][16] = 0.428599917747779; fWeightMatrix0to1[4][16] = -0.570480536616724; fWeightMatrix0to1[5][16] = 5.42447621747507; fWeightMatrix0to1[6][16] = 4.34741331667608; fWeightMatrix0to1[7][16] = -2.43727193186944; fWeightMatrix0to1[8][16] = -1.62934900549135; fWeightMatrix0to1[9][16] = 3.28375322883072; fWeightMatrix0to1[10][16] = 1.67211521747823; fWeightMatrix0to1[11][16] = -1.98415107122812; fWeightMatrix0to1[12][16] = 0.929880846989831; fWeightMatrix0to1[13][16] = -20.5597826224657; fWeightMatrix0to1[14][16] = -5.18509925971443; fWeightMatrix0to1[15][16] = 1.65371813760228; fWeightMatrix0to1[16][16] = -5.68037020822344; fWeightMatrix0to1[17][16] = -1.48894953458282; fWeightMatrix0to1[18][16] = 0.0889428479584228; fWeightMatrix0to1[19][16] = 2.31464492230286; fWeightMatrix0to1[20][16] = -1.75021617179266; fWeightMatrix0to1[21][16] = -0.363171047634821; fWeightMatrix0to1[22][16] = -8.44729020512195; fWeightMatrix0to1[23][16] = -0.717689306988633; fWeightMatrix0to1[24][16] = 0.56132983504423; fWeightMatrix0to1[25][16] = -0.957469989839344; fWeightMatrix0to1[26][16] = 0.40446329906973; fWeightMatrix0to1[27][16] = -8.54828061604818; fWeightMatrix0to1[28][16] = -9.13590270626628; fWeightMatrix0to1[0][17] = -2.49986454161231; fWeightMatrix0to1[1][17] = 0.242018029696477; fWeightMatrix0to1[2][17] = -16.5471550145435; fWeightMatrix0to1[3][17] = 0.690481161601276; fWeightMatrix0to1[4][17] = -1.97984646439868; fWeightMatrix0to1[5][17] = 7.85544367811048; fWeightMatrix0to1[6][17] = 1.87469633059664; fWeightMatrix0to1[7][17] = -3.66085145167449; fWeightMatrix0to1[8][17] = 1.69484481682035; fWeightMatrix0to1[9][17] = 10.4311347113279; fWeightMatrix0to1[10][17] = 2.49549119342687; fWeightMatrix0to1[11][17] = -1.42980566184737; fWeightMatrix0to1[12][17] = -0.378934504521858; fWeightMatrix0to1[13][17] = -18.3795498706101; fWeightMatrix0to1[14][17] = -8.23055990478707; fWeightMatrix0to1[15][17] = 0.576067135069989; fWeightMatrix0to1[16][17] = -8.44481938071464; fWeightMatrix0to1[17][17] = 0.856623334040978; fWeightMatrix0to1[18][17] = 2.29846805415879; fWeightMatrix0to1[19][17] = 1.39812281887039; fWeightMatrix0to1[20][17] = -2.44609657300073; fWeightMatrix0to1[21][17] = -0.0821340061944749; fWeightMatrix0to1[22][17] = -13.294029766803; fWeightMatrix0to1[23][17] = 0.0141694968920721; fWeightMatrix0to1[24][17] = 0.0883479939550032; fWeightMatrix0to1[25][17] = -1.322124537145; fWeightMatrix0to1[26][17] = 0.567454646844233; fWeightMatrix0to1[27][17] = 1.33905809124787; fWeightMatrix0to1[28][17] = -15.7267974005345; fWeightMatrix0to1[0][18] = 0.527183224622711; fWeightMatrix0to1[1][18] = -1.34936759048596; fWeightMatrix0to1[2][18] = 5.1817924463522; fWeightMatrix0to1[3][18] = 1.49091396679554; fWeightMatrix0to1[4][18] = 1.16522811578954; fWeightMatrix0to1[5][18] = 2.23473617936746; fWeightMatrix0to1[6][18] = 1.06963545164956; fWeightMatrix0to1[7][18] = -0.743137846841012; fWeightMatrix0to1[8][18] = -2.67588776122032; fWeightMatrix0to1[9][18] = -0.574312536350317; fWeightMatrix0to1[10][18] = 1.01118890651694; fWeightMatrix0to1[11][18] = -0.971019196999846; fWeightMatrix0to1[12][18] = -0.898894396341059; fWeightMatrix0to1[13][18] = -0.876208545321193; fWeightMatrix0to1[14][18] = 0.0311956966525202; fWeightMatrix0to1[15][18] = 0.724955465072903; fWeightMatrix0to1[16][18] = 0.69845193892002; fWeightMatrix0to1[17][18] = -1.58826232995025; fWeightMatrix0to1[18][18] = -0.297834515362656; fWeightMatrix0to1[19][18] = -0.0692464332105304; fWeightMatrix0to1[20][18] = -1.97564851324075; fWeightMatrix0to1[21][18] = -1.43033930043683; fWeightMatrix0to1[22][18] = 4.09199000952739; fWeightMatrix0to1[23][18] = -0.955237595512951; fWeightMatrix0to1[24][18] = -0.778526323653614; fWeightMatrix0to1[25][18] = -0.338943213709697; fWeightMatrix0to1[26][18] = 0.71997573708413; fWeightMatrix0to1[27][18] = -0.619228442583419; fWeightMatrix0to1[28][18] = 1.27599112569852; fWeightMatrix0to1[0][19] = -0.183648057445051; fWeightMatrix0to1[1][19] = -0.705630347285095; fWeightMatrix0to1[2][19] = 3.32928369288154; fWeightMatrix0to1[3][19] = 0.101043221549361; fWeightMatrix0to1[4][19] = -1.51402942536657; fWeightMatrix0to1[5][19] = -0.245869738983124; fWeightMatrix0to1[6][19] = -1.42043052352332; fWeightMatrix0to1[7][19] = 2.45670549650016; fWeightMatrix0to1[8][19] = -3.74084915424098; fWeightMatrix0to1[9][19] = 1.55780026964174; fWeightMatrix0to1[10][19] = 2.21490853282563; fWeightMatrix0to1[11][19] = 0.719865421512476; fWeightMatrix0to1[12][19] = 0.45447248014071; fWeightMatrix0to1[13][19] = 0.88839691084605; fWeightMatrix0to1[14][19] = 1.01105064906716; fWeightMatrix0to1[15][19] = 0.862463688614987; fWeightMatrix0to1[16][19] = -0.744179213101211; fWeightMatrix0to1[17][19] = -0.696349330331675; fWeightMatrix0to1[18][19] = -0.884266399026752; fWeightMatrix0to1[19][19] = 1.22573006753638; fWeightMatrix0to1[20][19] = -1.3292388397849; fWeightMatrix0to1[21][19] = 0.215684303579285; fWeightMatrix0to1[22][19] = 5.11731436226497; fWeightMatrix0to1[23][19] = -0.103471110157627; fWeightMatrix0to1[24][19] = -1.79403459086159; fWeightMatrix0to1[25][19] = 1.37100525250461; fWeightMatrix0to1[26][19] = -2.81964818988853; fWeightMatrix0to1[27][19] = 0.445228734401316; fWeightMatrix0to1[28][19] = -0.870481840294411; fWeightMatrix0to1[0][20] = 2.44451627569358; fWeightMatrix0to1[1][20] = -2.42236716180572; fWeightMatrix0to1[2][20] = -1.60666983174143; fWeightMatrix0to1[3][20] = -2.8877464738008; fWeightMatrix0to1[4][20] = -4.38086333517628; fWeightMatrix0to1[5][20] = -15.6245697769014; fWeightMatrix0to1[6][20] = 0.204544235846345; fWeightMatrix0to1[7][20] = 0.158336524619448; fWeightMatrix0to1[8][20] = -6.11622689912445; fWeightMatrix0to1[9][20] = 2.64989471928344; fWeightMatrix0to1[10][20] = -13.0481476681783; fWeightMatrix0to1[11][20] = 3.88160527047777; fWeightMatrix0to1[12][20] = -0.100589171017688; fWeightMatrix0to1[13][20] = 0.979812509607728; fWeightMatrix0to1[14][20] = -18.0626399738741; fWeightMatrix0to1[15][20] = 0.840808478938873; fWeightMatrix0to1[16][20] = 2.79476436531132; fWeightMatrix0to1[17][20] = -0.162573914479906; fWeightMatrix0to1[18][20] = -2.32271924853436; fWeightMatrix0to1[19][20] = -1.5254064123413; fWeightMatrix0to1[20][20] = 21.6239435798473; fWeightMatrix0to1[21][20] = 0.342426674945651; fWeightMatrix0to1[22][20] = -1.28180735378105; fWeightMatrix0to1[23][20] = -4.3029144849383; fWeightMatrix0to1[24][20] = -0.376930975095704; fWeightMatrix0to1[25][20] = 0.267938199289111; fWeightMatrix0to1[26][20] = 0.255545086305471; fWeightMatrix0to1[27][20] = -15.356608797671; fWeightMatrix0to1[28][20] = 1.62252017801952; fWeightMatrix0to1[0][21] = -0.0950084332540524; fWeightMatrix0to1[1][21] = 0.543881004794441; fWeightMatrix0to1[2][21] = 5.82333490373838; fWeightMatrix0to1[3][21] = -2.36569338337158; fWeightMatrix0to1[4][21] = -2.38690731067565; fWeightMatrix0to1[5][21] = -5.52295227198773; fWeightMatrix0to1[6][21] = 0.266659472894406; fWeightMatrix0to1[7][21] = 0.759957290175758; fWeightMatrix0to1[8][21] = -0.760652750190505; fWeightMatrix0to1[9][21] = 0.263700664822906; fWeightMatrix0to1[10][21] = -0.899839985178007; fWeightMatrix0to1[11][21] = 0.0389229401548821; fWeightMatrix0to1[12][21] = -0.510471428179386; fWeightMatrix0to1[13][21] = 5.12352039873688; fWeightMatrix0to1[14][21] = 0.478875965126621; fWeightMatrix0to1[15][21] = -2.27867034208152; fWeightMatrix0to1[16][21] = -2.0962153338242; fWeightMatrix0to1[17][21] = -2.13184981955228; fWeightMatrix0to1[18][21] = -3.02119265742421; fWeightMatrix0to1[19][21] = -0.757931700220942; fWeightMatrix0to1[20][21] = -0.014960587774584; fWeightMatrix0to1[21][21] = -1.04153797700989; fWeightMatrix0to1[22][21] = 3.14807805436298; fWeightMatrix0to1[23][21] = 1.41822437608409; fWeightMatrix0to1[24][21] = -4.06365172039135; fWeightMatrix0to1[25][21] = -1.94778838828664; fWeightMatrix0to1[26][21] = -0.552082370863881; fWeightMatrix0to1[27][21] = -3.76315666562807; fWeightMatrix0to1[28][21] = 12.9738889218553; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = 1.42379288804699; fWeightMatrix1to2[0][1] = -4.43409144502175; fWeightMatrix1to2[0][2] = -3.22000278139127; fWeightMatrix1to2[0][3] = -1.9812609053298; fWeightMatrix1to2[0][4] = -1.61928768668434; fWeightMatrix1to2[0][5] = 1.51939847860426; fWeightMatrix1to2[0][6] = -2.4907346656683; fWeightMatrix1to2[0][7] = -2.7132497252045; fWeightMatrix1to2[0][8] = -1.91211494806613; fWeightMatrix1to2[0][9] = 2.57058780652782; fWeightMatrix1to2[0][10] = -2.29726964098404; fWeightMatrix1to2[0][11] = 1.56758256071364; fWeightMatrix1to2[0][12] = -1.2307887927068; fWeightMatrix1to2[0][13] = -3.28312812647541; fWeightMatrix1to2[0][14] = -1.43699868852282; fWeightMatrix1to2[0][15] = -1.48236760673319; fWeightMatrix1to2[0][16] = -0.590201624703325; fWeightMatrix1to2[0][17] = 2.09369492651352; fWeightMatrix1to2[0][18] = 1.49146516772802; fWeightMatrix1to2[0][19] = -3.85420878118774; fWeightMatrix1to2[0][20] = 2.36996242463902; fWeightMatrix1to2[0][21] = -1.27584460859917; fWeightMatrix1to2[0][22] = -2.58092889400549; fWeightMatrix1to2[0][23] = 5.01181859331734; fWeightMatrix1to2[0][24] = 1.01149963019212; fWeightMatrix1to2[0][25] = -1.59991638762175; fWeightMatrix1to2[0][26] = -0.899567269648615; fWeightMatrix1to2[0][27] = 1.93657818493003; fWeightMatrix1to2[0][28] = -4.44606765037462; fWeightMatrix1to2[0][29] = 5.83612498886156; } inline double ReadKaon_Upstream_TMVA::GetMvaValue__( const std::vector& inputValues ) const { if (inputValues.size() != (unsigned int)fLayerSize[0]-1) { std::cout << "Input vector needs to be of size " << fLayerSize[0]-1 << std::endl; return 0; } for (int l=0; l& inputValues ) const { // classifier response value double retval = 0; // classifier response, sanity check first if (!IsStatusClean()) { std::cout << "Problem in class \"" << fClassName << "\": cannot return classifier response" << " because status is dirty" << std::endl; retval = 0; } else { if (IsNormalised()) { // normalise variables std::vector iV; iV.reserve(inputValues.size()); int ivar = 0; for (std::vector::const_iterator varIt = inputValues.begin(); varIt != inputValues.end(); varIt++, ivar++) { iV.push_back(NormVariable( *varIt, fVmin[ivar], fVmax[ivar] )); } Transform( iV, -1 ); retval = GetMvaValue__( iV ); } else { std::vector iV; int ivar = 0; for (std::vector::const_iterator varIt = inputValues.begin(); varIt != inputValues.end(); varIt++, ivar++) { iV.push_back(*varIt); } Transform( iV, -1 ); retval = GetMvaValue__( iV ); } } return retval; } //_______________________________________________________________________ inline void ReadKaon_Upstream_TMVA::InitTransform_1() { // Normalization transformation, initialisation fMin_1[0][0] = 256.920013428; fMax_1[0][0] = 4793400; fMin_1[1][0] = 291.049987793; fMax_1[1][0] = 4102920.75; fMin_1[2][0] = 256.920013428; fMax_1[2][0] = 4793400; fMin_1[0][1] = 6.0154671669; fMax_1[0][1] = 882678.1875; fMin_1[1][1] = 14.0016508102; fMax_1[1][1] = 395749.5625; fMin_1[2][1] = 6.0154671669; fMax_1[2][1] = 882678.1875; fMin_1[0][2] = 0.00387042481452; fMax_1[0][2] = 2.99792051315; fMin_1[1][2] = 0.0157903004438; fMax_1[1][2] = 2.99801039696; fMin_1[2][2] = 0.00387042481452; fMax_1[2][2] = 2.99801039696; fMin_1[0][3] = 4; fMax_1[0][3] = 28; fMin_1[1][3] = 4; fMax_1[1][3] = 27; fMin_1[2][3] = 4; fMax_1[2][3] = 28; fMin_1[0][4] = -49.2771110535; fMax_1[0][4] = -0.336537152529; fMin_1[1][4] = -39.0377197266; fMax_1[1][4] = -0.389137089252; fMin_1[2][4] = -49.2771110535; fMax_1[2][4] = -0.336537152529; fMin_1[0][5] = 0.0309826973826; fMax_1[0][5] = 1; fMin_1[1][5] = 0.0431596674025; fMax_1[1][5] = 1; fMin_1[2][5] = 0.0309826973826; fMax_1[2][5] = 1; fMin_1[0][6] = 5.73693614569e-06; fMax_1[0][6] = 54.0769615173; fMin_1[1][6] = 0.000465455435915; fMax_1[1][6] = 53.6151313782; fMin_1[2][6] = 5.73693614569e-06; fMax_1[2][6] = 54.0769615173; fMin_1[0][7] = 1; fMax_1[0][7] = 23; fMin_1[1][7] = 1; fMax_1[1][7] = 23; fMin_1[2][7] = 1; fMax_1[2][7] = 23; fMin_1[0][8] = 0; fMax_1[0][8] = 1; fMin_1[1][8] = 0; fMax_1[1][8] = 1; fMin_1[2][8] = 0; fMax_1[2][8] = 1; fMin_1[0][9] = 0; fMax_1[0][9] = 1; fMin_1[1][9] = 0; fMax_1[1][9] = 1; fMin_1[2][9] = 0; fMax_1[2][9] = 1; fMin_1[0][10] = 0; fMax_1[0][10] = 1; fMin_1[1][10] = 0; fMax_1[1][10] = 1; fMin_1[2][10] = 0; fMax_1[2][10] = 1; fMin_1[0][11] = 0; fMax_1[0][11] = 1; fMin_1[1][11] = 0; fMax_1[1][11] = 1; fMin_1[2][11] = 0; fMax_1[2][11] = 1; fMin_1[0][12] = 0; fMax_1[0][12] = 1; fMin_1[1][12] = 0; fMax_1[1][12] = 1; fMin_1[2][12] = 0; fMax_1[2][12] = 1; fMin_1[0][13] = -999; fMax_1[0][13] = 116.291496277; fMin_1[1][13] = -999; fMax_1[1][13] = 77.415397644; fMin_1[2][13] = -999; fMax_1[2][13] = 116.291496277; fMin_1[0][14] = -999; fMax_1[0][14] = 86.09349823; fMin_1[1][14] = -999; fMax_1[1][14] = 36.6824989319; fMin_1[2][14] = -999; fMax_1[2][14] = 86.09349823; fMin_1[0][15] = -999; fMax_1[0][15] = 79.6075973511; fMin_1[1][15] = -999; fMax_1[1][15] = 77.8824005127; fMin_1[2][15] = -999; fMax_1[2][15] = 79.6075973511; fMin_1[0][16] = -999; fMax_1[0][16] = 78.3151016235; fMin_1[1][16] = -999; fMax_1[1][16] = 69.3271026611; fMin_1[2][16] = -999; fMax_1[2][16] = 78.3151016235; fMin_1[0][17] = -999; fMax_1[0][17] = 47.5948982239; fMin_1[1][17] = -999; fMax_1[1][17] = 46.9488983154; fMin_1[2][17] = -999; fMax_1[2][17] = 47.5948982239; fMin_1[0][18] = 0; fMax_1[0][18] = 1; fMin_1[1][18] = 0; fMax_1[1][18] = 1; fMin_1[2][18] = 0; fMax_1[2][18] = 1; fMin_1[0][19] = -999; fMax_1[0][19] = 4.79148387909; fMin_1[1][19] = -999; fMax_1[1][19] = 4.49353694916; fMin_1[2][19] = -999; fMax_1[2][19] = 4.79148387909; fMin_1[0][20] = 0.498595505953; fMax_1[0][20] = 3.5272872448; fMin_1[1][20] = 0.556179761887; fMax_1[1][20] = 3.23033714294; fMin_1[2][20] = 0.498595505953; fMax_1[2][20] = 3.5272872448; } //_______________________________________________________________________ inline void ReadKaon_Upstream_TMVA::Transform_1( std::vector& iv, int cls) const { // Normalization transformation if (cls < 0 || cls > 2) { if (2 > 1 ) cls = 2; else cls = 2; } const int nVar = 21; // get indices of used variables // define the indices of the variables which are transformed by this transformation static std::vector indicesGet; static std::vector indicesPut; if ( indicesGet.empty() ) { indicesGet.reserve(fNvars); indicesGet.push_back( 0); indicesGet.push_back( 1); indicesGet.push_back( 2); indicesGet.push_back( 3); indicesGet.push_back( 4); indicesGet.push_back( 5); indicesGet.push_back( 6); indicesGet.push_back( 7); indicesGet.push_back( 8); indicesGet.push_back( 9); indicesGet.push_back( 10); indicesGet.push_back( 11); indicesGet.push_back( 12); indicesGet.push_back( 13); indicesGet.push_back( 14); indicesGet.push_back( 15); indicesGet.push_back( 16); indicesGet.push_back( 17); indicesGet.push_back( 18); indicesGet.push_back( 19); indicesGet.push_back( 20); } if ( indicesPut.empty() ) { indicesPut.reserve(fNvars); indicesPut.push_back( 0); indicesPut.push_back( 1); indicesPut.push_back( 2); indicesPut.push_back( 3); indicesPut.push_back( 4); indicesPut.push_back( 5); indicesPut.push_back( 6); indicesPut.push_back( 7); indicesPut.push_back( 8); indicesPut.push_back( 9); indicesPut.push_back( 10); indicesPut.push_back( 11); indicesPut.push_back( 12); indicesPut.push_back( 13); indicesPut.push_back( 14); indicesPut.push_back( 15); indicesPut.push_back( 16); indicesPut.push_back( 17); indicesPut.push_back( 18); indicesPut.push_back( 19); indicesPut.push_back( 20); } static std::vector dv; dv.resize(nVar); for (int ivar=0; ivar& iv, int sigOrBgd ) const { Transform_1( iv, sigOrBgd ); }