]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSHistogramProducerComponent.h
Update of ITS tracking check task and related macros
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSHistogramProducerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4
5 /**************************************************************************
6  * This file is property of and copyright by the ALICE HLT Project        * 
7  * All rights reserved.                                                   *
8  *                                                                        *
9  * Primary Authors: Oystein Djuvsland                                     *
10  *                                                                        *
11  * Permission to use, copy, modify and distribute this software and its   *
12  * documentation strictly for non-commercial purposes is hereby granted   *
13  * without fee, provided that the above copyright notice appears in all   *
14  * copies and that both the copyright notice and this permission notice   *
15  * appear in the supporting documentation. The authors make no claims     *
16  * about the suitability of this software for any purpose. It is          * 
17  * provided "as is" without express or implied warranty.                  *
18  **************************************************************************/
19
20 #ifndef ALIHLTPHOSHISTOGRAMPRODUCERCOMPONENT_H
21 #define ALIHLTPHOSHISTOGRAMPRODUCERCOMPONENT_H
22
23
24
25 /**
26  * 
27  *
28  * @file   AliHLTPHOSHistogramProducerComponent.cxx
29  * @author Oystein Djuvsland
30  * @date   
31  * @brief  
32 */
33
34 // see below for class documentation
35 // or
36 // refer to README to build package
37 // or
38 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
39
40 #include "AliHLTPHOSProcessor.h"
41
42 class AliHLTPHOSPhysicsHistogramProducer;
43
44 class AliHLTPHOSHistoProdCellEnergy;
45
46 class AliHLTPHOSHistoProdClusterEnergy;
47
48 class AliHLTPHOSHistoProdInvMass;
49
50 class AliHLTPHOSHistoProdMatchedTracks;
51
52 /**
53  * @class AliHLTPHOSHistogramProducerComponent
54  *
55  * 
56  * @ingroup alihlt_phos
57  */
58 class AliHLTPHOSHistogramProducerComponent: public AliHLTPHOSProcessor
59 {
60  public:
61
62   /** Constructor */
63   AliHLTPHOSHistogramProducerComponent();
64
65   /** Destructor */
66   virtual ~AliHLTPHOSHistogramProducerComponent();
67
68   /** Copy constructor */  
69   AliHLTPHOSHistogramProducerComponent(const AliHLTPHOSHistogramProducerComponent & ) : 
70     AliHLTPHOSProcessor(),
71     fPhysicsHistogramProducerPtr(0),
72     fPushModulo(0),
73     fCellEnergy(0),
74     fClusterEnergy(0),
75     fInvariantMass(0),
76     fMatchedTracks(0),
77     fCellEnergyHistProducer(0),
78     fClusterEnergyHistProducer(0),
79     fInvariantMassHistProducer(0),
80     fMatchedTracksHistProducer(0)
81
82   {
83     //Copy constructor not implemented
84   }
85   
86   /** Assignment */
87   AliHLTPHOSHistogramProducerComponent & operator = (const AliHLTPHOSHistogramProducerComponent)
88   {
89     //Assignment
90     return *this; 
91   }
92
93   /** interface function, see @ref AliHLTComponent for description */
94   const char* GetComponentID();
95
96   /** interface function, see @ref AliHLTComponent for description */
97   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
98
99   /** interface function, see @ref AliHLTComponent for description */
100   AliHLTComponentDataType GetOutputDataType();
101
102   /** interface function, see @ref AliHLTComponent for description */
103   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
104
105   /** interface function, see @ref AliHLTComponent for description */
106   
107   using  AliHLTPHOSProcessor::DoEvent;
108
109   int DoEvent(const AliHLTComponentEventData& evtData, 
110               AliHLTComponentTriggerData& trigData);
111     
112   // Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
113   /** interface function, see @ref AliHLTComponent for description */
114   AliHLTComponent* Spawn();
115   
116 protected:
117
118   /** interface function, see @ref AliHLTComponent for description */
119   int DoInit(int argc, const char** argv);
120
121   /** interface function, see @ref AliHLTComponent for description */
122   int Deinit();
123
124  private:
125
126   AliHLTPHOSPhysicsHistogramProducer* fPhysicsHistogramProducerPtr;
127   UInt_t fPushModulo;
128   
129   
130   Bool_t fCellEnergy; // make the cell energy histograms?
131   Bool_t fClusterEnergy; // make the cluster energy histograms?
132   Bool_t fInvariantMass; // make the invariant mass histograms?
133   Bool_t fMatchedTracks; // make the matched tracks histograms?
134   
135   AliHLTPHOSHistoProdCellEnergy *fCellEnergyHistProducer; // cell energy histogram producer
136
137   AliHLTPHOSHistoProdClusterEnergy *fClusterEnergyHistProducer; // cluster energy histogram producer
138
139   AliHLTPHOSHistoProdInvMass *fInvariantMassHistProducer; // invariant mass histogram producer
140
141   AliHLTPHOSHistoProdMatchedTracks *fMatchedTracksHistProducer; // matched tracks histogram producer
142
143 };
144
145 #endif