6b73da2ae2cf5908cae143d5559ae4be05112b78
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRawAnalyzerCrude.cxx
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 <<"AliHLTPHOSRawAnalyzerCrude::Creating a new AliHLTPHOSRawAnalyzerCrude() object "<<endl;
39 }
40
41
42
43 AliHLTPHOSRawAnalyzerCrude::~AliHLTPHOSRawAnalyzerCrude()
44 {
45
46 } //end AliHLTPHOSRawAnalyzerCrude
47
48
49
50 /**
51 * Extraction of timing and energy using Crude estimate.
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   printf("\nAliHLTPHOSRawAnalyzerCrude::Evaluat() from index %d to %d\n", start, start + length);
67   
68   
69   double tmpAmplitudeMax =0; 
70   double tmpTime = 0;
71
72   for(int i=start; i<length; i++)
73     {
74       if(fFloatDataPtr[i] >  tmpAmplitudeMax)
75         {
76           tmpAmplitudeMax = fFloatDataPtr[i];
77           tmpTime = i;               
78         }
79     }
80         
81   fDAmpl = tmpAmplitudeMax;
82   fDTof =  tmpTime;
83  
84   //thats all 
85 } //end Crude
86
87
88
89
90
91