3 /**************************************************************************
4 * Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
6 * Author: Per Thomas Hille for the ALICE HLT Project. *
7 * Contributors are mentioned in the code where appropriate. *
9 * Permission to use, copy, modify and distribute this software and its *
10 * documentation strictly for non-commercial purposes is hereby granted *
11 * without fee, provided that the above copyright notice appears in all *
12 * copies and that both the copyright notice and this permission notice *
13 * appear in the supporting documentation. The authors make no claims *
14 * about the suitability of this software for any purpose. It is *
15 * provided "as is" without express or implied warranty. *
16 **************************************************************************/
18 #include "AliHLTPHOSRawAnalyzerCrude.h"
20 //ClassImp(AliHLTPHOSRawAnalyzerCrude)
24 * The AliHLTPHOSPeakfinder class is the class for extracting the basic signal parameters
25 * "timing" and "energy" from the PHOS raw data. Physical data will for a given readout channel be
26 * a sequense of ADC digitized 10 bit integer values, however for performance reasons all values used in
27 * calculation is of type double.
29 //____________________________________________________________________________
30 AliHLTPHOSRawAnalyzerCrude::AliHLTPHOSRawAnalyzerCrude():AliHLTPHOSRawAnalyzer()
36 //____________________________________________________________________________
37 AliHLTPHOSRawAnalyzerCrude::~AliHLTPHOSRawAnalyzerCrude()
40 } //end AliHLTPHOSRawAnalyzerCrude
44 * Extraction of timing and energy using Crude estimate.
45 * The. The parameters "start" and "length" defines a sub array of the data array
46 * that will be used for the the fit. If start+length must not exeed the total length
47 * of the Data array. "start" must be chosen as close as possible to t0.
48 * The baseline must also be subtracted. .
49 * "index + length" must not exeed the length of the data array set in the constructor.
50 * @param start the start index of the subarray of the data array.
51 * @param length the number of samples to use starting from index
53 // //____________________________________________________________________________
55 // AliHLTPHOSRawAnalyzerCrude::Evaluate(int start, int length)
57 // double tmpAmplitudeMax =0;
58 // double tmpTime = 0;
60 // for(int i=start; i<length; i++)
62 // if(fIntDataPtr[i] > tmpAmplitudeMax && i > 5)
64 // tmpAmplitudeMax = fIntDataPtr[i];
69 // fDAmpl = tmpAmplitudeMax;
77 AliHLTPHOSRawAnalyzerCrude::Evaluate(int start, int length)
79 // cout << "AliHLTPHOSRawAnalyzerCrude::Evaluate TP0" << endl;
83 // DumpData(fDoubleDataPtr,50, 25);
85 if(fUseShortValues == true)
87 EvaluateShort(start, length);
92 double tmpAmplitudeMax =0;
95 for(int i=start; i<length; i++)
97 // if(fDoubleDataPtr[i] > tmpAmplitudeMax && i > 5)
98 // if(fIntDataPtr[i] > tmpAmplitudeMax && i > 5)
99 if(fIntDataPtr[i] > tmpAmplitudeMax )
101 // tmpAmplitudeMax = fDoubleDataPtr[i];
102 tmpAmplitudeMax = fIntDataPtr[i];
107 fDAmpl = tmpAmplitudeMax;
115 AliHLTPHOSRawAnalyzerCrude::EvaluateShort(int start, int length)
117 // cout << "AliHLTPHOSRawAnalyzerCrude::Evaluate TP0" << endl;
121 // DumpData(fDoubleDataPtr,50, 25);
123 double tmpAmplitudeMax =0;
126 for(int i=start; i<length; i++)
128 // cout << "sample index: " << i << endl;
129 // if(fDoubleDataPtr[i] > tmpAmplitudeMax && i > 5)
130 // if(fShortDataPtr[i] > tmpAmplitudeMax && i > 5)
131 if(fShortDataPtr[i] > tmpAmplitudeMax )
133 // tmpAmplitudeMax = fDoubleDataPtr[i];
134 tmpAmplitudeMax = fShortDataPtr[i];
140 fDAmpl = tmpAmplitudeMax;