]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDEsdWriterComponent.h
HLT TRD update by Konstantin
[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   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
43   AliHLTComponent* Spawn() {return new AliHLTTRDEsdWriterComponent;}
44
45  protected:
46   /**
47    * Data processing method for the component.
48    * The function can be overloaded by specific ROOT file writer
49    * components.
50    * @param evtData       event data structure
51    * @param blocks        input data block descriptors
52    * @param trigData      trigger data structure
53    */
54   virtual int DumpEvent( const AliHLTComponentEventData& evtData,
55                          const AliHLTComponentBlockData* blocks, 
56                          AliHLTComponentTriggerData& trigData );
57                          
58   using AliHLTRootFileWriterComponent::DumpEvent;
59
60   /**
61    * Scan one argument and adjacent parameters.
62    * @param argc           size of the argument array
63    * @param argv           agument array for component initialization
64    * @return number of processed members of the argv <br>
65    *         -EINVAL unknown argument <br>
66    *         -EPROTO parameter for argument missing <br>
67    */
68   int ScanArgument(int argc, const char** argv);
69   
70   
71
72  private:
73   /** not a valid copy constructor, defined according to effective C++ style */
74   AliHLTTRDEsdWriterComponent(const AliHLTTRDEsdWriterComponent&);
75   /** not a valid assignment op, but defined according to effective C++ style */
76   AliHLTTRDEsdWriterComponent& operator=(const AliHLTTRDEsdWriterComponent&);
77
78   /**
79    * Init the writer.
80    * The DoInit function is not available for this child class. InitWriter is the
81    * corresponding function for classes derived from AliHLTFileWriter.
82    */
83   int InitWriter();
84
85   /**
86    * Init the writer.
87    * The DoDeinit function is not available for this child class. CloseWriter is the
88    * corresponding function for classes derived from AliHLTFileWriter.
89    */
90   int CloseWriter();
91
92   /** the ESD tree */
93   TTree* fTree; //! transient value
94   
95   /** output percentage descared*/
96   Int_t fOutputPercentage; 
97
98   /** the ESD */
99   AliESDEvent* fESD; //! transient value
100
101   int DoEvent(  const AliHLTComponent_EventData& evtData,
102                                                 const AliHLTComponent_BlockData* blocks,
103                                                 AliHLTComponent_TriggerData& /*trigData*/,
104                                                 AliHLTUInt8_t* /*outputPtr*/,
105                                                 AliHLTUInt32_t& /*size*/,
106                                                 vector<AliHLTComponent_BlockData>& /*outputBlocks*/);
107                                                 
108   ClassDef(AliHLTTRDEsdWriterComponent, 1)
109
110 };
111 #endif