1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
18 //_________________________________________________________________________
19 // Utility Class for Neural Network fit
21 // currently uses 5 input neurons
22 // network configured via TMultiLayerPerceptron
24 //*-- Author: Paola La Rocca (Catania)
27 #include "AliCaloNeuralFit.h"
31 Double_t AliCaloNeuralFit::Value
32 (int index, Double_t in0, Double_t in1, Double_t in2, Double_t in3, Double_t in4)
35 // Compute the neural network answer,
36 // given the input values (taken from the signal TGraph)
47 return Neuron0x9fdedf8();
49 return Neuron0x9fe0da0();
55 Double_t AliCaloNeuralFit::Neuron0x9fd0208() const
59 // Just return activation value externally setted.
65 Double_t AliCaloNeuralFit::Neuron0x9fd0398() const
69 // Just return activation value externally setted.
75 Double_t AliCaloNeuralFit::Neuron0x9fd0570() const
79 // Just return activation value externally setted.
85 Double_t AliCaloNeuralFit::Neuron0x9fd0748() const
89 // Just return activation value externally setted.
95 Double_t AliCaloNeuralFit::Neuron0x9fdec20() const
99 // Just return activation value externally setted.
105 Double_t AliCaloNeuralFit::Input0x9fdef28() const
108 // Hidden/Output neuron
109 // Compute the activation from linear combination of
110 // all neurons going into this, each one times its synaptic weight
113 Double_t input = 1.01367;
114 input += Synapse0x9fdf0d8();
115 input += Synapse0x9fdf100();
116 input += Synapse0x9fdf128();
117 input += Synapse0x9fdf150();
118 input += Synapse0x9fdf178();
122 Double_t AliCaloNeuralFit::Neuron0x9fdef28() const
125 // Hidden/Output neuron
126 // Return computed activation
128 Double_t input = Input0x9fdef28();
129 return (tanh(input) * 1)+0;
132 Double_t AliCaloNeuralFit::Input0x9fdf1a0() const
135 // Hidden/Output neuron
136 // Compute the activation from linear combination of
137 // all neurons going into this, each one times its synaptic weight
139 Double_t input = -0.388335;
140 input += Synapse0x9fdf398();
141 input += Synapse0x9fdf3c0();
142 input += Synapse0x9fdf3e8();
143 input += Synapse0x9fdf410();
144 input += Synapse0x9fdf438();
148 Double_t AliCaloNeuralFit::Neuron0x9fdf1a0() const
151 // Hidden/Output neuron
152 // Return computed activation
154 Double_t input = Input0x9fdf1a0();
155 return (tanh(input) * 1)+0;
158 Double_t AliCaloNeuralFit::Input0x9fdf460() const
161 // Hidden/Output neuron
162 // Compute the activation from linear combination of
163 // all neurons going into this, each one times its synaptic weight
165 Double_t input = -0.547781;
166 input += Synapse0x9fdf658();
167 input += Synapse0x9fdf680();
168 input += Synapse0x9fdf6a8();
169 input += Synapse0x9fdf6d0();
170 input += Synapse0x9fdf6f8();
174 Double_t AliCaloNeuralFit::Neuron0x9fdf460() const
177 // Hidden/Output neuron
178 // Return computed activation
180 Double_t input = Input0x9fdf460();
181 return (tanh(input) * 1)+0;
184 Double_t AliCaloNeuralFit::Input0x9fdf720() const
187 // Hidden/Output neuron
188 // Compute the activation from linear combination of
189 // all neurons going into this, each one times its synaptic weight
191 Double_t input = 0.525561;
192 input += Synapse0x9fdf918();
193 input += Synapse0x9fdf940();
194 input += Synapse0x9fdf9f0();
195 input += Synapse0x9fdfa18();
196 input += Synapse0x9fdfa40();
200 Double_t AliCaloNeuralFit::Neuron0x9fdf720() const
203 // Hidden/Output neuron
204 // Return computed activation
206 Double_t input = Input0x9fdf720();
207 return (tanh(input) * 1)+0;
210 Double_t AliCaloNeuralFit::Input0x9fdfa68() const
213 // Hidden/Output neuron
214 // Compute the activation from linear combination of
215 // all neurons going into this, each one times its synaptic weight
217 Double_t input = -0.360225;
218 input += Synapse0x9fdfc18();
219 input += Synapse0x9fdfc40();
220 input += Synapse0x9fdfc68();
221 input += Synapse0x9fdfc90();
222 input += Synapse0x9fdfcb8();
226 Double_t AliCaloNeuralFit::Neuron0x9fdfa68() const
229 // Hidden/Output neuron
230 // Return computed activation
232 Double_t input = Input0x9fdfa68();
233 return (tanh(input) * 1)+0;
236 Double_t AliCaloNeuralFit::Input0x9fdfce0() const
239 // Hidden/Output neuron
240 // Compute the activation from linear combination of
241 // all neurons going into this, each one times its synaptic weight
243 Double_t input = -0.485774;
244 input += Synapse0x9fdfed8();
245 input += Synapse0x9fdff00();
246 input += Synapse0x9fdff28();
247 input += Synapse0x9fdff50();
248 input += Synapse0x9fdff78();
252 Double_t AliCaloNeuralFit::Neuron0x9fdfce0() const
255 // Hidden/Output neuron
256 // Return computed activation
258 Double_t input = Input0x9fdfce0();
259 return (tanh(input) * 1)+0;
262 Double_t AliCaloNeuralFit::Input0x9fdffa0() const
265 // Hidden/Output neuron
266 // Compute the activation from linear combination of
267 // all neurons going into this, each one times its synaptic weight
269 Double_t input = 0.467242;
270 input += Synapse0x9fe0198();
271 input += Synapse0x9fe01c0();
272 input += Synapse0x9fe01e8();
273 input += Synapse0x9fdf968();
274 input += Synapse0x9fdf990();
278 Double_t AliCaloNeuralFit::Neuron0x9fdffa0() const
281 // Hidden/Output neuron
282 // Return computed activation
284 Double_t input = Input0x9fdffa0();
285 return (tanh(input) * 1)+0;
288 Double_t AliCaloNeuralFit::Input0x9fe0318() const
291 // Hidden/Output neuron
292 // Compute the activation from linear combination of
293 // all neurons going into this, each one times its synaptic weight
295 Double_t input = 0.566875;
296 input += Synapse0x9fe04f0();
297 input += Synapse0x9fe0518();
298 input += Synapse0x9fe0540();
299 input += Synapse0x9fe0568();
300 input += Synapse0x9fe0590();
304 Double_t AliCaloNeuralFit::Neuron0x9fe0318() const
307 // Hidden/Output neuron
308 // Return computed activation
310 Double_t input = Input0x9fe0318();
311 return (tanh(input) * 1)+0;
314 Double_t AliCaloNeuralFit::Input0x9fe05b8() const
317 // Hidden/Output neuron
318 // Compute the activation from linear combination of
319 // all neurons going into this, each one times its synaptic weight
321 Double_t input = -0.848776;
322 input += Synapse0x9fe07b0();
323 input += Synapse0x9fe07d8();
324 input += Synapse0x9fe0800();
325 input += Synapse0x9fe0828();
326 input += Synapse0x9fe0850();
330 Double_t AliCaloNeuralFit::Neuron0x9fe05b8() const
333 // Hidden/Output neuron
334 // Return computed activation
336 Double_t input = Input0x9fe05b8();
337 return (tanh(input) * 1)+0;
340 Double_t AliCaloNeuralFit::Input0x9fe0878() const
343 // Hidden/Output neuron
344 // Compute the activation from linear combination of
345 // all neurons going into this, each one times its synaptic weight
347 Double_t input = -0.408427;
348 input += Synapse0x9fe0a70();
349 input += Synapse0x9fe0a98();
350 input += Synapse0x9fe0ac0();
351 input += Synapse0x9fe0ae8();
352 input += Synapse0x9fe0b10();
356 Double_t AliCaloNeuralFit::Neuron0x9fe0878() const
359 // Hidden/Output neuron
360 // Return computed activation
362 Double_t input = Input0x9fe0878();
363 return (tanh(input) * 1)+0;
366 Double_t AliCaloNeuralFit::Input0x9fdedf8() const
369 // Hidden/Output neuron
370 // Compute the activation from linear combination of
371 // all neurons going into this, each one times its synaptic weight
373 Double_t input = -0.310322;
374 input += Synapse0x9fe0c10();
375 input += Synapse0x9fe0c38();
376 input += Synapse0x9fe0c60();
377 input += Synapse0x9fe0c88();
378 input += Synapse0x9fe0cb0();
379 input += Synapse0x9fe0cd8();
380 input += Synapse0x9fe0d00();
381 input += Synapse0x9fe0d28();
382 input += Synapse0x9fe0d50();
383 input += Synapse0x9fe0d78();
387 Double_t AliCaloNeuralFit::Neuron0x9fdedf8() const
390 // Hidden/Output neuron
391 // Return computed activation
393 Double_t input = Input0x9fdedf8();
394 return (input * 1)+0;
397 Double_t AliCaloNeuralFit::Input0x9fe0da0() const
400 // Hidden/Output neuron
401 // Compute the activation from linear combination of
402 // all neurons going into this, each one times its synaptic weight
404 Double_t input = -0.0574773;
405 input += Synapse0x9fe0fa0();
406 input += Synapse0x9fe0fc8();
407 input += Synapse0x9fe0ff0();
408 input += Synapse0x9fe1018();
409 input += Synapse0x9fe1040();
410 input += Synapse0x9882b78();
411 input += Synapse0x9fd0158();
412 input += Synapse0x9fd0180();
413 input += Synapse0x9fd01a8();
414 input += Synapse0x9fd01d0();
418 Double_t AliCaloNeuralFit::Neuron0x9fe0da0() const
421 // Hidden/Output neuron
422 // Return computed activation
424 Double_t input = Input0x9fe0da0();
425 return (input * 1)+0;
428 Double_t AliCaloNeuralFit::Synapse0x9fdf0d8() const
431 // Synaptic connection
432 // Multiplies input times synaptic weight
434 return (Neuron0x9fd0208()*1.53012);
437 Double_t AliCaloNeuralFit::Synapse0x9fdf100() const
440 // Synaptic connection
441 // Multiplies input times synaptic weight
443 return (Neuron0x9fd0398()*-0.316606);
446 Double_t AliCaloNeuralFit::Synapse0x9fdf128() const
449 // Synaptic connection
450 // Multiplies input times synaptic weight
452 return (Neuron0x9fd0570()*1.31047);
455 Double_t AliCaloNeuralFit::Synapse0x9fdf150() const
458 // Synaptic connection
459 // Multiplies input times synaptic weight
461 return (Neuron0x9fd0748()*0.31846);
464 Double_t AliCaloNeuralFit::Synapse0x9fdf178() const
467 // Synaptic connection
468 // Multiplies input times synaptic weight
470 return (Neuron0x9fdec20()*-1.43145);
473 Double_t AliCaloNeuralFit::Synapse0x9fdf398() const
476 // Synaptic connection
477 // Multiplies input times synaptic weight
479 return (Neuron0x9fd0208()*-0.199402);
482 Double_t AliCaloNeuralFit::Synapse0x9fdf3c0() const
485 // Synaptic connection
486 // Multiplies input times synaptic weight
488 return (Neuron0x9fd0398()*0.0250046);
491 Double_t AliCaloNeuralFit::Synapse0x9fdf3e8() const
494 // Synaptic connection
495 // Multiplies input times synaptic weight
497 return (Neuron0x9fd0570()*0.21622);
500 Double_t AliCaloNeuralFit::Synapse0x9fdf410() const
503 // Synaptic connection
504 // Multiplies input times synaptic weight
506 return (Neuron0x9fd0748()*0.0240984);
509 Double_t AliCaloNeuralFit::Synapse0x9fdf438() const
512 // Synaptic connection
513 // Multiplies input times synaptic weight
515 return (Neuron0x9fdec20()*0.492242);
518 Double_t AliCaloNeuralFit::Synapse0x9fdf658() const
521 // Synaptic connection
522 // Multiplies input times synaptic weight
524 return (Neuron0x9fd0208()*-2.9778);
527 Double_t AliCaloNeuralFit::Synapse0x9fdf680() const
530 // Synaptic connection
531 // Multiplies input times synaptic weight
533 return (Neuron0x9fd0398()*-0.598961);
536 Double_t AliCaloNeuralFit::Synapse0x9fdf6a8() const
539 // Synaptic connection
540 // Multiplies input times synaptic weight
542 return (Neuron0x9fd0570()*-0.857305);
545 Double_t AliCaloNeuralFit::Synapse0x9fdf6d0() const
548 // Synaptic connection
549 // Multiplies input times synaptic weight
551 return (Neuron0x9fd0748()*0.58472);
554 Double_t AliCaloNeuralFit::Synapse0x9fdf6f8() const
557 // Synaptic connection
558 // Multiplies input times synaptic weight
560 return (Neuron0x9fdec20()*1.87975);
563 Double_t AliCaloNeuralFit::Synapse0x9fdf918() const
566 // Synaptic connection
567 // Multiplies input times synaptic weight
569 return (Neuron0x9fd0208()*0.334053);
572 Double_t AliCaloNeuralFit::Synapse0x9fdf940() const
575 // Synaptic connection
576 // Multiplies input times synaptic weight
578 return (Neuron0x9fd0398()*0.142395);
581 Double_t AliCaloNeuralFit::Synapse0x9fdf9f0() const
584 // Synaptic connection
585 // Multiplies input times synaptic weight
587 return (Neuron0x9fd0570()*0.293019);
590 Double_t AliCaloNeuralFit::Synapse0x9fdfa18() const
593 // Synaptic connection
594 // Multiplies input times synaptic weight
596 return (Neuron0x9fd0748()*-0.109163);
599 Double_t AliCaloNeuralFit::Synapse0x9fdfa40() const
602 // Synaptic connection
603 // Multiplies input times synaptic weight
605 return (Neuron0x9fdec20()*0.482151);
608 Double_t AliCaloNeuralFit::Synapse0x9fdfc18() const
611 // Synaptic connection
612 // Multiplies input times synaptic weight
614 return (Neuron0x9fd0208()*-0.270303);
617 Double_t AliCaloNeuralFit::Synapse0x9fdfc40() const
620 // Synaptic connection
621 // Multiplies input times synaptic weight
623 return (Neuron0x9fd0398()*-0.212234);
626 Double_t AliCaloNeuralFit::Synapse0x9fdfc68() const
629 // Synaptic connection
630 // Multiplies input times synaptic weight
632 return (Neuron0x9fd0570()*-0.136993);
635 Double_t AliCaloNeuralFit::Synapse0x9fdfc90() const
638 // Synaptic connection
639 // Multiplies input times synaptic weight
641 return (Neuron0x9fd0748()*-0.322175);
644 Double_t AliCaloNeuralFit::Synapse0x9fdfcb8() const
647 // Synaptic connection
648 // Multiplies input times synaptic weight
650 return (Neuron0x9fdec20()*-0.137984);
653 Double_t AliCaloNeuralFit::Synapse0x9fdfed8() const
656 // Synaptic connection
657 // Multiplies input times synaptic weight
659 return (Neuron0x9fd0208()*0.00656827);
662 Double_t AliCaloNeuralFit::Synapse0x9fdff00() const
665 // Synaptic connection
666 // Multiplies input times synaptic weight
668 return (Neuron0x9fd0398()*-0.0405237);
671 Double_t AliCaloNeuralFit::Synapse0x9fdff28() const
674 // Synaptic connection
675 // Multiplies input times synaptic weight
677 return (Neuron0x9fd0570()*-0.437988);
680 Double_t AliCaloNeuralFit::Synapse0x9fdff50() const
683 // Synaptic connection
684 // Multiplies input times synaptic weight
686 return (Neuron0x9fd0748()*-0.343747);
689 Double_t AliCaloNeuralFit::Synapse0x9fdff78() const
692 // Synaptic connection
693 // Multiplies input times synaptic weight
695 return (Neuron0x9fdec20()*-0.168597);
698 Double_t AliCaloNeuralFit::Synapse0x9fe0198() const
701 // Synaptic connection
702 // Multiplies input times synaptic weight
704 return (Neuron0x9fd0208()*-0.47585);
707 Double_t AliCaloNeuralFit::Synapse0x9fe01c0() const
710 // Synaptic connection
711 // Multiplies input times synaptic weight
713 return (Neuron0x9fd0398()*1.7023);
716 Double_t AliCaloNeuralFit::Synapse0x9fe01e8() const
719 // Synaptic connection
720 // Multiplies input times synaptic weight
722 return (Neuron0x9fd0570()*0.193432);
725 Double_t AliCaloNeuralFit::Synapse0x9fdf968() const
728 // Synaptic connection
729 // Multiplies input times synaptic weight
731 return (Neuron0x9fd0748()*0.139333);
734 Double_t AliCaloNeuralFit::Synapse0x9fdf990() const
737 // Synaptic connection
738 // Multiplies input times synaptic weight
740 return (Neuron0x9fdec20()*-0.400241);
743 Double_t AliCaloNeuralFit::Synapse0x9fe04f0() const
746 // Synaptic connection
747 // Multiplies input times synaptic weight
749 return (Neuron0x9fd0208()*0.757465);
752 Double_t AliCaloNeuralFit::Synapse0x9fe0518() const
755 // Synaptic connection
756 // Multiplies input times synaptic weight
758 return (Neuron0x9fd0398()*0.070475);
761 Double_t AliCaloNeuralFit::Synapse0x9fe0540() const
764 // Synaptic connection
765 // Multiplies input times synaptic weight
767 return (Neuron0x9fd0570()*0.412929);
770 Double_t AliCaloNeuralFit::Synapse0x9fe0568() const
773 // Synaptic connection
774 // Multiplies input times synaptic weight
776 return (Neuron0x9fd0748()*-0.161017);
779 Double_t AliCaloNeuralFit::Synapse0x9fe0590() const
782 // Synaptic connection
783 // Multiplies input times synaptic weight
785 return (Neuron0x9fdec20()*-0.168403);
788 Double_t AliCaloNeuralFit::Synapse0x9fe07b0() const
791 // Synaptic connection
792 // Multiplies input times synaptic weight
794 return (Neuron0x9fd0208()*0.490089);
797 Double_t AliCaloNeuralFit::Synapse0x9fe07d8() const
800 // Synaptic connection
801 // Multiplies input times synaptic weight
803 return (Neuron0x9fd0398()*-0.193417);
806 Double_t AliCaloNeuralFit::Synapse0x9fe0800() const
809 // Synaptic connection
810 // Multiplies input times synaptic weight
812 return (Neuron0x9fd0570()*-0.345063);
815 Double_t AliCaloNeuralFit::Synapse0x9fe0828() const
818 // Synaptic connection
819 // Multiplies input times synaptic weight
821 return (Neuron0x9fd0748()*-0.507424);
824 Double_t AliCaloNeuralFit::Synapse0x9fe0850() const
827 // Synaptic connection
828 // Multiplies input times synaptic weight
830 return (Neuron0x9fdec20()*-0.790068);
833 Double_t AliCaloNeuralFit::Synapse0x9fe0a70() const
836 // Synaptic connection
837 // Multiplies input times synaptic weight
839 return (Neuron0x9fd0208()*1.717);
842 Double_t AliCaloNeuralFit::Synapse0x9fe0a98() const
845 // Synaptic connection
846 // Multiplies input times synaptic weight
848 return (Neuron0x9fd0398()*3.29133);
851 Double_t AliCaloNeuralFit::Synapse0x9fe0ac0() const
854 // Synaptic connection
855 // Multiplies input times synaptic weight
857 return (Neuron0x9fd0570()*-0.60354);
860 Double_t AliCaloNeuralFit::Synapse0x9fe0ae8() const
863 // Synaptic connection
864 // Multiplies input times synaptic weight
866 return (Neuron0x9fd0748()*-0.553822);
869 Double_t AliCaloNeuralFit::Synapse0x9fe0b10() const
872 // Synaptic connection
873 // Multiplies input times synaptic weight
875 return (Neuron0x9fdec20()*-0.292983);
878 Double_t AliCaloNeuralFit::Synapse0x9fe0c10() const
881 // Synaptic connection
882 // Multiplies input times synaptic weight
884 return (Neuron0x9fdef28()*0.0177982);
887 Double_t AliCaloNeuralFit::Synapse0x9fe0c38() const
890 // Synaptic connection
891 // Multiplies input times synaptic weight
893 return (Neuron0x9fdf1a0()*0.088043);
896 Double_t AliCaloNeuralFit::Synapse0x9fe0c60() const
899 // Synaptic connection
900 // Multiplies input times synaptic weight
902 return (Neuron0x9fdf460()*0.0698223);
905 Double_t AliCaloNeuralFit::Synapse0x9fe0c88() const
908 // Synaptic connection
909 // Multiplies input times synaptic weight
911 return (Neuron0x9fdf720()*0.609632);
914 Double_t AliCaloNeuralFit::Synapse0x9fe0cb0() const
917 // Synaptic connection
918 // Multiplies input times synaptic weight
920 return (Neuron0x9fdfa68()*-0.825672);
923 Double_t AliCaloNeuralFit::Synapse0x9fe0cd8() const
926 // Synaptic connection
927 // Multiplies input times synaptic weight
929 return (Neuron0x9fdfce0()*-0.109339);
932 Double_t AliCaloNeuralFit::Synapse0x9fe0d00() const
935 // Synaptic connection
936 // Multiplies input times synaptic weight
938 return (Neuron0x9fdffa0()*-0.498954);
941 Double_t AliCaloNeuralFit::Synapse0x9fe0d28() const
944 // Synaptic connection
945 // Multiplies input times synaptic weight
947 return (Neuron0x9fe0318()*0.346775);
950 Double_t AliCaloNeuralFit::Synapse0x9fe0d50() const
953 // Synaptic connection
954 // Multiplies input times synaptic weight
956 return (Neuron0x9fe05b8()*-0.284703);
959 Double_t AliCaloNeuralFit::Synapse0x9fe0d78() const
962 // Synaptic connection
963 // Multiplies input times synaptic weight
965 return (Neuron0x9fe0878()*0.0176923);
968 Double_t AliCaloNeuralFit::Synapse0x9fe0fa0() const
971 // Synaptic connection
972 // Multiplies input times synaptic weight
974 return (Neuron0x9fdef28()*-1.65881);
977 Double_t AliCaloNeuralFit::Synapse0x9fe0fc8() const
980 // Synaptic connection
981 // Multiplies input times synaptic weight
983 return (Neuron0x9fdf1a0()*0.0393971);
986 Double_t AliCaloNeuralFit::Synapse0x9fe0ff0() const
989 // Synaptic connection
990 // Multiplies input times synaptic weight
992 return (Neuron0x9fdf460()*1.71678);
995 Double_t AliCaloNeuralFit::Synapse0x9fe1018() const
998 // Synaptic connection
999 // Multiplies input times synaptic weight
1001 return (Neuron0x9fdf720()*0.408921);
1004 Double_t AliCaloNeuralFit::Synapse0x9fe1040() const
1007 // Synaptic connection
1008 // Multiplies input times synaptic weight
1010 return (Neuron0x9fdfa68()*-0.508733);
1013 Double_t AliCaloNeuralFit::Synapse0x9882b78() const
1016 // Synaptic connection
1017 // Multiplies input times synaptic weight
1019 return (Neuron0x9fdfce0()*-0.48213);
1022 Double_t AliCaloNeuralFit::Synapse0x9fd0158() const
1025 // Synaptic connection
1026 // Multiplies input times synaptic weight
1028 return (Neuron0x9fdffa0()*-1.36281);
1031 Double_t AliCaloNeuralFit::Synapse0x9fd0180() const
1034 // Synaptic connection
1035 // Multiplies input times synaptic weight
1037 return (Neuron0x9fe0318()*0.102217);
1040 Double_t AliCaloNeuralFit::Synapse0x9fd01a8() const
1043 // Synaptic connection
1044 // Multiplies input times synaptic weight
1046 return (Neuron0x9fe05b8()*-0.684593);
1049 Double_t AliCaloNeuralFit::Synapse0x9fd01d0() const
1052 // Synaptic connection
1053 // Multiplies input times synaptic weight
1055 return (Neuron0x9fe0878()*1.99419);