]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/physics/AliHLTCaloHistoProducer.h
-Fixed bug preventing all clusters from being added to histograms
[u/mrichter/AliRoot.git] / HLT / global / physics / AliHLTCaloHistoProducer.h
1 //-*- Mode: C++ -*-
2 /**************************************************************************
3  * This file is property of and copyright by the ALICE HLT Project        * 
4  * All rights reserved.                                                   *
5  *                                                                        *
6  * Primary Authors: Albin Gaignette                                       *
7  *                                                                        *
8  * Permission to use, copy, modify and distribute this software and its   *
9  * documentation strictly for non-commercial purposes is hereby granted   *
10  * without fee, provided that the above copyright notice appears in all   *
11  * copies and that both the copyright notice and this permission notice   *
12  * appear in the supporting documentation. The authors make no claims     *
13  * about the suitability of this software for any purpose. It is          * 
14  * provided "as is" without express or implied warranty.                  *
15  **************************************************************************/
16
17 #ifndef ALIHLTCALOHISTOPRODUCER_H
18 #define ALIHLTCALOHISTOPRODUCER_H
19
20 /** 
21  * @file   AliHLTCaloHistoProducer
22  * @author Svein Lindal slindal@fys.uio.no
23  * @date 
24  * @brief  Base class for calo physics histogram producers
25  */
26
27 // see header file for class documentation
28 // or
29 // refer to README to build package
30 // or
31 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
32
33 #include "Rtypes.h"
34 #include <vector>
35 #include "TObject.h"
36 #include "AliHLTLogging.h"
37
38 class TRefArray;
39 class AliHLTCaloClusterReader;
40 class AliHLTCaloClusterDataStruct;
41 class TObjArray;
42
43 /** 
44  * @class AliHLTCaloHistoProducer
45  *
46  * Base class for calo physics histogram producers
47  *
48  *
49  * @ingroup alihlt_phos
50  */
51
52 using std::vector;
53
54 class AliHLTCaloHistoProducer : public TObject, public AliHLTLogging {
55
56 public:
57   
58   /** Constructor */
59   AliHLTCaloHistoProducer();
60
61   /** Destructor */
62   virtual ~AliHLTCaloHistoProducer();
63
64   /** Get a pointer to the TObjArray of histograms */
65   TObjArray *GetHistograms();
66
67   //** Loops of the calo clusters and fills histos
68   virtual Int_t FillHistograms(Int_t nc, TRefArray * clusterArray ) = 0;
69   virtual Int_t FillHistograms(Int_t nc, vector<AliHLTCaloClusterDataStruct*> &cVec) = 0;
70
71 protected:
72   /** Cluster reader class   */
73   AliHLTCaloClusterReader * fClusterReader;
74   
75   /** Pointer to the array of histograms */
76   TObjArray *fHistArray;                     //!transient
77   
78
79 private:
80
81   /** Copy constructor */
82   AliHLTCaloHistoProducer(const AliHLTCaloHistoProducer &);
83   
84   /** Assignment operator */
85   AliHLTCaloHistoProducer & operator = (const AliHLTCaloHistoProducer &);
86   
87   ClassDef(AliHLTCaloHistoProducer, 0);
88
89 };
90 #endif