4 #ifndef ALIHLTTPCNOISEMAPCOMPONENT_H
5 #define ALIHLTTPCNOISEMAPCOMPONENT_H
7 //* This file is property of and copyright by the ALICE HLT Project *
8 //* ALICE Experiment at CERN, All rights reserved. *
9 //* See cxx source for full Copyright notice *
11 /** @file AliHLTTPCNoiseMapComponent.h
12 @author Kalliopi Kanaki
14 @brief Component for Noise Map
17 // see below for class documentation
19 // refer to README to build package
21 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
23 #include "AliHLTProcessor.h"
25 //forward declarations
26 class AliHLTTPCDigitReader;
30 * @class AliHLTTPCNoiseMapComponent
31 * Implementation of the component to fill histograms with TPC noise and read
32 * the noise map from OCDB by request.
33 * The component implements the interface methods of the @ref AliHLTProcessor.
34 * It reads the data pad by pad and fills histograms. The output is unpacked and
35 * sent to the clulsterfinder.
37 * The component has the following component arguments:
38 * - apply-noise-map Read the noise map from OCDB and apply it on the online data
40 * -plot-side-a Histograms the TPC side A
42 * -plot-side-c Histograms the TPC side C
44 * -apply-noisemap Reads a noise map from a file and subtracts the value contained in every pad from the data
48 class AliHLTTPCNoiseMapComponent : public AliHLTProcessor {
52 /** standard constructor */
53 AliHLTTPCNoiseMapComponent();
55 virtual ~AliHLTTPCNoiseMapComponent();
57 // Public functions to implement AliHLTComponent's interface.
58 // These functions are required for the registration process
60 /** interface function, see @ref AliHLTComponent for description */
61 const char* GetComponentID();
62 /** interface function, see @ref AliHLTComponent for description */
63 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
64 /** interface function, see @ref AliHLTComponent for description */
65 AliHLTComponentDataType GetOutputDataType();
66 /** interface function, see @ref AliHLTComponent for description */
67 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
68 /** interface function, see @ref AliHLTComponent for description */
69 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
70 /** interface function, see @ref AliHLTComponent for description */
71 AliHLTComponent* Spawn();
72 /** function for acting on the saving and cleaning histograms, after they are filled */
73 void MakeHistosPublic();
77 // Protected functions to implement AliHLTComponent's interface.
78 // These functions provide initialization as well as the actual processing capabilities of the component.
80 int DoInit( int argc, const char** argv );
82 // int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
83 // AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
84 // AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
85 int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
86 int Reconfigure(const char* cdbEntry, const char* chainId);
88 using AliHLTProcessor::DoEvent;
92 int Configure(const char* arguments);
94 /** copy constructor prohibited */
95 AliHLTTPCNoiseMapComponent(const AliHLTTPCNoiseMapComponent&);
97 /** assignment operator prohibited */
98 AliHLTTPCNoiseMapComponent& operator=(const AliHLTTPCNoiseMapComponent&);
100 /** the reader object for data decoding */
101 AliHLTUInt32_t fSpecification; //!transient
102 //AliHLTUInt8_t fMinPartition; //!transient
103 //AliHLTUInt8_t fMaxPartition; //!transient
105 //AliHLTTPCDigitReader *pDigitReader;
107 Bool_t fPlotSideA; //!transient
108 Bool_t fPlotSideC; //!transient
109 Bool_t fApplyNoiseMap; //!transient
110 Bool_t fIsPacked; //!transient
111 Bool_t fIsUnpacked; //!transient
113 Int_t fSlice; //!transient
115 Int_t fCurrentPartition; //!transient
116 Int_t fCurrentRow; //!transient
118 TH2 *fHistSideA; //!transient
119 TH2 *fHistSideC; //!transient
120 TH2 *fHistCDBMap; //!transient
122 ClassDef(AliHLTTPCNoiseMapComponent, 1)