]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSESDMakerComponent.cxx
- changes to make the clusterisation work for EMCAL
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSESDMakerComponent.cxx
CommitLineData
1b41ab20 1// $Id$
2
5f96dd31 3/**************************************************************************
4 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * *
6 * Authors: Oystein Djuvsland <oysteind@ift.uib.no> *
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
8efbf5fe 17
5f96dd31 18#include <iostream>
19
20#include "AliHLTPHOSESDMakerComponent.h"
21#include "AliHLTPHOSESDMaker.h"
22#include "AliHLTPHOSCaloClusterContainerStruct.h"
23#include "AliESDEvent.h"
24#include "AliHLTPHOSDefinitions.h"
25#include "AliHLTDataTypes.h"
26#include "AliESDCaloCluster.h"
27
28/** @file AliHLTPHOSESDMakerComponent.cxx
29 @author Oystein Djuvsland
30 @date
31 @brief An ESD maker component for PHOS HLT
32*/
33
34// see header file 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#if __GNUC__>= 3
41using namespace std;
42#endif
43
44const AliHLTComponentDataType AliHLTPHOSESDMakerComponent::fgkInputDataTypes[]=
45 {
46 kAliHLTVoidDataType,{0,"",""}
47 };
48
49AliHLTPHOSESDMakerComponent gAliHLTPHOSESDMakerComponent;
50
51
52AliHLTPHOSESDMakerComponent::AliHLTPHOSESDMakerComponent():
53 AliHLTPHOSProcessor(),
54 fESDMakerPtr(0),
55 fESDEventPtr(0)
56{
57 //See headerfile for documentation
58}
59
60AliHLTPHOSESDMakerComponent::~AliHLTPHOSESDMakerComponent()
61{
62 //See headerfile for documentation
63
64 if (fESDMakerPtr)
65 {
66 delete fESDMakerPtr;
67 fESDMakerPtr = 0;
68 }
69 if (fESDEventPtr)
70 {
71 delete fESDEventPtr;
72 fESDEventPtr = 0;
73 }
74
75}
76
77
78int
79AliHLTPHOSESDMakerComponent::Deinit()
80{
81 //See headerfile for documentation
82
83 if (fESDMakerPtr)
84 {
85 delete fESDMakerPtr;
86 fESDMakerPtr = 0;
87 }
88 if (fESDEventPtr)
89 {
90 delete fESDEventPtr;
91 fESDEventPtr = 0;
92 }
93
94 return 0;
95}
96
97const Char_t*
98AliHLTPHOSESDMakerComponent::GetComponentID()
99{
100 //See headerfile for documentation
101
102 return "PhosEsdMaker";
103}
104
105void
106AliHLTPHOSESDMakerComponent::GetInputDataTypes( vector<AliHLTComponentDataType>& list)
107{
108 //See headerfile for documentation
94594220 109 list.clear();
110 list.push_back(AliHLTPHOSDefinitions::fgkClusterDataType);
111// const AliHLTComponentDataType* pType=fgkInputDataTypes;
112// while (pType->fID!=0)
113// {
114// list.push_back(*pType);
115// pType++;
116// }
5f96dd31 117}
118
119AliHLTComponentDataType
120AliHLTPHOSESDMakerComponent::GetOutputDataType()
121{
122 //See headerfile for documentation
123
124 return kAliHLTDataTypeESDObject;
125}
126
127void
128AliHLTPHOSESDMakerComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier )
129
130{
131 //See headerfile for documentation
132
133 constBase = 30;
9bf87c6f 134 inputMultiplier = 4;
5f96dd31 135}
136
137Int_t
25b7f84c 138AliHLTPHOSESDMakerComponent::DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/ )
5f96dd31 139{
140 // see header file for class documentation
141
142
143 AliHLTPHOSCaloClusterContainerStruct* caloClusterContainerPtr = 0;
144
145 const AliHLTComponentBlockData* iter = 0;
146
147 UInt_t specification = 0;
25b7f84c 148
149 fESDMakerPtr->ResetESD();
150
151 fESDEventPtr = new AliESDEvent();
152 fESDEventPtr->CreateStdContent();
153 fESDMakerPtr->SetESDEvent(fESDEventPtr);
5f96dd31 154
155 for ( iter = GetFirstInputBlock(AliHLTPHOSDefinitions::fgkCaloClusterDataType); iter != 0; iter = GetNextInputBlock())
156 {
157 specification = specification|iter->fSpecification;
158 caloClusterContainerPtr = reinterpret_cast<AliHLTPHOSCaloClusterContainerStruct*>(iter->fPtr);
25b7f84c 159 fESDMakerPtr->FillESDEvent(caloClusterContainerPtr);
160 // fESDMakerPtr->SetCaloClusterContainer(caloClusterContainerPtr);
5f96dd31 161 }
5f96dd31 162
163 PushBack(fESDEventPtr, kAliHLTDataTypeESDObject|kAliHLTDataOriginPHOS, specification);
164
165 if(fESDEventPtr)
166 {
167 delete fESDEventPtr;
168 fESDEventPtr = 0;
169 }
170
25b7f84c 171 fPhosEventCount++;
04751caa 172 if(fPrintInfoModule == kTRUE)
25b7f84c 173 {
04751caa 174 if(fPhosEventCount%fPrintInfoFrequncyModule == 0)
25b7f84c 175 {
8efbf5fe 176 Logging(kHLTLogInfo, __FILE__ , "writing data" , "Made ESD from event %lu", fPhosEventCount);
25b7f84c 177 }
178 }
5f96dd31 179 return 0;
180}
181
182
183int
184AliHLTPHOSESDMakerComponent::DoInit(int argc, const char** argv )
185{
186 //See headerfile for documentation
187
5f96dd31 188 fESDMakerPtr = new AliHLTPHOSESDMaker();
25b7f84c 189 //fESDMakerPtr->SetESDEvent(fESDEventPtr);
5f96dd31 190 //
04751caa 191 ScanArgumentsModule(argc, argv);
5f96dd31 192 for (int i = 0; i < argc; i++)
193 {
25b7f84c 194
5f96dd31 195 }
196
197 return 0;
198}
199
200AliHLTComponent*
201AliHLTPHOSESDMakerComponent::Spawn()
202{
203 //See headerfile for documentation
204
205 return new AliHLTPHOSESDMakerComponent();
206}