]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/EMCAL/AliHLTEMCALRawHistoMaker.h
d8efe951f837dae2dfbf16a7bbf89af88b0e8e93
[u/mrichter/AliRoot.git] / HLT / EMCAL / AliHLTEMCALRawHistoMaker.h
1 /**************************************************************************
2  * This file is property of and copyright by the ALICE HLT Project        *
3  * All rights reserved.                                                   *
4  * INFN Laboratori Nazionali di Frascati                                  *
5  * Primary Authors: Federico Ronchetti                                    *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15 #ifndef ALIHLTEMCALRAWHISTOMAKER_H
16 #define ALIHLTEMCALRAWHISTOMAKER_H
17
18 /**
19  * Class makes histograms from information from raw data
20  *
21  * @file   AliHLTEMCALRawHistoMaker.h
22  * @author Federico Ronchetti
23  * @date
24  * @brief  Histo maker for EMCAL HLT
25  */
26
27
28 #include "AliHLTCaloConstantsHandler.h"
29 #include "AliHLTCaloDigitDataStruct.h"
30 #include "AliHLTCaloChannelDataStruct.h"
31 #include "AliHLTDataTypes.h"
32 #include "AliAltroRawStreamV3.h"
33 #include "AliRawReaderMemory.h"
34 #include "AliAltroRawStreamV3.h"
35 #include "AliCaloRawStreamV3.h"
36 #include "AliEMCALTriggerSTURawStream.h"
37
38 // include root stuff
39 #include "TFile.h"
40 #include "TProfile2D.h"
41 #include "TH1F.h"
42 #include "TH2F.h"
43 #include "TH2I.h"
44 #include "TObjArray.h"
45 #include "TString.h"
46
47
48
49 class AliHLTEMCALConstants;
50 class AliHLTCaloSharedMemoryInterfacev2;
51 class AliHLTCaloChannelDataHeaderStruct;
52 class AliHLTEMCALMapper;
53 class AliRawReaderMemory;
54 class AliAltroRawStreamV3;
55 class AliEMCALTriggerSTURawStream;
56 class AliCaloRawStreamV3;
57 class AliCaloRawAnalyzer;
58 class TString;
59 class TH2F;
60 class TH2I;
61
62
63 class AliHLTEMCALRawHistoMaker : AliHLTCaloConstantsHandler
64 {
65
66 public:
67   /** Constructor */
68   AliHLTEMCALRawHistoMaker();
69
70   /** Destructor */
71   virtual ~AliHLTEMCALRawHistoMaker();
72
73   /** Assignment */
74   AliHLTEMCALRawHistoMaker & operator = (const AliHLTEMCALRawHistoMaker)
75   {
76     return *this; 
77   }
78
79   /**
80    * Make the digits for one event.
81    * @param channelDataHeader is the data header from the AliHLTCaloRawAnalyzer
82    * @return the number of digits found
83    */
84
85   Int_t MakeHisto(AliHLTCaloChannelDataHeaderStruct* channelDataHeader,
86                   const AliHLTComponentBlockData* iter, AliHLTUInt8_t* outputPtr,
87                   const AliHLTUInt32_t size, int beverbose);
88
89   TObjArray * GetHistograms();
90
91 private:
92
93   TProfile2D **fChannelEMap;
94   TProfile2D **fChannelTMap;
95   TH2F **fChannelETMap;
96
97   TH2I* h2DTRU;
98   TH2I* h2DSTU;
99
100   TObjArray *hList;
101
102   /** Pointer to shared memory interface */
103   AliHLTCaloSharedMemoryInterfacev2* fShmPtr;                    //! transient
104
105   /** Pointer to the raw data reader which reads from memory */
106    AliRawReaderMemory* fRawCounterMemoryPtr;            //!transient
107
108    /** Pointer to the raw stream */
109    AliAltroRawStreamV3* fAltroRawStreamPtr;               //!transient
110
111    /** Pointer to the calo raw stream */
112    AliCaloRawStreamV3* fRawStreamPtr;              //!transient
113
114    /** Pointer to the STU raw stream */
115    AliEMCALTriggerSTURawStream* fSTURawStreamPtr;
116
117   /** Mapper */
118   AliHLTEMCALMapper* fMapperPtr;                                  //COMMENT
119
120
121   /** Pointer to an analyzer object used for raw data anlysis */
122   AliCaloRawAnalyzer *fAnalyzerPtr;   //COMMENT
123
124   /** Constants class */
125   AliHLTEMCALConstants* fEMCALConstants;
126
127   AliHLTEMCALRawHistoMaker(const AliHLTEMCALRawHistoMaker &);
128     //AliHLTEMCALRawHistoMaker & operator = (const AliHLTEMCALRawHistoMaker &);
129   
130   ClassDef(AliHLTEMCALRawHistoMaker, 0); 
131
132 };
133
134
135 #endif
136