// Class: ReadGhost_Upstream_TMVA // Automatically generated by MethodBase::MakeClass // /* configuration options ===================================================== #GEN -*-*-*-*-*-*-*-*-*-*-*- general info -*-*-*-*-*-*-*-*-*-*-*- Method : MLP::Ghost_Upstream_TMVA TMVA Release : 4.1.4 [262404] ROOT Release : 5.34/05 [336389] Creator : jonrob Date : Wed Apr 10 09:58:51 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/Ghost/Upstream Training events: 1000000 Analysis type : [Classification] #OPT -*-*-*-*-*-*-*-*-*-*-*-*- options -*-*-*-*-*-*-*-*-*-*-*-*- # Set by User: NCycles: "750" [Number of training cycles] HiddenLayers: "30" [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 22 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] RichAbovePrThres RichAbovePrThres RichAbovePrThres RichAbovePrThres '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 ReadGhost_Upstream_TMVA : public IClassifierReader { public: // constructor ReadGhost_Upstream_TMVA( std::vector& theInputVars ) : IClassifierReader(), fClassName( "ReadGhost_Upstream_TMVA" ), fNvars( 22 ), fIsNormalised( false ) { // the training input variables const char* inputVars[] = { "TrackP", "TrackPt", "TrackChi2PerDof", "TrackNumDof", "TrackLikelihood", "TrackGhostProbability", "TrackCloneDist", "TrackFitVeloChi2", "TrackFitVeloNDoF", "RichUsedAero", "RichUsedR1Gas", "RichAbovePiThres", "RichAboveKaThres", "RichAbovePrThres", "RichDLLe", "RichDLLmu", "RichDLLk", "RichDLLp", "RichDLLbt", "InAccBrem", "BremPIDe", "VeloCharge" }; // sanity checks if (theInputVars.size() <= 0) { std::cout << "Problem in class \"" << fClassName << "\": empty input vector" << std::endl; fStatusIsClean = false; } if (theInputVars.size() != fNvars) { std::cout << "Problem in class \"" << fClassName << "\": mismatch in number of input values: " << theInputVars.size() << " != " << fNvars << std::endl; fStatusIsClean = false; } // validate input variables for (size_t ivar = 0; ivar < theInputVars.size(); ivar++) { if (theInputVars[ivar] != inputVars[ivar]) { std::cout << "Problem in class \"" << fClassName << "\": mismatch in input variable names" << std::endl << " for variable [" << ivar << "]: " << theInputVars[ivar].c_str() << " != " << inputVars[ivar] << std::endl; fStatusIsClean = false; } } // initialize min and max vectors (for normalisation) fVmin[0] = -1; fVmax[0] = 1; fVmin[1] = -1; fVmax[1] = 1; fVmin[2] = -1; fVmax[2] = 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; fVmin[21] = -1; fVmax[21] = 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] = 'I'; fType[14] = 'F'; fType[15] = 'F'; fType[16] = 'F'; fType[17] = 'F'; fType[18] = 'F'; fType[19] = 'I'; fType[20] = 'F'; fType[21] = 'F'; // initialize constants Initialize(); // initialize transformation InitTransform(); } // destructor virtual ~ReadGhost_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][22]; double fMax_1[3][22]; 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[22]; double fVmax[22]; 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[22]; // 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[31][23]; // weight matrix from layer 0 to 1 double fWeightMatrix1to2[1][31]; // weight matrix from layer 1 to 2 double * fWeights[3]; }; inline void ReadGhost_Upstream_TMVA::Initialize() { // build network structure fLayers = 3; fLayerSize[0] = 23; fWeights[0] = new double[23]; fLayerSize[1] = 31; fWeights[1] = new double[31]; fLayerSize[2] = 1; fWeights[2] = new double[1]; // weight matrix from layer 0 to 1 fWeightMatrix0to1[0][0] = -8.1055917938716; fWeightMatrix0to1[1][0] = 2.77442497691361; fWeightMatrix0to1[2][0] = 4.45867218359604; fWeightMatrix0to1[3][0] = 2.45391878324597; fWeightMatrix0to1[4][0] = -21.5347820578059; fWeightMatrix0to1[5][0] = 5.17635415678748; fWeightMatrix0to1[6][0] = -2.57540901377314; fWeightMatrix0to1[7][0] = 0.365019962957824; fWeightMatrix0to1[8][0] = -0.291955038820224; fWeightMatrix0to1[9][0] = 0.111567966950837; fWeightMatrix0to1[10][0] = 6.57474249448877; fWeightMatrix0to1[11][0] = -1.7692498307573; fWeightMatrix0to1[12][0] = 3.93362968850239; fWeightMatrix0to1[13][0] = -9.46814305534415; fWeightMatrix0to1[14][0] = 11.3843139778735; fWeightMatrix0to1[15][0] = -4.17760345946005; fWeightMatrix0to1[16][0] = -0.177105955407464; fWeightMatrix0to1[17][0] = 2.17489115850537; fWeightMatrix0to1[18][0] = 0.79792184382065; fWeightMatrix0to1[19][0] = 17.8179930390165; fWeightMatrix0to1[20][0] = -1.11059820349741; fWeightMatrix0to1[21][0] = -4.32425862128873; fWeightMatrix0to1[22][0] = 7.48079718940575; fWeightMatrix0to1[23][0] = -2.74070822654563; fWeightMatrix0to1[24][0] = -4.41487031378917; fWeightMatrix0to1[25][0] = 0.324727939451805; fWeightMatrix0to1[26][0] = 2.51214512161196; fWeightMatrix0to1[27][0] = -2.87000066307133; fWeightMatrix0to1[28][0] = 4.93441789872794; fWeightMatrix0to1[29][0] = -0.458191791931463; fWeightMatrix0to1[0][1] = 1.04191484567439; fWeightMatrix0to1[1][1] = -2.25235416047029; fWeightMatrix0to1[2][1] = 2.12886975880041; fWeightMatrix0to1[3][1] = -4.21799952100439; fWeightMatrix0to1[4][1] = -0.0158959098216938; fWeightMatrix0to1[5][1] = -0.731175840449645; fWeightMatrix0to1[6][1] = -1.68875206535744; fWeightMatrix0to1[7][1] = 0.651149056139718; fWeightMatrix0to1[8][1] = 4.12212844061638; fWeightMatrix0to1[9][1] = 0.913832029571114; fWeightMatrix0to1[10][1] = 2.0292108297155; fWeightMatrix0to1[11][1] = -1.45161964628767; fWeightMatrix0to1[12][1] = 11.6787477078776; fWeightMatrix0to1[13][1] = 2.61437808958932; fWeightMatrix0to1[14][1] = -2.8579530447302; fWeightMatrix0to1[15][1] = 3.91829071619267; fWeightMatrix0to1[16][1] = -2.07997918944419; fWeightMatrix0to1[17][1] = 0.508499395388716; fWeightMatrix0to1[18][1] = 1.49198088719296; fWeightMatrix0to1[19][1] = 9.9365599827396; fWeightMatrix0to1[20][1] = 8.6385656622935; fWeightMatrix0to1[21][1] = -0.496548792326014; fWeightMatrix0to1[22][1] = -6.72437223671323; fWeightMatrix0to1[23][1] = -1.21653560729663; fWeightMatrix0to1[24][1] = -9.61075255682883; fWeightMatrix0to1[25][1] = -5.56811903385816; fWeightMatrix0to1[26][1] = 0.1764624004527; fWeightMatrix0to1[27][1] = 2.3239291632123; fWeightMatrix0to1[28][1] = 4.61192866604662; fWeightMatrix0to1[29][1] = 0.771540739359704; fWeightMatrix0to1[0][2] = -1.05190248658705; fWeightMatrix0to1[1][2] = -0.208038676627312; fWeightMatrix0to1[2][2] = -4.38387040284862; fWeightMatrix0to1[3][2] = 0.929403223118175; fWeightMatrix0to1[4][2] = -0.858363650327436; fWeightMatrix0to1[5][2] = 0.96804933855864; fWeightMatrix0to1[6][2] = 0.148585246536977; fWeightMatrix0to1[7][2] = -5.07982773886775; fWeightMatrix0to1[8][2] = -4.24115177886362; fWeightMatrix0to1[9][2] = -1.03680507491568; fWeightMatrix0to1[10][2] = 0.398233197932962; fWeightMatrix0to1[11][2] = -1.16650120718893; fWeightMatrix0to1[12][2] = -0.0700000020386512; fWeightMatrix0to1[13][2] = -0.405554980004965; fWeightMatrix0to1[14][2] = 1.08748508758685; fWeightMatrix0to1[15][2] = 1.63023467877829; fWeightMatrix0to1[16][2] = -0.769755478098158; fWeightMatrix0to1[17][2] = -1.71965034491977; fWeightMatrix0to1[18][2] = 1.19636759919735; fWeightMatrix0to1[19][2] = -1.40237266908584; fWeightMatrix0to1[20][2] = 3.29736954323811; fWeightMatrix0to1[21][2] = 4.96159578107809; fWeightMatrix0to1[22][2] = -0.787724061031914; fWeightMatrix0to1[23][2] = 5.66299799422329; fWeightMatrix0to1[24][2] = -0.521026764153353; fWeightMatrix0to1[25][2] = 3.1459145536298; fWeightMatrix0to1[26][2] = -1.20133778281094; fWeightMatrix0to1[27][2] = 0.160201062769896; fWeightMatrix0to1[28][2] = 2.32692283171683; fWeightMatrix0to1[29][2] = -2.65670211795383; fWeightMatrix0to1[0][3] = 5.87233164275524; fWeightMatrix0to1[1][3] = 1.24884612475032; fWeightMatrix0to1[2][3] = -11.258650293388; fWeightMatrix0to1[3][3] = 0.763368094178843; fWeightMatrix0to1[4][3] = 5.42636134312887; fWeightMatrix0to1[5][3] = 18.1265361798506; fWeightMatrix0to1[6][3] = 6.69002587786785; fWeightMatrix0to1[7][3] = 3.45925094270806; fWeightMatrix0to1[8][3] = -10.1845742004744; fWeightMatrix0to1[9][3] = 0.371930909965354; fWeightMatrix0to1[10][3] = -5.94278279135505; fWeightMatrix0to1[11][3] = -4.271492798989; fWeightMatrix0to1[12][3] = 2.35020539975752; fWeightMatrix0to1[13][3] = 6.24169080020361; fWeightMatrix0to1[14][3] = 0.820572954271202; fWeightMatrix0to1[15][3] = -4.44409418109412; fWeightMatrix0to1[16][3] = 1.9770040200615; fWeightMatrix0to1[17][3] = -0.340547655704382; fWeightMatrix0to1[18][3] = -0.995637345185625; fWeightMatrix0to1[19][3] = 18.7103622363534; fWeightMatrix0to1[20][3] = -10.6720332688987; fWeightMatrix0to1[21][3] = 2.07962478920224; fWeightMatrix0to1[22][3] = -56.3860872004707; fWeightMatrix0to1[23][3] = -9.57601948467431; fWeightMatrix0to1[24][3] = -5.04347849924966; fWeightMatrix0to1[25][3] = 7.29602427399399; fWeightMatrix0to1[26][3] = 3.89972453394067; fWeightMatrix0to1[27][3] = -0.346548990672592; fWeightMatrix0to1[28][3] = 3.5560222439817; fWeightMatrix0to1[29][3] = -8.98305438387805; fWeightMatrix0to1[0][4] = -6.1058327327789; fWeightMatrix0to1[1][4] = -0.124135197327752; fWeightMatrix0to1[2][4] = -2.49061139202344; fWeightMatrix0to1[3][4] = -4.31895809758446; fWeightMatrix0to1[4][4] = -6.3165996377098; fWeightMatrix0to1[5][4] = -4.12838354930795; fWeightMatrix0to1[6][4] = -4.80834050605481; fWeightMatrix0to1[7][4] = -9.58697466212728; fWeightMatrix0to1[8][4] = -1.65498356121994; fWeightMatrix0to1[9][4] = -0.843712817425671; fWeightMatrix0to1[10][4] = -0.1535225410766; fWeightMatrix0to1[11][4] = -8.99851579224886; fWeightMatrix0to1[12][4] = 1.29011031912578; fWeightMatrix0to1[13][4] = -0.467339331451732; fWeightMatrix0to1[14][4] = 6.45830501810962; fWeightMatrix0to1[15][4] = -1.04890035148337; fWeightMatrix0to1[16][4] = -4.77876069423345; fWeightMatrix0to1[17][4] = -2.76483977123179; fWeightMatrix0to1[18][4] = 0.226173478171033; fWeightMatrix0to1[19][4] = 12.2348515534944; fWeightMatrix0to1[20][4] = 12.9064204443127; fWeightMatrix0to1[21][4] = -6.29285879620415; fWeightMatrix0to1[22][4] = -2.79305538447845; fWeightMatrix0to1[23][4] = 1.38988825371373; fWeightMatrix0to1[24][4] = -15.2239683097559; fWeightMatrix0to1[25][4] = 4.12321932419744; fWeightMatrix0to1[26][4] = -0.286441348115826; fWeightMatrix0to1[27][4] = 16.2684299109218; fWeightMatrix0to1[28][4] = 6.12928191660582; fWeightMatrix0to1[29][4] = 2.92704065897257; fWeightMatrix0to1[0][5] = 0.69115596569819; fWeightMatrix0to1[1][5] = 0.180810721250483; fWeightMatrix0to1[2][5] = 7.73066865802109; fWeightMatrix0to1[3][5] = 0.778493507330182; fWeightMatrix0to1[4][5] = 0.0912820445843457; fWeightMatrix0to1[5][5] = 2.57527334013439; fWeightMatrix0to1[6][5] = -0.485491404163652; fWeightMatrix0to1[7][5] = 4.61517624334709; fWeightMatrix0to1[8][5] = 6.96718223940606; fWeightMatrix0to1[9][5] = 0.618850537636354; fWeightMatrix0to1[10][5] = 0.146862263044336; fWeightMatrix0to1[11][5] = 2.01399329389133; fWeightMatrix0to1[12][5] = -0.46547649731528; fWeightMatrix0to1[13][5] = 0.683201713596908; fWeightMatrix0to1[14][5] = -0.219999364799219; fWeightMatrix0to1[15][5] = -0.69295989167425; fWeightMatrix0to1[16][5] = 0.190644629618237; fWeightMatrix0to1[17][5] = 0.32295968151169; fWeightMatrix0to1[18][5] = -0.149904773294335; fWeightMatrix0to1[19][5] = 0.779168797563368; fWeightMatrix0to1[20][5] = -2.63830401189903; fWeightMatrix0to1[21][5] = 0.967728597700021; fWeightMatrix0to1[22][5] = 3.00231014526316; fWeightMatrix0to1[23][5] = 7.45430773405985; fWeightMatrix0to1[24][5] = -0.731020051810837; fWeightMatrix0to1[25][5] = -2.79147675479691; fWeightMatrix0to1[26][5] = -1.31317590647779; fWeightMatrix0to1[27][5] = 1.28862484848582; fWeightMatrix0to1[28][5] = -1.39585077108929; fWeightMatrix0to1[29][5] = -1.89514247009241; fWeightMatrix0to1[0][6] = -1.25409588815276; fWeightMatrix0to1[1][6] = 0.283423430073729; fWeightMatrix0to1[2][6] = 0.100993705925734; fWeightMatrix0to1[3][6] = -0.256700354995789; fWeightMatrix0to1[4][6] = 0.0667706455167807; fWeightMatrix0to1[5][6] = -17.5437282432677; fWeightMatrix0to1[6][6] = 1.20893813206945; fWeightMatrix0to1[7][6] = -1.89443432958322; fWeightMatrix0to1[8][6] = 0.361768034158046; fWeightMatrix0to1[9][6] = -1.35598060889988; fWeightMatrix0to1[10][6] = 0.144030871797814; fWeightMatrix0to1[11][6] = -5.69286790455958; fWeightMatrix0to1[12][6] = 0.356318715254402; fWeightMatrix0to1[13][6] = -0.00138115345498065; fWeightMatrix0to1[14][6] = 0.255695307153071; fWeightMatrix0to1[15][6] = -1.4322340927965; fWeightMatrix0to1[16][6] = 0.00252113451787565; fWeightMatrix0to1[17][6] = 1.70235222260946; fWeightMatrix0to1[18][6] = 0.268738800092929; fWeightMatrix0to1[19][6] = -10.2068455062746; fWeightMatrix0to1[20][6] = -8.35703679059818; fWeightMatrix0to1[21][6] = -0.849429006799249; fWeightMatrix0to1[22][6] = -0.344405095974879; fWeightMatrix0to1[23][6] = -0.21248371384951; fWeightMatrix0to1[24][6] = 1.24920595763943; fWeightMatrix0to1[25][6] = -0.770471606052607; fWeightMatrix0to1[26][6] = 0.624337037972262; fWeightMatrix0to1[27][6] = 0.464064421940574; fWeightMatrix0to1[28][6] = -0.627669227030291; fWeightMatrix0to1[29][6] = 2.88688343581127; fWeightMatrix0to1[0][7] = -2.38360260664226; fWeightMatrix0to1[1][7] = 0.883969307884774; fWeightMatrix0to1[2][7] = -1.98668666204756; fWeightMatrix0to1[3][7] = -1.25362109779149; fWeightMatrix0to1[4][7] = 1.70913078486993; fWeightMatrix0to1[5][7] = 8.67620470499913; fWeightMatrix0to1[6][7] = -5.29163788492974; fWeightMatrix0to1[7][7] = 1.37106794573007; fWeightMatrix0to1[8][7] = -1.79750915915156; fWeightMatrix0to1[9][7] = -0.478560625963108; fWeightMatrix0to1[10][7] = -0.489133022740658; fWeightMatrix0to1[11][7] = 3.40742758075138; fWeightMatrix0to1[12][7] = -22.969337552504; fWeightMatrix0to1[13][7] = -0.43202316326782; fWeightMatrix0to1[14][7] = 1.15358136761904; fWeightMatrix0to1[15][7] = -2.20279019916603; fWeightMatrix0to1[16][7] = 1.84626551349853; fWeightMatrix0to1[17][7] = 0.306060424886115; fWeightMatrix0to1[18][7] = -1.09045062487288; fWeightMatrix0to1[19][7] = 4.01672335440771; fWeightMatrix0to1[20][7] = 0.289769527025092; fWeightMatrix0to1[21][7] = -4.79387774402714; fWeightMatrix0to1[22][7] = -0.252622490963174; fWeightMatrix0to1[23][7] = -5.14923758525927; fWeightMatrix0to1[24][7] = 7.0216682823374; fWeightMatrix0to1[25][7] = -0.565665354315206; fWeightMatrix0to1[26][7] = 2.32916501456928; fWeightMatrix0to1[27][7] = 0.278941878494622; fWeightMatrix0to1[28][7] = -8.62602076174335; fWeightMatrix0to1[29][7] = 2.1209307038175; fWeightMatrix0to1[0][8] = -14.9588054864917; fWeightMatrix0to1[1][8] = -1.35959753069243; fWeightMatrix0to1[2][8] = 16.2915603503019; fWeightMatrix0to1[3][8] = -1.25057998427872; fWeightMatrix0to1[4][8] = -7.47831482109529; fWeightMatrix0to1[5][8] = -19.6774942208241; fWeightMatrix0to1[6][8] = -7.04053587135593; fWeightMatrix0to1[7][8] = 1.12392340514033; fWeightMatrix0to1[8][8] = 14.1629412213684; fWeightMatrix0to1[9][8] = -1.98037870406932; fWeightMatrix0to1[10][8] = 6.23341044162565; fWeightMatrix0to1[11][8] = -5.15994894782195; fWeightMatrix0to1[12][8] = 0.393838675704055; fWeightMatrix0to1[13][8] = -2.60792620671177; fWeightMatrix0to1[14][8] = -5.9970387559016; fWeightMatrix0to1[15][8] = 3.84046074438711; fWeightMatrix0to1[16][8] = -3.76596225174934; fWeightMatrix0to1[17][8] = -0.763413253477744; fWeightMatrix0to1[18][8] = 0.00954751422613728; fWeightMatrix0to1[19][8] = -19.6982663818405; fWeightMatrix0to1[20][8] = 7.74382929955039; fWeightMatrix0to1[21][8] = -0.591807260460667; fWeightMatrix0to1[22][8] = 55.0158343625402; fWeightMatrix0to1[23][8] = 10.9371047930435; fWeightMatrix0to1[24][8] = -8.10312586009686; fWeightMatrix0to1[25][8] = -5.86757589012505; fWeightMatrix0to1[26][8] = -5.53111679093121; fWeightMatrix0to1[27][8] = 0.428165873920066; fWeightMatrix0to1[28][8] = 0.106228610893008; fWeightMatrix0to1[29][8] = 7.51491250365737; fWeightMatrix0to1[0][9] = -1.95347464897504; fWeightMatrix0to1[1][9] = -0.0707127237545458; fWeightMatrix0to1[2][9] = 0.254649155912281; fWeightMatrix0to1[3][9] = 1.44155540125434; fWeightMatrix0to1[4][9] = -0.129892504634018; fWeightMatrix0to1[5][9] = 0.0168330769507345; fWeightMatrix0to1[6][9] = -0.362717464142372; fWeightMatrix0to1[7][9] = -0.0032396259427786; fWeightMatrix0to1[8][9] = 0.164043904901078; fWeightMatrix0to1[9][9] = 0.601140511493738; fWeightMatrix0to1[10][9] = 0.2552714632952; fWeightMatrix0to1[11][9] = 1.56417796682055; fWeightMatrix0to1[12][9] = -7.02403873639077; fWeightMatrix0to1[13][9] = 0.461708581976034; fWeightMatrix0to1[14][9] = -2.4717216968697; fWeightMatrix0to1[15][9] = -0.336158709546309; fWeightMatrix0to1[16][9] = -0.226146723082583; fWeightMatrix0to1[17][9] = 1.60095942101341; fWeightMatrix0to1[18][9] = -0.215686987171898; fWeightMatrix0to1[19][9] = 7.63884870757797; fWeightMatrix0to1[20][9] = 0.403949920593613; fWeightMatrix0to1[21][9] = 0.378826093251193; fWeightMatrix0to1[22][9] = -0.214177580666298; fWeightMatrix0to1[23][9] = 0.0281068302611092; fWeightMatrix0to1[24][9] = -0.123544945692651; fWeightMatrix0to1[25][9] = -0.419561409086958; fWeightMatrix0to1[26][9] = 0.335972109528114; fWeightMatrix0to1[27][9] = 0.227657724363796; fWeightMatrix0to1[28][9] = -6.97655211857387; fWeightMatrix0to1[29][9] = -0.733763131758795; fWeightMatrix0to1[0][10] = -1.62228272934712; fWeightMatrix0to1[1][10] = -1.61273455449285; fWeightMatrix0to1[2][10] = 2.36575802237846; fWeightMatrix0to1[3][10] = 0.340294552860063; fWeightMatrix0to1[4][10] = -0.00500789788546128; fWeightMatrix0to1[5][10] = -4.30730984425581; fWeightMatrix0to1[6][10] = -0.0822916127299823; fWeightMatrix0to1[7][10] = -2.49742374812602; fWeightMatrix0to1[8][10] = 1.4473870107271; fWeightMatrix0to1[9][10] = -1.50204342884603; fWeightMatrix0to1[10][10] = -5.36276961723569; fWeightMatrix0to1[11][10] = -4.89778200220692; fWeightMatrix0to1[12][10] = -0.0524095088604835; fWeightMatrix0to1[13][10] = 1.76967898332423; fWeightMatrix0to1[14][10] = 1.64114863145372; fWeightMatrix0to1[15][10] = 3.68867088554346; fWeightMatrix0to1[16][10] = 0.260441270626316; fWeightMatrix0to1[17][10] = -1.94947730347134; fWeightMatrix0to1[18][10] = 1.0085781622938; fWeightMatrix0to1[19][10] = 3.5911556815491; fWeightMatrix0to1[20][10] = -4.10648473692517; fWeightMatrix0to1[21][10] = -1.89048483435024; fWeightMatrix0to1[22][10] = -3.10812514836262; fWeightMatrix0to1[23][10] = 0.355500892038451; fWeightMatrix0to1[24][10] = -0.994969458570361; fWeightMatrix0to1[25][10] = 1.46165551107256; fWeightMatrix0to1[26][10] = 1.12257907471922; fWeightMatrix0to1[27][10] = 2.01992530292659; fWeightMatrix0to1[28][10] = -1.4710411397577; fWeightMatrix0to1[29][10] = 0.62592586526097; fWeightMatrix0to1[0][11] = -8.6586014099536; fWeightMatrix0to1[1][11] = -0.22402054390038; fWeightMatrix0to1[2][11] = -6.01248406074091; fWeightMatrix0to1[3][11] = -2.23407939166387; fWeightMatrix0to1[4][11] = 0.268176244038209; fWeightMatrix0to1[5][11] = 8.48634769481875; fWeightMatrix0to1[6][11] = -0.612245158382087; fWeightMatrix0to1[7][11] = 0.134992871233797; fWeightMatrix0to1[8][11] = 4.87707829855724; fWeightMatrix0to1[9][11] = 1.04714040900486; fWeightMatrix0to1[10][11] = -0.301027206041176; fWeightMatrix0to1[11][11] = 0.574855107417916; fWeightMatrix0to1[12][11] = 6.54754346255839; fWeightMatrix0to1[13][11] = 2.48301684716483; fWeightMatrix0to1[14][11] = -0.114028045117709; fWeightMatrix0to1[15][11] = -4.73973106180809; fWeightMatrix0to1[16][11] = 0.223694341722619; fWeightMatrix0to1[17][11] = -0.114394469924379; fWeightMatrix0to1[18][11] = -0.038987848929885; fWeightMatrix0to1[19][11] = 1.34896961154309; fWeightMatrix0to1[20][11] = 0.0797637271328153; fWeightMatrix0to1[21][11] = 3.36607009444761; fWeightMatrix0to1[22][11] = 0.0645027770192712; fWeightMatrix0to1[23][11] = -0.187503655171625; fWeightMatrix0to1[24][11] = -0.0702723437095147; fWeightMatrix0to1[25][11] = -4.96656175090647; fWeightMatrix0to1[26][11] = 0.297281186489606; fWeightMatrix0to1[27][11] = 3.70391101417763; fWeightMatrix0to1[28][11] = -1.52433779279683; fWeightMatrix0to1[29][11] = 0.0881998204449984; fWeightMatrix0to1[0][12] = 0.201883179546577; fWeightMatrix0to1[1][12] = -0.28361649406617; fWeightMatrix0to1[2][12] = -10.933541827919; fWeightMatrix0to1[3][12] = -0.117455439656281; fWeightMatrix0to1[4][12] = -0.00423283014360317; fWeightMatrix0to1[5][12] = -0.164283718565531; fWeightMatrix0to1[6][12] = 0.0305705895320447; fWeightMatrix0to1[7][12] = -1.43637190611218; fWeightMatrix0to1[8][12] = -4.97688197440214; fWeightMatrix0to1[9][12] = -0.0756729969544265; fWeightMatrix0to1[10][12] = -0.0603662646477317; fWeightMatrix0to1[11][12] = -0.0853794328822751; fWeightMatrix0to1[12][12] = -7.13426021157129; fWeightMatrix0to1[13][12] = 0.235782358242736; fWeightMatrix0to1[14][12] = -0.949020439805369; fWeightMatrix0to1[15][12] = 0.293809497789; fWeightMatrix0to1[16][12] = 0.0972836731308023; fWeightMatrix0to1[17][12] = 1.20898852982695; fWeightMatrix0to1[18][12] = -0.758660970199985; fWeightMatrix0to1[19][12] = 0.0756678110197619; fWeightMatrix0to1[20][12] = 0.10759177750826; fWeightMatrix0to1[21][12] = -3.76493361937213; fWeightMatrix0to1[22][12] = 0.128223879018376; fWeightMatrix0to1[23][12] = 0.534344895903144; fWeightMatrix0to1[24][12] = -0.0718947231596186; fWeightMatrix0to1[25][12] = -0.0257447935706839; fWeightMatrix0to1[26][12] = 0.0567360077047994; fWeightMatrix0to1[27][12] = 0.0636708199644809; fWeightMatrix0to1[28][12] = -0.957404792910029; fWeightMatrix0to1[29][12] = 4.23245822372684; fWeightMatrix0to1[0][13] = 0.0601644862099875; fWeightMatrix0to1[1][13] = -0.286757619932357; fWeightMatrix0to1[2][13] = -0.868160536234481; fWeightMatrix0to1[3][13] = 0.316898065423206; fWeightMatrix0to1[4][13] = 0.0316450330986521; fWeightMatrix0to1[5][13] = 0.32075783407951; fWeightMatrix0to1[6][13] = 0.103906278466209; fWeightMatrix0to1[7][13] = 0.161052363189687; fWeightMatrix0to1[8][13] = -0.0290393664567784; fWeightMatrix0to1[9][13] = 0.27928877606562; fWeightMatrix0to1[10][13] = 0.107701766888647; fWeightMatrix0to1[11][13] = 0.0162233886906215; fWeightMatrix0to1[12][13] = 0.210758192256999; fWeightMatrix0to1[13][13] = 0.236933073308886; fWeightMatrix0to1[14][13] = -0.850973820892032; fWeightMatrix0to1[15][13] = 0.181384594900633; fWeightMatrix0to1[16][13] = 0.0253816333911944; fWeightMatrix0to1[17][13] = 1.55977095628966; fWeightMatrix0to1[18][13] = 0.0325022461816848; fWeightMatrix0to1[19][13] = 0.0799327214158642; fWeightMatrix0to1[20][13] = -0.0452148308485338; fWeightMatrix0to1[21][13] = -0.228175167071467; fWeightMatrix0to1[22][13] = 0.114961404249223; fWeightMatrix0to1[23][13] = -0.600748652550749; fWeightMatrix0to1[24][13] = -0.000142868496420002; fWeightMatrix0to1[25][13] = -0.160784792517793; fWeightMatrix0to1[26][13] = 3.30754838036569; fWeightMatrix0to1[27][13] = 0.0251853280098482; fWeightMatrix0to1[28][13] = 2.04826188525938; fWeightMatrix0to1[29][13] = -3.48524018692666; fWeightMatrix0to1[0][14] = 5.31190024361764; fWeightMatrix0to1[1][14] = 6.81144629051894; fWeightMatrix0to1[2][14] = -0.795200324939976; fWeightMatrix0to1[3][14] = 2.67363552642527; fWeightMatrix0to1[4][14] = -1.81410862360938; fWeightMatrix0to1[5][14] = -1.78958969464126; fWeightMatrix0to1[6][14] = -0.0249234919703108; fWeightMatrix0to1[7][14] = -2.43072658193498; fWeightMatrix0to1[8][14] = -6.09749574351067; fWeightMatrix0to1[9][14] = -1.40089927520888; fWeightMatrix0to1[10][14] = 47.805408692432; fWeightMatrix0to1[11][14] = -0.52712602753623; fWeightMatrix0to1[12][14] = 2.31814664814432; fWeightMatrix0to1[13][14] = -3.2045755604785; fWeightMatrix0to1[14][14] = 2.71118819587976; fWeightMatrix0to1[15][14] = -34.4391094943489; fWeightMatrix0to1[16][14] = 4.55860779388322; fWeightMatrix0to1[17][14] = -0.765176635816893; fWeightMatrix0to1[18][14] = -2.87736220084079; fWeightMatrix0to1[19][14] = -16.1180392293464; fWeightMatrix0to1[20][14] = -4.23762326522959; fWeightMatrix0to1[21][14] = 0.236157704554215; fWeightMatrix0to1[22][14] = 0.332196488974869; fWeightMatrix0to1[23][14] = -1.99827728354936; fWeightMatrix0to1[24][14] = 3.04538026706335; fWeightMatrix0to1[25][14] = 2.11466157982551; fWeightMatrix0to1[26][14] = 6.79267875298388; fWeightMatrix0to1[27][14] = 9.4190123218711; fWeightMatrix0to1[28][14] = -0.707197257871717; fWeightMatrix0to1[29][14] = -0.407117951795961; fWeightMatrix0to1[0][15] = 4.49968420944319; fWeightMatrix0to1[1][15] = 0.45094723849229; fWeightMatrix0to1[2][15] = 1.82573386156152; fWeightMatrix0to1[3][15] = 3.10676808600407; fWeightMatrix0to1[4][15] = 1.74807485851665; fWeightMatrix0to1[5][15] = -5.3199898407998; fWeightMatrix0to1[6][15] = 4.12456117340609; fWeightMatrix0to1[7][15] = -2.67047157915014; fWeightMatrix0to1[8][15] = -1.08204105825804; fWeightMatrix0to1[9][15] = 2.23315524208354; fWeightMatrix0to1[10][15] = 2.26565992065182; fWeightMatrix0to1[11][15] = -2.72122072114264; fWeightMatrix0to1[12][15] = 2.51458602896422; fWeightMatrix0to1[13][15] = -0.0811426665632917; fWeightMatrix0to1[14][15] = 2.12940103589425; fWeightMatrix0to1[15][15] = -6.72716916369049; fWeightMatrix0to1[16][15] = -1.94630116599921; fWeightMatrix0to1[17][15] = -1.61120018665204; fWeightMatrix0to1[18][15] = -0.301446164756097; fWeightMatrix0to1[19][15] = -0.82044660978243; fWeightMatrix0to1[20][15] = -4.2251487792334; fWeightMatrix0to1[21][15] = 2.84663097804135; fWeightMatrix0to1[22][15] = 1.95153537719692; fWeightMatrix0to1[23][15] = 4.21203658601743; fWeightMatrix0to1[24][15] = 0.814686044550012; fWeightMatrix0to1[25][15] = 2.31957928040036; fWeightMatrix0to1[26][15] = -0.455031061127505; fWeightMatrix0to1[27][15] = -4.57290331045621; fWeightMatrix0to1[28][15] = 1.9766160340004; fWeightMatrix0to1[29][15] = 0.926785099618624; fWeightMatrix0to1[0][16] = -0.887186645692576; fWeightMatrix0to1[1][16] = -0.789351345958922; fWeightMatrix0to1[2][16] = 2.094388269042; fWeightMatrix0to1[3][16] = 0.29379692901025; fWeightMatrix0to1[4][16] = 0.254702093117352; fWeightMatrix0to1[5][16] = -0.222065415494046; fWeightMatrix0to1[6][16] = 0.424252986680398; fWeightMatrix0to1[7][16] = -1.99158175828763; fWeightMatrix0to1[8][16] = 3.11559074558977; fWeightMatrix0to1[9][16] = 0.356012600024987; fWeightMatrix0to1[10][16] = -1.08071180938133; fWeightMatrix0to1[11][16] = -2.03183558633354; fWeightMatrix0to1[12][16] = -0.971692486948203; fWeightMatrix0to1[13][16] = -0.515055119369104; fWeightMatrix0to1[14][16] = 0.532149225602057; fWeightMatrix0to1[15][16] = 4.8504197019063; fWeightMatrix0to1[16][16] = -0.936917903122395; fWeightMatrix0to1[17][16] = -0.504369859649698; fWeightMatrix0to1[18][16] = 1.63224988991777; fWeightMatrix0to1[19][16] = 0.842093354301143; fWeightMatrix0to1[20][16] = -4.67749133037889; fWeightMatrix0to1[21][16] = 2.22681175499422; fWeightMatrix0to1[22][16] = 2.18825689869919; fWeightMatrix0to1[23][16] = 0.54918373106344; fWeightMatrix0to1[24][16] = -0.563785781304167; fWeightMatrix0to1[25][16] = -2.73232058226085; fWeightMatrix0to1[26][16] = 1.11442409751081; fWeightMatrix0to1[27][16] = -8.12553143509728; fWeightMatrix0to1[28][16] = 0.673841062931474; fWeightMatrix0to1[29][16] = -1.18244528631687; fWeightMatrix0to1[0][17] = 0.221353064099538; fWeightMatrix0to1[1][17] = -2.40916837479998; fWeightMatrix0to1[2][17] = 0.792752137594906; fWeightMatrix0to1[3][17] = -1.43925397789788; fWeightMatrix0to1[4][17] = 0.153169979524987; fWeightMatrix0to1[5][17] = 0.392841761667767; fWeightMatrix0to1[6][17] = -0.82301710900477; fWeightMatrix0to1[7][17] = 0.0302833406325816; fWeightMatrix0to1[8][17] = 3.88727196593614; fWeightMatrix0to1[9][17] = 0.461318427627147; fWeightMatrix0to1[10][17] = -5.2977116521135; fWeightMatrix0to1[11][17] = -1.66276485278539; fWeightMatrix0to1[12][17] = 0.977046064508237; fWeightMatrix0to1[13][17] = -1.03712201371916; fWeightMatrix0to1[14][17] = 2.09365361230825; fWeightMatrix0to1[15][17] = 11.7384911202748; fWeightMatrix0to1[16][17] = -0.373887037593451; fWeightMatrix0to1[17][17] = 1.48071243233099; fWeightMatrix0to1[18][17] = 1.53277637930918; fWeightMatrix0to1[19][17] = 0.551846955959315; fWeightMatrix0to1[20][17] = -2.03099973139722; fWeightMatrix0to1[21][17] = -2.17294087610183; fWeightMatrix0to1[22][17] = 0.622694270777277; fWeightMatrix0to1[23][17] = -1.55681385780451; fWeightMatrix0to1[24][17] = -0.948113334565485; fWeightMatrix0to1[25][17] = -4.6262026242756; fWeightMatrix0to1[26][17] = -0.436929437465707; fWeightMatrix0to1[27][17] = -5.20011081843238; fWeightMatrix0to1[28][17] = -0.00289612655565237; fWeightMatrix0to1[29][17] = -1.44533711909745; fWeightMatrix0to1[0][18] = -3.33690309649411; fWeightMatrix0to1[1][18] = -1.99626404326917; fWeightMatrix0to1[2][18] = -0.248002649351488; fWeightMatrix0to1[3][18] = -4.03353571115078; fWeightMatrix0to1[4][18] = -0.753862407809006; fWeightMatrix0to1[5][18] = 2.33066010295054; fWeightMatrix0to1[6][18] = -2.66641322372397; fWeightMatrix0to1[7][18] = -2.10432780148175; fWeightMatrix0to1[8][18] = 7.2709173985314; fWeightMatrix0to1[9][18] = -1.35947291264323; fWeightMatrix0to1[10][18] = -9.47056199702143; fWeightMatrix0to1[11][18] = 0.95237748731632; fWeightMatrix0to1[12][18] = -4.3301539866843; fWeightMatrix0to1[13][18] = -0.65574218722761; fWeightMatrix0to1[14][18] = 0.862876371641813; fWeightMatrix0to1[15][18] = 13.1450959216819; fWeightMatrix0to1[16][18] = -1.53567259819619; fWeightMatrix0to1[17][18] = -1.25442038323244; fWeightMatrix0to1[18][18] = 1.07587697679225; fWeightMatrix0to1[19][18] = 1.41792150381584; fWeightMatrix0to1[20][18] = 3.07536798090039; fWeightMatrix0to1[21][18] = -1.04078628678773; fWeightMatrix0to1[22][18] = -1.81097766099303; fWeightMatrix0to1[23][18] = -1.6076955417527; fWeightMatrix0to1[24][18] = -0.747634345416705; fWeightMatrix0to1[25][18] = -5.78496716082063; fWeightMatrix0to1[26][18] = -0.873078273975044; fWeightMatrix0to1[27][18] = -3.81435055321231; fWeightMatrix0to1[28][18] = -1.18016454408708; fWeightMatrix0to1[29][18] = 1.30998345349565; fWeightMatrix0to1[0][19] = 1.00300548372048; fWeightMatrix0to1[1][19] = 0.808926344155837; fWeightMatrix0to1[2][19] = 1.84437130724006; fWeightMatrix0to1[3][19] = 0.36644300422916; fWeightMatrix0to1[4][19] = 5.64370691733959; fWeightMatrix0to1[5][19] = 4.85324461564904; fWeightMatrix0to1[6][19] = -5.11934954800362; fWeightMatrix0to1[7][19] = -4.34894156315913; fWeightMatrix0to1[8][19] = 2.29503495873677; fWeightMatrix0to1[9][19] = -3.51061521223197; fWeightMatrix0to1[10][19] = -5.90251973991663; fWeightMatrix0to1[11][19] = -1.49195833588054; fWeightMatrix0to1[12][19] = -4.67365231107933; fWeightMatrix0to1[13][19] = -2.5696375819527; fWeightMatrix0to1[14][19] = 0.717435211574635; fWeightMatrix0to1[15][19] = 1.44593777350747; fWeightMatrix0to1[16][19] = 1.12982280294602; fWeightMatrix0to1[17][19] = 0.80328040144478; fWeightMatrix0to1[18][19] = -0.145968813110716; fWeightMatrix0to1[19][19] = 6.8188500059336; fWeightMatrix0to1[20][19] = 0.917310756912965; fWeightMatrix0to1[21][19] = -2.6354176297485; fWeightMatrix0to1[22][19] = -6.6426811478112; fWeightMatrix0to1[23][19] = -3.14841172603261; fWeightMatrix0to1[24][19] = -7.92523689938482; fWeightMatrix0to1[25][19] = -2.82597829981393; fWeightMatrix0to1[26][19] = 2.94858643295154; fWeightMatrix0to1[27][19] = -0.330888788316074; fWeightMatrix0to1[28][19] = -8.02271571212733; fWeightMatrix0to1[29][19] = 2.03880263139902; fWeightMatrix0to1[0][20] = 4.02315050531744; fWeightMatrix0to1[1][20] = 13.398109037425; fWeightMatrix0to1[2][20] = -1.74245844013369; fWeightMatrix0to1[3][20] = -0.430371896808055; fWeightMatrix0to1[4][20] = 5.22816218384291; fWeightMatrix0to1[5][20] = -4.92397133962641; fWeightMatrix0to1[6][20] = 5.01663440790924; fWeightMatrix0to1[7][20] = -0.353780652668825; fWeightMatrix0to1[8][20] = -2.35205775188176; fWeightMatrix0to1[9][20] = 2.10349393560872; fWeightMatrix0to1[10][20] = 6.09734642484986; fWeightMatrix0to1[11][20] = 1.27428795650752; fWeightMatrix0to1[12][20] = 4.78465970744746; fWeightMatrix0to1[13][20] = 2.3809836318694; fWeightMatrix0to1[14][20] = -2.19931259503538; fWeightMatrix0to1[15][20] = -1.38354182460238; fWeightMatrix0to1[16][20] = -0.33921341155563; fWeightMatrix0to1[17][20] = 0.906260058297022; fWeightMatrix0to1[18][20] = -0.0716248910992625; fWeightMatrix0to1[19][20] = -6.77209785659195; fWeightMatrix0to1[20][20] = -0.990778662155565; fWeightMatrix0to1[21][20] = 3.07135637368497; fWeightMatrix0to1[22][20] = 6.6667071905244; fWeightMatrix0to1[23][20] = 3.29602040488156; fWeightMatrix0to1[24][20] = -1.18917108018452; fWeightMatrix0to1[25][20] = 0.414824245427299; fWeightMatrix0to1[26][20] = -3.04104197269048; fWeightMatrix0to1[27][20] = -2.54975010052286; fWeightMatrix0to1[28][20] = 1.38103333186789; fWeightMatrix0to1[29][20] = -2.33748142363345; fWeightMatrix0to1[0][21] = 5.53677322601465; fWeightMatrix0to1[1][21] = 18.6427887845326; fWeightMatrix0to1[2][21] = 0.143973148837019; fWeightMatrix0to1[3][21] = 1.6241976936279; fWeightMatrix0to1[4][21] = 1.90504443359027; fWeightMatrix0to1[5][21] = 4.14018868613759; fWeightMatrix0to1[6][21] = -1.06282743419747; fWeightMatrix0to1[7][21] = -0.278716191510978; fWeightMatrix0to1[8][21] = 0.448941768055292; fWeightMatrix0to1[9][21] = -0.830995007198942; fWeightMatrix0to1[10][21] = 2.69487271332452; fWeightMatrix0to1[11][21] = 1.90005464078838; fWeightMatrix0to1[12][21] = -3.02166588571361; fWeightMatrix0to1[13][21] = 1.65041388403438; fWeightMatrix0to1[14][21] = 0.755638401430038; fWeightMatrix0to1[15][21] = -0.711063080399171; fWeightMatrix0to1[16][21] = 1.33850492792839; fWeightMatrix0to1[17][21] = 1.74458088881711; fWeightMatrix0to1[18][21] = -0.0139951790776771; fWeightMatrix0to1[19][21] = -13.2588107821242; fWeightMatrix0to1[20][21] = -2.41080917080125; fWeightMatrix0to1[21][21] = 0.0760868110626182; fWeightMatrix0to1[22][21] = -0.407985478127768; fWeightMatrix0to1[23][21] = 2.83859147421342; fWeightMatrix0to1[24][21] = 1.30877186738869; fWeightMatrix0to1[25][21] = -1.73668330413268; fWeightMatrix0to1[26][21] = 0.745142589187495; fWeightMatrix0to1[27][21] = 4.49645682569124; fWeightMatrix0to1[28][21] = -3.10784830921682; fWeightMatrix0to1[29][21] = -0.124640049482412; fWeightMatrix0to1[0][22] = -7.36659970133864; fWeightMatrix0to1[1][22] = 2.6961675220586; fWeightMatrix0to1[2][22] = -0.25383766993084; fWeightMatrix0to1[3][22] = 6.63871148361031; fWeightMatrix0to1[4][22] = -3.66242942694095; fWeightMatrix0to1[5][22] = 2.68641779617996; fWeightMatrix0to1[6][22] = -4.94505716059531; fWeightMatrix0to1[7][22] = 2.03043030449552; fWeightMatrix0to1[8][22] = -0.729162211217986; fWeightMatrix0to1[9][22] = -0.244417029378911; fWeightMatrix0to1[10][22] = -8.30376525358751; fWeightMatrix0to1[11][22] = 0.52891233425142; fWeightMatrix0to1[12][22] = -15.3257248115631; fWeightMatrix0to1[13][22] = -3.91545312779664; fWeightMatrix0to1[14][22] = 5.68897764661874; fWeightMatrix0to1[15][22] = 2.52724809587751; fWeightMatrix0to1[16][22] = 4.64794792941684; fWeightMatrix0to1[17][22] = -1.03310467529784; fWeightMatrix0to1[18][22] = 0.015430619086753; fWeightMatrix0to1[19][22] = -4.73099161745947; fWeightMatrix0to1[20][22] = -1.60975407232337; fWeightMatrix0to1[21][22] = -0.810066235631076; fWeightMatrix0to1[22][22] = 4.80185469356427; fWeightMatrix0to1[23][22] = 2.09526697668162; fWeightMatrix0to1[24][22] = 4.79199623202665; fWeightMatrix0to1[25][22] = 2.29141019898346; fWeightMatrix0to1[26][22] = 0.903238896210587; fWeightMatrix0to1[27][22] = -3.35802776414493; fWeightMatrix0to1[28][22] = -6.51100737792742; fWeightMatrix0to1[29][22] = 1.73094143232552; // weight matrix from layer 1 to 2 fWeightMatrix1to2[0][0] = 0.254488080602438; fWeightMatrix1to2[0][1] = 0.416060254197738; fWeightMatrix1to2[0][2] = -0.798825352729227; fWeightMatrix1to2[0][3] = 1.28979434798198; fWeightMatrix1to2[0][4] = 2.52819825927589; fWeightMatrix1to2[0][5] = -0.57997388659132; fWeightMatrix1to2[0][6] = 0.545395597418836; fWeightMatrix1to2[0][7] = 0.337209392450894; fWeightMatrix1to2[0][8] = -0.710045018494529; fWeightMatrix1to2[0][9] = 0.609515533007389; fWeightMatrix1to2[0][10] = 0.883007483346644; fWeightMatrix1to2[0][11] = 0.736761552045095; fWeightMatrix1to2[0][12] = 0.598476155545299; fWeightMatrix1to2[0][13] = 0.604449137004959; fWeightMatrix1to2[0][14] = -1.47899972688754; fWeightMatrix1to2[0][15] = -0.81329911000219; fWeightMatrix1to2[0][16] = -2.82147724615546; fWeightMatrix1to2[0][17] = -1.25466570889509; fWeightMatrix1to2[0][18] = 0.899649777161289; fWeightMatrix1to2[0][19] = -0.440723377276104; fWeightMatrix1to2[0][20] = -0.423060977034701; fWeightMatrix1to2[0][21] = 0.459667732750222; fWeightMatrix1to2[0][22] = 1.3113662510038; fWeightMatrix1to2[0][23] = 0.530102772236428; fWeightMatrix1to2[0][24] = 0.365821629004075; fWeightMatrix1to2[0][25] = 0.530567935744027; fWeightMatrix1to2[0][26] = -0.451148621751005; fWeightMatrix1to2[0][27] = -0.947620281289936; fWeightMatrix1to2[0][28] = 0.833556310285653; fWeightMatrix1to2[0][29] = -0.34487594383183; fWeightMatrix1to2[0][30] = -0.319200637085344; } inline double ReadGhost_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 ReadGhost_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] = 7.72294712067; 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.00486037321389; fMax_1[1][2] = 2.99956655502; 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.0671951547265; 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] = 50.0615081787; fMin_1[1][7] = 7.07881335984e-05; fMax_1[1][7] = 51.0802001953; fMin_1[2][7] = 2.50487555604e-05; fMax_1[2][7] = 51.0802001953; fMin_1[0][8] = 1; fMax_1[0][8] = 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] = 0; fMax_1[0][13] = 1; fMin_1[1][13] = 0; fMax_1[1][13] = 1; fMin_1[2][13] = 0; fMax_1[2][13] = 1; fMin_1[0][14] = -999; fMax_1[0][14] = 89.5529022217; fMin_1[1][14] = -999; fMax_1[1][14] = 107.511299133; fMin_1[2][14] = -999; fMax_1[2][14] = 107.511299133; fMin_1[0][15] = -999; fMax_1[0][15] = 56.9458999634; fMin_1[1][15] = -999; fMax_1[1][15] = 69.573600769; fMin_1[2][15] = -999; fMax_1[2][15] = 69.573600769; fMin_1[0][16] = -999; fMax_1[0][16] = 62.6918983459; fMin_1[1][16] = -999; fMax_1[1][16] = 99.5278015137; fMin_1[2][16] = -999; fMax_1[2][16] = 99.5278015137; fMin_1[0][17] = -999; fMax_1[0][17] = 42.5912017822; fMin_1[1][17] = -999; fMax_1[1][17] = 62.6166000366; fMin_1[2][17] = -999; fMax_1[2][17] = 62.6166000366; fMin_1[0][18] = -999; fMax_1[0][18] = 43.7248001099; fMin_1[1][18] = -999; fMax_1[1][18] = 47.8530006409; fMin_1[2][18] = -999; fMax_1[2][18] = 47.8530006409; fMin_1[0][19] = 0; fMax_1[0][19] = 1; fMin_1[1][19] = 0; fMax_1[1][19] = 1; fMin_1[2][19] = 0; fMax_1[2][19] = 1; fMin_1[0][20] = -999; fMax_1[0][20] = 4.79148387909; fMin_1[1][20] = -999; fMax_1[1][20] = 4.79148387909; fMin_1[2][20] = -999; fMax_1[2][20] = 4.79148387909; fMin_1[0][21] = 0.486891388893; fMax_1[0][21] = 5.4943819046; fMin_1[1][21] = 0.522471904755; fMax_1[1][21] = 3.93258428574; fMin_1[2][21] = 0.486891388893; fMax_1[2][21] = 5.4943819046; } //_______________________________________________________________________ inline void ReadGhost_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 = 22; // 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); indicesGet.push_back( 21); 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); indicesPut.push_back( 21); std::vector dv(nVar); for (int ivar=0; ivar& iv, int sigOrBgd ) const { Transform_1( iv, sigOrBgd ); }