Line data Source code
1 : // -*- mode: c++ -*-
2 : #ifndef ALICALORAWANALYZERPEAKFINDER_H
3 : #define ALICALORAWANALYZERPEAKFINDER_H
4 : /**************************************************************************
5 : * This file is property of and copyright by *
6 : * the Relativistic Heavy Ion Group (RHIG), Yale University, US, 2009 *
7 : * *
8 : * Primary Author: Per Thomas Hille <perthomas.hille@yale.edu> *
9 : * *
10 : * Contributors are mentioned in the code where appropriate. *
11 : * Please report bugs to perthomas.hille@yale.edu *
12 : * *
13 : * Permission to use, copy, modify and distribute this software and its *
14 : * documentation strictly for non-commercial purposes is hereby granted *
15 : * without fee, provided that the above copyright notice appears in all *
16 : * copies and that both the copyright notice and this permission notice *
17 : * appear in the supporting documentation. The authors make no claims *
18 : * about the suitability of this software for any purpose. It is *
19 : * provided "as is" without express or implied warranty. *
20 : **************************************************************************/
21 :
22 : // The Peak-Finder algorithm
23 : // The amplitude is extracted as a
24 : // weighted sum of the samples using the
25 : // best possible weights.
26 :
27 : #include "AliCaloRawAnalyzer.h"
28 : #include "AliCaloConstants.h"
29 :
30 : class AliCaloBunchInfo;
31 : class AliCaloPeakFinderVectors;
32 :
33 : class AliCaloRawAnalyzerPeakFinder : public AliCaloRawAnalyzer
34 : {
35 : friend class AliCaloRawAnalyzerFactory; // rule checker request
36 :
37 : public:
38 :
39 0 : virtual ~AliCaloRawAnalyzerPeakFinder() { ; }
40 :
41 : virtual AliCaloFitResults Evaluate( const std::vector<AliCaloBunchInfo> &bunchvector,
42 : UInt_t altrocfg1, UInt_t altrocfg2 );
43 :
44 : private:
45 :
46 : AliCaloRawAnalyzerPeakFinder();
47 : AliCaloRawAnalyzerPeakFinder( const AliCaloRawAnalyzerPeakFinder & );
48 : AliCaloRawAnalyzerPeakFinder & operator = ( const AliCaloRawAnalyzerPeakFinder & );
49 :
50 : void LoadVectorsOCDB();
51 : void CopyVectors(const AliCaloPeakFinderVectors * pfvectors );
52 : void ResetVectors();
53 : void WriteRootFile() const;
54 : void PrintVectors();
55 : Double_t ScanCoarse( const Double_t *array, Int_t length ) const ; // Find a rough estimate of peak position and t0
56 :
57 : Double_t fPFAmpVectorsCoarse[PF::MAXSTART][PF::SAMPLERANGE][100]; // Vectors for Amplitude extraction, first iteration
58 : Double_t fPFTofVectorsCoarse[PF::MAXSTART][PF::SAMPLERANGE][100]; // Vectors for TOF extraction, first iteration
59 : Double_t fPFAmpVectors [PF::MAXSTART][PF::SAMPLERANGE][100]; // Vectors for Amplitude extraction, second iteration
60 : Double_t fPFTofVectors [PF::MAXSTART][PF::SAMPLERANGE][100]; // Vectors for TOF extraction, second iteration
61 :
62 : AliCaloPeakFinderVectors * fPeakFinderVectors; // Collection of Peak-Fincer vectors
63 :
64 : bool fRunOnAlien; // Wether or not we are running on the GRID
65 : bool fIsInitialized; // init flag
66 :
67 42 : ClassDef( AliCaloRawAnalyzerPeakFinder, 1 )
68 :
69 : };
70 :
71 :
72 : #endif
|