HLT component to write data to files. The directory where to write the files
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSFileWriterComponent.h
CommitLineData
f4d27262 1#ifndef ALIHLTPHOSFILEWRITERCOMPONENT_H
2#define ALIHLTPHOSFILEWRITERCOMPONENT_H
acd526ae 3
f4d27262 4#include "AliHLTDataSink.h"
5#include "AliHLTPHOSFileWriterComponent.h"
6#include "AliRawReaderMemory.h"
7#include "AliCaloRawStream.h"
8#include "AliHLTPHOSDefinitions.h"
9#include <string>
10#include "AliHLTPHOSCommonDefs.h"
11#include "AliHLTPHOSFileWriter.h"
12#include "AliHLTPHOSCellEnergiesFileWriter.h"
13#include "AliHLTPHOSDDLPackedFileWriter.h"
14#include "Rtypes.h"
acd526ae 15
f4d27262 16using std::string;
acd526ae 17
f4d27262 18class AliHLTPHOSRcuCellEnergyDataStruct;
19
20class AliHLTPHOSFileWriterComponent:public AliHLTDataSink
acd526ae 21{
22 public:
23 AliHLTPHOSFileWriterComponent();
f4d27262 24 virtual ~AliHLTPHOSFileWriterComponent();
25 int AddDataType(string dataType);
26 virtual int DoInit( int argc, const char** argv );
27 virtual int Deinit();
28 virtual int DoDeinit();
29 virtual int DumpEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, AliHLTComponentTriggerData& trigData );
30 virtual const char* GetComponentID();
31 virtual void GetInputDataTypes(std::vector<AliHLTComponentDataType, std::allocator<AliHLTComponentDataType> >&);
32 virtual AliHLTComponentDataType GetOutputDataType();
33 virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
34 virtual AliHLTComponent* Spawn();
acd526ae 35
f4d27262 36 protected:
acd526ae 37
f4d27262 38 private:
39 AliHLTPHOSFileWriterComponent(const AliHLTPHOSFileWriterComponent & );
40 AliHLTPHOSFileWriterComponent & operator = (const AliHLTPHOSFileWriterComponent)
41 {
42 return *this;
43 };
44 AliHLTPHOSCellEnergiesFileWriter *fCellEnergiesFileWriterPtr;
45 AliHLTPHOSDDLPackedFileWriter *fDDLPackedFileWriterPtr ;
46 string fDirectory; /**<target directory for files*/
47 string fFilename; /**<the basename of the output file*/
48 AliHLTComponentDataType fDataTypesToFile[N_DATATYPES];
49 Bool_t IsRegisteredDataType(const AliHLTComponentDataType&);
50 int fEventCount;
51 static const AliHLTComponentDataType fInputDataTypes[];
acd526ae 52};
acd526ae 53#endif