// Class: ReadPion_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Pion_Upstream_TMVA TMVA Release : 4.2.0 [262656] ROOT Release : 5.34/18 [336402] Creator : jonesc Date : Sat Jun 14 00:38:25 2014 Host : ec-slc6-x86-64-spi-9 Dir : /var/pcfst/r03/lhcb/jonesc/ANNPID/results/MC12/TrainMixture/TrainPhysTksNoGhosts-EvalPhysTks-ReweightRICH2/TMVA-NoPreSels-NoGECs/MLP/Norm/ScaleF1.4/BP/NCycles750/CE/sigmoid/CVTest15/CVImp1e-16/NotUseRegulator/Pion/Upstream Training events: 1200000 Analysis type : [Classification] #OPT -*-*-*-*-*-*-*-*-*-*-*-*- options -*-*-*-*-*-*-*-*-*-*-*-*- # Set by User: NCycles: "750" [Number of training cycles] HiddenLayers: "28" [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 20 TrackP TrackP TrackP TrackP 'F' [253.580001831,4741412] TrackPt TrackPt TrackPt TrackPt 'F' [5.38133239746,954913.375] TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof 'F' [0.00438635889441,2.99875736237] TrackNumDof TrackNumDof TrackNumDof TrackNumDof 'I' [4,27] TrackLikelihood TrackLikelihood TrackLikelihood TrackLikelihood 'F' [-59.4464607239,-0.329912275076] TrackGhostProbability TrackGhostProbability TrackGhostProbability TrackGhostProbability 'F' [0.0295318737626,1] TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 'F' [9.30839669309e-05,48.2787208557] TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF 'I' [1,23] RichUsedAero RichUsedAero RichUsedAero RichUsedAero 'I' [0,1] RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas 'I' [0,1] RichAbovePiThres RichAbovePiThres RichAbovePiThres RichAbovePiThres 'I' [0,1] RichAboveKaThres RichAboveKaThres RichAboveKaThres RichAboveKaThres 'I' [0,1] RichDLLe RichDLLe RichDLLe RichDLLe 'F' [-999,117.404403687] RichDLLmu RichDLLmu RichDLLmu RichDLLmu 'F' [-999,75.9692993164] RichDLLk RichDLLk RichDLLk RichDLLk 'F' [-999,92.4810028076] RichDLLp RichDLLp RichDLLp RichDLLp 'F' [-999,84.875] RichDLLbt RichDLLbt RichDLLbt RichDLLbt 'F' [-999,47.9555015564] InAccBrem InAccBrem InAccBrem InAccBrem 'I' [0,1] BremPIDe BremPIDe BremPIDe BremPIDe 'F' [-999,4.79148387909] VeloCharge VeloCharge VeloCharge VeloCharge 'F' [0.522471904755,3.59951853752] NSpec 0 ============================================================================ */ #include #include #include #include #ifndef IClassifierReader__def #define IClassifierReader__def class IClassifierReader { public: // constructor IClassifierReader() : fStatusIsClean( true ) {} virtual ~IClassifierReader() {} // return classifier response virtual double GetMvaValue( const std::vector& inputValues ) const = 0; // returns classifier status bool IsStatusClean() const { return fStatusIsClean; } protected: bool fStatusIsClean; }; #endif class ReadPion_Upstream_TMVA : public IClassifierReader { public: // constructor ReadPion_Upstream_TMVA( std::vector& theInputVars ) : IClassifierReader(), fClassName( "ReadPion_Upstream_TMVA" ), fNvars( 20 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackLikelihood", "TrackGhostProbability", "TrackFitVeloChi2", "TrackFitVeloNDoF", "RichUsedAero", "RichUsedR1Gas", "RichAbovePiThres", "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] = 0.99999988079071; 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; // 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] = 'F'; fType[13] = 'F'; fType[14] = 'F'; fType[15] = 'F'; fType[16] = 'F'; fType[17] = 'I'; fType[18] = 'F'; fType[19] = 'F'; // initialize constants Initialize(); // initialize transformation InitTransform(); } // destructor virtual ~ReadPion_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][20]; double fMax_1[3][20]; 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[20]; double fVmax[20]; 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[20]; // 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[29][21]; // weight matrix from layer 0 to 1 double fWeightMatrix1to2[1][29]; // weight matrix from layer 1 to 2 double * fWeights[3]; }; inline void ReadPion_Upstream_TMVA::Initialize() { // build network structure fLayers = 3; fLayerSize[0] = 21; fWeights[0] = new double[21]; fLayerSize[1] = 29; fWeights[1] = new double[29]; fLayerSize[2] = 1; fWeights[2] = new double[1]; // weight matrix from layer 0 to 1 fWeightMatrix0to1[0][0] = 1.24745850340317; fWeightMatrix0to1[1][0] = 9.26653155960233; fWeightMatrix0to1[2][0] = 7.90931963605729; fWeightMatrix0to1[3][0] = 2.39182154602538; fWeightMatrix0to1[4][0] = -4.46885143388878; fWeightMatrix0to1[5][0] = -0.206133910602732; fWeightMatrix0to1[6][0] = 16.4046658104793; fWeightMatrix0to1[7][0] = 2.10350276015794; fWeightMatrix0to1[8][0] = -0.430524870513158; fWeightMatrix0to1[9][0] = -0.368407724027058; fWeightMatrix0to1[10][0] = -3.48479107089879; fWeightMatrix0to1[11][0] = -1.60759866482669; fWeightMatrix0to1[12][0] = -1.52889460729638; fWeightMatrix0to1[13][0] = -16.2313174557961; fWeightMatrix0to1[14][0] = 0.163449869462475; fWeightMatrix0to1[15][0] = 16.0504135157628; fWeightMatrix0to1[16][0] = 3.09586268223301; fWeightMatrix0to1[17][0] = 3.10264253578862; fWeightMatrix0to1[18][0] = 3.8721590326493; fWeightMatrix0to1[19][0] = 9.48312672176485; fWeightMatrix0to1[20][0] = -7.54362439674429; fWeightMatrix0to1[21][0] = 0.320999210371017; fWeightMatrix0to1[22][0] = 8.65462055438639; fWeightMatrix0to1[23][0] = 1.26079787062396; fWeightMatrix0to1[24][0] = 0.099207625191363; fWeightMatrix0to1[25][0] = 4.98987292271959; fWeightMatrix0to1[26][0] = -0.51792512888056; fWeightMatrix0to1[27][0] = -13.3882418266708; fWeightMatrix0to1[0][1] = -0.14053128731505; fWeightMatrix0to1[1][1] = 1.59478790645574; fWeightMatrix0to1[2][1] = 8.06635285993969; fWeightMatrix0to1[3][1] = 3.77468077521886; fWeightMatrix0to1[4][1] = -2.53450147763717; fWeightMatrix0to1[5][1] = 1.91553849798455; fWeightMatrix0to1[6][1] = 14.7992528984612; fWeightMatrix0to1[7][1] = -0.85030581735606; fWeightMatrix0to1[8][1] = -0.352975853309692; fWeightMatrix0to1[9][1] = 2.1807544846228; fWeightMatrix0to1[10][1] = -0.649140601126322; fWeightMatrix0to1[11][1] = 1.07594141602618; fWeightMatrix0to1[12][1] = 0.737954278840589; fWeightMatrix0to1[13][1] = -13.819001422625; fWeightMatrix0to1[14][1] = 3.45924297517896; fWeightMatrix0to1[15][1] = 13.8693800714977; fWeightMatrix0to1[16][1] = 1.66986729482684; fWeightMatrix0to1[17][1] = -1.20990249430655; fWeightMatrix0to1[18][1] = 1.20279070424177; fWeightMatrix0to1[19][1] = 0.331764264511579; fWeightMatrix0to1[20][1] = 2.22684055290029; fWeightMatrix0to1[21][1] = 2.27509329478776; fWeightMatrix0to1[22][1] = 7.71234493650546; fWeightMatrix0to1[23][1] = 2.40861506051062; fWeightMatrix0to1[24][1] = 0.0375548933267757; fWeightMatrix0to1[25][1] = 7.20211831417623; fWeightMatrix0to1[26][1] = -2.56640128974343; fWeightMatrix0to1[27][1] = -13.9159118988099; fWeightMatrix0to1[0][2] = -1.05421322541766; fWeightMatrix0to1[1][2] = -0.817250909461948; fWeightMatrix0to1[2][2] = 0.317505934013625; fWeightMatrix0to1[3][2] = 1.44191845226646; fWeightMatrix0to1[4][2] = 0.0786048534429772; fWeightMatrix0to1[5][2] = 0.13224868503453; fWeightMatrix0to1[6][2] = -0.535171396982412; fWeightMatrix0to1[7][2] = -0.241678815105454; fWeightMatrix0to1[8][2] = 2.20544878105444; fWeightMatrix0to1[9][2] = 1.35197766123053; fWeightMatrix0to1[10][2] = 0.0279654551506521; fWeightMatrix0to1[11][2] = -0.0629665520982752; fWeightMatrix0to1[12][2] = 0.871012653196498; fWeightMatrix0to1[13][2] = -0.223110076983951; fWeightMatrix0to1[14][2] = -1.79789869343422; fWeightMatrix0to1[15][2] = -1.02290715917019; fWeightMatrix0to1[16][2] = 0.680832512339863; fWeightMatrix0to1[17][2] = 2.99300878081591; fWeightMatrix0to1[18][2] = 0.134750232678421; fWeightMatrix0to1[19][2] = 1.70531331153346; fWeightMatrix0to1[20][2] = -0.338379143994412; fWeightMatrix0to1[21][2] = -0.272237811651232; fWeightMatrix0to1[22][2] = 0.170355184622687; fWeightMatrix0to1[23][2] = 0.466468494386623; fWeightMatrix0to1[24][2] = 1.55888201853749; fWeightMatrix0to1[25][2] = 0.0672540877834691; fWeightMatrix0to1[26][2] = -0.266654656957228; fWeightMatrix0to1[27][2] = -0.761647650874503; fWeightMatrix0to1[0][3] = -0.078901113018017; fWeightMatrix0to1[1][3] = -2.35193598359613; fWeightMatrix0to1[2][3] = 3.95040766352692; fWeightMatrix0to1[3][3] = 2.8517371892094; fWeightMatrix0to1[4][3] = 0.755289339494895; fWeightMatrix0to1[5][3] = -0.992372244425777; fWeightMatrix0to1[6][3] = 3.13225894753334; fWeightMatrix0to1[7][3] = 0.0208479214774237; fWeightMatrix0to1[8][3] = 2.52269253777356; fWeightMatrix0to1[9][3] = -1.38501057803287; fWeightMatrix0to1[10][3] = 1.96391244744851; fWeightMatrix0to1[11][3] = 1.59641205434319; fWeightMatrix0to1[12][3] = -3.20007933634667; fWeightMatrix0to1[13][3] = 2.33301088893257; fWeightMatrix0to1[14][3] = 4.20027518640858; fWeightMatrix0to1[15][3] = 6.37717058409465; fWeightMatrix0to1[16][3] = -3.81090232274142; fWeightMatrix0to1[17][3] = -1.86376424253016; fWeightMatrix0to1[18][3] = 1.28313844062002; fWeightMatrix0to1[19][3] = 2.91501555674517; fWeightMatrix0to1[20][3] = 0.492085053839463; fWeightMatrix0to1[21][3] = -1.39022725196643; fWeightMatrix0to1[22][3] = -4.89537409354714; fWeightMatrix0to1[23][3] = -1.89310024689289; fWeightMatrix0to1[24][3] = 1.06457522706732; fWeightMatrix0to1[25][3] = 3.86513290856134; fWeightMatrix0to1[26][3] = -1.54788613280749; fWeightMatrix0to1[27][3] = 3.79767792680638; fWeightMatrix0to1[0][4] = -2.71744950624969; fWeightMatrix0to1[1][4] = -1.49415957891506; fWeightMatrix0to1[2][4] = -0.0795277980674448; fWeightMatrix0to1[3][4] = 0.0464872340569897; fWeightMatrix0to1[4][4] = 2.01137877173763; fWeightMatrix0to1[5][4] = -1.25605930927356; fWeightMatrix0to1[6][4] = -0.00163782809946368; fWeightMatrix0to1[7][4] = -0.0353557614596449; fWeightMatrix0to1[8][4] = -2.81220058104707; fWeightMatrix0to1[9][4] = 5.72695004857046; fWeightMatrix0to1[10][4] = -0.0100420848932879; fWeightMatrix0to1[11][4] = 3.33111968988419; fWeightMatrix0to1[12][4] = -3.92767986459067; fWeightMatrix0to1[13][4] = 2.78518922857649; fWeightMatrix0to1[14][4] = 0.652941669768802; fWeightMatrix0to1[15][4] = 0.71035017360146; fWeightMatrix0to1[16][4] = -3.81092364109137; fWeightMatrix0to1[17][4] = 0.330616384163713; fWeightMatrix0to1[18][4] = -1.44456887587306; fWeightMatrix0to1[19][4] = 1.96458730981416; fWeightMatrix0to1[20][4] = -2.07763468083269; fWeightMatrix0to1[21][4] = -2.37698564637571; fWeightMatrix0to1[22][4] = -1.21848526755823; fWeightMatrix0to1[23][4] = -0.008244466210704; fWeightMatrix0to1[24][4] = 1.29190181337792; fWeightMatrix0to1[25][4] = -1.88424165648587; fWeightMatrix0to1[26][4] = 0.910611544670583; fWeightMatrix0to1[27][4] = -0.320571424138746; fWeightMatrix0to1[0][5] = 3.35531095648041; fWeightMatrix0to1[1][5] = 0.424796256945927; fWeightMatrix0to1[2][5] = -4.68508720029661; fWeightMatrix0to1[3][5] = -1.32327436571373; fWeightMatrix0to1[4][5] = -1.69736848394121; fWeightMatrix0to1[5][5] = -0.451768552653631; fWeightMatrix0to1[6][5] = -0.214130395821008; fWeightMatrix0to1[7][5] = 0.208470421025779; fWeightMatrix0to1[8][5] = 0.118287658391631; fWeightMatrix0to1[9][5] = 0.0996681671918845; fWeightMatrix0to1[10][5] = 0.637779090337169; fWeightMatrix0to1[11][5] = -1.67405726900758; fWeightMatrix0to1[12][5] = -0.117163423510648; fWeightMatrix0to1[13][5] = -0.0916844276753371; fWeightMatrix0to1[14][5] = -0.137250581372372; fWeightMatrix0to1[15][5] = 0.164538834229343; fWeightMatrix0to1[16][5] = 0.716016372497416; fWeightMatrix0to1[17][5] = 0.565146526844297; fWeightMatrix0to1[18][5] = -0.380907641024596; fWeightMatrix0to1[19][5] = -1.04733487140436; fWeightMatrix0to1[20][5] = -0.176457745312454; fWeightMatrix0to1[21][5] = 0.277692562482047; fWeightMatrix0to1[22][5] = 0.260121505475446; fWeightMatrix0to1[23][5] = -0.61340739685078; fWeightMatrix0to1[24][5] = -0.843119474253823; fWeightMatrix0to1[25][5] = 0.350744841961923; fWeightMatrix0to1[26][5] = 0.0280793919043368; fWeightMatrix0to1[27][5] = -0.295605440131531; fWeightMatrix0to1[0][6] = 1.33017987625067; fWeightMatrix0to1[1][6] = 0.760255777730024; fWeightMatrix0to1[2][6] = 0.391979619433253; fWeightMatrix0to1[3][6] = 0.352960288409304; fWeightMatrix0to1[4][6] = -0.0836341728182962; fWeightMatrix0to1[5][6] = -0.612022718023699; fWeightMatrix0to1[6][6] = 0.784964989397224; fWeightMatrix0to1[7][6] = 0.211362914502766; fWeightMatrix0to1[8][6] = 2.08990021433251; fWeightMatrix0to1[9][6] = -3.97231928261595; fWeightMatrix0to1[10][6] = -0.492916244174791; fWeightMatrix0to1[11][6] = 0.307987751244759; fWeightMatrix0to1[12][6] = -2.05785933644564; fWeightMatrix0to1[13][6] = 1.37398683955536; fWeightMatrix0to1[14][6] = 3.37701409034002; fWeightMatrix0to1[15][6] = 1.5903791842986; fWeightMatrix0to1[16][6] = 0.366060010957862; fWeightMatrix0to1[17][6] = -1.62790900726571; fWeightMatrix0to1[18][6] = -1.74654067399438; fWeightMatrix0to1[19][6] = -2.07554822977033; fWeightMatrix0to1[20][6] = 1.4553816968104; fWeightMatrix0to1[21][6] = -1.2103267820089; fWeightMatrix0to1[22][6] = -0.186431721363176; fWeightMatrix0to1[23][6] = -0.471739622779881; fWeightMatrix0to1[24][6] = 3.70261322887931; fWeightMatrix0to1[25][6] = -1.59643591961409; fWeightMatrix0to1[26][6] = 1.99540813048598; fWeightMatrix0to1[27][6] = 0.638231805881979; fWeightMatrix0to1[0][7] = -2.15309540945011; fWeightMatrix0to1[1][7] = -0.123425877521526; fWeightMatrix0to1[2][7] = -4.20587986460534; fWeightMatrix0to1[3][7] = -0.316563899200503; fWeightMatrix0to1[4][7] = -0.191810717862926; fWeightMatrix0to1[5][7] = 1.70605771617561; fWeightMatrix0to1[6][7] = -3.00490767480508; fWeightMatrix0to1[7][7] = -1.78487161797857; fWeightMatrix0to1[8][7] = 2.29032762713419; fWeightMatrix0to1[9][7] = 5.9151571118115; fWeightMatrix0to1[10][7] = 2.79135997003505; fWeightMatrix0to1[11][7] = -0.0697285713926995; fWeightMatrix0to1[12][7] = 5.38403108916739; fWeightMatrix0to1[13][7] = -2.66959978646898; fWeightMatrix0to1[14][7] = -4.15473796999005; fWeightMatrix0to1[15][7] = -7.19341104549681; fWeightMatrix0to1[16][7] = -3.90123228293501; fWeightMatrix0to1[17][7] = -0.130797824826516; fWeightMatrix0to1[18][7] = 4.36998895195761; fWeightMatrix0to1[19][7] = 3.42170442070932; fWeightMatrix0to1[20][7] = -1.66381403875241; fWeightMatrix0to1[21][7] = 3.01155182126077; fWeightMatrix0to1[22][7] = 3.65482850627082; fWeightMatrix0to1[23][7] = -3.65612166833938; fWeightMatrix0to1[24][7] = -1.02082896620886; fWeightMatrix0to1[25][7] = -0.126519932758016; fWeightMatrix0to1[26][7] = -1.97860792060824; fWeightMatrix0to1[27][7] = -5.09587200979998; fWeightMatrix0to1[0][8] = 1.82348516967357; fWeightMatrix0to1[1][8] = -1.08579804910738; fWeightMatrix0to1[2][8] = -0.589823876771485; fWeightMatrix0to1[3][8] = 3.68147965434652; fWeightMatrix0to1[4][8] = -4.54012842128264; fWeightMatrix0to1[5][8] = -3.66035570781666; fWeightMatrix0to1[6][8] = -2.89165581663026; fWeightMatrix0to1[7][8] = 2.33264183308946; fWeightMatrix0to1[8][8] = 1.3415279471609; fWeightMatrix0to1[9][8] = -4.62044360287166; fWeightMatrix0to1[10][8] = 2.98492555986749; fWeightMatrix0to1[11][8] = -2.37456574510673; fWeightMatrix0to1[12][8] = 0.587086704612981; fWeightMatrix0to1[13][8] = -1.56824821934716; fWeightMatrix0to1[14][8] = -0.00944244275649817; fWeightMatrix0to1[15][8] = -0.54370455111471; fWeightMatrix0to1[16][8] = 0.10755216415336; fWeightMatrix0to1[17][8] = -2.21259272337251; fWeightMatrix0to1[18][8] = -1.90999993805484; fWeightMatrix0to1[19][8] = -1.98847129941695; fWeightMatrix0to1[20][8] = -2.61483775231788; fWeightMatrix0to1[21][8] = 1.84434255249723; fWeightMatrix0to1[22][8] = 0.265399494264999; fWeightMatrix0to1[23][8] = -2.09223102018018; fWeightMatrix0to1[24][8] = 2.73348874923582; fWeightMatrix0to1[25][8] = 0.0207937127202641; fWeightMatrix0to1[26][8] = 0.0503382714013851; fWeightMatrix0to1[27][8] = -4.03227463314714; fWeightMatrix0to1[0][9] = -0.283346857952689; fWeightMatrix0to1[1][9] = 1.08413314263854; fWeightMatrix0to1[2][9] = -4.01756013476011; fWeightMatrix0to1[3][9] = -0.226230992349798; fWeightMatrix0to1[4][9] = -0.224812569308042; fWeightMatrix0to1[5][9] = -0.692453541542959; fWeightMatrix0to1[6][9] = -6.64263646737045; fWeightMatrix0to1[7][9] = -0.699894001434097; fWeightMatrix0to1[8][9] = 0.114471164258063; fWeightMatrix0to1[9][9] = -3.26066900100342; fWeightMatrix0to1[10][9] = 1.04443788813022; fWeightMatrix0to1[11][9] = 0.347213071731274; fWeightMatrix0to1[12][9] = -0.637071889334972; fWeightMatrix0to1[13][9] = 8.47005142059654; fWeightMatrix0to1[14][9] = -1.14080890864506; fWeightMatrix0to1[15][9] = -4.29353979829091; fWeightMatrix0to1[16][9] = -0.305077571138962; fWeightMatrix0to1[17][9] = -0.832383471528195; fWeightMatrix0to1[18][9] = -1.16431154983418; fWeightMatrix0to1[19][9] = -0.554073713985479; fWeightMatrix0to1[20][9] = 2.45985772038028; fWeightMatrix0to1[21][9] = -0.178182942537822; fWeightMatrix0to1[22][9] = -1.74504365789025; fWeightMatrix0to1[23][9] = -0.417945354319063; fWeightMatrix0to1[24][9] = 0.429255654648667; fWeightMatrix0to1[25][9] = 4.25247642269578; fWeightMatrix0to1[26][9] = -0.290119454957851; fWeightMatrix0to1[27][9] = 8.31898988822373; fWeightMatrix0to1[0][10] = 0.0389616559663049; fWeightMatrix0to1[1][10] = -1.7087216827942; fWeightMatrix0to1[2][10] = 0.615181463198647; fWeightMatrix0to1[3][10] = -0.613319407853946; fWeightMatrix0to1[4][10] = -4.12478612466757; fWeightMatrix0to1[5][10] = -1.08257664111989; fWeightMatrix0to1[6][10] = -6.84896356283705; fWeightMatrix0to1[7][10] = 2.6808475317631; fWeightMatrix0to1[8][10] = -2.14289730751341; fWeightMatrix0to1[9][10] = 5.15779658997126; fWeightMatrix0to1[10][10] = -1.84538477726229; fWeightMatrix0to1[11][10] = 1.07006720403554; fWeightMatrix0to1[12][10] = 0.755872284940129; fWeightMatrix0to1[13][10] = 3.56861364134423; fWeightMatrix0to1[14][10] = 2.01767318469112; fWeightMatrix0to1[15][10] = -7.40063288023206; fWeightMatrix0to1[16][10] = -0.593417764139543; fWeightMatrix0to1[17][10] = 0.502806621745998; fWeightMatrix0to1[18][10] = -1.90335009653619; fWeightMatrix0to1[19][10] = -2.44733741550576; fWeightMatrix0to1[20][10] = -2.31112368751622; fWeightMatrix0to1[21][10] = -1.01735977563396; fWeightMatrix0to1[22][10] = 0.371594334636776; fWeightMatrix0to1[23][10] = -0.431519409035929; fWeightMatrix0to1[24][10] = -0.564776047663269; fWeightMatrix0to1[25][10] = 1.11121386884957; fWeightMatrix0to1[26][10] = -1.98777514917727; fWeightMatrix0to1[27][10] = 4.74250526615749; fWeightMatrix0to1[0][11] = -1.5162692256309; fWeightMatrix0to1[1][11] = -2.0669375496387; fWeightMatrix0to1[2][11] = -0.474690370264018; fWeightMatrix0to1[3][11] = -3.29393759147304; fWeightMatrix0to1[4][11] = -1.51486496880102; fWeightMatrix0to1[5][11] = 2.65240730084861; fWeightMatrix0to1[6][11] = -0.154404972716411; fWeightMatrix0to1[7][11] = -0.17593383800478; fWeightMatrix0to1[8][11] = 0.749459682534567; fWeightMatrix0to1[9][11] = -6.47185943182445; fWeightMatrix0to1[10][11] = 1.52754548943703; fWeightMatrix0to1[11][11] = 3.59494535727387; fWeightMatrix0to1[12][11] = -0.428274296837548; fWeightMatrix0to1[13][11] = -4.33405755644087; fWeightMatrix0to1[14][11] = 0.18542521930918; fWeightMatrix0to1[15][11] = -7.91042471348758; fWeightMatrix0to1[16][11] = -2.82868132409379; fWeightMatrix0to1[17][11] = 4.74688998037986; fWeightMatrix0to1[18][11] = 1.39241521808252; fWeightMatrix0to1[19][11] = 0.637648733976349; fWeightMatrix0to1[20][11] = -4.35902160539657; fWeightMatrix0to1[21][11] = 2.67436382610125; fWeightMatrix0to1[22][11] = 1.01761954015217; fWeightMatrix0to1[23][11] = -1.40136884002342; fWeightMatrix0to1[24][11] = -2.79833849960313; fWeightMatrix0to1[25][11] = -5.49439590872056; fWeightMatrix0to1[26][11] = 2.17907968037401; fWeightMatrix0to1[27][11] = 0.280277859040489; fWeightMatrix0to1[0][12] = -0.619449747748205; fWeightMatrix0to1[1][12] = 0.617469133079649; fWeightMatrix0to1[2][12] = -2.12133045513964; fWeightMatrix0to1[3][12] = 1.65709511602499; fWeightMatrix0to1[4][12] = 1.19625325572621; fWeightMatrix0to1[5][12] = -0.913368578266439; fWeightMatrix0to1[6][12] = 61.8116176493494; fWeightMatrix0to1[7][12] = -3.23750020429452; fWeightMatrix0to1[8][12] = -0.179498230723668; fWeightMatrix0to1[9][12] = 0.248354887858729; fWeightMatrix0to1[10][12] = -1.74692962344553; fWeightMatrix0to1[11][12] = -1.0999901058959; fWeightMatrix0to1[12][12] = -1.08182224672286; fWeightMatrix0to1[13][12] = -33.3092042187691; fWeightMatrix0to1[14][12] = 1.72601136997352; fWeightMatrix0to1[15][12] = -0.951316527852368; fWeightMatrix0to1[16][12] = 3.08593357825395; fWeightMatrix0to1[17][12] = -2.08727249977613; fWeightMatrix0to1[18][12] = -0.98504790387025; fWeightMatrix0to1[19][12] = -2.78444347441603; fWeightMatrix0to1[20][12] = 1.01568892867244; fWeightMatrix0to1[21][12] = 0.344957229063355; fWeightMatrix0to1[22][12] = 0.968815083714842; fWeightMatrix0to1[23][12] = -2.5043121823633; fWeightMatrix0to1[24][12] = -1.18550125266027; fWeightMatrix0to1[25][12] = -5.19912252632507; fWeightMatrix0to1[26][12] = 0.678084260861952; fWeightMatrix0to1[27][12] = 1.656657212751; fWeightMatrix0to1[0][13] = 0.566114081133352; fWeightMatrix0to1[1][13] = -2.05461184129631; fWeightMatrix0to1[2][13] = -6.81129077876426; fWeightMatrix0to1[3][13] = -0.631689881695029; fWeightMatrix0to1[4][13] = 3.73877649364413; fWeightMatrix0to1[5][13] = -0.710796274271921; fWeightMatrix0to1[6][13] = -5.56806095433588; fWeightMatrix0to1[7][13] = 1.67209247040364; fWeightMatrix0to1[8][13] = -1.37504809067633; fWeightMatrix0to1[9][13] = -0.0856991944161023; fWeightMatrix0to1[10][13] = 0.269590200936265; fWeightMatrix0to1[11][13] = 1.39935101922281; fWeightMatrix0to1[12][13] = 0.470068360773871; fWeightMatrix0to1[13][13] = -15.3128300899161; fWeightMatrix0to1[14][13] = 2.51724504522447; fWeightMatrix0to1[15][13] = -15.8902660594278; fWeightMatrix0to1[16][13] = -1.83993925046447; fWeightMatrix0to1[17][13] = -0.188155955556156; fWeightMatrix0to1[18][13] = -1.82579055324357; fWeightMatrix0to1[19][13] = -0.440708486985727; fWeightMatrix0to1[20][13] = 4.38150127378867; fWeightMatrix0to1[21][13] = -0.942633326733428; fWeightMatrix0to1[22][13] = 0.638587642985035; fWeightMatrix0to1[23][13] = 0.898196675204396; fWeightMatrix0to1[24][13] = 1.05546392064951; fWeightMatrix0to1[25][13] = -0.0285331614078374; fWeightMatrix0to1[26][13] = 8.62113764967998; fWeightMatrix0to1[27][13] = 0.282030512714826; fWeightMatrix0to1[0][14] = -2.53331457290208; fWeightMatrix0to1[1][14] = -0.916116189500823; fWeightMatrix0to1[2][14] = 9.27190934150699; fWeightMatrix0to1[3][14] = -0.133746247019162; fWeightMatrix0to1[4][14] = -6.10920727452558; fWeightMatrix0to1[5][14] = -0.550656050190813; fWeightMatrix0to1[6][14] = 10.7834892229562; fWeightMatrix0to1[7][14] = -3.38285114993912; fWeightMatrix0to1[8][14] = 1.38072478290461; fWeightMatrix0to1[9][14] = 2.60772946292744; fWeightMatrix0to1[10][14] = -0.600042352871793; fWeightMatrix0to1[11][14] = -5.14477982041252; fWeightMatrix0to1[12][14] = 1.85588531092558; fWeightMatrix0to1[13][14] = -14.722556988358; fWeightMatrix0to1[14][14] = 1.33996139650008; fWeightMatrix0to1[15][14] = 23.1512201820079; fWeightMatrix0to1[16][14] = -0.946362041470793; fWeightMatrix0to1[17][14] = -1.22803161741418; fWeightMatrix0to1[18][14] = -0.120664656124578; fWeightMatrix0to1[19][14] = -2.66023192544738; fWeightMatrix0to1[20][14] = -1.49377874527029; fWeightMatrix0to1[21][14] = -3.27733596567835; fWeightMatrix0to1[22][14] = 3.26578351211777; fWeightMatrix0to1[23][14] = -1.58030348986337; fWeightMatrix0to1[24][14] = 1.16544512793775; fWeightMatrix0to1[25][14] = -0.373291942674913; fWeightMatrix0to1[26][14] = -2.14556867506896; fWeightMatrix0to1[27][14] = -10.1618397718798; fWeightMatrix0to1[0][15] = -1.04129658399869; fWeightMatrix0to1[1][15] = -0.200282570895452; fWeightMatrix0to1[2][15] = 4.46882781945212; fWeightMatrix0to1[3][15] = -2.95729793296153; fWeightMatrix0to1[4][15] = -5.65256987649164; fWeightMatrix0to1[5][15] = 0.436878289805496; fWeightMatrix0to1[6][15] = -21.5437458979808; fWeightMatrix0to1[7][15] = -4.55783070677872; fWeightMatrix0to1[8][15] = -1.81773552204449; fWeightMatrix0to1[9][15] = 1.13960870612968; fWeightMatrix0to1[10][15] = -0.477376794411811; fWeightMatrix0to1[11][15] = -0.986681551189262; fWeightMatrix0to1[12][15] = -2.52084230667732; fWeightMatrix0to1[13][15] = -5.41498421312042; fWeightMatrix0to1[14][15] = 2.5653236846435; fWeightMatrix0to1[15][15] = -1.26527613280115; fWeightMatrix0to1[16][15] = 0.779601971858585; fWeightMatrix0to1[17][15] = -1.33000219685144; fWeightMatrix0to1[18][15] = -2.02230844111232; fWeightMatrix0to1[19][15] = -1.44442850975482; fWeightMatrix0to1[20][15] = -2.99612548944293; fWeightMatrix0to1[21][15] = -4.11161510112864; fWeightMatrix0to1[22][15] = 4.42698861956785; fWeightMatrix0to1[23][15] = -1.28215665916011; fWeightMatrix0to1[24][15] = -2.03139590518891; fWeightMatrix0to1[25][15] = -0.0754194624551176; fWeightMatrix0to1[26][15] = -6.05058412166527; fWeightMatrix0to1[27][15] = -6.37971858889353; fWeightMatrix0to1[0][16] = -1.4940611573586; fWeightMatrix0to1[1][16] = -1.58555131476958; fWeightMatrix0to1[2][16] = 15.64461790493; fWeightMatrix0to1[3][16] = -2.00072797244693; fWeightMatrix0to1[4][16] = -2.91533181962925; fWeightMatrix0to1[5][16] = 3.97757120464743; fWeightMatrix0to1[6][16] = 17.6763445575732; fWeightMatrix0to1[7][16] = -1.63223440179429; fWeightMatrix0to1[8][16] = 0.833417277554892; fWeightMatrix0to1[9][16] = -1.49184881389568; fWeightMatrix0to1[10][16] = -0.324821563242533; fWeightMatrix0to1[11][16] = 2.71732191510671; fWeightMatrix0to1[12][16] = 0.462523956893513; fWeightMatrix0to1[13][16] = -12.0983189832043; fWeightMatrix0to1[14][16] = 0.912463207168243; fWeightMatrix0to1[15][16] = 56.3129923690011; fWeightMatrix0to1[16][16] = 0.885343434111175; fWeightMatrix0to1[17][16] = -0.740848061178402; fWeightMatrix0to1[18][16] = -0.944224273168323; fWeightMatrix0to1[19][16] = -2.86027890089023; fWeightMatrix0to1[20][16] = -1.6900939591053; fWeightMatrix0to1[21][16] = 4.10711620726443; fWeightMatrix0to1[22][16] = 7.20313706714496; fWeightMatrix0to1[23][16] = -2.16171526613782; fWeightMatrix0to1[24][16] = -2.60166731833622; fWeightMatrix0to1[25][16] = 0.0554429522077743; fWeightMatrix0to1[26][16] = 0.230221735449669; fWeightMatrix0to1[27][16] = -38.7418698802571; fWeightMatrix0to1[0][17] = -0.231619218885234; fWeightMatrix0to1[1][17] = -0.906078795504681; fWeightMatrix0to1[2][17] = -0.543745704225026; fWeightMatrix0to1[3][17] = 0.710995065023758; fWeightMatrix0to1[4][17] = -1.13477500005902; fWeightMatrix0to1[5][17] = -0.801020208509724; fWeightMatrix0to1[6][17] = -0.606538351212533; fWeightMatrix0to1[7][17] = 3.24647400732472; fWeightMatrix0to1[8][17] = -0.258651363835657; fWeightMatrix0to1[9][17] = 2.60649712499454; fWeightMatrix0to1[10][17] = -1.73049959166248; fWeightMatrix0to1[11][17] = -4.60377548938802; fWeightMatrix0to1[12][17] = 2.63865360009102; fWeightMatrix0to1[13][17] = 9.12185187388822; fWeightMatrix0to1[14][17] = 1.32805226272787; fWeightMatrix0to1[15][17] = -6.82254505068542; fWeightMatrix0to1[16][17] = -0.453573011324526; fWeightMatrix0to1[17][17] = -3.32510433961884; fWeightMatrix0to1[18][17] = -0.958623865553439; fWeightMatrix0to1[19][17] = -2.31694416273845; fWeightMatrix0to1[20][17] = 0.470167687899755; fWeightMatrix0to1[21][17] = -0.600850503186326; fWeightMatrix0to1[22][17] = 1.01839300523341; fWeightMatrix0to1[23][17] = -0.947737919531529; fWeightMatrix0to1[24][17] = -1.5836781484057; fWeightMatrix0to1[25][17] = 1.29013807473402; fWeightMatrix0to1[26][17] = 1.39574714909963; fWeightMatrix0to1[27][17] = 1.12984389139555; fWeightMatrix0to1[0][18] = -0.558093910805622; fWeightMatrix0to1[1][18] = -0.821962914976134; fWeightMatrix0to1[2][18] = 0.278575692363901; fWeightMatrix0to1[3][18] = -2.57919762699638; fWeightMatrix0to1[4][18] = -0.178687722860061; fWeightMatrix0to1[5][18] = -1.31043522909849; fWeightMatrix0to1[6][18] = 0.708633647683912; fWeightMatrix0to1[7][18] = 0.80019267005652; fWeightMatrix0to1[8][18] = -0.272657402093548; fWeightMatrix0to1[9][18] = 2.42804811865992; fWeightMatrix0to1[10][18] = -0.015580206276969; fWeightMatrix0to1[11][18] = -4.31687587683666; fWeightMatrix0to1[12][18] = 0.894094064936056; fWeightMatrix0to1[13][18] = 8.65634202840821; fWeightMatrix0to1[14][18] = 0.729969781370665; fWeightMatrix0to1[15][18] = -4.52542515272715; fWeightMatrix0to1[16][18] = 2.33292314196422; fWeightMatrix0to1[17][18] = -3.12181822427474; fWeightMatrix0to1[18][18] = 0.953390011791052; fWeightMatrix0to1[19][18] = -2.33637743999056; fWeightMatrix0to1[20][18] = 0.652664299583328; fWeightMatrix0to1[21][18] = 1.21412221487133; fWeightMatrix0to1[22][18] = 0.0268599538582737; fWeightMatrix0to1[23][18] = 0.351974461108876; fWeightMatrix0to1[24][18] = 1.89220375042832; fWeightMatrix0to1[25][18] = -2.39424084391134; fWeightMatrix0to1[26][18] = -0.885101999725403; fWeightMatrix0to1[27][18] = -0.847714475996255; fWeightMatrix0to1[0][19] = -1.27443312011435; fWeightMatrix0to1[1][19] = -1.63893475949085; fWeightMatrix0to1[2][19] = 0.197106326530292; fWeightMatrix0to1[3][19] = -8.20276840320154; fWeightMatrix0to1[4][19] = 5.6123027116056; fWeightMatrix0to1[5][19] = -0.181151225454888; fWeightMatrix0to1[6][19] = -1.06574130389349; fWeightMatrix0to1[7][19] = -0.590426477816737; fWeightMatrix0to1[8][19] = 0.49931018028784; fWeightMatrix0to1[9][19] = 20.4392189685672; fWeightMatrix0to1[10][19] = 6.01666128760384; fWeightMatrix0to1[11][19] = -0.327947595343574; fWeightMatrix0to1[12][19] = 7.28083925045521; fWeightMatrix0to1[13][19] = 3.27735663505739; fWeightMatrix0to1[14][19] = -14.0238081075873; fWeightMatrix0to1[15][19] = -13.1669465147316; fWeightMatrix0to1[16][19] = 2.38584725286622; fWeightMatrix0to1[17][19] = 4.09281167624449; fWeightMatrix0to1[18][19] = -0.508697519854889; fWeightMatrix0to1[19][19] = 7.00381889608517; fWeightMatrix0to1[20][19] = 12.1645435868972; fWeightMatrix0to1[21][19] = -4.01484024588269; fWeightMatrix0to1[22][19] = -0.875256019516604; fWeightMatrix0to1[23][19] = -3.01713283368283; fWeightMatrix0to1[24][19] = 3.40453400304799; fWeightMatrix0to1[25][19] = -24.2838614544036; fWeightMatrix0to1[26][19] = 12.3480346262531; fWeightMatrix0to1[27][19] = -1.21713576011276; fWeightMatrix0to1[0][20] = -0.300433753883116; fWeightMatrix0to1[1][20] = 0.607459222290773; fWeightMatrix0to1[2][20] = -3.65056062792676; fWeightMatrix0to1[3][20] = -1.48302065594442; fWeightMatrix0to1[4][20] = 1.928863079617; fWeightMatrix0to1[5][20] = -2.45832164201631; fWeightMatrix0to1[6][20] = -6.26465629538959; fWeightMatrix0to1[7][20] = -0.652537206158976; fWeightMatrix0to1[8][20] = -2.1063664049768; fWeightMatrix0to1[9][20] = -1.10345080441472; fWeightMatrix0to1[10][20] = 0.270675842282846; fWeightMatrix0to1[11][20] = -0.892355124937475; fWeightMatrix0to1[12][20] = 0.819802033268407; fWeightMatrix0to1[13][20] = 10.3480771913993; fWeightMatrix0to1[14][20] = -0.376195767744671; fWeightMatrix0to1[15][20] = -6.93423252450147; fWeightMatrix0to1[16][20] = -1.77938230906262; fWeightMatrix0to1[17][20] = -1.62468825610856; fWeightMatrix0to1[18][20] = 0.939403187551602; fWeightMatrix0to1[19][20] = -1.40316219284091; fWeightMatrix0to1[20][20] = -0.959650553757352; fWeightMatrix0to1[21][20] = 0.0668997244933529; fWeightMatrix0to1[22][20] = -1.15079685388458; fWeightMatrix0to1[23][20] = -2.37855773607168; fWeightMatrix0to1[24][20] = -1.46565310870139; fWeightMatrix0to1[25][20] = -7.17950982389529; fWeightMatrix0to1[26][20] = 1.88599429426435; fWeightMatrix0to1[27][20] = 9.85349126480832; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = 0.94072613582951; fWeightMatrix1to2[0][1] = -2.16038747340349; fWeightMatrix1to2[0][2] = -2.63214800390011; fWeightMatrix1to2[0][3] = 1.38444516575126; fWeightMatrix1to2[0][4] = 3.36805894366603; fWeightMatrix1to2[0][5] = 2.44168041257314; fWeightMatrix1to2[0][6] = -5.81189334456105; fWeightMatrix1to2[0][7] = -7.08095255798827; fWeightMatrix1to2[0][8] = 1.2306903929673; fWeightMatrix1to2[0][9] = -1.38480692745072; fWeightMatrix1to2[0][10] = 1.51933126332677; fWeightMatrix1to2[0][11] = 0.511337379774113; fWeightMatrix1to2[0][12] = -2.71447875720763; fWeightMatrix1to2[0][13] = 2.9593498362196; fWeightMatrix1to2[0][14] = 3.58464790402758; fWeightMatrix1to2[0][15] = -2.30502163414386; fWeightMatrix1to2[0][16] = 0.98519605801699; fWeightMatrix1to2[0][17] = 0.803204524483455; fWeightMatrix1to2[0][18] = -0.880900860480471; fWeightMatrix1to2[0][19] = -3.69086335878782; fWeightMatrix1to2[0][20] = 1.97205105415147; fWeightMatrix1to2[0][21] = -1.84729103392667; fWeightMatrix1to2[0][22] = 6.80826969747797; fWeightMatrix1to2[0][23] = 0.370137859369691; fWeightMatrix1to2[0][24] = -1.54702802960034; fWeightMatrix1to2[0][25] = 0.933485548126895; fWeightMatrix1to2[0][26] = -1.56484207330362; fWeightMatrix1to2[0][27] = 3.66196071504147; fWeightMatrix1to2[0][28] = -2.22669409916375; } inline double ReadPion_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 ReadPion_Upstream_TMVA::InitTransform_1() { // Normalization transformation, initialisation fMin_1[0][0] = 253.580001831; fMax_1[0][0] = 4379901; fMin_1[1][0] = 275.899993896; fMax_1[1][0] = 4741412; fMin_1[2][0] = 253.580001831; fMax_1[2][0] = 4741412; fMin_1[0][1] = 5.38133239746; fMax_1[0][1] = 954913.375; fMin_1[1][1] = 9.20012378693; fMax_1[1][1] = 863977.75; fMin_1[2][1] = 5.38133239746; fMax_1[2][1] = 954913.375; fMin_1[0][2] = 0.00438635889441; fMax_1[0][2] = 2.99875736237; fMin_1[1][2] = 0.0131862042472; fMax_1[1][2] = 2.99858546257; fMin_1[2][2] = 0.00438635889441; fMax_1[2][2] = 2.99875736237; fMin_1[0][3] = 4; fMax_1[0][3] = 27; fMin_1[1][3] = 4; fMax_1[1][3] = 26; fMin_1[2][3] = 4; fMax_1[2][3] = 27; fMin_1[0][4] = -59.4464607239; fMax_1[0][4] = -0.329912275076; fMin_1[1][4] = -40.3661956787; fMax_1[1][4] = -0.346602231264; fMin_1[2][4] = -59.4464607239; fMax_1[2][4] = -0.329912275076; fMin_1[0][5] = 0.0295318737626; fMax_1[0][5] = 1; fMin_1[1][5] = 0.0299832448363; fMax_1[1][5] = 1; fMin_1[2][5] = 0.0295318737626; fMax_1[2][5] = 1; fMin_1[0][6] = 0.00019710882043; fMax_1[0][6] = 48.2787208557; fMin_1[1][6] = 9.30839669309e-05; fMax_1[1][6] = 47.542350769; fMin_1[2][6] = 9.30839669309e-05; fMax_1[2][6] = 48.2787208557; fMin_1[0][7] = 1; fMax_1[0][7] = 23; fMin_1[1][7] = 1; fMax_1[1][7] = 22; 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] = -999; fMax_1[0][12] = 93.6623001099; fMin_1[1][12] = -999; fMax_1[1][12] = 117.404403687; fMin_1[2][12] = -999; fMax_1[2][12] = 117.404403687; fMin_1[0][13] = -999; fMax_1[0][13] = 73.7898025513; fMin_1[1][13] = -999; fMax_1[1][13] = 75.9692993164; fMin_1[2][13] = -999; fMax_1[2][13] = 75.9692993164; fMin_1[0][14] = -999; fMax_1[0][14] = 82.0094985962; fMin_1[1][14] = -999; fMax_1[1][14] = 92.4810028076; fMin_1[2][14] = -999; fMax_1[2][14] = 92.4810028076; fMin_1[0][15] = -999; fMax_1[0][15] = 78.448600769; fMin_1[1][15] = -999; fMax_1[1][15] = 84.875; fMin_1[2][15] = -999; fMax_1[2][15] = 84.875; fMin_1[0][16] = -999; fMax_1[0][16] = 47.9555015564; fMin_1[1][16] = -999; fMax_1[1][16] = 47.5180015564; fMin_1[2][16] = -999; fMax_1[2][16] = 47.9555015564; fMin_1[0][17] = 0; fMax_1[0][17] = 1; fMin_1[1][17] = 0; fMax_1[1][17] = 1; fMin_1[2][17] = 0; fMax_1[2][17] = 1; fMin_1[0][18] = -999; fMax_1[0][18] = 4.49353694916; fMin_1[1][18] = -999; fMax_1[1][18] = 4.79148387909; fMin_1[2][18] = -999; fMax_1[2][18] = 4.79148387909; fMin_1[0][19] = 0.522471904755; fMax_1[0][19] = 2.90730333328; fMin_1[1][19] = 0.528089880943; fMax_1[1][19] = 3.59951853752; fMin_1[2][19] = 0.522471904755; fMax_1[2][19] = 3.59951853752; } //_______________________________________________________________________ inline void ReadPion_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 = 20; // 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); } 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); } static std::vector dv; dv.resize(nVar); for (int ivar=0; ivar& iv, int sigOrBgd ) const { Transform_1( iv, sigOrBgd ); }