// Class: ReadMuon_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Muon_Upstream_TMVA TMVA Release : 4.1.4 [262404] ROOT Release : 5.34/05 [336389] Creator : jonrob Date : Wed Apr 10 08:42:33 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/Muon/Upstream Training events: 1000000 Analysis type : [Classification] #OPT -*-*-*-*-*-*-*-*-*-*-*-*- options -*-*-*-*-*-*-*-*-*-*-*-*- # Set by User: NCycles: "750" [Number of training cycles] HiddenLayers: "29" [Specification of hidden layer architecture] NeuronType: "tanh" [Neuron activation function type] EstimatorType: "CE" [MSE (Mean Square Estimator) for Gaussian Likelihood or CE(Cross-Entropy) for Bernoulli Likelihood] V: "True" [Verbose output (short form of "VerbosityLevel" below - overrides the latter one)] VarTransform: "Norm" [List of variable transformations performed before training, e.g., "D_Background,P_Signal,G,N_AllClasses" for: "Decorrelation, PCA-transformation, Gaussianisation, Normalisation, each for the given class of events ('AllClasses' denotes all events of all classes, if no class indication is given, 'All' is assumed)"] H: "True" [Print method-specific help message] TrainingMethod: "BP" [Train with Back-Propagation (BP), BFGS Algorithm (BFGS), or Genetic Algorithm (GA - slower and worse)] EpochMonitoring: "True" [Provide epoch-wise monitoring plots according to TestRate (caution: causes big ROOT output file!)] # Default: RandomSeed: "1" [Random seed for initial synapse weights (0 means unique seed for each run; default value '1')] NeuronInputType: "sum" [Neuron input function type] VerbosityLevel: "Verbose" [Verbosity level] CreateMVAPdfs: "False" [Create PDFs for classifier outputs (signal and background)] IgnoreNegWeightsInTraining: "False" [Events with negative weights are ignored in the training (but are included for testing and performance evaluation)] LearningRate: "2.000000e-02" [ANN learning rate parameter] DecayRate: "1.000000e-02" [Decay rate for learning parameter] TestRate: "10" [Test for overtraining performed at each #th epochs] Sampling: "1.000000e+00" [Only 'Sampling' (randomly selected) events are trained each epoch] SamplingEpoch: "1.000000e+00" [Sampling is used for the first 'SamplingEpoch' epochs, afterwards, all events are taken for training] SamplingImportance: "1.000000e+00" [ The sampling weights of events in epochs which successful (worse estimator than before) are multiplied with SamplingImportance, else they are divided.] SamplingTraining: "True" [The training sample is sampled] SamplingTesting: "False" [The testing sample is sampled] ResetStep: "50" [How often BFGS should reset history] Tau: "3.000000e+00" [LineSearch "size step"] BPMode: "sequential" [Back-propagation learning mode: sequential or batch] BatchSize: "-1" [Batch size: number of events/batch, only set if in Batch Mode, -1 for BatchSize=number_of_events] ConvergenceImprove: "1.000000e-30" [Minimum improvement which counts as improvement (<0 means automatic convergence check is turned off)] ConvergenceTests: "-1" [Number of steps (without improvement) required for convergence (<0 means automatic convergence check is turned off)] UseRegulator: "False" [Use regulator to avoid over-training] UpdateLimit: "10000" [Maximum times of regulator update] CalculateErrors: "False" [Calculates inverse Hessian matrix at the end of the training to be able to calculate the uncertainties of an MVA value] WeightRange: "1.000000e+00" [Take the events for the estimator calculations from small deviations from the desired value to large deviations only over the weight range] ## #VAR -*-*-*-*-*-*-*-*-*-*-*-* variables *-*-*-*-*-*-*-*-*-*-*-*- NVar 21 TrackP TrackP TrackP TrackP 'F' [172.490005493,4970293.5] TrackPt TrackPt TrackPt TrackPt 'F' [0.832938909531,995273.875] TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof TrackChi2PerDof 'F' [0.00302399252541,2.999573946] TrackNumDof TrackNumDof TrackNumDof TrackNumDof 'I' [4,28] TrackLikelihood TrackLikelihood TrackLikelihood TrackLikelihood 'F' [-99.6241531372,-0.319228202105] TrackGhostProbability TrackGhostProbability TrackGhostProbability TrackGhostProbability 'F' [0.0317582078278,1] TrackCloneDist TrackCloneDist TrackCloneDist TrackCloneDist 'F' [-999,4999.73632812] TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 TrackFitVeloChi2 'F' [2.50487555604e-05,51.0802001953] TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF TrackFitVeloNDoF 'I' [1,24] RichUsedAero RichUsedAero RichUsedAero RichUsedAero 'I' [0,1] RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas RichUsedR1Gas 'I' [0,1] RichAboveMuThres RichAboveMuThres RichAboveMuThres RichAboveMuThres 'I' [0,1] RichAboveKaThres RichAboveKaThres RichAboveKaThres RichAboveKaThres 'I' [0,1] RichDLLe RichDLLe RichDLLe RichDLLe 'F' [-999,107.511299133] RichDLLmu RichDLLmu RichDLLmu RichDLLmu 'F' [-999,69.573600769] RichDLLk RichDLLk RichDLLk RichDLLk 'F' [-999,99.5278015137] RichDLLp RichDLLp RichDLLp RichDLLp 'F' [-999,62.6166000366] RichDLLbt RichDLLbt RichDLLbt RichDLLbt 'F' [-999,47.8530006409] InAccBrem InAccBrem InAccBrem InAccBrem 'I' [0,1] BremPIDe BremPIDe BremPIDe BremPIDe 'F' [-999,4.79148387909] VeloCharge VeloCharge VeloCharge VeloCharge 'F' [0.486891388893,5.4943819046] NSpec 0 ============================================================================ */ #include #include #include #include #ifndef IClassifierReader__def #define IClassifierReader__def class IClassifierReader { public: // constructor IClassifierReader() : fStatusIsClean( true ) {} virtual ~IClassifierReader() {} // return classifier response virtual double GetMvaValue( const std::vector& inputValues ) const = 0; // returns classifier status bool IsStatusClean() const { return fStatusIsClean; } protected: bool fStatusIsClean; }; #endif class ReadMuon_Upstream_TMVA : public IClassifierReader { public: // constructor ReadMuon_Upstream_TMVA( std::vector& theInputVars ) : IClassifierReader(), fClassName( "ReadMuon_Upstream_TMVA" ), fNvars( 21 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackLikelihood", "TrackGhostProbability", "TrackCloneDist", "TrackFitVeloChi2", "TrackFitVeloNDoF", "RichUsedAero", "RichUsedR1Gas", "RichAboveMuThres", "RichAboveKaThres", "RichDLLe", "RichDLLmu", "RichDLLk", "RichDLLp", "RichDLLbt", "InAccBrem", "BremPIDe", "VeloCharge" }; // sanity checks if (theInputVars.size() <= 0) { std::cout << "Problem in class \"" << fClassName << "\": empty input vector" << std::endl; fStatusIsClean = false; } if (theInputVars.size() != fNvars) { std::cout << "Problem in class \"" << fClassName << "\": mismatch in number of input values: " << theInputVars.size() << " != " << fNvars << std::endl; fStatusIsClean = false; } // validate input variables for (size_t ivar = 0; ivar < theInputVars.size(); ivar++) { if (theInputVars[ivar] != inputVars[ivar]) { std::cout << "Problem in class \"" << fClassName << "\": mismatch in input variable names" << std::endl << " for variable [" << ivar << "]: " << theInputVars[ivar].c_str() << " != " << inputVars[ivar] << std::endl; fStatusIsClean = false; } } // initialize min and max vectors (for normalisation) fVmin[0] = -1; fVmax[0] = 1; fVmin[1] = -1; fVmax[1] = 1; fVmin[2] = -1; fVmax[2] = 1; fVmin[3] = -1; fVmax[3] = 1; fVmin[4] = -1; fVmax[4] = 1; fVmin[5] = -1; fVmax[5] = 1; fVmin[6] = -1; fVmax[6] = 1; fVmin[7] = -1; fVmax[7] = 1; fVmin[8] = -1; fVmax[8] = 1; fVmin[9] = -1; fVmax[9] = 1; fVmin[10] = -1; fVmax[10] = 1; fVmin[11] = -1; fVmax[11] = 1; fVmin[12] = -1; fVmax[12] = 1; fVmin[13] = -1; fVmax[13] = 1; fVmin[14] = -1; fVmax[14] = 1; fVmin[15] = -1; fVmax[15] = 1; fVmin[16] = -1; fVmax[16] = 1; fVmin[17] = -1; fVmax[17] = 1; fVmin[18] = -1; fVmax[18] = 1; fVmin[19] = -1; fVmax[19] = 1; fVmin[20] = -1; fVmax[20] = 1; // initialize input variable types fType[0] = 'F'; fType[1] = 'F'; fType[2] = 'F'; fType[3] = 'I'; fType[4] = 'F'; fType[5] = 'F'; fType[6] = 'F'; fType[7] = 'F'; fType[8] = 'I'; fType[9] = 'I'; fType[10] = 'I'; fType[11] = 'I'; fType[12] = 'I'; fType[13] = 'F'; fType[14] = 'F'; fType[15] = 'F'; fType[16] = 'F'; fType[17] = 'F'; fType[18] = 'I'; fType[19] = 'F'; fType[20] = 'F'; // initialize constants Initialize(); // initialize transformation InitTransform(); } // destructor virtual ~ReadMuon_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 ReadMuon_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.621749852364647; fWeightMatrix0to1[1][0] = 1.32731111544181; fWeightMatrix0to1[2][0] = 1.05598595792467; fWeightMatrix0to1[3][0] = 1.55226353440152; fWeightMatrix0to1[4][0] = -3.14428940044824; fWeightMatrix0to1[5][0] = -1.77750401929337; fWeightMatrix0to1[6][0] = -1.33343797290504; fWeightMatrix0to1[7][0] = 1.75014098711831; fWeightMatrix0to1[8][0] = -1.42107731141183; fWeightMatrix0to1[9][0] = -0.916512727927892; fWeightMatrix0to1[10][0] = -1.54157129734668; fWeightMatrix0to1[11][0] = -0.381811049819572; fWeightMatrix0to1[12][0] = -1.27639995756637; fWeightMatrix0to1[13][0] = -0.554480111542334; fWeightMatrix0to1[14][0] = -1.1802022252849; fWeightMatrix0to1[15][0] = 0.5824191002622; fWeightMatrix0to1[16][0] = -0.532938605262976; fWeightMatrix0to1[17][0] = 1.99116549922745; fWeightMatrix0to1[18][0] = -0.010028560343572; fWeightMatrix0to1[19][0] = 0.991358698669025; fWeightMatrix0to1[20][0] = -0.0192213007147504; fWeightMatrix0to1[21][0] = -0.442003271490941; fWeightMatrix0to1[22][0] = 0.457165157865404; fWeightMatrix0to1[23][0] = 0.405611507637047; fWeightMatrix0to1[24][0] = -1.15681697648372; fWeightMatrix0to1[25][0] = -0.811063057480229; fWeightMatrix0to1[26][0] = 1.14960063161071; fWeightMatrix0to1[27][0] = -1.45819744047974; fWeightMatrix0to1[28][0] = -1.40189630431968; fWeightMatrix0to1[0][1] = -0.197046832483269; fWeightMatrix0to1[1][1] = 0.0186501210989761; fWeightMatrix0to1[2][1] = 1.87372741387961; fWeightMatrix0to1[3][1] = -0.546111425052494; fWeightMatrix0to1[4][1] = -1.37136333013619; fWeightMatrix0to1[5][1] = -0.142744225866858; fWeightMatrix0to1[6][1] = -0.820572064153613; fWeightMatrix0to1[7][1] = -1.82118602718786; fWeightMatrix0to1[8][1] = 1.74782416398116; fWeightMatrix0to1[9][1] = -1.05781397842706; fWeightMatrix0to1[10][1] = 1.22079975637231; fWeightMatrix0to1[11][1] = 1.49090968470334; fWeightMatrix0to1[12][1] = 1.03250100436955; fWeightMatrix0to1[13][1] = 1.77961639028238; fWeightMatrix0to1[14][1] = 0.59936617986597; fWeightMatrix0to1[15][1] = -0.833596379917807; fWeightMatrix0to1[16][1] = -1.54008181851391; fWeightMatrix0to1[17][1] = 1.02903054375091; fWeightMatrix0to1[18][1] = -0.128360156393674; fWeightMatrix0to1[19][1] = 1.11043866357788; fWeightMatrix0to1[20][1] = 1.85939966178166; fWeightMatrix0to1[21][1] = 1.87823645715798; fWeightMatrix0to1[22][1] = 1.02560411716357; fWeightMatrix0to1[23][1] = -1.38214043942105; fWeightMatrix0to1[24][1] = 1.31715914957321; fWeightMatrix0to1[25][1] = -2.49478831778544; fWeightMatrix0to1[26][1] = -1.42630823903587; fWeightMatrix0to1[27][1] = -1.69722477454698; fWeightMatrix0to1[28][1] = -1.23665018813951; fWeightMatrix0to1[0][2] = 1.0596472343659; fWeightMatrix0to1[1][2] = 0.524512471918512; fWeightMatrix0to1[2][2] = 0.0309218352798602; fWeightMatrix0to1[3][2] = -0.150663024616927; fWeightMatrix0to1[4][2] = 0.890267709366457; fWeightMatrix0to1[5][2] = -0.70572899331324; fWeightMatrix0to1[6][2] = 1.48568219527122; fWeightMatrix0to1[7][2] = -1.01763808672164; fWeightMatrix0to1[8][2] = 0.244223822059688; fWeightMatrix0to1[9][2] = -0.712945224337278; fWeightMatrix0to1[10][2] = -0.176216004149434; fWeightMatrix0to1[11][2] = -0.742772569257753; fWeightMatrix0to1[12][2] = -0.943914722682989; fWeightMatrix0to1[13][2] = -0.961580740433825; fWeightMatrix0to1[14][2] = 0.338556971718749; fWeightMatrix0to1[15][2] = 1.28497983641359; fWeightMatrix0to1[16][2] = 0.976212031360291; fWeightMatrix0to1[17][2] = -0.0159093653687151; fWeightMatrix0to1[18][2] = -2.05713014963097; fWeightMatrix0to1[19][2] = -1.58057772411862; fWeightMatrix0to1[20][2] = 1.41120777519614; fWeightMatrix0to1[21][2] = 0.115342753439888; fWeightMatrix0to1[22][2] = 1.91102766359125; fWeightMatrix0to1[23][2] = 0.407277511886131; fWeightMatrix0to1[24][2] = 1.78059370721642; fWeightMatrix0to1[25][2] = -0.105839290787187; fWeightMatrix0to1[26][2] = -0.632583766202816; fWeightMatrix0to1[27][2] = -0.245466208950317; fWeightMatrix0to1[28][2] = -0.391307573568323; fWeightMatrix0to1[0][3] = -0.0721625849696921; fWeightMatrix0to1[1][3] = -1.6741326571961; fWeightMatrix0to1[2][3] = -2.74944865184972; fWeightMatrix0to1[3][3] = -0.638130433790085; fWeightMatrix0to1[4][3] = -2.1753455579458; fWeightMatrix0to1[5][3] = 1.24437189389581; fWeightMatrix0to1[6][3] = -1.75365078163426; fWeightMatrix0to1[7][3] = -2.00252655161614; fWeightMatrix0to1[8][3] = 1.66668592197083; fWeightMatrix0to1[9][3] = -0.544530809498162; fWeightMatrix0to1[10][3] = -1.5207789987062; fWeightMatrix0to1[11][3] = -1.24871091546814; fWeightMatrix0to1[12][3] = 0.108618234955178; fWeightMatrix0to1[13][3] = -2.74794826519903; fWeightMatrix0to1[14][3] = -2.20864023339491; fWeightMatrix0to1[15][3] = 0.134496419911; fWeightMatrix0to1[16][3] = 0.159572473878806; fWeightMatrix0to1[17][3] = -1.02294130203134; fWeightMatrix0to1[18][3] = 1.29471450087007; fWeightMatrix0to1[19][3] = -0.798956704856951; fWeightMatrix0to1[20][3] = -0.82394165549115; fWeightMatrix0to1[21][3] = 1.04261395018295; fWeightMatrix0to1[22][3] = 0.127586262147451; fWeightMatrix0to1[23][3] = -0.624522781488574; fWeightMatrix0to1[24][3] = 0.461651714339081; fWeightMatrix0to1[25][3] = 1.35743743161249; fWeightMatrix0to1[26][3] = 1.14296037946953; fWeightMatrix0to1[27][3] = -1.44006858577095; fWeightMatrix0to1[28][3] = 1.79422580279238; fWeightMatrix0to1[0][4] = 0.526478652355646; fWeightMatrix0to1[1][4] = -0.359127323772641; fWeightMatrix0to1[2][4] = 0.640864925797263; fWeightMatrix0to1[3][4] = -2.43142211008262; fWeightMatrix0to1[4][4] = -5.93742290098408; fWeightMatrix0to1[5][4] = 0.649229424254435; fWeightMatrix0to1[6][4] = 0.168761870779416; fWeightMatrix0to1[7][4] = 1.01406547560396; fWeightMatrix0to1[8][4] = 0.318593352670332; fWeightMatrix0to1[9][4] = -0.0420607045599754; fWeightMatrix0to1[10][4] = -0.225222655137356; fWeightMatrix0to1[11][4] = 0.169656508829422; fWeightMatrix0to1[12][4] = -2.64508200148249; fWeightMatrix0to1[13][4] = 0.466509350512487; fWeightMatrix0to1[14][4] = 0.916972548019293; fWeightMatrix0to1[15][4] = -2.22156214124711; fWeightMatrix0to1[16][4] = 0.640776393166684; fWeightMatrix0to1[17][4] = -1.20769620116063; fWeightMatrix0to1[18][4] = 0.370714613103028; fWeightMatrix0to1[19][4] = 1.30982717982553; fWeightMatrix0to1[20][4] = 0.836228468595326; fWeightMatrix0to1[21][4] = -1.55504513806165; fWeightMatrix0to1[22][4] = 0.689284389047228; fWeightMatrix0to1[23][4] = 1.60154092743612; fWeightMatrix0to1[24][4] = 1.27211282688881; fWeightMatrix0to1[25][4] = -0.487601681929861; fWeightMatrix0to1[26][4] = -1.94965282986307; fWeightMatrix0to1[27][4] = 0.176789232346806; fWeightMatrix0to1[28][4] = -1.90999250439153; fWeightMatrix0to1[0][5] = 3.58493360204875; fWeightMatrix0to1[1][5] = 0.890199776510086; fWeightMatrix0to1[2][5] = -0.713868896156181; fWeightMatrix0to1[3][5] = -0.0293850901481746; fWeightMatrix0to1[4][5] = -1.06150280778961; fWeightMatrix0to1[5][5] = -1.74547831189871; fWeightMatrix0to1[6][5] = 0.50816706591057; fWeightMatrix0to1[7][5] = 1.79396603277146; fWeightMatrix0to1[8][5] = -0.0100932718971578; fWeightMatrix0to1[9][5] = -1.50701393266854; fWeightMatrix0to1[10][5] = 0.508324314438097; fWeightMatrix0to1[11][5] = 0.884828105325633; fWeightMatrix0to1[12][5] = 0.42345492008638; fWeightMatrix0to1[13][5] = 1.27838354580851; fWeightMatrix0to1[14][5] = -1.90143691339466; fWeightMatrix0to1[15][5] = 1.37171836605913; fWeightMatrix0to1[16][5] = 0.72610061797753; fWeightMatrix0to1[17][5] = 0.596897081530486; fWeightMatrix0to1[18][5] = 1.29744341313618; fWeightMatrix0to1[19][5] = 0.931129449573089; fWeightMatrix0to1[20][5] = -0.386616633901256; fWeightMatrix0to1[21][5] = -1.74523946013818; fWeightMatrix0to1[22][5] = 0.93166668605933; fWeightMatrix0to1[23][5] = -0.845046058125106; fWeightMatrix0to1[24][5] = -0.00541736433407298; fWeightMatrix0to1[25][5] = 1.33433684410139; fWeightMatrix0to1[26][5] = 0.896707316800896; fWeightMatrix0to1[27][5] = -0.106996069740775; fWeightMatrix0to1[28][5] = 1.83438589306566; fWeightMatrix0to1[0][6] = 1.76792276058426; fWeightMatrix0to1[1][6] = -2.24782165557471; fWeightMatrix0to1[2][6] = 0.482265054749806; fWeightMatrix0to1[3][6] = -0.261001802920622; fWeightMatrix0to1[4][6] = 0.673860766043865; fWeightMatrix0to1[5][6] = -2.05432136743607; fWeightMatrix0to1[6][6] = -1.43478654448927; fWeightMatrix0to1[7][6] = 1.79706621690958; fWeightMatrix0to1[8][6] = 1.8868875980046; fWeightMatrix0to1[9][6] = -1.86210232346343; fWeightMatrix0to1[10][6] = 0.132809097836212; fWeightMatrix0to1[11][6] = -0.723243824499904; fWeightMatrix0to1[12][6] = 0.424454835270237; fWeightMatrix0to1[13][6] = 2.4161996171475; fWeightMatrix0to1[14][6] = -0.948891835715404; fWeightMatrix0to1[15][6] = -0.251247408485998; fWeightMatrix0to1[16][6] = -1.73392839037994; fWeightMatrix0to1[17][6] = 1.1228467605636; fWeightMatrix0to1[18][6] = 1.35479804770889; fWeightMatrix0to1[19][6] = 0.865230785544034; fWeightMatrix0to1[20][6] = 0.540904771403853; fWeightMatrix0to1[21][6] = -0.787505871824211; fWeightMatrix0to1[22][6] = -1.9337371180498; fWeightMatrix0to1[23][6] = 1.0395406656076; fWeightMatrix0to1[24][6] = 0.265288766765765; fWeightMatrix0to1[25][6] = -1.11912401939822; fWeightMatrix0to1[26][6] = -0.139338871996481; fWeightMatrix0to1[27][6] = -0.115470576505102; fWeightMatrix0to1[28][6] = 0.988534592840665; fWeightMatrix0to1[0][7] = -1.44287290372255; fWeightMatrix0to1[1][7] = 1.17564482588826; fWeightMatrix0to1[2][7] = 0.812366426222167; fWeightMatrix0to1[3][7] = -1.00557544125316; fWeightMatrix0to1[4][7] = -2.73853581244523; fWeightMatrix0to1[5][7] = 1.36575168221815; fWeightMatrix0to1[6][7] = 0.610147941120189; fWeightMatrix0to1[7][7] = -0.251655731335698; fWeightMatrix0to1[8][7] = -0.00886240656323481; fWeightMatrix0to1[9][7] = -1.52149029797058; fWeightMatrix0to1[10][7] = -0.165544897904451; fWeightMatrix0to1[11][7] = -0.719484985983338; fWeightMatrix0to1[12][7] = 0.53402354456471; fWeightMatrix0to1[13][7] = 0.0882961706966191; fWeightMatrix0to1[14][7] = -1.04992993777163; fWeightMatrix0to1[15][7] = 1.95980161820262; fWeightMatrix0to1[16][7] = -2.21515554344378; fWeightMatrix0to1[17][7] = -0.837413465552693; fWeightMatrix0to1[18][7] = 0.894756450215928; fWeightMatrix0to1[19][7] = -1.41180110616615; fWeightMatrix0to1[20][7] = 1.48398188461843; fWeightMatrix0to1[21][7] = 1.75118371184289; fWeightMatrix0to1[22][7] = -1.53758888026539; fWeightMatrix0to1[23][7] = 1.64389083588417; fWeightMatrix0to1[24][7] = 0.716102259780469; fWeightMatrix0to1[25][7] = 0.00352606871374302; fWeightMatrix0to1[26][7] = -0.140908257822308; fWeightMatrix0to1[27][7] = 0.810910115397995; fWeightMatrix0to1[28][7] = 0.1682874417063; fWeightMatrix0to1[0][8] = 2.43524918246257; fWeightMatrix0to1[1][8] = -1.27959136675864; fWeightMatrix0to1[2][8] = 2.85336890886433; fWeightMatrix0to1[3][8] = -1.73006853399511; fWeightMatrix0to1[4][8] = 1.72976159027643; fWeightMatrix0to1[5][8] = -0.997902593735602; fWeightMatrix0to1[6][8] = -1.61414555326739; fWeightMatrix0to1[7][8] = -2.29501621780229; fWeightMatrix0to1[8][8] = -1.8421383899822; fWeightMatrix0to1[9][8] = -0.271621109950076; fWeightMatrix0to1[10][8] = -3.18291921691821; fWeightMatrix0to1[11][8] = -0.466262996188629; fWeightMatrix0to1[12][8] = -1.87400040229029; fWeightMatrix0to1[13][8] = 0.119276936406826; fWeightMatrix0to1[14][8] = -1.65588058363183; fWeightMatrix0to1[15][8] = -1.80863852599856; fWeightMatrix0to1[16][8] = 1.4916599651878; fWeightMatrix0to1[17][8] = -1.27480840342423; fWeightMatrix0to1[18][8] = 0.230102511028997; fWeightMatrix0to1[19][8] = -0.929685332439021; fWeightMatrix0to1[20][8] = 0.0389088942470583; fWeightMatrix0to1[21][8] = 2.70819786487626; fWeightMatrix0to1[22][8] = 1.14997392247161; fWeightMatrix0to1[23][8] = -0.198613570732011; fWeightMatrix0to1[24][8] = -1.83705586173086; fWeightMatrix0to1[25][8] = 1.14820994425421; fWeightMatrix0to1[26][8] = -1.25520923498029; fWeightMatrix0to1[27][8] = -1.68450935686185; fWeightMatrix0to1[28][8] = 0.594572528750385; fWeightMatrix0to1[0][9] = 0.387931218406434; fWeightMatrix0to1[1][9] = 1.4708746075717; fWeightMatrix0to1[2][9] = -0.344211080394871; fWeightMatrix0to1[3][9] = -0.596029610841303; fWeightMatrix0to1[4][9] = -0.410491727988972; fWeightMatrix0to1[5][9] = -2.2011949520801; fWeightMatrix0to1[6][9] = 0.692068558991858; fWeightMatrix0to1[7][9] = 1.80854338772707; fWeightMatrix0to1[8][9] = -0.740711611304711; fWeightMatrix0to1[9][9] = -0.983874072734289; fWeightMatrix0to1[10][9] = 0.973415559928625; fWeightMatrix0to1[11][9] = 0.276004054611289; fWeightMatrix0to1[12][9] = -0.666659088424883; fWeightMatrix0to1[13][9] = 1.18557737678259; fWeightMatrix0to1[14][9] = 0.824750906858888; fWeightMatrix0to1[15][9] = 0.952639811446226; fWeightMatrix0to1[16][9] = 0.858163101765475; fWeightMatrix0to1[17][9] = 0.902062491695227; fWeightMatrix0to1[18][9] = -0.447915872008473; fWeightMatrix0to1[19][9] = 0.130664282240762; fWeightMatrix0to1[20][9] = -0.501210476335255; fWeightMatrix0to1[21][9] = -1.09847581440651; fWeightMatrix0to1[22][9] = -0.932663108758027; fWeightMatrix0to1[23][9] = -1.48953058794694; fWeightMatrix0to1[24][9] = -0.833541898096207; fWeightMatrix0to1[25][9] = -2.58390960991518; fWeightMatrix0to1[26][9] = 2.89028188071305; fWeightMatrix0to1[27][9] = -1.58196363144138; fWeightMatrix0to1[28][9] = 1.60670878386155; fWeightMatrix0to1[0][10] = -1.40824572903622; fWeightMatrix0to1[1][10] = 1.78798146406331; fWeightMatrix0to1[2][10] = -0.856416262581229; fWeightMatrix0to1[3][10] = 0.915319503167458; fWeightMatrix0to1[4][10] = 0.486126158350295; fWeightMatrix0to1[5][10] = -1.47048048065924; fWeightMatrix0to1[6][10] = 0.145729581121149; fWeightMatrix0to1[7][10] = 1.51493491868825; fWeightMatrix0to1[8][10] = -1.95492654487515; fWeightMatrix0to1[9][10] = -1.5820326768188; fWeightMatrix0to1[10][10] = -1.74674731349605; fWeightMatrix0to1[11][10] = -1.57860668231817; fWeightMatrix0to1[12][10] = 1.11321358800889; fWeightMatrix0to1[13][10] = -0.704921030849089; fWeightMatrix0to1[14][10] = 0.702792669149091; fWeightMatrix0to1[15][10] = -1.04609889504516; fWeightMatrix0to1[16][10] = -1.98242618612968; fWeightMatrix0to1[17][10] = -1.83863295003596; fWeightMatrix0to1[18][10] = -0.571872073289533; fWeightMatrix0to1[19][10] = -0.557182712869464; fWeightMatrix0to1[20][10] = 1.03793102567812; fWeightMatrix0to1[21][10] = -1.18170196378739; fWeightMatrix0to1[22][10] = -1.35534279955496; fWeightMatrix0to1[23][10] = 2.02557035466363; fWeightMatrix0to1[24][10] = 0.517937809825158; fWeightMatrix0to1[25][10] = 0.914641750770091; fWeightMatrix0to1[26][10] = 3.02477776235016; fWeightMatrix0to1[27][10] = -1.49566953131752; fWeightMatrix0to1[28][10] = 0.855742347242653; fWeightMatrix0to1[0][11] = 0.772936035236732; fWeightMatrix0to1[1][11] = -0.649811149791732; fWeightMatrix0to1[2][11] = -0.564777401820076; fWeightMatrix0to1[3][11] = 1.1742268774675; fWeightMatrix0to1[4][11] = -0.254434016596408; fWeightMatrix0to1[5][11] = 0.285052963917148; fWeightMatrix0to1[6][11] = 1.45652495328846; fWeightMatrix0to1[7][11] = 0.927870587189607; fWeightMatrix0to1[8][11] = 1.94236905926952; fWeightMatrix0to1[9][11] = -1.46586426421106; fWeightMatrix0to1[10][11] = 0.85215062340744; fWeightMatrix0to1[11][11] = -2.60838240083635; fWeightMatrix0to1[12][11] = -0.11196522607708; fWeightMatrix0to1[13][11] = -1.1671649368494; fWeightMatrix0to1[14][11] = -1.41115402081381; fWeightMatrix0to1[15][11] = 0.23430104938033; fWeightMatrix0to1[16][11] = 1.7256762937896; fWeightMatrix0to1[17][11] = 0.324337615125914; fWeightMatrix0to1[18][11] = 1.1713537053152; fWeightMatrix0to1[19][11] = 0.725171297650588; fWeightMatrix0to1[20][11] = 0.398445158564924; fWeightMatrix0to1[21][11] = -1.47135515661545; fWeightMatrix0to1[22][11] = -0.00933202451165727; fWeightMatrix0to1[23][11] = 2.2252632261282; fWeightMatrix0to1[24][11] = -1.36368115475205; fWeightMatrix0to1[25][11] = 0.909146295655832; fWeightMatrix0to1[26][11] = -0.18215837194479; fWeightMatrix0to1[27][11] = -0.181023794498793; fWeightMatrix0to1[28][11] = -0.515635646315968; fWeightMatrix0to1[0][12] = 0.497751679909269; fWeightMatrix0to1[1][12] = -0.982596941538852; fWeightMatrix0to1[2][12] = 1.22182820748371; fWeightMatrix0to1[3][12] = 2.05366632722143; fWeightMatrix0to1[4][12] = -0.354615575451291; fWeightMatrix0to1[5][12] = 0.0532825379532706; fWeightMatrix0to1[6][12] = -1.41076613304722; fWeightMatrix0to1[7][12] = -1.51964562765208; fWeightMatrix0to1[8][12] = -1.83792759579519; fWeightMatrix0to1[9][12] = 1.2964692788634; fWeightMatrix0to1[10][12] = -0.668728338104944; fWeightMatrix0to1[11][12] = -2.23567867042221; fWeightMatrix0to1[12][12] = 0.201474955567376; fWeightMatrix0to1[13][12] = -2.53718220312655; fWeightMatrix0to1[14][12] = -0.942663504561849; fWeightMatrix0to1[15][12] = -1.79780769114921; fWeightMatrix0to1[16][12] = 1.17490700252988; fWeightMatrix0to1[17][12] = -1.06566892376102; fWeightMatrix0to1[18][12] = -2.46911380883928; fWeightMatrix0to1[19][12] = -0.243265626963757; fWeightMatrix0to1[20][12] = -0.451464709105452; fWeightMatrix0to1[21][12] = -1.45716235618183; fWeightMatrix0to1[22][12] = 1.0823657496619; fWeightMatrix0to1[23][12] = -1.15614528319236; fWeightMatrix0to1[24][12] = 0.148067070844501; fWeightMatrix0to1[25][12] = 1.51790202029012; fWeightMatrix0to1[26][12] = 0.802753257734416; fWeightMatrix0to1[27][12] = 0.0556079817449665; fWeightMatrix0to1[28][12] = 0.909406053263084; fWeightMatrix0to1[0][13] = 2.07633132895676; fWeightMatrix0to1[1][13] = 2.22335889736243; fWeightMatrix0to1[2][13] = 0.708878955019445; fWeightMatrix0to1[3][13] = -1.43848103110873; fWeightMatrix0to1[4][13] = 3.09393958477734; fWeightMatrix0to1[5][13] = -1.08791399132597; fWeightMatrix0to1[6][13] = 0.772321666092722; fWeightMatrix0to1[7][13] = 1.74996386495101; fWeightMatrix0to1[8][13] = 0.207450767206699; fWeightMatrix0to1[9][13] = 1.06685771517707; fWeightMatrix0to1[10][13] = 0.913441032382002; fWeightMatrix0to1[11][13] = 1.30591495864848; fWeightMatrix0to1[12][13] = -3.27598734462265; fWeightMatrix0to1[13][13] = 2.17249444316386; fWeightMatrix0to1[14][13] = 1.05301674520826; fWeightMatrix0to1[15][13] = -2.03788738576905; fWeightMatrix0to1[16][13] = -1.25642522800737; fWeightMatrix0to1[17][13] = -1.14024819227018; fWeightMatrix0to1[18][13] = 2.2362125673183; fWeightMatrix0to1[19][13] = 1.17977879204133; fWeightMatrix0to1[20][13] = 1.17186753539722; fWeightMatrix0to1[21][13] = 1.70028962272145; fWeightMatrix0to1[22][13] = -0.570367209649251; fWeightMatrix0to1[23][13] = 2.0714369236632; fWeightMatrix0to1[24][13] = 2.31527986829094; fWeightMatrix0to1[25][13] = 3.08604379523093; fWeightMatrix0to1[26][13] = 0.059458056011361; fWeightMatrix0to1[27][13] = 1.8926269190279; fWeightMatrix0to1[28][13] = -2.28215766666391; fWeightMatrix0to1[0][14] = -0.595521650483789; fWeightMatrix0to1[1][14] = 2.27794152902377; fWeightMatrix0to1[2][14] = -0.216189914919299; fWeightMatrix0to1[3][14] = 0.0312296111276993; fWeightMatrix0to1[4][14] = -2.05188678156117; fWeightMatrix0to1[5][14] = -3.61678809072177; fWeightMatrix0to1[6][14] = 0.293709336847431; fWeightMatrix0to1[7][14] = -4.96598065321546; fWeightMatrix0to1[8][14] = 0.193467650906315; fWeightMatrix0to1[9][14] = -0.249724161392436; fWeightMatrix0to1[10][14] = 1.6795056130215; fWeightMatrix0to1[11][14] = 5.75192881988548; fWeightMatrix0to1[12][14] = 5.1031716351818; fWeightMatrix0to1[13][14] = -0.982941792920784; fWeightMatrix0to1[14][14] = -0.0658767726474297; fWeightMatrix0to1[15][14] = 0.0433234931087687; fWeightMatrix0to1[16][14] = 5.91796667997763; fWeightMatrix0to1[17][14] = -1.96408362616087; fWeightMatrix0to1[18][14] = -1.92300065519665; fWeightMatrix0to1[19][14] = 0.171044885560411; fWeightMatrix0to1[20][14] = -1.34204707462724; fWeightMatrix0to1[21][14] = -1.50445271238614; fWeightMatrix0to1[22][14] = -1.61312463562367; fWeightMatrix0to1[23][14] = 1.04348356685918; fWeightMatrix0to1[24][14] = -1.35811016029783; fWeightMatrix0to1[25][14] = -10.6693433410946; fWeightMatrix0to1[26][14] = -7.53759264640067; fWeightMatrix0to1[27][14] = 0.0830876491544742; fWeightMatrix0to1[28][14] = 3.87030713123854; fWeightMatrix0to1[0][15] = 2.03620642309628; fWeightMatrix0to1[1][15] = 1.84750784316982; fWeightMatrix0to1[2][15] = -0.445917816013399; fWeightMatrix0to1[3][15] = -1.50471488832732; fWeightMatrix0to1[4][15] = -0.260994825312799; fWeightMatrix0to1[5][15] = -1.0495069064824; fWeightMatrix0to1[6][15] = -1.71353895125584; fWeightMatrix0to1[7][15] = 0.166769023019903; fWeightMatrix0to1[8][15] = 0.0387782518312605; fWeightMatrix0to1[9][15] = -1.54443973536924; fWeightMatrix0to1[10][15] = 1.52273230694086; fWeightMatrix0to1[11][15] = 0.664277491733355; fWeightMatrix0to1[12][15] = -0.277387901486763; fWeightMatrix0to1[13][15] = -0.813688277705113; fWeightMatrix0to1[14][15] = -0.516649891753903; fWeightMatrix0to1[15][15] = 1.74645594311843; fWeightMatrix0to1[16][15] = -1.20930021622918; fWeightMatrix0to1[17][15] = 0.222925730953261; fWeightMatrix0to1[18][15] = 1.92822699661927; fWeightMatrix0to1[19][15] = 2.23696118921066; fWeightMatrix0to1[20][15] = -0.888191644467473; fWeightMatrix0to1[21][15] = 1.58828335888625; fWeightMatrix0to1[22][15] = -2.05903437492756; fWeightMatrix0to1[23][15] = 1.8922807493739; fWeightMatrix0to1[24][15] = 2.19115070619802; fWeightMatrix0to1[25][15] = 1.55782050370425; fWeightMatrix0to1[26][15] = -0.0611615128073629; fWeightMatrix0to1[27][15] = 0.42303609804415; fWeightMatrix0to1[28][15] = -0.545922160260926; fWeightMatrix0to1[0][16] = 1.37890311620959; fWeightMatrix0to1[1][16] = 0.890511360039911; fWeightMatrix0to1[2][16] = -0.631687101843786; fWeightMatrix0to1[3][16] = -1.03391513342263; fWeightMatrix0to1[4][16] = -0.00562050728100023; fWeightMatrix0to1[5][16] = 2.05103709146821; fWeightMatrix0to1[6][16] = 0.276121227180407; fWeightMatrix0to1[7][16] = 0.180125530557285; fWeightMatrix0to1[8][16] = -1.90823460474369; fWeightMatrix0to1[9][16] = 1.73468848235989; fWeightMatrix0to1[10][16] = 0.350277850475641; fWeightMatrix0to1[11][16] = -1.84267332154051; fWeightMatrix0to1[12][16] = -0.667767881006798; fWeightMatrix0to1[13][16] = -1.20479142926515; fWeightMatrix0to1[14][16] = 1.65401564474931; fWeightMatrix0to1[15][16] = 1.44474320444825; fWeightMatrix0to1[16][16] = -1.33405517889362; fWeightMatrix0to1[17][16] = -1.17665876068131; fWeightMatrix0to1[18][16] = 1.8985835351894; fWeightMatrix0to1[19][16] = 2.02176601069086; fWeightMatrix0to1[20][16] = 0.449595473844088; fWeightMatrix0to1[21][16] = 0.381865593142655; fWeightMatrix0to1[22][16] = -1.40705083205369; fWeightMatrix0to1[23][16] = -0.964249363438936; fWeightMatrix0to1[24][16] = 1.47954858706222; fWeightMatrix0to1[25][16] = 1.94589373974116; fWeightMatrix0to1[26][16] = 0.419029744672453; fWeightMatrix0to1[27][16] = -1.54781621031651; fWeightMatrix0to1[28][16] = -1.61492734322985; fWeightMatrix0to1[0][17] = -1.7649288096394; fWeightMatrix0to1[1][17] = 0.280601371812652; fWeightMatrix0to1[2][17] = -1.56375875460423; fWeightMatrix0to1[3][17] = 1.20321325096284; fWeightMatrix0to1[4][17] = -0.50511946905124; fWeightMatrix0to1[5][17] = 1.95063847726089; fWeightMatrix0to1[6][17] = 0.193937225042788; fWeightMatrix0to1[7][17] = -1.10658666001746; fWeightMatrix0to1[8][17] = 1.49968756142779; fWeightMatrix0to1[9][17] = 1.82919888744624; fWeightMatrix0to1[10][17] = 1.1196659636757; fWeightMatrix0to1[11][17] = -1.13767310807778; fWeightMatrix0to1[12][17] = -1.44173858047501; fWeightMatrix0to1[13][17] = 1.68623718521024; fWeightMatrix0to1[14][17] = -1.29679463711843; fWeightMatrix0to1[15][17] = 0.371773357449071; fWeightMatrix0to1[16][17] = -2.07777369880565; fWeightMatrix0to1[17][17] = 1.19273974044137; fWeightMatrix0to1[18][17] = -0.831027728813257; fWeightMatrix0to1[19][17] = 1.07658974097691; fWeightMatrix0to1[20][17] = -0.219347491050056; fWeightMatrix0to1[21][17] = 0.717796472070872; fWeightMatrix0to1[22][17] = -0.749818153274059; fWeightMatrix0to1[23][17] = -0.586982890435588; fWeightMatrix0to1[24][17] = 1.16434275717583; fWeightMatrix0to1[25][17] = 2.02617685865969; fWeightMatrix0to1[26][17] = 0.996942746188715; fWeightMatrix0to1[27][17] = 1.27267244930023; fWeightMatrix0to1[28][17] = -1.65054501748867; fWeightMatrix0to1[0][18] = 1.88928546972772; fWeightMatrix0to1[1][18] = -1.19458882077031; fWeightMatrix0to1[2][18] = 1.00125482491094; fWeightMatrix0to1[3][18] = 1.93452935155572; fWeightMatrix0to1[4][18] = 1.18960524907228; fWeightMatrix0to1[5][18] = 0.990557654263569; fWeightMatrix0to1[6][18] = 1.35046139908541; fWeightMatrix0to1[7][18] = -1.9960830834443; fWeightMatrix0to1[8][18] = -0.572734132040924; fWeightMatrix0to1[9][18] = -0.293895332897382; fWeightMatrix0to1[10][18] = 0.661269119459282; fWeightMatrix0to1[11][18] = -0.7607108052297; fWeightMatrix0to1[12][18] = -0.263609954487942; fWeightMatrix0to1[13][18] = -0.674883567997498; fWeightMatrix0to1[14][18] = -0.182388182128769; fWeightMatrix0to1[15][18] = -1.64793191654095; fWeightMatrix0to1[16][18] = -0.489177038914121; fWeightMatrix0to1[17][18] = -1.76867173667848; fWeightMatrix0to1[18][18] = -0.595303539859038; fWeightMatrix0to1[19][18] = -0.101796851549135; fWeightMatrix0to1[20][18] = -1.25133290846568; fWeightMatrix0to1[21][18] = -1.08373756427113; fWeightMatrix0to1[22][18] = 0.361902393949075; fWeightMatrix0to1[23][18] = 0.346039566170988; fWeightMatrix0to1[24][18] = -0.0504393899481414; fWeightMatrix0to1[25][18] = -0.514739737493353; fWeightMatrix0to1[26][18] = 1.83773146386299; fWeightMatrix0to1[27][18] = -0.188030417221415; fWeightMatrix0to1[28][18] = 1.35806342912171; fWeightMatrix0to1[0][19] = 1.24076151234952; fWeightMatrix0to1[1][19] = -0.552834187954959; fWeightMatrix0to1[2][19] = -0.875643986129136; fWeightMatrix0to1[3][19] = 0.443296357543702; fWeightMatrix0to1[4][19] = -1.35713785611995; fWeightMatrix0to1[5][19] = -1.19903291814; fWeightMatrix0to1[6][19] = -1.23024579339535; fWeightMatrix0to1[7][19] = 1.23521987505936; fWeightMatrix0to1[8][19] = -1.73908292604341; fWeightMatrix0to1[9][19] = 2.16650828959665; fWeightMatrix0to1[10][19] = 1.69362498092439; fWeightMatrix0to1[11][19] = 0.932193558144234; fWeightMatrix0to1[12][19] = 0.94307965273902; fWeightMatrix0to1[13][19] = 0.602097782722282; fWeightMatrix0to1[14][19] = 0.357120888188209; fWeightMatrix0to1[15][19] = -1.51117296657613; fWeightMatrix0to1[16][19] = -2.12636473421949; fWeightMatrix0to1[17][19] = -0.878978048372206; fWeightMatrix0to1[18][19] = -0.961495214802638; fWeightMatrix0to1[19][19] = 1.19075799383651; fWeightMatrix0to1[20][19] = -0.351938305547026; fWeightMatrix0to1[21][19] = 0.49129743722509; fWeightMatrix0to1[22][19] = 1.31261068068724; fWeightMatrix0to1[23][19] = 1.28972797120008; fWeightMatrix0to1[24][19] = -1.00825666085613; fWeightMatrix0to1[25][19] = 1.23513865268312; fWeightMatrix0to1[26][19] = -1.59230959909616; fWeightMatrix0to1[27][19] = 1.0577754073558; fWeightMatrix0to1[28][19] = -1.22983748841617; fWeightMatrix0to1[0][20] = 0.724420241259024; fWeightMatrix0to1[1][20] = -0.760702679640971; fWeightMatrix0to1[2][20] = 1.89094315586273; fWeightMatrix0to1[3][20] = -3.22309900148934; fWeightMatrix0to1[4][20] = 4.14139727921391; fWeightMatrix0to1[5][20] = -1.53120837356432; fWeightMatrix0to1[6][20] = -0.576462534776936; fWeightMatrix0to1[7][20] = 1.54061040347885; fWeightMatrix0to1[8][20] = -0.240392235339998; fWeightMatrix0to1[9][20] = 0.563412387105667; fWeightMatrix0to1[10][20] = -2.48103742608311; fWeightMatrix0to1[11][20] = 1.15580519932902; fWeightMatrix0to1[12][20] = -1.70449859337885; fWeightMatrix0to1[13][20] = 2.32676130054244; fWeightMatrix0to1[14][20] = -2.14990104311165; fWeightMatrix0to1[15][20] = -0.752184461877266; fWeightMatrix0to1[16][20] = 2.34025711287125; fWeightMatrix0to1[17][20] = -2.08103757411685; fWeightMatrix0to1[18][20] = -1.13183131872179; fWeightMatrix0to1[19][20] = -1.17258510018964; fWeightMatrix0to1[20][20] = 1.67760986722466; fWeightMatrix0to1[21][20] = 1.11318763037679; fWeightMatrix0to1[22][20] = 1.19770634065477; fWeightMatrix0to1[23][20] = -1.9283564248362; fWeightMatrix0to1[24][20] = 0.784676070076978; fWeightMatrix0to1[25][20] = 0.765645602538819; fWeightMatrix0to1[26][20] = 0.621559198883924; fWeightMatrix0to1[27][20] = -1.56800456279377; fWeightMatrix0to1[28][20] = -0.750375852963199; fWeightMatrix0to1[0][21] = 0.541260024563618; fWeightMatrix0to1[1][21] = 0.531352239093304; fWeightMatrix0to1[2][21] = 1.63154314521792; fWeightMatrix0to1[3][21] = -0.356660986647823; fWeightMatrix0to1[4][21] = 0.841673338915764; fWeightMatrix0to1[5][21] = -0.671327955720989; fWeightMatrix0to1[6][21] = 1.94479161885899; fWeightMatrix0to1[7][21] = 0.60187790921861; fWeightMatrix0to1[8][21] = 1.35848853292348; fWeightMatrix0to1[9][21] = -0.890926683098265; fWeightMatrix0to1[10][21] = -1.54753313960072; fWeightMatrix0to1[11][21] = 1.09758961980533; fWeightMatrix0to1[12][21] = -0.00371744874990887; fWeightMatrix0to1[13][21] = 1.63665507839888; fWeightMatrix0to1[14][21] = 0.487223014600489; fWeightMatrix0to1[15][21] = -0.972179572414481; fWeightMatrix0to1[16][21] = -1.116763466711; fWeightMatrix0to1[17][21] = -1.81192329519576; fWeightMatrix0to1[18][21] = -0.000917387115805866; fWeightMatrix0to1[19][21] = -0.833045007022178; fWeightMatrix0to1[20][21] = -0.929522336726094; fWeightMatrix0to1[21][21] = -0.299955987358621; fWeightMatrix0to1[22][21] = -0.277934696297607; fWeightMatrix0to1[23][21] = 0.643604799424611; fWeightMatrix0to1[24][21] = -1.98220867172671; fWeightMatrix0to1[25][21] = -0.275120520106705; fWeightMatrix0to1[26][21] = 0.40619680496261; fWeightMatrix0to1[27][21] = -0.576370708554832; fWeightMatrix0to1[28][21] = 0.216639855374068; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = -0.683231631125639; fWeightMatrix1to2[0][1] = -0.805774965248671; fWeightMatrix1to2[0][2] = -1.24941529740431; fWeightMatrix1to2[0][3] = 0.81825947717427; fWeightMatrix1to2[0][4] = -1.6521407233679; fWeightMatrix1to2[0][5] = -0.478385683227321; fWeightMatrix1to2[0][6] = -1.92935903643261; fWeightMatrix1to2[0][7] = -0.977717190321436; fWeightMatrix1to2[0][8] = 0.205440336688721; fWeightMatrix1to2[0][9] = 0.578213061335827; fWeightMatrix1to2[0][10] = 0.679542870196391; fWeightMatrix1to2[0][11] = 1.60378402157294; fWeightMatrix1to2[0][12] = 0.80202491922332; fWeightMatrix1to2[0][13] = -0.519002356670992; fWeightMatrix1to2[0][14] = -3.59063551970034; fWeightMatrix1to2[0][15] = -0.404284070635703; fWeightMatrix1to2[0][16] = 1.04652687933418; fWeightMatrix1to2[0][17] = 0.524469146566782; fWeightMatrix1to2[0][18] = -1.3163591410293; fWeightMatrix1to2[0][19] = -0.425424309581852; fWeightMatrix1to2[0][20] = 1.69560197107703; fWeightMatrix1to2[0][21] = 0.958365710141517; fWeightMatrix1to2[0][22] = -1.09120896632986; fWeightMatrix1to2[0][23] = 0.190663590262656; fWeightMatrix1to2[0][24] = -0.160890293167752; fWeightMatrix1to2[0][25] = -1.65280152280359; fWeightMatrix1to2[0][26] = -2.12439228144199; fWeightMatrix1to2[0][27] = -2.88118002034203; fWeightMatrix1to2[0][28] = 0.936518045543298; fWeightMatrix1to2[0][29] = 0.369820742447165; } inline double ReadMuon_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 ReadMuon_Upstream_TMVA::InitTransform_1() { // Normalization transformation, initialisation fMin_1[0][0] = 172.490005493; fMax_1[0][0] = 4970293.5; fMin_1[1][0] = 356.059997559; fMax_1[1][0] = 1581282.75; fMin_1[2][0] = 172.490005493; fMax_1[2][0] = 4970293.5; fMin_1[0][1] = 0.832938909531; fMax_1[0][1] = 995273.875; fMin_1[1][1] = 12.315527916; fMax_1[1][1] = 538441.8125; 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.0124830389395; fMax_1[1][2] = 2.95766115189; fMin_1[2][2] = 0.00302399252541; fMax_1[2][2] = 2.999573946; fMin_1[0][3] = 4; fMax_1[0][3] = 28; fMin_1[1][3] = 4; fMax_1[1][3] = 23; 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] = -34.3928070068; fMax_1[1][4] = -0.403398215771; fMin_1[2][4] = -99.6241531372; fMax_1[2][4] = -0.319228202105; fMin_1[0][5] = 0.0317582078278; fMax_1[0][5] = 1; fMin_1[1][5] = 0.0835144221783; fMax_1[1][5] = 1; fMin_1[2][5] = 0.0317582078278; fMax_1[2][5] = 1; fMin_1[0][6] = -999; fMax_1[0][6] = 4999.73632812; fMin_1[1][6] = -999; fMax_1[1][6] = 4800.15234375; 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.000793279090431; fMax_1[1][7] = 31.5051403046; fMin_1[2][7] = 2.50487555604e-05; fMax_1[2][7] = 51.0802001953; fMin_1[0][8] = 1; fMax_1[0][8] = 24; fMin_1[1][8] = 1; fMax_1[1][8] = 20; 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] = 58.7677001953; fMin_1[2][13] = -999; fMax_1[2][13] = 107.511299133; fMin_1[0][14] = -999; fMax_1[0][14] = 69.573600769; fMin_1[1][14] = -999; fMax_1[1][14] = 62.9558982849; 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] = 53.9398994446; fMin_1[2][15] = -999; fMax_1[2][15] = 99.5278015137; fMin_1[0][16] = -999; fMax_1[0][16] = 62.6166000366; fMin_1[1][16] = -999; fMax_1[1][16] = 30.9769992828; fMin_1[2][16] = -999; fMax_1[2][16] = 62.6166000366; fMin_1[0][17] = -999; fMax_1[0][17] = 47.8530006409; fMin_1[1][17] = -999; fMax_1[1][17] = 37.2952003479; 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.31975746155; 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.660112380981; fMax_1[1][20] = 1.88202250004; fMin_1[2][20] = 0.486891388893; fMax_1[2][20] = 5.4943819046; } //_______________________________________________________________________ inline void ReadMuon_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 ); }