]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/AliHLTGlobalVertexerHistoComponent.h
Updated macros for PHOS alignment calculation
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalVertexerHistoComponent.h
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
18 class AliHLTGlobalVertexerHistoComponent : public AliHLTProcessor 
19 {
20 public:
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 */
38   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
39
40    /** interface function, see AliHLTComponent for description */
41  virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
42   /** interface function, see AliHLTComponent for description */
43   AliHLTComponent* Spawn();
44
45 private:  
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
68   void SetDefaultConfiguration();
69   int ReadConfigurationString(  const char* arguments );
70
71   AliHLTUInt32_t fUID;// uID of the component
72
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
86
87   //Aux. function.
88   unsigned long GetOutputDataSize()const;
89 };
90
91 #endif