]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSAnalyzerPeakFinder.cxx
Added source code to the hrml documentation
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSAnalyzerPeakFinder.cxx
CommitLineData
65116e10 1
2/**************************************************************************
3 * Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
4 * *
5 * Author: Per Thomas Hille for the ALICE HLT Project. *
6 * Contributors are mentioned in the code where appropriate. *
7 * *
8 * Permission to use, copy, modify and distribute this software and its *
9 * documentation strictly for non-commercial purposes is hereby granted *
10 * without fee, provided that the above copyright notice appears in all *
11 * copies and that both the copyright notice and this permission notice *
12 * appear in the supporting documentation. The authors make no claims *
13 * about the suitability of this software for any purpose. It is *
14 * provided "as is" without express or implied warranty. *
15 **************************************************************************/
16
17#include "AliHLTPHOSAnalyzerPeakFinder.h"
18#include <iostream>
19
20using std::cout;
21using std::endl;
22
23ClassImp(AliHLTPHOSAnalyzerPeakFinder)
24
25
26AliHLTPHOSAnalyzerPeakFinder::AliHLTPHOSAnalyzerPeakFinder(const AliHLTPHOSAnalyzerPeakFinder&):AliHLTPHOSAnalyzer(),tVector(0), aVector(0)
27{
28
29}
30
31
32/**
33 * The AliHLTPHOSPeakfinder class is the class for extracting the basic signal parameters
34 * "timing" and "energy" from the PHOS raw data. Physical data will for a given readout channel be
35 * a sequense of ADC digitized 10 bit integer values, however for performance reasons all values used in
36 * calculation is of type double.
37 **/
38AliHLTPHOSAnalyzerPeakFinder::AliHLTPHOSAnalyzerPeakFinder():AliHLTPHOSAnalyzer(),tVector(0), aVector(0)
39{
40 cout <<"You cannot invoke the Fitter without arguments"<<endl;;
41}
42
43
44
45AliHLTPHOSAnalyzerPeakFinder::~AliHLTPHOSAnalyzerPeakFinder()
46{
47
48} //end AliHLTPHOSAnalyzerPeakFinder
49
50void
51AliHLTPHOSAnalyzerPeakFinder::SetTVector(double *tVec)
52{
53 tVector = tVec;
54}
55
56void
57AliHLTPHOSAnalyzerPeakFinder::SetAVector(double *aVec)
58{
59 aVector = aVec;
60
61}
62
63/**
64* Extraction of timing and energy using the Peakfinde Algorithm.
65* The. The parameters "start" and "length" defines a sub array of the data array
66* that will be used for the the fit. If start+length must not exeed the total length
67* of the Data array. "start" must be chosen as close as possible to t0.
68* The baseline must also be subtracted.
69* The length of "tVector" and "aVector" mus be equal to length.
70* "index + length" must not exeed the length of the data array set in the constructor.
71* @param start the start index of the subarray of the data array.
72* @param length the number of samples to use starting from index
73* @param tVector the peakfinder vector for timing
74* @param aVector the peakfinder vector for amplitude (energy)
75**/
76void
77AliHLTPHOSAnalyzerPeakFinder::Evaluate(int start, int length)
78{
79 fDTof = 0;
80 fDAmpl = 0;
81
82 if(tVector == 0 || aVector == 0)
83 {
84 printf("\nError: the peakfinder vectors are not specified, aborting !!!\n");
85 }
86 else
87 {
88
89 printf("\nstart = %d, length = %d\n", start, length);
90 double tmpTime[1008];
91
92 for(int i=0; i < length; i++)
93 {
94 fDAmpl += aVector[i]*fFloatDataPtr[i];
95 }
96
97 for(int i=0; i < length; i++)
98 {
99 tmpTime[i] = tVector[i]*fFloatDataPtr[i];
100 fDTof = fDTof + tmpTime[i];
101 }
102
103 fDTof = fDTof/fDAmpl;
104 }
105 //thats all
106} //end FitPeakFinder
107
108
109
110