]>
Commit | Line | Data |
---|---|---|
766aafea | 1 | //-*- Mode: C++ -*- |
2 | /************************************************************************** | |
3 | * This file is property of and copyright by the ALICE HLT Project * | |
4 | * All rights reserved. * | |
5 | * * | |
6 | * Primary Authors: Oystein Djuvsland, Svein Lindal * | |
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 | #ifndef ALIHLTCALOHISTOCOMPONENT_H | |
18 | #define ALIHLTCALOHISTOCOMPONENT_H | |
19 | ||
20 | /** | |
21 | * | |
22 | * | |
23 | * @file AliHLTCaloHistoComponent.cxx | |
24 | * @author Svein Lindal | |
25 | * @date | |
26 | * @brief | |
27 | */ | |
28 | ||
29 | // see below for class documentation | |
30 | // or | |
31 | // refer to README to build package | |
32 | // or | |
33 | // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt | |
34 | ||
35 | #include "AliHLTProcessor.h" | |
36 | ||
37 | #include "Rtypes.h" | |
38 | ||
39 | class AliHLTPHOSPhysicsHistogramProducer; | |
40 | class AliHLTCaloHistoCellEnergy; | |
41 | class AliHLTCaloHistoClusterEnergy; | |
42 | class AliHLTCaloHistoInvMass; | |
43 | class AliHLTCaloHistoMatchedTracks; | |
44 | class TRefArray; | |
e0cde76d | 45 | class AliHLTCaloClusterReader; |
ce063697 | 46 | class TObjArray; |
766aafea | 47 | /** |
48 | * @class AliHLTPHOSHistogramProducerComponent | |
49 | * | |
50 | * | |
51 | * @ingroup alihlt_phos | |
52 | */ | |
53 | ||
ce063697 | 54 | class AliHLTCaloHistoComponent : public AliHLTProcessor { |
766aafea | 55 | |
56 | public: | |
57 | ||
58 | /** Constructor */ | |
59 | AliHLTCaloHistoComponent(); | |
60 | /** Destructor */ | |
61 | virtual ~AliHLTCaloHistoComponent(); | |
62 | ||
63 | /** interface function, see @ref AliHLTComponent for description */ | |
64 | const char* GetComponentID(); | |
65 | ||
66 | /** interface function, see @ref AliHLTComponent for description */ | |
67 | void GetInputDataTypes(AliHLTComponentDataTypeList& list); | |
68 | ||
69 | /** interface function, see @ref AliHLTComponent for description */ | |
70 | AliHLTComponentDataType GetOutputDataType(); | |
71 | ||
72 | /** interface function, see @ref AliHLTComponent for description */ | |
73 | void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier); | |
74 | /** interface function, see @ref AliHLTComponent for description */ | |
75 | AliHLTComponent* Spawn(); | |
76 | ||
77 | ||
78 | protected: | |
79 | ||
80 | /** interface function, see @ref AliHLTComponent for description */ | |
81 | int DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); | |
82 | /** interface function, see @ref AliHLTComponent for description */ | |
83 | int DoInit(int argc, const char** argv); | |
84 | /** interface function, see @ref AliHLTComponent for description */ | |
85 | int DoDeinit(); | |
86 | ||
87 | using AliHLTProcessor::DoEvent; | |
88 | ||
89 | private: | |
90 | ||
91 | /** Copy constructor prohibited*/ | |
92 | AliHLTCaloHistoComponent(const AliHLTCaloHistoComponent & ); | |
93 | /** asssignment operator prohibited */ | |
94 | AliHLTCaloHistoComponent& operator=(const AliHLTCaloHistoComponent&); | |
95 | ||
ce063697 | 96 | /** function to get data content from blocks and pass it on to histogram produsers*/ |
97 | Int_t ProcessBlocks(const AliHLTComponentBlockData * pBlock, TObjArray * histoArray); | |
766aafea | 98 | |
ce063697 | 99 | AliHLTCaloClusterReader * fClusterReader; //!transient Class to read cluster data structs |
100 | ||
101 | TRefArray * fEmcalClustersArray; //!transient Array to contain EMCAL Clusters | |
102 | TRefArray * fPhosClustersArray; //!transient Array to contain PHOS Clusters | |
766aafea | 103 | |
bff00215 | 104 | TObjArray * fPhosProducerArray; //!transient |
105 | TObjArray * fEmcalProducerArray; //!transient | |
106 | ||
ce063697 | 107 | TObjArray * fPhosHistogramArray; //!transient |
108 | TObjArray * fEmcalHistogramArray; //!transient | |
109 | ||
bff00215 | 110 | |
ce063697 | 111 | Bool_t fDoEmcal; //Fill EMCAL histos? |
112 | Bool_t fDoPhos; //Fill PHOS histos? | |
a5856bc0 | 113 | |
114 | Bool_t fCutOnCentrality; // Cut on centrality on cluters with high energy | |
115 | Float_t fCentralityCut; //How large fraction of the energy do we want in the central tower to make the cut? | |
116 | Float_t fCentralityCutEnergy; //The minimum energy of the cluster to make the cut. | |
e0cde76d | 117 | |
ce063697 | 118 | ClassDef(AliHLTCaloHistoComponent, 0); |
766aafea | 119 | |
120 | }; | |
121 | ||
122 | #endif |