60b6e4d8da22c174d6b47d8229cc3ff816b4a543
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDEsdWriterComponent.h
1 #ifndef ALIHLTTRDESDWRITERCOMPONENT_H
2 #define ALIHLTTRDESDWRITERCOMPONENT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /** @file   AliHLTTRDEsdWriterComponent.h
7     @author Mateusz Ploskon
8     @date   
9     @brief  Writer component to store tracks of the HLT TRD 
10
11                                                                           */
12 #include "AliHLTRootFileWriterComponent.h"
13
14 // forward declarations
15 class TTree;
16 class AliESDEvent;
17
18 /**
19  * @class AliHLTTRDEsdWriterComponent
20  * @see AliHLTFileWriter and AliHLTRootFileWriterComponent for more parameters
21  */
22 class AliHLTTRDEsdWriterComponent : public AliHLTRootFileWriterComponent
23 {
24  public:
25   /** standard constructor */
26   AliHLTTRDEsdWriterComponent();
27   /** destructor */
28   ~AliHLTTRDEsdWriterComponent();
29
30   /**
31    * The id of the component.
32    * @return component id (string)
33    */
34   const char* GetComponentID() {return "TRDEsdWriter";};
35
36   void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
37
38   /**
39    * Spawn function.
40    * @return new class instance
41    */
42   AliHLTComponent* Spawn() {return new AliHLTTRDEsdWriterComponent;}
43
44  protected:
45   /**
46    * Data processing method for the component.
47    * The function can be overloaded by specific ROOT file writer
48    * components.
49    * @param evtData       event data structure
50    * @param blocks        input data block descriptors
51    * @param trigData      trigger data structure
52    */
53   virtual int DumpEvent( const AliHLTComponentEventData& evtData,
54                          const AliHLTComponentBlockData* blocks, 
55                          AliHLTComponentTriggerData& trigData );
56
57   using AliHLTRootFileWriterComponent::DumpEvent;
58
59   /**
60    * Scan one argument and adjacent parameters.
61    * @param argc           size of the argument array
62    * @param argv           agument array for component initialization
63    * @return number of processed members of the argv <br>
64    *         -EINVAL unknown argument <br>
65    *         -EPROTO parameter for argument missing <br>
66    */
67   int ScanArgument(int argc, const char** argv);
68
69  private:
70   /** not a valid copy constructor, defined according to effective C++ style */
71   AliHLTTRDEsdWriterComponent(const AliHLTTRDEsdWriterComponent&);
72   /** not a valid assignment op, but defined according to effective C++ style */
73   AliHLTTRDEsdWriterComponent& operator=(const AliHLTTRDEsdWriterComponent&);
74
75   /**
76    * Init the writer.
77    * The DoInit function is not available for this child class. InitWriter is the
78    * corresponding function for classes derived from AliHLTFileWriter.
79    */
80   int InitWriter();
81
82   /**
83    * Init the writer.
84    * The DoDeinit function is not available for this child class. CloseWriter is the
85    * corresponding function for classes derived from AliHLTFileWriter.
86    */
87   int CloseWriter();
88
89   /** the ESD tree */
90   TTree* fTree; //! transient value
91
92   /** the ESD */
93   AliESDEvent* fESD; //! transient value
94
95   ClassDef(AliHLTTRDEsdWriterComponent, 1)
96 };
97 #endif