Classes for online creation of root trees
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSTreeMakerComponent.h
1
2  /**************************************************************************
3  * This file is property of and copyright by the ALICE HLT Project        * 
4  * All rights reserved.                                                   *
5  *                                                                        *
6  * Primary Authors: Oystein Djuvsland                                     *
7  *                                                                        *
8  * Permission to use, copy, modify and distribute this software and its   *
9  * documentation strictly for non-commercial purposes is hereby granted   *
10  * without fee, provided that the above copyright notice appears in all   *
11  * copies and that both the copyright notice and this permission notice   *
12  * appear in the supporting documentation. The authors make no claims     *
13  * about the suitability of this software for any purpose. It is          * 
14  * provided "as is" without express or implied warranty.                  *
15  **************************************************************************/
16
17
18
19 #ifndef ALIHLTPHOSTREEMAKERCOMPONENT_H
20 #define ALIHLTPHOSTREEMAKERCOMPONENT_H
21
22 # include "AliHLTPHOSProcessor.h"
23
24 class AliHLTPHOSTreeMaker;
25 class TTree;
26
27 class AliHLTPHOSTreeMakerComponent : public AliHLTPHOSProcessor
28 {
29  public:
30   
31   AliHLTPHOSTreeMakerComponent();
32   ~AliHLTPHOSTreeMakerComponent();
33     
34   const char* GetComponentID();
35   
36   void  GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
37   
38   AliHLTComponentDataType GetOutputDataType();
39   
40   void GetOutputDataSize(unsigned long& constBase, double& inputmultiplier);
41 /*
42   int DoEvent(const AliHLTComponentEventData&,
43               AliHLTComponentTriggerData&);
44   */
45   
46   int DoEvent(const AliHLTComponentEventData&, const AliHLTComponentBlockData*,
47               AliHLTComponentTriggerData&, AliHLTUInt8_t*, AliHLTUInt32_t&,
48        std::vector<AliHLTComponentBlockData>&);
49   
50   AliHLTComponent* Spawn();
51
52   void Write(); 
53   void ResetTrees();
54    
55  protected:
56   int DoInit(int argc, const char** argv);
57
58   virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
59   
60  private:  
61   AliHLTPHOSTreeMaker *fTreeMakerPtr;
62   TTree *fDigitTreePtr;
63   UInt_t fEventCount;
64   UInt_t fWriteInterval;
65   UInt_t fRunNb;
66   char *fDirectory;
67  
68   static const AliHLTComponentDataType fgkInputDataTypes[];     //HLT input data type
69   
70 };
71 #endif
72