// Class: ReadPion_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Pion_Upstream_TMVA TMVA Release : 4.1.4 [262404] ROOT Release : 5.34/05 [336389] Creator : jonrob Date : Wed Apr 10 08:00:44 2013 Host : Linux lxbuild175.cern.ch 2.6.18-308.4.1.el5 #1 SMP Wed Apr 18 16:26:27 CEST 2012 x86_64 x86_64 x86_64 GNU/Linux Dir : /afs/cern.ch/work/j/jonrob/www/ANNPID/MC12/TrainAllTks-EvalAllTks-ReweightRICH2/TMVA-NoPreSels-NoGECs/MLP/Norm/ScaleF1.4/BP/NCycles750/CE/tanh/Pion/Upstream Training events: 1000000 Analysis type : [Classification] #OPT -*-*-*-*-*-*-*-*-*-*-*-*- options -*-*-*-*-*-*-*-*-*-*-*-*- # Set by User: NCycles: "750" [Number of training cycles] HiddenLayers: "29" [Specification of hidden layer architecture] NeuronType: "tanh" [Neuron activation function type] EstimatorType: "CE" [MSE (Mean Square Estimator) for Gaussian Likelihood or CE(Cross-Entropy) for Bernoulli Likelihood] V: "True" [Verbose output (short form of "VerbosityLevel" below - overrides the latter one)] VarTransform: "Norm" [List of variable transformations performed before training, e.g., "D_Background,P_Signal,G,N_AllClasses" for: "Decorrelation, PCA-transformation, Gaussianisation, Normalisation, each for the given class of events ('AllClasses' denotes all events of all classes, if no class indication is given, 'All' is assumed)"] H: "True" [Print method-specific help message] TrainingMethod: "BP" [Train with Back-Propagation (BP), BFGS Algorithm (BFGS), or Genetic Algorithm (GA - slower and worse)] EpochMonitoring: "True" [Provide epoch-wise monitoring plots according to TestRate (caution: causes big ROOT output file!)] # Default: RandomSeed: "1" [Random seed for initial synapse weights (0 means unique seed for each run; default value '1')] NeuronInputType: "sum" [Neuron input function type] VerbosityLevel: "Verbose" [Verbosity level] CreateMVAPdfs: "False" [Create PDFs for classifier outputs (signal and background)] IgnoreNegWeightsInTraining: "False" [Events with negative weights are ignored in the training (but are included for testing and performance evaluation)] LearningRate: "2.000000e-02" [ANN learning rate parameter] DecayRate: "1.000000e-02" [Decay rate for learning parameter] TestRate: "10" [Test for overtraining performed at each #th epochs] Sampling: "1.000000e+00" [Only 'Sampling' (randomly selected) events are trained each epoch] SamplingEpoch: "1.000000e+00" [Sampling is used for the first 'SamplingEpoch' epochs, afterwards, all events are taken for training] SamplingImportance: "1.000000e+00" [ The sampling weights of events in epochs which successful (worse estimator than before) are multiplied with SamplingImportance, else they are divided.] SamplingTraining: "True" [The training sample is sampled] SamplingTesting: "False" [The testing sample is sampled] ResetStep: "50" [How often BFGS should reset history] Tau: "3.000000e+00" [LineSearch "size step"] BPMode: "sequential" [Back-propagation learning mode: sequential or batch] BatchSize: "-1" [Batch size: number of events/batch, only set if in Batch Mode, -1 for BatchSize=number_of_events] ConvergenceImprove: "1.000000e-30" [Minimum improvement which counts as improvement (<0 means automatic convergence check is turned off)] ConvergenceTests: "-1" [Number of steps (without improvement) required for convergence (<0 means automatic convergence check is turned off)] UseRegulator: "False" [Use regulator to avoid over-training] UpdateLimit: "10000" [Maximum times of regulator update] CalculateErrors: "False" [Calculates inverse Hessian matrix at the end of the training to be able to calculate the uncertainties of an MVA value] WeightRange: "1.000000e+00" [Take the events for the estimator calculations from small deviations from the desired value to large deviations only over the weight range] ## #VAR -*-*-*-*-*-*-*-*-*-*-*-* variables *-*-*-*-*-*-*-*-*-*-*-*- NVar 21 TrackP TrackP TrackP TrackP 'F' [172.490005493,4970293.5] TrackPt TrackPt TrackPt TrackPt 'F' [0.832938909531,995273.875] TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof 'F' [0.00302399252541,2.999573946] TrackNumDof TrackNumDof TrackNumDof TrackNumDof 'I' [4,28] TrackLikelihood TrackLikelihood TrackLikelihood TrackLikelihood 'F' [-99.6241531372,-0.319228202105] TrackGhostProbability TrackGhostProbability TrackGhostProbability TrackGhostProbability 'F' [0.0317582078278,1] TrackCloneDist TrackCloneDist TrackCloneDist TrackCloneDist 'F' [-999,4999.73632812] TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 'F' [2.50487555604e-05,51.0802001953] TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF 'I' [1,24] RichUsedAero RichUsedAero RichUsedAero RichUsedAero 'I' [0,1] RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas 'I' [0,1] RichAbovePiThres RichAbovePiThres RichAbovePiThres RichAbovePiThres 'I' [0,1] RichAboveKaThres RichAboveKaThres RichAboveKaThres RichAboveKaThres 'I' [0,1] RichDLLe RichDLLe RichDLLe RichDLLe 'F' [-999,107.511299133] RichDLLmu RichDLLmu RichDLLmu RichDLLmu 'F' [-999,69.573600769] RichDLLk RichDLLk RichDLLk RichDLLk 'F' [-999,99.5278015137] RichDLLp RichDLLp RichDLLp RichDLLp 'F' [-999,62.6166000366] RichDLLbt RichDLLbt RichDLLbt RichDLLbt 'F' [-999,47.8530006409] InAccBrem InAccBrem InAccBrem InAccBrem 'I' [0,1] BremPIDe BremPIDe BremPIDe BremPIDe 'F' [-999,4.79148387909] VeloCharge VeloCharge VeloCharge VeloCharge 'F' [0.486891388893,5.4943819046] NSpec 0 ============================================================================ */ #include #include #include #include #ifndef IClassifierReader__def #define IClassifierReader__def class IClassifierReader { public: // constructor IClassifierReader() : fStatusIsClean( true ) {} virtual ~IClassifierReader() {} // return classifier response virtual double GetMvaValue( const std::vector& inputValues ) const = 0; // returns classifier status bool IsStatusClean() const { return fStatusIsClean; } protected: bool fStatusIsClean; }; #endif class ReadPion_Upstream_TMVA : public IClassifierReader { public: // constructor ReadPion_Upstream_TMVA( std::vector& theInputVars ) : IClassifierReader(), fClassName( "ReadPion_Upstream_TMVA" ), fNvars( 21 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackLikelihood", "TrackGhostProbability", "TrackCloneDist", "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] = 1; fVmin[13] = -1; fVmax[13] = 1; fVmin[14] = -1; fVmax[14] = 1; fVmin[15] = -1; fVmax[15] = 1; fVmin[16] = -1; fVmax[16] = 1; fVmin[17] = -1; fVmax[17] = 1; fVmin[18] = -1; fVmax[18] = 1; fVmin[19] = -1; fVmax[19] = 1; fVmin[20] = -1; fVmax[20] = 1; // initialize input variable types fType[0] = 'F'; fType[1] = 'F'; fType[2] = 'F'; fType[3] = 'I'; fType[4] = 'F'; fType[5] = 'F'; fType[6] = 'F'; fType[7] = 'F'; fType[8] = 'I'; fType[9] = 'I'; fType[10] = 'I'; fType[11] = 'I'; fType[12] = 'I'; fType[13] = 'F'; fType[14] = 'F'; fType[15] = 'F'; fType[16] = 'F'; fType[17] = 'F'; fType[18] = 'I'; fType[19] = 'F'; fType[20] = 'F'; // initialize constants Initialize(); // initialize transformation InitTransform(); } // destructor virtual ~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][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 ReadPion_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] = 12.0583204791168; fWeightMatrix0to1[1][0] = 6.67481414577547; fWeightMatrix0to1[2][0] = 1.15286702297577; fWeightMatrix0to1[3][0] = 4.96879495899796; fWeightMatrix0to1[4][0] = -1.28354195942772; fWeightMatrix0to1[5][0] = -15.5366346094623; fWeightMatrix0to1[6][0] = -0.162004303045237; fWeightMatrix0to1[7][0] = 1.81147785592746; fWeightMatrix0to1[8][0] = -1.1946861830266; fWeightMatrix0to1[9][0] = -0.639718154497873; fWeightMatrix0to1[10][0] = -1.49620553516133; fWeightMatrix0to1[11][0] = 6.37711447237304; fWeightMatrix0to1[12][0] = 2.35418995133517; fWeightMatrix0to1[13][0] = -11.0295334381706; fWeightMatrix0to1[14][0] = -8.35996951286855; fWeightMatrix0to1[15][0] = 7.51237060036268; fWeightMatrix0to1[16][0] = 1.80527181822378; fWeightMatrix0to1[17][0] = 5.22362876479793; fWeightMatrix0to1[18][0] = 6.09367192346443; fWeightMatrix0to1[19][0] = 16.8187503071659; fWeightMatrix0to1[20][0] = -0.228787316974038; fWeightMatrix0to1[21][0] = -1.22987895954275; fWeightMatrix0to1[22][0] = 0.119183219392596; fWeightMatrix0to1[23][0] = 10.8558930205188; fWeightMatrix0to1[24][0] = 0.228166521475252; fWeightMatrix0to1[25][0] = -6.69765787079165; fWeightMatrix0to1[26][0] = 0.524906328255248; fWeightMatrix0to1[27][0] = -1.54267959724648; fWeightMatrix0to1[28][0] = -9.97679285261863; fWeightMatrix0to1[0][1] = 9.02267811445125; fWeightMatrix0to1[1][1] = 3.38768857636697; fWeightMatrix0to1[2][1] = 3.23958955937504; fWeightMatrix0to1[3][1] = 1.06442626997585; fWeightMatrix0to1[4][1] = -6.5453112798286; fWeightMatrix0to1[5][1] = -8.17147973325113; fWeightMatrix0to1[6][1] = 0.213258706374463; fWeightMatrix0to1[7][1] = -2.4698770487025; fWeightMatrix0to1[8][1] = 2.37616201435042; fWeightMatrix0to1[9][1] = -0.746823514194263; fWeightMatrix0to1[10][1] = 1.82217139866276; fWeightMatrix0to1[11][1] = 7.75302391660825; fWeightMatrix0to1[12][1] = 1.32968386171113; fWeightMatrix0to1[13][1] = -3.18740950113528; fWeightMatrix0to1[14][1] = -1.69163801084751; fWeightMatrix0to1[15][1] = -0.226821507502648; fWeightMatrix0to1[16][1] = -0.979908431352392; fWeightMatrix0to1[17][1] = 3.65068118239419; fWeightMatrix0to1[18][1] = 6.67096885527526; fWeightMatrix0to1[19][1] = 14.3630343128004; fWeightMatrix0to1[20][1] = 2.04130975490175; fWeightMatrix0to1[21][1] = -1.54936358517829; fWeightMatrix0to1[22][1] = 0.430961620279495; fWeightMatrix0to1[23][1] = -1.12341231994008; fWeightMatrix0to1[24][1] = 2.60226044367888; fWeightMatrix0to1[25][1] = 1.12772681964653; fWeightMatrix0to1[26][1] = -1.70975809690023; fWeightMatrix0to1[27][1] = -6.33605500021744; fWeightMatrix0to1[28][1] = -6.20075592425077; fWeightMatrix0to1[0][2] = -1.01765789236256; fWeightMatrix0to1[1][2] = 0.286491435834884; fWeightMatrix0to1[2][2] = 2.11797302150277; fWeightMatrix0to1[3][2] = -1.03942996664979; fWeightMatrix0to1[4][2] = -0.00576250270429818; fWeightMatrix0to1[5][2] = -0.753772525918997; fWeightMatrix0to1[6][2] = -0.368562442399097; fWeightMatrix0to1[7][2] = 0.495002063583204; fWeightMatrix0to1[8][2] = 0.641637281494044; fWeightMatrix0to1[9][2] = -6.9892612593632; fWeightMatrix0to1[10][2] = -0.162487724049095; fWeightMatrix0to1[11][2] = 0.148987741669444; fWeightMatrix0to1[12][2] = -3.64378747212028; fWeightMatrix0to1[13][2] = -0.81854320684792; fWeightMatrix0to1[14][2] = -1.9234869427166; fWeightMatrix0to1[15][2] = 0.911357740629375; fWeightMatrix0to1[16][2] = 1.33514329087941; fWeightMatrix0to1[17][2] = -2.10065602801354; fWeightMatrix0to1[18][2] = -1.06178251079928; fWeightMatrix0to1[19][2] = 1.24207678548359; fWeightMatrix0to1[20][2] = 2.03114622885949; fWeightMatrix0to1[21][2] = 1.18757247111893; fWeightMatrix0to1[22][2] = 1.79891962166912; fWeightMatrix0to1[23][2] = -0.595869984242059; fWeightMatrix0to1[24][2] = 0.632427387111177; fWeightMatrix0to1[25][2] = 0.720241853115988; fWeightMatrix0to1[26][2] = 0.0392718945101768; fWeightMatrix0to1[27][2] = -1.44418345814851; fWeightMatrix0to1[28][2] = 1.8857598935034; fWeightMatrix0to1[0][3] = 19.9113361548433; fWeightMatrix0to1[1][3] = -4.47120975781524; fWeightMatrix0to1[2][3] = -7.131246491748; fWeightMatrix0to1[3][3] = -14.2308109929496; fWeightMatrix0to1[4][3] = -14.3029458360291; fWeightMatrix0to1[5][3] = 10.4685584593017; fWeightMatrix0to1[6][3] = 1.17701570123341; fWeightMatrix0to1[7][3] = 0.40266567314694; fWeightMatrix0to1[8][3] = 1.5383257891787; fWeightMatrix0to1[9][3] = -3.38990347821131; fWeightMatrix0to1[10][3] = 0.929591770667851; fWeightMatrix0to1[11][3] = -8.16519886798464; fWeightMatrix0to1[12][3] = 48.7438223821303; fWeightMatrix0to1[13][3] = -30.7112426162255; fWeightMatrix0to1[14][3] = 3.08229187603848; fWeightMatrix0to1[15][3] = -2.79483236643353; fWeightMatrix0to1[16][3] = 0.908815896847378; fWeightMatrix0to1[17][3] = -3.76746913651063; fWeightMatrix0to1[18][3] = 20.6381158714566; fWeightMatrix0to1[19][3] = -9.45750469841318; fWeightMatrix0to1[20][3] = -3.90819270791805; fWeightMatrix0to1[21][3] = 5.74669031366605; fWeightMatrix0to1[22][3] = 0.425967744528432; fWeightMatrix0to1[23][3] = 4.66500271827748; fWeightMatrix0to1[24][3] = 0.290566222668852; fWeightMatrix0to1[25][3] = -13.2153420794815; fWeightMatrix0to1[26][3] = 0.168799919592649; fWeightMatrix0to1[27][3] = 1.71037762512742; fWeightMatrix0to1[28][3] = -5.03805333070241; fWeightMatrix0to1[0][4] = 5.81547722554608; fWeightMatrix0to1[1][4] = -13.6974701105262; fWeightMatrix0to1[2][4] = 6.5789171489461; fWeightMatrix0to1[3][4] = -1.37918995973722; fWeightMatrix0to1[4][4] = -4.44067471669355; fWeightMatrix0to1[5][4] = 7.31585726786669; fWeightMatrix0to1[6][4] = 0.572800500819038; fWeightMatrix0to1[7][4] = -1.58484870789185; fWeightMatrix0to1[8][4] = 0.0476319870982716; fWeightMatrix0to1[9][4] = 3.3142679005092; fWeightMatrix0to1[10][4] = 1.02683095746832; fWeightMatrix0to1[11][4] = 6.92062081286146; fWeightMatrix0to1[12][4] = -2.30154104984575; fWeightMatrix0to1[13][4] = -3.88812451977628; fWeightMatrix0to1[14][4] = -9.37712526675559; fWeightMatrix0to1[15][4] = -8.62961020543365; fWeightMatrix0to1[16][4] = 4.91097573380565; fWeightMatrix0to1[17][4] = 2.53709366199537; fWeightMatrix0to1[18][4] = 0.850429934431048; fWeightMatrix0to1[19][4] = 5.23345790351278; fWeightMatrix0to1[20][4] = 1.68329588184298; fWeightMatrix0to1[21][4] = -2.30422115154984; fWeightMatrix0to1[22][4] = 0.902455182258468; fWeightMatrix0to1[23][4] = 4.99854469057064; fWeightMatrix0to1[24][4] = 3.48059885916494; fWeightMatrix0to1[25][4] = 2.11292044275372; fWeightMatrix0to1[26][4] = -0.391820133352695; fWeightMatrix0to1[27][4] = 0.455605275958997; fWeightMatrix0to1[28][4] = -4.53655766710332; fWeightMatrix0to1[0][5] = -1.04885402929141; fWeightMatrix0to1[1][5] = 0.19543014868695; fWeightMatrix0to1[2][5] = -1.52913766176318; fWeightMatrix0to1[3][5] = 0.739253063906586; fWeightMatrix0to1[4][5] = -0.589650192286477; fWeightMatrix0to1[5][5] = 0.4021547185787; fWeightMatrix0to1[6][5] = 0.511097349474226; fWeightMatrix0to1[7][5] = 1.41950272916343; fWeightMatrix0to1[8][5] = -0.0652593009413171; fWeightMatrix0to1[9][5] = -1.33693969826909; fWeightMatrix0to1[10][5] = 0.0676996736245926; fWeightMatrix0to1[11][5] = -0.346326547623721; fWeightMatrix0to1[12][5] = 6.60840010215835; fWeightMatrix0to1[13][5] = 0.25161675497704; fWeightMatrix0to1[14][5] = 1.49949003059425; fWeightMatrix0to1[15][5] = -1.29118058136511; fWeightMatrix0to1[16][5] = -1.57351606900955; fWeightMatrix0to1[17][5] = 3.68732177294006; fWeightMatrix0to1[18][5] = -0.0706034756786152; fWeightMatrix0to1[19][5] = -0.0366782170609305; fWeightMatrix0to1[20][5] = -1.30231459571949; fWeightMatrix0to1[21][5] = -0.0880037902533351; fWeightMatrix0to1[22][5] = 0.0386442784748906; fWeightMatrix0to1[23][5] = 0.321077885315758; fWeightMatrix0to1[24][5] = 1.68382568033729; fWeightMatrix0to1[25][5] = -1.31537597985093; fWeightMatrix0to1[26][5] = 0.457429814726172; fWeightMatrix0to1[27][5] = -0.309830809624428; fWeightMatrix0to1[28][5] = 0.341783080740835; fWeightMatrix0to1[0][6] = 4.68352075859476; fWeightMatrix0to1[1][6] = -0.187042622583049; fWeightMatrix0to1[2][6] = 10.6306954812719; fWeightMatrix0to1[3][6] = -0.410612536059132; fWeightMatrix0to1[4][6] = 0.943095153031934; fWeightMatrix0to1[5][6] = -11.5226562148073; fWeightMatrix0to1[6][6] = -3.29756718384265; fWeightMatrix0to1[7][6] = -0.521017720318459; fWeightMatrix0to1[8][6] = 4.54661678970886; fWeightMatrix0to1[9][6] = -4.15781284968123; fWeightMatrix0to1[10][6] = -0.0107915787274928; fWeightMatrix0to1[11][6] = -9.32862535657773; fWeightMatrix0to1[12][6] = -0.164939440203653; fWeightMatrix0to1[13][6] = 12.6728960632182; fWeightMatrix0to1[14][6] = 7.77724314697076; fWeightMatrix0to1[15][6] = -3.64997234090551; fWeightMatrix0to1[16][6] = -1.04671440983345; fWeightMatrix0to1[17][6] = -0.445760580720343; fWeightMatrix0to1[18][6] = 0.967114578025204; fWeightMatrix0to1[19][6] = -0.0729724800722978; fWeightMatrix0to1[20][6] = 1.98493649646451; fWeightMatrix0to1[21][6] = -0.212153070204754; fWeightMatrix0to1[22][6] = -1.95484317837428; fWeightMatrix0to1[23][6] = 0.458723852112041; fWeightMatrix0to1[24][6] = -0.8838271663588; fWeightMatrix0to1[25][6] = 0.476061969284821; fWeightMatrix0to1[26][6] = -0.169277667246079; fWeightMatrix0to1[27][6] = 1.08230936442586; fWeightMatrix0to1[28][6] = 0.148033793002646; fWeightMatrix0to1[0][7] = 3.12939697215976; fWeightMatrix0to1[1][7] = -2.26379016869292; fWeightMatrix0to1[2][7] = -14.7661723409077; fWeightMatrix0to1[3][7] = 1.03327927326307; fWeightMatrix0to1[4][7] = 2.38601760772641; fWeightMatrix0to1[5][7] = 1.49238545136102; fWeightMatrix0to1[6][7] = -0.33639874506386; fWeightMatrix0to1[7][7] = -0.0787234431130728; fWeightMatrix0to1[8][7] = -0.959626505787221; fWeightMatrix0to1[9][7] = 5.15145015984489; fWeightMatrix0to1[10][7] = -0.164226606794361; fWeightMatrix0to1[11][7] = 1.41258356135698; fWeightMatrix0to1[12][7] = -1.02529587822682; fWeightMatrix0to1[13][7] = 2.85513044798334; fWeightMatrix0to1[14][7] = 1.3106998013396; fWeightMatrix0to1[15][7] = -1.23358394623046; fWeightMatrix0to1[16][7] = -0.868602475360006; fWeightMatrix0to1[17][7] = 3.16908801777811; fWeightMatrix0to1[18][7] = 1.69397785975376; fWeightMatrix0to1[19][7] = -0.306105855712549; fWeightMatrix0to1[20][7] = 0.778446809198342; fWeightMatrix0to1[21][7] = -2.50361118044432; fWeightMatrix0to1[22][7] = -1.55621418826346; fWeightMatrix0to1[23][7] = 4.45040467223699; fWeightMatrix0to1[24][7] = -0.66957610902418; fWeightMatrix0to1[25][7] = -19.182745772326; fWeightMatrix0to1[26][7] = -0.305679755413021; fWeightMatrix0to1[27][7] = 1.54966467729469; fWeightMatrix0to1[28][7] = -3.80968628631615; fWeightMatrix0to1[0][8] = -21.2122434622058; fWeightMatrix0to1[1][8] = 6.21845343717381; fWeightMatrix0to1[2][8] = 11.9195051433392; fWeightMatrix0to1[3][8] = 12.3134404322345; fWeightMatrix0to1[4][8] = 7.53356664179416; fWeightMatrix0to1[5][8] = -9.80406704314155; fWeightMatrix0to1[6][8] = 0.436416785474171; fWeightMatrix0to1[7][8] = 1.17082564154643; fWeightMatrix0to1[8][8] = 1.12912710158285; fWeightMatrix0to1[9][8] = 1.12481745097935; fWeightMatrix0to1[10][8] = -0.199695829004882; fWeightMatrix0to1[11][8] = 9.50106432801326; fWeightMatrix0to1[12][8] = -43.033658545432; fWeightMatrix0to1[13][8] = 29.8063597332947; fWeightMatrix0to1[14][8] = -3.91603500034381; fWeightMatrix0to1[15][8] = 2.47799780287209; fWeightMatrix0to1[16][8] = 0.116621261084549; fWeightMatrix0to1[17][8] = 0.107015392106394; fWeightMatrix0to1[18][8] = -19.3686153540493; fWeightMatrix0to1[19][8] = 8.03407997154014; fWeightMatrix0to1[20][8] = 0.522761332501657; fWeightMatrix0to1[21][8] = -1.90295701276769; fWeightMatrix0to1[22][8] = 0.893482010192869; fWeightMatrix0to1[23][8] = -8.58576752432912; fWeightMatrix0to1[24][8] = -0.606643863543167; fWeightMatrix0to1[25][8] = 16.2986247728322; fWeightMatrix0to1[26][8] = -0.296660085344888; fWeightMatrix0to1[27][8] = -2.98257780936254; fWeightMatrix0to1[28][8] = 6.38852403984225; fWeightMatrix0to1[0][9] = 0.133892855765753; fWeightMatrix0to1[1][9] = 3.93458336571548; fWeightMatrix0to1[2][9] = -0.159836465695145; fWeightMatrix0to1[3][9] = -0.802960273295001; fWeightMatrix0to1[4][9] = -0.376546675031418; fWeightMatrix0to1[5][9] = 0.192527200537146; fWeightMatrix0to1[6][9] = -1.64245353557904; fWeightMatrix0to1[7][9] = -0.0552775657653302; fWeightMatrix0to1[8][9] = -2.35462070849077; fWeightMatrix0to1[9][9] = 1.11930110022841; fWeightMatrix0to1[10][9] = -0.000949299957669994; fWeightMatrix0to1[11][9] = 0.339673622053856; fWeightMatrix0to1[12][9] = 8.28339254617046; fWeightMatrix0to1[13][9] = -3.07150600872183; fWeightMatrix0to1[14][9] = 3.28741080930487; fWeightMatrix0to1[15][9] = 0.853218103128772; fWeightMatrix0to1[16][9] = -0.933296741201517; fWeightMatrix0to1[17][9] = 2.4682321296306; fWeightMatrix0to1[18][9] = -1.06112617320456; fWeightMatrix0to1[19][9] = -0.203246933161553; fWeightMatrix0to1[20][9] = 0.3544318412895; fWeightMatrix0to1[21][9] = -3.79306945233532; fWeightMatrix0to1[22][9] = -0.799476344527469; fWeightMatrix0to1[23][9] = -0.451179209191643; fWeightMatrix0to1[24][9] = 0.0499941519643264; fWeightMatrix0to1[25][9] = 0.0628229856699529; fWeightMatrix0to1[26][9] = -0.514774464591306; fWeightMatrix0to1[27][9] = -0.0194021118479544; fWeightMatrix0to1[28][9] = 0.245369601515822; fWeightMatrix0to1[0][10] = -8.5969882325535; fWeightMatrix0to1[1][10] = -2.6558035922414; fWeightMatrix0to1[2][10] = -1.54333094093096; fWeightMatrix0to1[3][10] = 2.58077765556881; fWeightMatrix0to1[4][10] = 0.684532576956233; fWeightMatrix0to1[5][10] = 7.15335033746122; fWeightMatrix0to1[6][10] = -1.66107224768729; fWeightMatrix0to1[7][10] = 1.83808002699616; fWeightMatrix0to1[8][10] = 0.812679648521365; fWeightMatrix0to1[9][10] = -0.476825050849868; fWeightMatrix0to1[10][10] = -2.358053645762; fWeightMatrix0to1[11][10] = 1.92152554477447; fWeightMatrix0to1[12][10] = 10.0193351519757; fWeightMatrix0to1[13][10] = -1.6451566635995; fWeightMatrix0to1[14][10] = -5.00107558753425; fWeightMatrix0to1[15][10] = -6.98165472133639; fWeightMatrix0to1[16][10] = 0.713478675239854; fWeightMatrix0to1[17][10] = -1.24311911328265; fWeightMatrix0to1[18][10] = -0.492263517173284; fWeightMatrix0to1[19][10] = -14.4079799007854; fWeightMatrix0to1[20][10] = 1.75804455072646; fWeightMatrix0to1[21][10] = -1.50642127716234; fWeightMatrix0to1[22][10] = -1.49815327695877; fWeightMatrix0to1[23][10] = 1.47218850229536; fWeightMatrix0to1[24][10] = 3.37152723390779; fWeightMatrix0to1[25][10] = -0.250449033161764; fWeightMatrix0to1[26][10] = 1.00498660227884; fWeightMatrix0to1[27][10] = -1.43438771095917; fWeightMatrix0to1[28][10] = 2.58350802074082; fWeightMatrix0to1[0][11] = -6.84252660799735; fWeightMatrix0to1[1][11] = -5.28255103778459; fWeightMatrix0to1[2][11] = -0.697507617176535; fWeightMatrix0to1[3][11] = 0.929168913069199; fWeightMatrix0to1[4][11] = -4.56376867998041; fWeightMatrix0to1[5][11] = 0.458325993374281; fWeightMatrix0to1[6][11] = 0.478846521466837; fWeightMatrix0to1[7][11] = -1.1209297271827; fWeightMatrix0to1[8][11] = 1.55966320846022; fWeightMatrix0to1[9][11] = -0.377057617785067; fWeightMatrix0to1[10][11] = -0.214024556551699; fWeightMatrix0to1[11][11] = -0.0839042781045051; fWeightMatrix0to1[12][11] = -8.47279764302299; fWeightMatrix0to1[13][11] = -2.75077121765096; fWeightMatrix0to1[14][11] = -7.11594398786755; fWeightMatrix0to1[15][11] = 3.07221225113845; fWeightMatrix0to1[16][11] = 4.22560246115885; fWeightMatrix0to1[17][11] = 1.1727043705493; fWeightMatrix0to1[18][11] = 0.00894823819540915; fWeightMatrix0to1[19][11] = 0.221596589467185; fWeightMatrix0to1[20][11] = -0.0484403675524347; fWeightMatrix0to1[21][11] = -2.99843812469745; fWeightMatrix0to1[22][11] = -0.124172724148223; fWeightMatrix0to1[23][11] = 0.119813780774419; fWeightMatrix0to1[24][11] = -0.259951424221947; fWeightMatrix0to1[25][11] = -0.00135858842192641; fWeightMatrix0to1[26][11] = -0.784352820329311; fWeightMatrix0to1[27][11] = -0.448772576009141; fWeightMatrix0to1[28][11] = -0.235960527474556; fWeightMatrix0to1[0][12] = 0.0941590181077348; fWeightMatrix0to1[1][12] = 0.046152499976229; fWeightMatrix0to1[2][12] = 6.43727505477835; fWeightMatrix0to1[3][12] = 4.73762398696787; fWeightMatrix0to1[4][12] = 0.0177758490045921; fWeightMatrix0to1[5][12] = -0.0932551543262594; fWeightMatrix0to1[6][12] = -1.99566548352362; fWeightMatrix0to1[7][12] = -0.0578498403732286; fWeightMatrix0to1[8][12] = 0.16746279807848; fWeightMatrix0to1[9][12] = 1.39254984632059; fWeightMatrix0to1[10][12] = 0.67302003205276; fWeightMatrix0to1[11][12] = 0.160392665209076; fWeightMatrix0to1[12][12] = 0.0103376904897329; fWeightMatrix0to1[13][12] = -4.9853109923923; fWeightMatrix0to1[14][12] = -7.91896289813822; fWeightMatrix0to1[15][12] = -0.282685730763962; fWeightMatrix0to1[16][12] = 0.170422979581992; fWeightMatrix0to1[17][12] = -4.64230594978746; fWeightMatrix0to1[18][12] = -7.04775520567526; fWeightMatrix0to1[19][12] = -0.430162581333826; fWeightMatrix0to1[20][12] = -0.042494698637562; fWeightMatrix0to1[21][12] = -4.05120524068859; fWeightMatrix0to1[22][12] = 0.931909986657079; fWeightMatrix0to1[23][12] = 0.125617727310482; fWeightMatrix0to1[24][12] = -0.166264551699285; fWeightMatrix0to1[25][12] = 18.4094875250893; fWeightMatrix0to1[26][12] = 0.270151467910867; fWeightMatrix0to1[27][12] = -0.0221247671111819; fWeightMatrix0to1[28][12] = -0.557920847079064; fWeightMatrix0to1[0][13] = 18.5963684023583; fWeightMatrix0to1[1][13] = 9.19896815325158; fWeightMatrix0to1[2][13] = 1.31054761471827; fWeightMatrix0to1[3][13] = -21.2095122041211; fWeightMatrix0to1[4][13] = 29.6623786283104; fWeightMatrix0to1[5][13] = -54.6074407400274; fWeightMatrix0to1[6][13] = 2.34593431613924; fWeightMatrix0to1[7][13] = 0.980136182213595; fWeightMatrix0to1[8][13] = 1.24981109388655; fWeightMatrix0to1[9][13] = 1.96217968030545; fWeightMatrix0to1[10][13] = 0.410100471620442; fWeightMatrix0to1[11][13] = -8.40482925677758; fWeightMatrix0to1[12][13] = -28.7401385389311; fWeightMatrix0to1[13][13] = 17.0733835750621; fWeightMatrix0to1[14][13] = -1.18333896149983; fWeightMatrix0to1[15][13] = 8.23818803853911; fWeightMatrix0to1[16][13] = -4.5582220234782; fWeightMatrix0to1[17][13] = -1.57420126058649; fWeightMatrix0to1[18][13] = -9.8598972546051; fWeightMatrix0to1[19][13] = 12.5580452016554; fWeightMatrix0to1[20][13] = 1.30083948650482; fWeightMatrix0to1[21][13] = 1.92201082311297; fWeightMatrix0to1[22][13] = -0.663162846422393; fWeightMatrix0to1[23][13] = -2.44409893786772; fWeightMatrix0to1[24][13] = -4.45838054542796; fWeightMatrix0to1[25][13] = 10.7896535029903; fWeightMatrix0to1[26][13] = 0.222114049560254; fWeightMatrix0to1[27][13] = 6.8676879669269; fWeightMatrix0to1[28][13] = 17.116555700774; fWeightMatrix0to1[0][14] = -9.27535659934139; fWeightMatrix0to1[1][14] = 0.915049451592145; fWeightMatrix0to1[2][14] = 0.722663131916828; fWeightMatrix0to1[3][14] = 1.73061392327547; fWeightMatrix0to1[4][14] = 2.5121988419373; fWeightMatrix0to1[5][14] = 5.19542926555812; fWeightMatrix0to1[6][14] = -0.888789884383556; fWeightMatrix0to1[7][14] = -0.841774363822738; fWeightMatrix0to1[8][14] = 2.07629428327153; fWeightMatrix0to1[9][14] = 0.745285150640353; fWeightMatrix0to1[10][14] = 0.968181976592942; fWeightMatrix0to1[11][14] = 1.61734044537274; fWeightMatrix0to1[12][14] = 2.42188752065114; fWeightMatrix0to1[13][14] = -3.48673198002884; fWeightMatrix0to1[14][14] = -3.21755949996057; fWeightMatrix0to1[15][14] = 0.332611320202793; fWeightMatrix0to1[16][14] = 2.85864659331913; fWeightMatrix0to1[17][14] = -1.31366760405844; fWeightMatrix0to1[18][14] = -0.956268718310806; fWeightMatrix0to1[19][14] = -4.04613734952756; fWeightMatrix0to1[20][14] = -0.668791430305901; fWeightMatrix0to1[21][14] = -2.02205510496543; fWeightMatrix0to1[22][14] = -1.73489539181705; fWeightMatrix0to1[23][14] = -0.517798896777392; fWeightMatrix0to1[24][14] = 1.14948028499919; fWeightMatrix0to1[25][14] = -1.71371940933753; fWeightMatrix0to1[26][14] = -2.3043208832852; fWeightMatrix0to1[27][14] = 2.88527221273588; fWeightMatrix0to1[28][14] = 7.64090586833032; fWeightMatrix0to1[0][15] = 16.0787547759485; fWeightMatrix0to1[1][15] = 11.3452686222499; fWeightMatrix0to1[2][15] = -1.44443325934288; fWeightMatrix0to1[3][15] = 2.21134453829278; fWeightMatrix0to1[4][15] = -6.30028481704268; fWeightMatrix0to1[5][15] = -12.7070464188359; fWeightMatrix0to1[6][15] = -1.12527225109179; fWeightMatrix0to1[7][15] = 0.141090905856202; fWeightMatrix0to1[8][15] = -0.567225007202606; fWeightMatrix0to1[9][15] = -0.540708404088485; fWeightMatrix0to1[10][15] = 0.456058019081051; fWeightMatrix0to1[11][15] = 1.19148959229127; fWeightMatrix0to1[12][15] = 3.24845750598766; fWeightMatrix0to1[13][15] = -1.55927460915706; fWeightMatrix0to1[14][15] = 5.51870840203412; fWeightMatrix0to1[15][15] = 11.5501283103966; fWeightMatrix0to1[16][15] = -1.0039900858194; fWeightMatrix0to1[17][15] = 0.795492890656151; fWeightMatrix0to1[18][15] = 4.70555269159107; fWeightMatrix0to1[19][15] = 15.7737605171625; fWeightMatrix0to1[20][15] = -1.64847829015898; fWeightMatrix0to1[21][15] = 1.01930542097739; fWeightMatrix0to1[22][15] = -2.23829663082686; fWeightMatrix0to1[23][15] = 2.53618379048736; fWeightMatrix0to1[24][15] = -0.0727881215270646; fWeightMatrix0to1[25][15] = -2.9727171880694; fWeightMatrix0to1[26][15] = 0.017063929093713; fWeightMatrix0to1[27][15] = -3.43763059134498; fWeightMatrix0to1[28][15] = -5.32921235429908; fWeightMatrix0to1[0][16] = 1.21980379289862; fWeightMatrix0to1[1][16] = 6.27967798634833; fWeightMatrix0to1[2][16] = -2.16260816903516; fWeightMatrix0to1[3][16] = 2.92061869951069; fWeightMatrix0to1[4][16] = -8.5514599991988; fWeightMatrix0to1[5][16] = 7.6999598472958; fWeightMatrix0to1[6][16] = 0.624501381839157; fWeightMatrix0to1[7][16] = -0.299716648515503; fWeightMatrix0to1[8][16] = -1.78983974145936; fWeightMatrix0to1[9][16] = 2.77875780065567; fWeightMatrix0to1[10][16] = -0.217211078805666; fWeightMatrix0to1[11][16] = 1.66256682487016; fWeightMatrix0to1[12][16] = 7.94746913562155; fWeightMatrix0to1[13][16] = -2.82883830105319; fWeightMatrix0to1[14][16] = 3.26791007961384; fWeightMatrix0to1[15][16] = 4.45080277239083; fWeightMatrix0to1[16][16] = -1.67463731171759; fWeightMatrix0to1[17][16] = -0.69130640283943; fWeightMatrix0to1[18][16] = 4.75518510035903; fWeightMatrix0to1[19][16] = 10.4328494088418; fWeightMatrix0to1[20][16] = 0.827941322816324; fWeightMatrix0to1[21][16] = -0.112454721482488; fWeightMatrix0to1[22][16] = -1.59893728752751; fWeightMatrix0to1[23][16] = 0.274322431143393; fWeightMatrix0to1[24][16] = 0.361621182162866; fWeightMatrix0to1[25][16] = -2.80547189308681; fWeightMatrix0to1[26][16] = 0.498769793399805; fWeightMatrix0to1[27][16] = -7.13430391892744; fWeightMatrix0to1[28][16] = -9.4198427405683; fWeightMatrix0to1[0][17] = 23.8890196160142; fWeightMatrix0to1[1][17] = 15.5210381605134; fWeightMatrix0to1[2][17] = -3.53286551883426; fWeightMatrix0to1[3][17] = 5.53615379349934; fWeightMatrix0to1[4][17] = -11.2614179069322; fWeightMatrix0to1[5][17] = -14.8355681199028; fWeightMatrix0to1[6][17] = 1.34115582572494; fWeightMatrix0to1[7][17] = -0.881484683246118; fWeightMatrix0to1[8][17] = -0.653825385069037; fWeightMatrix0to1[9][17] = 2.88548594589404; fWeightMatrix0to1[10][17] = -0.171394419603766; fWeightMatrix0to1[11][17] = 1.4442235107983; fWeightMatrix0to1[12][17] = 3.08162775594681; fWeightMatrix0to1[13][17] = -0.128217671349257; fWeightMatrix0to1[14][17] = 13.3159223314569; fWeightMatrix0to1[15][17] = -0.756717904333048; fWeightMatrix0to1[16][17] = -0.294900943014474; fWeightMatrix0to1[17][17] = 1.64051043143997; fWeightMatrix0to1[18][17] = 2.00042408608733; fWeightMatrix0to1[19][17] = 22.4864798699164; fWeightMatrix0to1[20][17] = -1.85453509881358; fWeightMatrix0to1[21][17] = 0.255566920835246; fWeightMatrix0to1[22][17] = -0.982329974082207; fWeightMatrix0to1[23][17] = 1.01557550570556; fWeightMatrix0to1[24][17] = -1.1251083360269; fWeightMatrix0to1[25][17] = -2.90457508402093; fWeightMatrix0to1[26][17] = 1.05507918446189; fWeightMatrix0to1[27][17] = -4.41394107992793; fWeightMatrix0to1[28][17] = -12.0017325983755; fWeightMatrix0to1[0][18] = -3.73158513049533; fWeightMatrix0to1[1][18] = -5.58563296144823; fWeightMatrix0to1[2][18] = -2.0394269540622; fWeightMatrix0to1[3][18] = 4.52675508117179; fWeightMatrix0to1[4][18] = -2.94116160724454; fWeightMatrix0to1[5][18] = 5.68458806260648; fWeightMatrix0to1[6][18] = 1.79760477009411; fWeightMatrix0to1[7][18] = -2.23929762955058; fWeightMatrix0to1[8][18] = 3.05323848360804; fWeightMatrix0to1[9][18] = -0.752482202447016; fWeightMatrix0to1[10][18] = 0.431316935045768; fWeightMatrix0to1[11][18] = 3.9966014381888; fWeightMatrix0to1[12][18] = 5.069100963765; fWeightMatrix0to1[13][18] = -5.09624214240224; fWeightMatrix0to1[14][18] = -4.0095904269384; fWeightMatrix0to1[15][18] = -1.8568546620298; fWeightMatrix0to1[16][18] = -1.88309564482035; fWeightMatrix0to1[17][18] = -2.68803298483604; fWeightMatrix0to1[18][18] = 4.7193622829391; fWeightMatrix0to1[19][18] = 0.223239787140446; fWeightMatrix0to1[20][18] = 0.93540399792323; fWeightMatrix0to1[21][18] = -4.9592236727521; fWeightMatrix0to1[22][18] = 0.187597012649713; fWeightMatrix0to1[23][18] = 2.89453457756777; fWeightMatrix0to1[24][18] = 1.00756876261573; fWeightMatrix0to1[25][18] = -7.57067938099744; fWeightMatrix0to1[26][18] = 0.926254886553127; fWeightMatrix0to1[27][18] = -1.25494540527284; fWeightMatrix0to1[28][18] = -5.90450336849771; fWeightMatrix0to1[0][19] = -2.06621154644887; fWeightMatrix0to1[1][19] = -1.85086474436682; fWeightMatrix0to1[2][19] = 3.86392953338064; fWeightMatrix0to1[3][19] = -0.017445580167126; fWeightMatrix0to1[4][19] = 3.11480002638038; fWeightMatrix0to1[5][19] = -5.73436343984686; fWeightMatrix0to1[6][19] = -0.479716909164114; fWeightMatrix0to1[7][19] = 2.83324284181729; fWeightMatrix0to1[8][19] = -1.99086058040431; fWeightMatrix0to1[9][19] = -1.57288426465632; fWeightMatrix0to1[10][19] = -0.78484068059928; fWeightMatrix0to1[11][19] = -4.00226111370537; fWeightMatrix0to1[12][19] = -5.09800561620111; fWeightMatrix0to1[13][19] = 5.44432046963268; fWeightMatrix0to1[14][19] = 3.36089742207859; fWeightMatrix0to1[15][19] = 1.73788508494781; fWeightMatrix0to1[16][19] = -0.936720771252078; fWeightMatrix0to1[17][19] = -1.76003094180164; fWeightMatrix0to1[18][19] = -7.09948235197965; fWeightMatrix0to1[19][19] = 6.87090198756477; fWeightMatrix0to1[20][19] = -1.33292537879777; fWeightMatrix0to1[21][19] = 1.88477428569378; fWeightMatrix0to1[22][19] = 1.15487547739702; fWeightMatrix0to1[23][19] = -3.93758957923599; fWeightMatrix0to1[24][19] = -1.4123824115424; fWeightMatrix0to1[25][19] = 7.66010903453526; fWeightMatrix0to1[26][19] = -2.63279057120581; fWeightMatrix0to1[27][19] = 1.02303845148059; fWeightMatrix0to1[28][19] = 5.98687722974848; fWeightMatrix0to1[0][20] = -4.60860508181032; fWeightMatrix0to1[1][20] = -0.000184592299494217; fWeightMatrix0to1[2][20] = 0.62744933016864; fWeightMatrix0to1[3][20] = -15.5857506385396; fWeightMatrix0to1[4][20] = 3.97241482651659; fWeightMatrix0to1[5][20] = -0.282082967884229; fWeightMatrix0to1[6][20] = 0.0108611060200319; fWeightMatrix0to1[7][20] = 0.737752816728355; fWeightMatrix0to1[8][20] = -5.60931194452089; fWeightMatrix0to1[9][20] = -3.62184924091531; fWeightMatrix0to1[10][20] = -3.36391107584076; fWeightMatrix0to1[11][20] = -1.90006503699277; fWeightMatrix0to1[12][20] = -5.20900343605371; fWeightMatrix0to1[13][20] = 3.45550255785854; fWeightMatrix0to1[14][20] = -8.70919187764137; fWeightMatrix0to1[15][20] = -2.96605130001095; fWeightMatrix0to1[16][20] = 0.81485571368599; fWeightMatrix0to1[17][20] = -1.98491740237028; fWeightMatrix0to1[18][20] = -14.3364847448088; fWeightMatrix0to1[19][20] = 0.257452041963969; fWeightMatrix0to1[20][20] = -1.61727923520118; fWeightMatrix0to1[21][20] = 15.1667512514857; fWeightMatrix0to1[22][20] = 1.24056944142037; fWeightMatrix0to1[23][20] = -5.00542667119857; fWeightMatrix0to1[24][20] = -2.57842798667933; fWeightMatrix0to1[25][20] = -4.32838529980532; fWeightMatrix0to1[26][20] = 1.06125931382085; fWeightMatrix0to1[27][20] = -0.165987993279784; fWeightMatrix0to1[28][20] = 12.8113351989803; fWeightMatrix0to1[0][21] = -7.16481713945784; fWeightMatrix0to1[1][21] = -3.90806565200469; fWeightMatrix0to1[2][21] = -2.68307399011467; fWeightMatrix0to1[3][21] = -0.763998895716187; fWeightMatrix0to1[4][21] = -2.53103359279129; fWeightMatrix0to1[5][21] = 7.89017117702161; fWeightMatrix0to1[6][21] = 0.693583158780245; fWeightMatrix0to1[7][21] = 0.778661575020737; fWeightMatrix0to1[8][21] = 1.57113993818261; fWeightMatrix0to1[9][21] = -0.831876774191616; fWeightMatrix0to1[10][21] = -1.43369349212793; fWeightMatrix0to1[11][21] = 0.268195004555283; fWeightMatrix0to1[12][21] = 3.38390137831394; fWeightMatrix0to1[13][21] = 2.76675269397985; fWeightMatrix0to1[14][21] = 0.654814906693266; fWeightMatrix0to1[15][21] = -6.62171487040407; fWeightMatrix0to1[16][21] = -2.14754767794888; fWeightMatrix0to1[17][21] = -4.46000256747535; fWeightMatrix0to1[18][21] = -4.21781974787651; fWeightMatrix0to1[19][21] = -14.5172750093364; fWeightMatrix0to1[20][21] = 0.119961456470065; fWeightMatrix0to1[21][21] = 2.47291597832192; fWeightMatrix0to1[22][21] = -0.246710744033643; fWeightMatrix0to1[23][21] = 3.48232067184881; fWeightMatrix0to1[24][21] = -2.55101074940489; fWeightMatrix0to1[25][21] = -8.02073680867987; fWeightMatrix0to1[26][21] = 0.700773283839066; fWeightMatrix0to1[27][21] = 1.79468960107642; fWeightMatrix0to1[28][21] = -1.90153527064639; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = -0.691927038485007; fWeightMatrix1to2[0][1] = -0.45981905551422; fWeightMatrix1to2[0][2] = -0.360220102454866; fWeightMatrix1to2[0][3] = 0.651182346360324; fWeightMatrix1to2[0][4] = -0.870738950910936; fWeightMatrix1to2[0][5] = 0.461770863578248; fWeightMatrix1to2[0][6] = -0.879758559669337; fWeightMatrix1to2[0][7] = -0.678947711528547; fWeightMatrix1to2[0][8] = 0.575480398607031; fWeightMatrix1to2[0][9] = 0.219336214289424; fWeightMatrix1to2[0][10] = 0.386295111196418; fWeightMatrix1to2[0][11] = 0.869144520641793; fWeightMatrix1to2[0][12] = 0.61662449588911; fWeightMatrix1to2[0][13] = -0.399397309579037; fWeightMatrix1to2[0][14] = -0.570507499185519; fWeightMatrix1to2[0][15] = -0.818098758437862; fWeightMatrix1to2[0][16] = -0.959077805986928; fWeightMatrix1to2[0][17] = 0.537322638580899; fWeightMatrix1to2[0][18] = 0.501603424593071; fWeightMatrix1to2[0][19] = -0.923631233697667; fWeightMatrix1to2[0][20] = 0.442130711265534; fWeightMatrix1to2[0][21] = -0.992203175992899; fWeightMatrix1to2[0][22] = -1.83331469221935; fWeightMatrix1to2[0][23] = 0.732611083694696; fWeightMatrix1to2[0][24] = -0.587011218719591; fWeightMatrix1to2[0][25] = -1.08092030536511; fWeightMatrix1to2[0][26] = 0.751703768000401; fWeightMatrix1to2[0][27] = -1.16450422399429; fWeightMatrix1to2[0][28] = -0.516029804457599; fWeightMatrix1to2[0][29] = -3.14797403621185; } 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; 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] = 172.490005493; fMax_1[0][0] = 4699438.5; fMin_1[1][0] = 208.649993896; fMax_1[1][0] = 4970293.5; fMin_1[2][0] = 172.490005493; fMax_1[2][0] = 4970293.5; fMin_1[0][1] = 0.832938909531; fMax_1[0][1] = 945470.625; fMin_1[1][1] = 8.4846162796; fMax_1[1][1] = 995273.875; fMin_1[2][1] = 0.832938909531; fMax_1[2][1] = 995273.875; fMin_1[0][2] = 0.00302399252541; fMax_1[0][2] = 2.999573946; fMin_1[1][2] = 0.00537811685354; fMax_1[1][2] = 2.99677228928; fMin_1[2][2] = 0.00302399252541; fMax_1[2][2] = 2.999573946; fMin_1[0][3] = 4; fMax_1[0][3] = 26; fMin_1[1][3] = 4; fMax_1[1][3] = 28; fMin_1[2][3] = 4; fMax_1[2][3] = 28; fMin_1[0][4] = -99.6241531372; fMax_1[0][4] = -0.319228202105; fMin_1[1][4] = -50.1410293579; fMax_1[1][4] = -0.326956540346; fMin_1[2][4] = -99.6241531372; fMax_1[2][4] = -0.319228202105; fMin_1[0][5] = 0.0595433376729; fMax_1[0][5] = 1; fMin_1[1][5] = 0.0317582078278; fMax_1[1][5] = 1; fMin_1[2][5] = 0.0317582078278; fMax_1[2][5] = 1; fMin_1[0][6] = -999; fMax_1[0][6] = 4999.17285156; fMin_1[1][6] = -999; fMax_1[1][6] = 4999.73632812; fMin_1[2][6] = -999; fMax_1[2][6] = 4999.73632812; fMin_1[0][7] = 2.50487555604e-05; fMax_1[0][7] = 51.0802001953; fMin_1[1][7] = 0.000172009458765; fMax_1[1][7] = 47.9090538025; fMin_1[2][7] = 2.50487555604e-05; fMax_1[2][7] = 51.0802001953; fMin_1[0][8] = 1; fMax_1[0][8] = 23; fMin_1[1][8] = 1; fMax_1[1][8] = 24; fMin_1[2][8] = 1; fMax_1[2][8] = 24; fMin_1[0][9] = 0; fMax_1[0][9] = 1; fMin_1[1][9] = 0; fMax_1[1][9] = 1; fMin_1[2][9] = 0; fMax_1[2][9] = 1; fMin_1[0][10] = 0; fMax_1[0][10] = 1; fMin_1[1][10] = 0; fMax_1[1][10] = 1; fMin_1[2][10] = 0; fMax_1[2][10] = 1; fMin_1[0][11] = 0; fMax_1[0][11] = 1; fMin_1[1][11] = 0; fMax_1[1][11] = 1; fMin_1[2][11] = 0; fMax_1[2][11] = 1; fMin_1[0][12] = 0; fMax_1[0][12] = 1; fMin_1[1][12] = 0; fMax_1[1][12] = 1; fMin_1[2][12] = 0; fMax_1[2][12] = 1; fMin_1[0][13] = -999; fMax_1[0][13] = 107.511299133; fMin_1[1][13] = -999; fMax_1[1][13] = 63.3391990662; fMin_1[2][13] = -999; fMax_1[2][13] = 107.511299133; fMin_1[0][14] = -999; fMax_1[0][14] = 62.9558982849; fMin_1[1][14] = -999; fMax_1[1][14] = 69.573600769; fMin_1[2][14] = -999; fMax_1[2][14] = 69.573600769; fMin_1[0][15] = -999; fMax_1[0][15] = 99.5278015137; fMin_1[1][15] = -999; fMax_1[1][15] = 96.6315994263; fMin_1[2][15] = -999; fMax_1[2][15] = 99.5278015137; fMin_1[0][16] = -999; fMax_1[0][16] = 54.5975990295; fMin_1[1][16] = -999; fMax_1[1][16] = 62.6166000366; fMin_1[2][16] = -999; fMax_1[2][16] = 62.6166000366; fMin_1[0][17] = -999; fMax_1[0][17] = 46.5424995422; fMin_1[1][17] = -999; fMax_1[1][17] = 47.8530006409; fMin_1[2][17] = -999; fMax_1[2][17] = 47.8530006409; fMin_1[0][18] = 0; fMax_1[0][18] = 1; fMin_1[1][18] = 0; fMax_1[1][18] = 1; fMin_1[2][18] = 0; fMax_1[2][18] = 1; fMin_1[0][19] = -999; fMax_1[0][19] = 4.79148387909; fMin_1[1][19] = -999; fMax_1[1][19] = 4.79148387909; fMin_1[2][19] = -999; fMax_1[2][19] = 4.79148387909; fMin_1[0][20] = 0.486891388893; fMax_1[0][20] = 5.4943819046; fMin_1[1][20] = 0.522471904755; fMax_1[1][20] = 2.42626404762; fMin_1[2][20] = 0.486891388893; fMax_1[2][20] = 5.4943819046; } //_______________________________________________________________________ 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 = 21; // get indices of used variables // define the indices of the variables which are transformed by this transformation std::vector indicesGet; std::vector indicesPut; indicesGet.push_back( 0); indicesGet.push_back( 1); indicesGet.push_back( 2); indicesGet.push_back( 3); indicesGet.push_back( 4); indicesGet.push_back( 5); indicesGet.push_back( 6); indicesGet.push_back( 7); indicesGet.push_back( 8); indicesGet.push_back( 9); indicesGet.push_back( 10); indicesGet.push_back( 11); indicesGet.push_back( 12); indicesGet.push_back( 13); indicesGet.push_back( 14); indicesGet.push_back( 15); indicesGet.push_back( 16); indicesGet.push_back( 17); indicesGet.push_back( 18); indicesGet.push_back( 19); indicesGet.push_back( 20); indicesPut.push_back( 0); indicesPut.push_back( 1); indicesPut.push_back( 2); indicesPut.push_back( 3); indicesPut.push_back( 4); indicesPut.push_back( 5); indicesPut.push_back( 6); indicesPut.push_back( 7); indicesPut.push_back( 8); indicesPut.push_back( 9); indicesPut.push_back( 10); indicesPut.push_back( 11); indicesPut.push_back( 12); indicesPut.push_back( 13); indicesPut.push_back( 14); indicesPut.push_back( 15); indicesPut.push_back( 16); indicesPut.push_back( 17); indicesPut.push_back( 18); indicesPut.push_back( 19); indicesPut.push_back( 20); std::vector dv(nVar); for (int ivar=0; ivar& iv, int sigOrBgd ) const { Transform_1( iv, sigOrBgd ); }