2 /**************************************************************************
3 * Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
5 * Author: Per Thomas Hille for the ALICE HLT Project. *
6 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
17 #include "AliHLTPHOSRawAnalyzerPeakFinder.h"
23 ClassImp(AliHLTPHOSRawAnalyzerPeakFinder)
26 AliHLTPHOSRawAnalyzerPeakFinder::AliHLTPHOSRawAnalyzerPeakFinder(const AliHLTPHOSRawAnalyzerPeakFinder&):AliHLTPHOSRawAnalyzer(),tVector(0), aVector(0)
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.
38 AliHLTPHOSRawAnalyzerPeakFinder::AliHLTPHOSRawAnalyzerPeakFinder():AliHLTPHOSRawAnalyzer(),tVector(0), aVector(0)
40 // cout <<"PeakFinder:You cannot invoke the Fitter without arguments"<<endl;;
45 AliHLTPHOSRawAnalyzerPeakFinder::~AliHLTPHOSRawAnalyzerPeakFinder()
48 } //end AliHLTPHOSRawAnalyzerPeakFinder
51 AliHLTPHOSRawAnalyzerPeakFinder::SetTVector(double *tVec)
57 AliHLTPHOSRawAnalyzerPeakFinder::SetAVector(double *aVec)
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)
77 AliHLTPHOSRawAnalyzerPeakFinder::Evaluate(int start, int length)
79 printf("\n AliHLTPHOSRawAnalyzerPeakFinder::Evaluat from index %d to %d\n", start, start + length);
84 if(tVector == 0 || aVector == 0)
86 printf("\nError: the peakfinder vectors are not specified, aborting !!!\n");
91 printf("\nstart = %d, length = %d\n", start, length);
94 for(int i=0; i < length; i++)
96 fDAmpl += aVector[i]*fFloatDataPtr[i];
99 for(int i=0; i < length; i++)
101 tmpTime[i] = tVector[i]*fFloatDataPtr[i];
102 fDTof = fDTof + tmpTime[i];
105 fDTof = fDTof/fDAmpl;
110 } //end FitPeakFinder