2 /**************************************************************************
3 * This file is property of and copyright by the ALICE HLT Project *
4 * All rights reserved. *
6 * Primary Authors: Oystein Djuvsland, Svein Lindal *
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 **************************************************************************/
17 #ifndef ALIHLTCALOHISTOCOMPONENT_H
18 #define ALIHLTCALOHISTOCOMPONENT_H
23 * @file AliHLTCaloHistoComponent.cxx
24 * @author Svein Lindal
29 // see below for class documentation
31 // refer to README to build package
33 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
35 #include "AliHLTProcessor.h"
39 class AliHLTPHOSPhysicsHistogramProducer;
40 class AliHLTCaloHistoCellEnergy;
41 class AliHLTCaloHistoClusterEnergy;
42 class AliHLTCaloHistoInvMass;
43 class AliHLTCaloHistoMatchedTracks;
45 class AliHLTCaloClusterReader;
48 * @class AliHLTPHOSHistogramProducerComponent
51 * @ingroup alihlt_phos
54 class AliHLTCaloHistoComponent : public AliHLTProcessor {
59 AliHLTCaloHistoComponent();
61 virtual ~AliHLTCaloHistoComponent();
63 /** interface function, see @ref AliHLTComponent for description */
64 const char* GetComponentID();
66 /** interface function, see @ref AliHLTComponent for description */
67 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
69 /** interface function, see @ref AliHLTComponent for description */
70 AliHLTComponentDataType GetOutputDataType();
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();
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 */
87 using AliHLTProcessor::DoEvent;
91 /** Copy constructor prohibited*/
92 AliHLTCaloHistoComponent(const AliHLTCaloHistoComponent & );
93 /** asssignment operator prohibited */
94 AliHLTCaloHistoComponent& operator=(const AliHLTCaloHistoComponent&);
96 /** function to get data content from blocks and pass it on to histogram produsers*/
97 Int_t ProcessBlocks(const AliHLTComponentBlockData * pBlock, TObjArray * histoArray);
99 AliHLTCaloClusterReader * fClusterReader; //!transient Class to read cluster data structs
101 TRefArray * fEmcalClustersArray; //!transient Array to contain EMCAL Clusters
102 TRefArray * fPhosClustersArray; //!transient Array to contain PHOS Clusters
104 TObjArray * fPhosProducerArray; //!transient
105 TObjArray * fEmcalProducerArray; //!transient
107 TObjArray * fPhosHistogramArray; //!transient
108 TObjArray * fEmcalHistogramArray; //!transient
111 Bool_t fDoEmcal; //Fill EMCAL histos?
112 Bool_t fDoPhos; //Fill PHOS histos?
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.
118 ClassDef(AliHLTCaloHistoComponent, 0);