HLT component to write data to files. The directory where to write the files
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSFileWriterComponent.h
1 #ifndef ALIHLTPHOSFILEWRITERCOMPONENT_H
2 #define ALIHLTPHOSFILEWRITERCOMPONENT_H
3
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"
15
16 using std::string;
17
18 class AliHLTPHOSRcuCellEnergyDataStruct;
19  
20 class AliHLTPHOSFileWriterComponent:public AliHLTDataSink
21 {
22  public:
23   AliHLTPHOSFileWriterComponent();
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();
35
36  protected:
37
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[];
52 };
53 #endif