#include "AliCaloRawAnalyzerNN.h"
#include "AliCaloNeuralFit.h"
#include "AliCaloFitResults.h"
#include "AliCaloBunchInfo.h"
#include <iostream>
using namespace std;
#include "AliCaloConstants.h"
ClassImp( AliCaloRawAnalyzerNN )
AliCaloRawAnalyzerNN::AliCaloRawAnalyzerNN() : AliCaloRawAnalyzer("Neural Network", "NN"), fNeuralNet(0)
{
fAlgo=Algo::kNeuralNet;
fNeuralNet = new AliCaloNeuralFit();
for(int i=0; i < 5 ; i++)
{
fNNInput[i] = 0;
}
}
AliCaloRawAnalyzerNN::~AliCaloRawAnalyzerNN()
{
delete fNeuralNet;
}
AliCaloFitResults
AliCaloRawAnalyzerNN::Evaluate( const vector<AliCaloBunchInfo> &bunchvector,
UInt_t altrocfg1, UInt_t altrocfg2 )
{
if( bunchvector.size() <= 0 )
{
return AliCaloFitResults( Ret::kInvalid, Ret::kInvalid);
}
short maxampindex;
short maxamp;
int index = SelectBunch( bunchvector, &maxampindex , &maxamp ) ;
if( index < 0 )
{
return AliCaloFitResults( Ret::kInvalid, Ret::kInvalid);
}
Float_t ped = ReverseAndSubtractPed( &(bunchvector.at( index ) ) , altrocfg1, altrocfg2, fReversed );
short timebinOffset = maxampindex - (bunchvector.at(index).GetLength()-1);
double maxf = maxamp - ped;
if( maxf < fAmpCut || ( maxamp - ped) > fOverflowCut )
{
return AliCaloFitResults( maxamp, ped, Ret::kCrude, maxf, timebinOffset);
}
int first = 0;
int last = 0;
short maxrev = maxampindex - bunchvector.at(index).GetStartBin();
SelectSubarray( fReversed, bunchvector.at(index).GetLength(), maxrev , &first, &last, fFitArrayCut );
Float_t chi2 = 0;
Int_t ndf = 0;
if(maxrev < 1000 )
{
if ( ( maxrev - first) < 2 && (last - maxrev ) < 2)
{
chi2 = CalculateChi2(maxf, maxrev, first, last);
ndf = last - first - 1;
return AliCaloFitResults( maxamp, ped, Ret::kCrude, maxf, timebinOffset,
timebinOffset, chi2, ndf, Ret::kDummy, AliCaloFitSubarray(index, maxrev, first, last) );
}
else
{
for(int i=0; i < 5 ; i++)
{
fNNInput[i] = fReversed[maxrev-2 +i]/(maxamp -ped);
}
double amp = (maxamp - ped)*fNeuralNet->Value( 0, fNNInput[0], fNNInput[1], fNNInput[2], fNNInput[3], fNNInput[4]);
double tof = (fNeuralNet->Value( 1, fNNInput[0], fNNInput[1], fNNInput[2], fNNInput[3], fNNInput[4]) + timebinOffset ) ;
chi2 = CalculateChi2(amp, tof-timebinOffset+maxrev, first, last);
ndf = last - first - 1;
return AliCaloFitResults( maxamp, ped , Ret::kFitPar, amp , tof, timebinOffset, chi2, ndf,
Ret::kDummy, AliCaloFitSubarray(index, maxrev, first, last) );
}
}
chi2 = CalculateChi2(maxf, maxrev, first, last);
ndf = last - first - 1;
return AliCaloFitResults( maxamp, ped, Ret::kCrude, maxf, timebinOffset,
timebinOffset, chi2, ndf, Ret::kDummy, AliCaloFitSubarray(index, maxrev, first, last) );
}
AliCaloRawAnalyzerNN.cxx:1 AliCaloRawAnalyzerNN.cxx:2 AliCaloRawAnalyzerNN.cxx:3 AliCaloRawAnalyzerNN.cxx:4 AliCaloRawAnalyzerNN.cxx:5 AliCaloRawAnalyzerNN.cxx:6 AliCaloRawAnalyzerNN.cxx:7 AliCaloRawAnalyzerNN.cxx:8 AliCaloRawAnalyzerNN.cxx:9 AliCaloRawAnalyzerNN.cxx:10 AliCaloRawAnalyzerNN.cxx:11 AliCaloRawAnalyzerNN.cxx:12 AliCaloRawAnalyzerNN.cxx:13 AliCaloRawAnalyzerNN.cxx:14 AliCaloRawAnalyzerNN.cxx:15 AliCaloRawAnalyzerNN.cxx:16 AliCaloRawAnalyzerNN.cxx:17 AliCaloRawAnalyzerNN.cxx:18 AliCaloRawAnalyzerNN.cxx:19 AliCaloRawAnalyzerNN.cxx:20 AliCaloRawAnalyzerNN.cxx:21 AliCaloRawAnalyzerNN.cxx:22 AliCaloRawAnalyzerNN.cxx:23 AliCaloRawAnalyzerNN.cxx:24 AliCaloRawAnalyzerNN.cxx:25 AliCaloRawAnalyzerNN.cxx:26 AliCaloRawAnalyzerNN.cxx:27 AliCaloRawAnalyzerNN.cxx:28 AliCaloRawAnalyzerNN.cxx:29 AliCaloRawAnalyzerNN.cxx:30 AliCaloRawAnalyzerNN.cxx:31 AliCaloRawAnalyzerNN.cxx:32 AliCaloRawAnalyzerNN.cxx:33 AliCaloRawAnalyzerNN.cxx:34 AliCaloRawAnalyzerNN.cxx:35 AliCaloRawAnalyzerNN.cxx:36 AliCaloRawAnalyzerNN.cxx:37 AliCaloRawAnalyzerNN.cxx:38 AliCaloRawAnalyzerNN.cxx:39 AliCaloRawAnalyzerNN.cxx:40 AliCaloRawAnalyzerNN.cxx:41 AliCaloRawAnalyzerNN.cxx:42 AliCaloRawAnalyzerNN.cxx:43 AliCaloRawAnalyzerNN.cxx:44 AliCaloRawAnalyzerNN.cxx:45 AliCaloRawAnalyzerNN.cxx:46 AliCaloRawAnalyzerNN.cxx:47 AliCaloRawAnalyzerNN.cxx:48 AliCaloRawAnalyzerNN.cxx:49 AliCaloRawAnalyzerNN.cxx:50 AliCaloRawAnalyzerNN.cxx:51 AliCaloRawAnalyzerNN.cxx:52 AliCaloRawAnalyzerNN.cxx:53 AliCaloRawAnalyzerNN.cxx:54 AliCaloRawAnalyzerNN.cxx:55 AliCaloRawAnalyzerNN.cxx:56 AliCaloRawAnalyzerNN.cxx:57 AliCaloRawAnalyzerNN.cxx:58 AliCaloRawAnalyzerNN.cxx:59 AliCaloRawAnalyzerNN.cxx:60 AliCaloRawAnalyzerNN.cxx:61 AliCaloRawAnalyzerNN.cxx:62 AliCaloRawAnalyzerNN.cxx:63 AliCaloRawAnalyzerNN.cxx:64 AliCaloRawAnalyzerNN.cxx:65 AliCaloRawAnalyzerNN.cxx:66 AliCaloRawAnalyzerNN.cxx:67 AliCaloRawAnalyzerNN.cxx:68 AliCaloRawAnalyzerNN.cxx:69 AliCaloRawAnalyzerNN.cxx:70 AliCaloRawAnalyzerNN.cxx:71 AliCaloRawAnalyzerNN.cxx:72 AliCaloRawAnalyzerNN.cxx:73 AliCaloRawAnalyzerNN.cxx:74 AliCaloRawAnalyzerNN.cxx:75 AliCaloRawAnalyzerNN.cxx:76 AliCaloRawAnalyzerNN.cxx:77 AliCaloRawAnalyzerNN.cxx:78 AliCaloRawAnalyzerNN.cxx:79 AliCaloRawAnalyzerNN.cxx:80 AliCaloRawAnalyzerNN.cxx:81 AliCaloRawAnalyzerNN.cxx:82 AliCaloRawAnalyzerNN.cxx:83 AliCaloRawAnalyzerNN.cxx:84 AliCaloRawAnalyzerNN.cxx:85 AliCaloRawAnalyzerNN.cxx:86 AliCaloRawAnalyzerNN.cxx:87 AliCaloRawAnalyzerNN.cxx:88 AliCaloRawAnalyzerNN.cxx:89 AliCaloRawAnalyzerNN.cxx:90 AliCaloRawAnalyzerNN.cxx:91 AliCaloRawAnalyzerNN.cxx:92 AliCaloRawAnalyzerNN.cxx:93 AliCaloRawAnalyzerNN.cxx:94 AliCaloRawAnalyzerNN.cxx:95 AliCaloRawAnalyzerNN.cxx:96 AliCaloRawAnalyzerNN.cxx:97 AliCaloRawAnalyzerNN.cxx:98 AliCaloRawAnalyzerNN.cxx:99 AliCaloRawAnalyzerNN.cxx:100 AliCaloRawAnalyzerNN.cxx:101 AliCaloRawAnalyzerNN.cxx:102 AliCaloRawAnalyzerNN.cxx:103 AliCaloRawAnalyzerNN.cxx:104 AliCaloRawAnalyzerNN.cxx:105 AliCaloRawAnalyzerNN.cxx:106 AliCaloRawAnalyzerNN.cxx:107 AliCaloRawAnalyzerNN.cxx:108 AliCaloRawAnalyzerNN.cxx:109 AliCaloRawAnalyzerNN.cxx:110 AliCaloRawAnalyzerNN.cxx:111 AliCaloRawAnalyzerNN.cxx:112 AliCaloRawAnalyzerNN.cxx:113 AliCaloRawAnalyzerNN.cxx:114 AliCaloRawAnalyzerNN.cxx:115 AliCaloRawAnalyzerNN.cxx:116 AliCaloRawAnalyzerNN.cxx:117 AliCaloRawAnalyzerNN.cxx:118 AliCaloRawAnalyzerNN.cxx:119 AliCaloRawAnalyzerNN.cxx:120 AliCaloRawAnalyzerNN.cxx:121 AliCaloRawAnalyzerNN.cxx:122 AliCaloRawAnalyzerNN.cxx:123 AliCaloRawAnalyzerNN.cxx:124 AliCaloRawAnalyzerNN.cxx:125 AliCaloRawAnalyzerNN.cxx:126 AliCaloRawAnalyzerNN.cxx:127 AliCaloRawAnalyzerNN.cxx:128 AliCaloRawAnalyzerNN.cxx:129 AliCaloRawAnalyzerNN.cxx:130 AliCaloRawAnalyzerNN.cxx:131 AliCaloRawAnalyzerNN.cxx:132 AliCaloRawAnalyzerNN.cxx:133 AliCaloRawAnalyzerNN.cxx:134 AliCaloRawAnalyzerNN.cxx:135 AliCaloRawAnalyzerNN.cxx:136 AliCaloRawAnalyzerNN.cxx:137 AliCaloRawAnalyzerNN.cxx:138 AliCaloRawAnalyzerNN.cxx:139 AliCaloRawAnalyzerNN.cxx:140 AliCaloRawAnalyzerNN.cxx:141