treatment of MC labels added
[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 "AliHLTCaloClusterDataStruct.h"
28
29 #include "AliHLTCaloConstantsHandler.h"
30 #include "AliHLTEMCALDefinitions.h"
31 #include "AliHLTDataTypes.h"
32 #include "TString.h"
33
34
35 class AliHLTEMCALRawHistoMaker;
36 class AliHLTCaloClusterHeaderStruct;
37
38
39
40 class AliHLTEMCALRawHistoMakerComponent : public AliHLTCaloProcessor
41 {
42 public:
43
44         /** Constructor */
45         AliHLTEMCALRawHistoMakerComponent();
46
47         /** Destructor */
48         virtual ~AliHLTEMCALRawHistoMakerComponent();
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         
86
87 private:
88         TString fRootFileName;
89         int fPushFraction;
90         int fLocalEventCount;
91         int fBeVerbose;
92
93         /** Pointer to the histo maker itself */
94         AliHLTEMCALRawHistoMaker *fRawHistoMakerPtr;                    //! transient
95
96         
97         AliHLTEMCALRawHistoMakerComponent(const AliHLTEMCALRawHistoMakerComponent & );
98         AliHLTEMCALRawHistoMakerComponent & operator = (const AliHLTEMCALRawHistoMakerComponent &);
99 };
100
101 #endif
102