]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSFileWriterComponent.h
New class structure
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSFileWriterComponent.h
1 #ifndef ALIHLTPHOSFILEWRITERCOMPONENT_H
2 #define ALIHLTPHOSFILEWRITERCOMPONENT_H
3
4 //#include "AliHLTPHOSDefinitions.h"
5 #include <string>
6 #include "AliHLTPHOSCommonDefs.h"
7 #include "Rtypes.h"
8 #include "AliHLTFileWriter.h"
9 #include <vector>
10
11
12 class AliRawReaderMemory;
13 class AliCaloRawStream;
14 class AliHLTPHOSRcuCellEnergyDataStruct;
15 class AliHLTPHOSFileWriterComponent;
16 class AliHLTPHOSDDLPackedFileWriter;  
17 class AliHLTPHOSCellEnergiesFileWriter;
18 //class AliHLTFileWriter;
19
20 class AliHLTPHOSFileWriterComponent:public AliHLTFileWriter
21 {
22  public:
23   AliHLTPHOSFileWriterComponent();
24   virtual ~AliHLTPHOSFileWriterComponent();
25   int AddDataType(string dataType);
26   virtual int Deinit();
27   virtual int DoDeinit();
28   virtual const char* GetComponentID();
29   virtual void GetInputDataTypes( std::vector <AliHLTComponentDataType>&);
30   virtual AliHLTComponentDataType GetOutputDataType();
31   virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
32   virtual AliHLTComponent* Spawn();
33
34  protected:
35
36  private:
37   Bool_t IsRegisteredDataType(const AliHLTComponentDataType&);
38   AliHLTPHOSFileWriterComponent(const AliHLTPHOSFileWriterComponent & );  
39   AliHLTPHOSFileWriterComponent & operator = (const AliHLTPHOSFileWriterComponent)
40     {
41       return *this;
42     };
43   AliHLTPHOSCellEnergiesFileWriter *fCellEnergiesFileWriterPtr;   /**<to write celle energies to files*/
44   AliHLTPHOSDDLPackedFileWriter    *fDDLPackedFileWriterPtr ;     /**<to write untouched DDL raw data to files*/ 
45   string  fDirectory;                                             /**<target directory for files*/
46   string  fFilename;                                              /**<the basename of the output file*/
47   AliHLTComponentDataType fDataTypesToFile[N_DATATYPES];          /**<Array for registering datatypes that should be written to files*/          
48   int fEventCount;                                                /**<Event counter*/
49   static const AliHLTComponentDataType fgkInputDataTypes[];         /**<Datatypes that can be given as input to this component*/
50 };
51 #endif