- dNdPtAnalysisMerger component added. It merges output from or dNdPtAnalysis instances
[u/mrichter/AliRoot.git] / HLT / global / physics / AliHLTdNdPtAnalysisMergerComponent.h
1 #ifndef ALIHLTDNDPTANALYSISMERGERCOMPONENT_H
2 #define ALIHLTDNDPTANALYSISMERGERCOMPONENT_H
3 //* This file is property of and copyright by the ALICE HLT Project        * 
4 //* ALICE Experiment at CERN, All rights reserved.                         *
5 //* See cxx source for full Copyright notice                               *
6
7 /** @file   AliHLTdNdPtAnalysisMergerComponent.h
8     @author Sergey Gorbunov
9     @brief  Component for merge output from several dNdPt analysis components 
10 */
11
12 #include "AliHLTProcessor.h"
13 #include "AliHLTComponentBenchmark.h"
14
15 class AlidNdPtEventCuts;
16 class AlidNdPtAcceptanceCuts;
17 class AliESDtrackCuts;
18 class AlidNdPtAnalysisPbPb;
19
20
21 /**
22  * @class AliHLTdNdPtAnalysisMergerComponent
23  * Component for dNdPt analysis
24  */
25 class AliHLTdNdPtAnalysisMergerComponent : public AliHLTProcessor
26 {
27 public:
28   /** default constructor */
29   AliHLTdNdPtAnalysisMergerComponent();
30   /** destructor */
31   virtual ~AliHLTdNdPtAnalysisMergerComponent();
32
33   // Public functions to implement AliHLTComponent's interface.
34   // These functions are required for the registration process
35
36   /** interface function, see AliHLTComponent for description */
37   const char* GetComponentID();
38   /** interface function, see AliHLTComponent for description */
39   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
40   /** interface function, see AliHLTComponent for description */
41   AliHLTComponentDataType GetOutputDataType();
42   /** interface function, see AliHLTComponent for description */
43   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
44   /** interface function, see AliHLTComponent for description */
45   AliHLTComponent* Spawn();
46
47 protected:
48
49   // Protected functions to implement AliHLTComponent's interface.
50   // These functions provide initialization as well as the actual processing
51   // capabilities of the component. 
52
53   /** interface function, see AliHLTComponent for description */
54   int DoInit( int argc, const char** argv );
55   /** interface function, see AliHLTComponent for description */
56   int DoDeinit();
57   /** interface function, see AliHLTComponent for description */
58   int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
59
60   int Reconfigure(const char* cdbEntry, const char* chainId);
61
62   using AliHLTProcessor::DoEvent;
63   
64 private:
65   /** copy constructor prohibited */
66   AliHLTdNdPtAnalysisMergerComponent(const AliHLTdNdPtAnalysisMergerComponent&);
67   /** assignment operator prohibited */
68   AliHLTdNdPtAnalysisMergerComponent& operator=(const AliHLTdNdPtAnalysisMergerComponent&);
69   /**
70    * Configure the component.
71    * Parse a string for the configuration arguments and set the component
72    * properties.
73    */ 
74   void SetDefaultConfiguration();
75   int ReadConfigurationString(  const char* arguments );
76   int ReadCDBEntry( const char* cdbEntry, const char* chainId );
77   int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
78
79   
80   AliHLTUInt32_t fUID;// uID of the component
81   AliHLTComponentBenchmark fBenchmark; // benchmarks
82   AlidNdPtAnalysisPbPb *fAnalysis; // analysis object
83
84 };
85 #endif