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