make AliVVevent abstract (=0)
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalVertexerHistoComponent.h
CommitLineData
de0257eb 1#ifndef ALIHLTPGLOBALVERTEXERHISTOCOMPONENT_H
2#define ALIHLTPGLOBALVERTEXERHISTOCOMPONENT_H
3
4//* This file is property of and copyright by the ALICE HLT Project *
5//* ALICE Experiment at CERN, All rights reserved. *
6//* See cxx source for full Copyright notice *
7
8/** @file AliHLTGlobalVertexerComponent.h
9 @author Timur Pocheptsov
10 @brief Component for monitor primary vertex
11*/
12
13#include <TH2F.h>
14
15#include "AliHLTProcessor.h"
16
17
18class AliHLTGlobalVertexerHistoComponent : public AliHLTProcessor
19{
20public:
21 /** default constructor */
22 AliHLTGlobalVertexerHistoComponent();
23
24 //No need to declare and define dtor, copy-ctor, copy-assignment operator.
25 //Compiler generated versions are ok (as soon as class has no explicit
26 //resource management). And if TH2F is exception-safe, my class is
27 //exception-safe too.
28
29 // Overriders for AliHLTComponent's interface.
30 // These functions are required for the registration process.
31 /** interface function, see AliHLTComponent for description. why not const? */
32 const char* GetComponentID();
33 /** interface function, see AliHLTComponent for description. why not const? */
34 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
35 /** interface function, see AliHLTComponent for description. why not const? */
36 AliHLTComponentDataType GetOutputDataType();
37 /** interface function, see AliHLTComponent for description */
d2831d6a 38 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
39
40 /** interface function, see AliHLTComponent for description */
41 virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
de0257eb 42 /** interface function, see AliHLTComponent for description */
43 AliHLTComponent* Spawn();
44
45private:
46 /** interface function, see AliHLTComponent for description */
47 int DoInit(int argc, const char** argv);
48 /** interface function, see AliHLTComponent for description */
49 int DoDeinit();
50
51 //AliHLTProcess has overriden DoEvent from AliHLTComponent and
52 //added new virtual function with the same name and different
53 //signature. If I override only one of them, the second will be hidden
54 //and good compiler can issue a warning, for example, Comeau can
55 //(my gcc does not issue any warning). So, there are 2 ways:
56 //override both or declare the second with using-declaration.
57
58 /** interface function, see AliHLTComponent for description */
59 int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
60 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
61 AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks);
62
63 using AliHLTProcessor::DoEvent;
64
65 /** interface function, see AliHLTComponent for description */
66 int Reconfigure(const char* cdbEntry, const char* chainId);
67
ac0d701f 68 void SetDefaultConfiguration();
69 int ReadConfigurationString( const char* arguments );
70
e419c1ae 71 AliHLTUInt32_t fUID;// uID of the component
72
ac0d701f 73 Int_t fRefreshPeriod;// histos will refresh after fRefreshPeriod number of events
74 Int_t fFillSecond;//!
75 Int_t fFillSecondSPD ;//!
76
77 TH2F fPrimaryXY[2]; //X and Y coords.
78 TH1F fPrimaryX[2]; // X coords.
79 TH1F fPrimaryY[2]; // Y coords.
80 TH1F fPrimaryZ[2]; // Z coords.
81
82 TH2F fSPDVertexXY[2];// ITS SPD vertex
83 TH1F fSPDVertexX[2];// ITS SPD vertex
84 TH1F fSPDVertexY[2];// ITS SPD vertex
85 TH1F fSPDVertexZ[2];// ITS SPD vertex
de0257eb 86
87 //Aux. function.
88 unsigned long GetOutputDataSize()const;
89};
90
91#endif