test macro to run the EMCAL HLT chain in AliRoot
[u/mrichter/AliRoot.git] / HLT / EMCAL / AliHLTEMCALRawHistoMakerComponent.h
1 /**************************************************************************
2  * This file is property of and copyright by the ALICE HLT Project        *
3  * All rights reserved.                                                   *
4  * INFN, Laboratori Nazionali di Frascati                                 *
5  * Primary Authors: Federico Ronchetti                                    *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15 #ifndef ALIHLTEMCALRAWHISTOMAKERCOMPONENT_H
16 #define ALIHLTEMCALRAWHISTOMAKERCOMPONENT_H
17
18 /** @file   AliHLTEMCALRawHistoMakerComponent.h
19     @author Federico Ronchetti
20     @date   
21     @brief  A histo maker component for EMCAL HLT
22  */
23
24
25
26 #include "AliHLTCaloProcessor.h"
27 #include  "AliHLTEMCALDefinitions.h"
28 #include "TString.h"
29
30 class AliHLTEMCALRawHistoMaker;
31
32
33 class AliHLTEMCALRawHistoMakerComponent : public AliHLTCaloProcessor
34 {
35 public:
36
37         /** Constructor */
38         AliHLTEMCALRawHistoMakerComponent();
39
40         /** Destructor */
41         virtual ~AliHLTEMCALRawHistoMakerComponent();
42
43
44         /** Assignment */
45         AliHLTEMCALRawHistoMakerComponent & operator = (const AliHLTEMCALRawHistoMakerComponent)
46         {
47                 //Assignment
48                 return *this;
49         }
50
51         /** interface function, see @ref AliHLTComponent for description */
52         const char* GetComponentID();
53
54         /** interface function, see @ref AliHLTComponent for description */
55         void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
56
57         /** interface function, see @ref AliHLTComponent for description */
58         AliHLTComponentDataType GetOutputDataType();
59
60         /** interface function, see @ref AliHLTComponent for description */
61         void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
62
63         /** interface function, see @ref AliHLTComponent for description */
64         int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
65                         AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
66                         std::vector<AliHLTComponentBlockData>& outputBlocks);
67
68         /** interface function, see @ref AliHLTComponent for description */
69         AliHLTComponent* Spawn();
70
71 protected:
72
73         /** interface function, see @ref AliHLTComponent for description */
74
75         int DoInit(int argc, const char** argv);
76         int DoDeinit() {
77                 return(0);
78         }
79
80         using AliHLTCaloProcessor::DoEvent;
81
82         /** interface function, see @ref AliHLTComponent for description */
83         virtual int Deinit(); ////////// PTH WARNING
84
85 private:
86         TString fRootFileName;
87         int fPushFraction;
88         int fLocalEventCount;
89         int fBeVerbose;
90
91         /** Pointer to the histo maker itself */
92         AliHLTEMCALRawHistoMaker *fRawHistoMakerPtr;                    //! transient
93
94         AliHLTEMCALRawHistoMakerComponent(const AliHLTEMCALRawHistoMakerComponent & );
95
96 };
97
98 #endif
99