//-*- Mode: C++ -*- // $Id$ #ifndef ALIHLTITSCLUSTERHISTOCOMPONENT_H #define ALIHLTITSCLUSTERHISTOCOMPONENT_H //* This file is property of and copyright by the ALICE HLT Project * //* ALICE Experiment at CERN, All rights reserved. * //* See cxx source for full Copyright notice * /** @file AliHLTITSClusterHistoComponent.h @author Gaute Ovrebekk @brief Component for ploting clusters */ #include "AliHLTProcessor.h" #include "TH1F.h" #include "TH2F.h" #include "AliHLTITSSpacePointData.h" #include "TClonesArray.h" #include "AliITSRecPoint.h" /** * @class AliHLTITSQHistoComponent * Component for ploting charge in clusters * * Component ID: \b ITSClusterHisto
* Library: \b libAliHLTITS.so * * Mandatory arguments:
* * * Optional arguments:
* \li -plot-all
* will plot all histograms in the component. * \li -plot-xy
* will plot a historgam of the x and y projection of the clusters. * \li -plot-charge multiplicity
* will plot the charge of the clusters. * \li -plot-phieta
* will plot the phi vs eta distrubution of the clusters. * @ingroup alihlt_tpc_components */ class AliHLTITSClusterHistoComponent : public AliHLTProcessor { public: /** default constructor */ AliHLTITSClusterHistoComponent(); /** destructor */ virtual ~AliHLTITSClusterHistoComponent(); // Public functions to implement AliHLTComponent's interface. // These functions are required for the registration process /** interface function, see AliHLTComponent for description */ const char* GetComponentID(); /** interface function, see AliHLTComponent for description */ void GetInputDataTypes(AliHLTComponentDataTypeList& list); /** interface function, see AliHLTComponent for description */ AliHLTComponentDataType GetOutputDataType(); /** interface function, see AliHLTComponent for description */ virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); /** interface function, see AliHLTComponent for description */ AliHLTComponent* Spawn(); protected: // Protected functions to implement AliHLTComponent's interface. // These functions provide initialization as well as the actual processing // capabilities of the component. /** interface function, see AliHLTComponent for description */ int DoInit( int argc, const char** argv ); /** interface function, see AliHLTComponent for description */ int DoDeinit(); /** interface function, see AliHLTComponent for description */ int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData ); int Reconfigure(const char* cdbEntry, const char* chainId); using AliHLTProcessor::DoEvent; private: /** copy constructor prohibited */ AliHLTITSClusterHistoComponent(const AliHLTITSClusterHistoComponent&); /** assignment operator prohibited */ AliHLTITSClusterHistoComponent& operator=(const AliHLTITSClusterHistoComponent&); /** * Configure the component. * Parse a string for the configuration arguments and set the component * properties. */ int Configure(const char* arguments); TH2F * fXY; //! transient TH2F **fPhieta; //! transient TH1F * fCharge; //! transient Bool_t fPlotCharge; //! transient Bool_t fPlotXYPhiEta; //! transient /// maximum required size of the output buffer /// dynamically adjusted int fOutputSize; //! transient ClassDef(AliHLTITSClusterHistoComponent, 3); }; #endif