cbab66dd |
1 | /************************************************************************** |
2 | * Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. * |
3 | * * |
4 | * Author: Per Thomas Hille for the ALICE HLT Project. * |
5 | * Contributors are mentioned in the code where appropriate. * |
6 | * * |
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 | **************************************************************************/ |
15 | |
16 | #include "AliHLTPHOSRawAnalyzerCrude.h" |
17 | #include <iostream> |
18 | |
19 | using std::cout; |
20 | using std::endl; |
21 | |
22 | ClassImp(AliHLTPHOSRawAnalyzerCrude) |
23 | |
24 | |
25 | AliHLTPHOSRawAnalyzerCrude::AliHLTPHOSRawAnalyzerCrude(const AliHLTPHOSRawAnalyzerCrude&):AliHLTPHOSRawAnalyzer() |
26 | { |
27 | |
28 | } |
29 | |
30 | /** |
31 | * The AliHLTPHOSPeakfinder class is the class for extracting the basic signal parameters |
32 | * "timing" and "energy" from the PHOS raw data. Physical data will for a given readout channel be |
33 | * a sequense of ADC digitized 10 bit integer values, however for performance reasons all values used in |
34 | * calculation is of type double. |
35 | **/ |
36 | AliHLTPHOSRawAnalyzerCrude::AliHLTPHOSRawAnalyzerCrude():AliHLTPHOSRawAnalyzer() |
37 | { |
38 | cout <<"You cannot invoke the Fitter without arguments"<<endl; |
39 | } |
40 | |
41 | |
42 | |
43 | AliHLTPHOSRawAnalyzerCrude::~AliHLTPHOSRawAnalyzerCrude() |
44 | { |
45 | |
46 | } //end AliHLTPHOSRawAnalyzerCrude |
47 | |
48 | |
49 | |
50 | /** |
51 | * Extraction of timing and energy using the Peakfinde Algorithm. |
52 | * The. The parameters "start" and "length" defines a sub array of the data array |
53 | * that will be used for the the fit. If start+length must not exeed the total length |
54 | * of the Data array. "start" must be chosen as close as possible to t0. |
55 | * The baseline must also be subtracted. |
56 | * The length of "tVector" and "aVector" mus be equal to length. |
57 | * "index + length" must not exeed the length of the data array set in the constructor. |
58 | * @param start the start index of the subarray of the data array. |
59 | * @param length the number of samples to use starting from index |
60 | * @param tVector the peakfinder vector for timing |
61 | * @param aVector the peakfinder vector for amplitude (energy) |
62 | **/ |
63 | void |
64 | AliHLTPHOSRawAnalyzerCrude::Evaluate(int start, int length) |
65 | { |
66 | |
67 | double tmpAmplitudeMax =0; |
68 | double tmpTime = 0; |
69 | |
70 | for(int i=start; i<length; i++) |
71 | { |
72 | if(fFloatDataPtr[i] > tmpAmplitudeMax) |
73 | { |
74 | tmpAmplitudeMax = fFloatDataPtr[i]; |
75 | tmpTime = i; |
76 | } |
77 | } |
78 | |
79 | fDAmpl = tmpAmplitudeMax; |
80 | fDTof = tmpTime; |
81 | //thats all |
82 | } //end Crude |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |