]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/AliHLTGlobalCompareFlatComponent.h
added friends to compare component
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalCompareFlatComponent.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTGlobalCompareFlatComponent $
3
4 #ifndef ALIHLTGLOBALCOMPAREFLATCOMPONENT_H
5 #define ALIHLTGLOBALCOMPAREFLATCOMPONENT_H
6
7 /* This file is property of and copyright by the ALICE HLT Project        * 
8  * ALICE Experiment at CERN, All rights reserved.                         *
9  * See cxx source for full Copyright notice                               */
10
11 /** @file    AliHLTGlobalCompareFlatComponent.h
12     @author  Steffen Weber <s.weber@gsi.de>
13     @brief   Compare flat events from different inputs
14 */
15
16 // see below for class documentation
17 // or
18 // refer to README to build package
19 // or
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21
22 #include "AliHLTProcessor.h"
23
24 class THnSparse;
25
26 class AliESDVZERO;
27 class AliESDtrackCuts;
28 class AliHLTCTPData;
29 class AliHLTMultiplicityCorrelations;
30 class AliHLTGlobalTriggerDecision;
31 class AliHLTTestInputHandler;
32
33
34 class AliHLTGlobalCompareFlatComponent : public AliHLTProcessor {
35 public:
36
37   /*
38    * ---------------------------------------------------------------------------------
39    *                            Constructor / Destructor
40    * ---------------------------------------------------------------------------------
41    */
42
43   /** constructor */
44   AliHLTGlobalCompareFlatComponent();
45   
46   /** destructor */
47   virtual ~AliHLTGlobalCompareFlatComponent();
48
49   /*
50    * ---------------------------------------------------------------------------------
51    * Public functions to implement AliHLTComponent's interface.
52    * These functions are required for the registration process
53    * ---------------------------------------------------------------------------------
54    */
55
56   /** interface function, see @ref AliHLTComponent for description */
57   const Char_t* GetComponentID();
58
59   /** interface function, see @ref AliHLTComponent for description */
60   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
61
62   /** interface function, see @ref AliHLTComponent for description */
63   AliHLTComponentDataType GetOutputDataType();
64
65   /** interface function, see @ref AliHLTComponent for description */
66   void GetOutputDataSize( ULong_t& constBase, Double_t& inputMultiplier );
67
68   /** interface function, see @ref AliHLTComponent for description */
69  // void GetOCDBObjectDescription( TMap* const targetMap);
70
71   /** interface function, see @ref AliHLTComponent for description */
72   AliHLTComponent* Spawn();
73
74  protected:
75
76   /*
77    * ---------------------------------------------------------------------------------
78    * Protected functions to implement AliHLTComponent's interface.
79    * These functions provide initialization as well as the actual processing
80    * capabilities of the component. 
81    * ---------------------------------------------------------------------------------
82    */
83
84   // AliHLTComponent interface functions
85
86   /** interface function, see @ref AliHLTComponent for description */
87   Int_t DoInit( Int_t /*argc*/, const Char_t** /*argv*/ );
88
89   /** interface function, see @ref AliHLTComponent for description */
90   Int_t DoDeinit();
91
92   /** interface function, see @ref AliHLTComponent for description */
93   int DoEvent( const AliHLTComponentEventData& evtData,
94                const AliHLTComponentBlockData* blocks, 
95                AliHLTComponentTriggerData& trigData,
96                AliHLTUInt8_t* outputPtr, 
97                AliHLTUInt32_t& size,
98                AliHLTComponentBlockDataList& outputBlocks);
99
100   using AliHLTProcessor::DoEvent;
101
102
103   /**
104    * Configure the component.
105    * Parse a string for the configuration arguments and set the component
106    * properties.
107    */
108   int Configure(const char* arguments);
109
110   /** interface function, see @ref AliHLTComponent for description */
111   Int_t Reconfigure(const Char_t* cdbEntry, const Char_t* chainId);
112
113   /** interface function, see @ref AliHLTComponent for description */
114   Int_t ReadPreprocessorValues(const Char_t* modules);
115  
116   ///////////////////////////////////////////////////////////////////////////////////
117   
118 private:
119
120   /*
121    * ---------------------------------------------------------------------------------
122    * Private functions to implement AliHLTComponent's interface.
123    * These functions provide initialization as well as the actual processing
124    * capabilities of the component. 
125    * ---------------------------------------------------------------------------------
126    */
127
128   /** copy constructor prohibited */
129   AliHLTGlobalCompareFlatComponent(const AliHLTGlobalCompareFlatComponent&);
130
131   /** assignment operator prohibited */
132   AliHLTGlobalCompareFlatComponent& operator=(const AliHLTGlobalCompareFlatComponent&);
133 void printDiff( string name, double val1, double val2);
134 void printDiff( string name, int n , double* vals1, double* vals2 );
135 void printDiff( string name, TString val1, TString val2);
136
137   /*
138    * ---------------------------------------------------------------------------------
139    *                              Helper
140    * ---------------------------------------------------------------------------------
141    */
142
143   /*
144    * ---------------------------------------------------------------------------------
145    *                             Members - private
146    * ---------------------------------------------------------------------------------
147    */
148   
149   /** UID for merging */
150
151         /*
152         THnSparse * fhDiff;
153         
154         static const    Int_t fDim = 14;
155         */
156         ofstream outFile;
157         
158         
159   ClassDef(AliHLTGlobalCompareFlatComponent, 0)
160 };
161 #endif