]>
Commit | Line | Data |
---|---|---|
ab38011b | 1 | /************************************************************************** |
2 | * This file is property of and copyright by the ALICE HLT Project * | |
3 | * All rights reserved. * | |
4 | * * | |
5 | * Primary Authors: Oystein Djuvsland * | |
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 | **************************************************************************/ | |
5c6503dc | 15 | #ifndef ALIHLTPHOSBASELINEANALYZERCOMPONENT_H |
16 | #define ALIHLTPHOSBASELINEANALYZERCOMPONENT_H | |
17 | ||
2374af72 | 18 | |
19 | /** | |
20 | * Class does baseline analysis | |
21 | * | |
22 | * @file AliHLTPHOSBaselineAnalyzerComponent.h | |
23 | * @author Oystein Djuvsland | |
24 | * @date | |
25 | * @brief A baseline analyzer for PHOS HLT | |
26 | */ | |
27 | ||
28 | // see below for class documentation | |
29 | // or | |
30 | // refer to README to build package | |
31 | // or | |
32 | // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt | |
33 | ||
5c6503dc | 34 | #include "AliHLTPHOSProcessor.h" |
35 | ||
ab38011b | 36 | class AliHLTPHOSBaselineAnalyzer; |
37 | class TTree; | |
5c6503dc | 38 | |
2374af72 | 39 | |
40 | /** | |
41 | * @class AliHLTPHOSBaselineAnalyzerComponent | |
42 | * | |
43 | * Class for running baseline analysis for PHOS in HLT. Takes raw data as input and creates | |
44 | * objects of class AliHLTPHOSBaseline. Also it fills histograms of baselines as well as RMS | |
45 | * of the channels | |
46 | */ | |
47 | ||
5c6503dc | 48 | class AliHLTPHOSBaselineAnalyzerComponent : public AliHLTPHOSProcessor |
49 | { | |
50 | public: | |
2374af72 | 51 | |
52 | /** Constructor */ | |
5c6503dc | 53 | AliHLTPHOSBaselineAnalyzerComponent(); |
2374af72 | 54 | |
55 | /** Destructor */ | |
ab38011b | 56 | virtual ~AliHLTPHOSBaselineAnalyzerComponent(); |
57 | ||
2374af72 | 58 | /** interface function, see @ref AliHLTComponent for description */ |
5c6503dc | 59 | const char* GetComponentID(); |
60 | ||
2374af72 | 61 | /** interface function, see @ref AliHLTComponent for description */ |
5c6503dc | 62 | void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list); |
63 | ||
2374af72 | 64 | /** interface function, see @ref AliHLTComponent for description */ |
5c6503dc | 65 | AliHLTComponentDataType GetOutputDataType(); |
66 | ||
2374af72 | 67 | /** interface function, see @ref AliHLTComponent for description */ |
5c6503dc | 68 | void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier); |
69 | ||
2374af72 | 70 | /** interface function, see @ref AliHLTComponent for description */ |
ab38011b | 71 | int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, |
72 | AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size, | |
73 | std::vector<AliHLTComponentBlockData>& outputBlocks); | |
5c6503dc | 74 | |
2374af72 | 75 | /** interface function, see @ref AliHLTComponent for description */ |
5c6503dc | 76 | AliHLTComponent* Spawn(); |
77 | ||
78 | protected: | |
2374af72 | 79 | |
80 | /** interface function, see @ref AliHLTComponent for description */ | |
1804b020 | 81 | using AliHLTPHOSProcessor::DoEvent; |
2374af72 | 82 | |
5c6503dc | 83 | int DoInit(int argc, const char** argv); |
2374af72 | 84 | |
85 | /** interface function, see @ref AliHLTComponent for description */ | |
5c6503dc | 86 | virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor |
87 | ||
88 | private: | |
89 | ||
2374af72 | 90 | /** Calculate all values baselines, RMS etc. */ |
5c6503dc | 91 | void CalculateAll(); |
92 | ||
2374af72 | 93 | /** Pointer to a baseline analyzer */ |
94 | AliHLTPHOSBaselineAnalyzer *fBaselineAnalyzerPtr; //! transient | |
95 | ||
96 | /** Pointer the a tree containing the TClonesArrays of AliHLTPHOSBaseline objects */ | |
97 | TTree *fTreePtr; //! transient | |
98 | ||
99 | /** TClonesArray of AliHLTPHOSBaseline objects */ | |
100 | TClonesArray *fBaselineArrayPtr; //! transient | |
101 | ||
102 | /** Event count */ | |
103 | UInt_t fEvCnt; //COMMENT | |
104 | ||
105 | /** Number of events between each writing of files */ | |
106 | UInt_t fWriteInterval; //COMMENT | |
107 | ||
108 | /** Number of events between each filling of the tree */ | |
109 | UInt_t fFillInterval; //COMMENT | |
110 | ||
111 | /** The filename base */ | |
112 | char *fFilename; //! transient | |
113 | ||
114 | /** The directory to write the files */ | |
115 | char* fDirectory; //! transient | |
116 | ||
117 | /** The path for the histograms */ | |
118 | char* fHistPath; //! transient | |
119 | ||
120 | /** The run number */ | |
121 | Int_t fRunNb; //COMMENT | |
122 | ||
123 | /** If every value should be calculated, not only RMS */ | |
124 | Bool_t fCalculateAll; //COMMMENT | |
125 | ||
126 | /** Interface variable */ | |
127 | static const AliHLTComponentDataType fgkInputDataTypes[]; //COMMENT | |
5c6503dc | 128 | |
129 | }; | |
130 | #endif |