1 /**************************************************************************
2 * Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
4 * Author: Per Thomas Hille for the ALICE HLT Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 #include "AliHLTPHOSDefinitions.h"
17 #include "AliHLTPHOSFileWriterComponent.h"
19 #include <TObjString.h>
20 #include "AliRawReaderMemory.h"
21 #include "AliCaloRawStream.h"
23 #include "AliRawReaderMemory.h"
24 #include "AliCaloRawStream.h"
25 #include "AliHLTPHOSRcuCellEnergyDataStruct.h"
26 #include "AliHLTPHOSDataHeaderStruct.h"
27 #include "AliHLTDataTypes.h"
28 #include "AliHLTPHOSDDLPackedFileWriter.h"
29 #include "AliHLTPHOSCellEnergiesFileWriter.h"
32 const AliHLTComponentDataType AliHLTPHOSFileWriterComponent::fgkInputDataTypes[]={kAliHLTVoidDataType,{0,"",""}}; //'zero' terminated array
35 AliHLTPHOSFileWriterComponent gAliHLTPHOSFileWriterComponent;
37 //____________________________________________________________________________________
38 AliHLTPHOSFileWriterComponent::AliHLTPHOSFileWriterComponent(): AliHLTFileWriter(), fCellEnergiesFileWriterPtr(0) \
39 , fDDLPackedFileWriterPtr(0), fDirectory(""),fFilename(""), fEventCount(0)
44 for(int i=0; i<N_DATATYPES; i++)
46 fDataTypesToFile[i] = kAliHLTVoidDataType;
49 fCellEnergiesFileWriterPtr = new AliHLTPHOSCellEnergiesFileWriter();
50 fDDLPackedFileWriterPtr = new AliHLTPHOSDDLPackedFileWriter();
54 //____________________________________________________________________________________
55 AliHLTPHOSFileWriterComponent::~AliHLTPHOSFileWriterComponent()
57 delete fCellEnergiesFileWriterPtr;
58 delete fDDLPackedFileWriterPtr;
62 //____________________________________________________________________________________
63 AliHLTPHOSFileWriterComponent::AliHLTPHOSFileWriterComponent(const AliHLTPHOSFileWriterComponent & ): AliHLTFileWriter(), fCellEnergiesFileWriterPtr(0), \
64 fDDLPackedFileWriterPtr(0), fDirectory(""),fFilename(""), fEventCount(0)
70 //____________________________________________________________________________________
72 AliHLTPHOSFileWriterComponent::AddDataType(string dataType)
76 for(int i=0; i< N_DATATYPES; i++)
78 if( fDataTypesToFile[i] != kAliHLTVoidDataType)
84 string cmpString("gkCellEnergyDataType");
86 if(dataType.compare("gkCellEnergyDataType") == 0)
88 fDataTypesToFile[tmpCnt] = AliHLTPHOSDefinitions::fgkCellEnergyDataType;
89 cout <<"regsitring dataType for filewriting: fDataTypesToFile[" << tmpCnt <<"]"<<endl;
91 else if(dataType.compare("gkDDLPackedRawDataType") == 0)
93 fDataTypesToFile[tmpCnt] = AliHLTPHOSDefinitions::fgkDDLPackedRawDataType;
96 cout << "dataType.compare(cmpString) = " <<dataType.compare(cmpString)<<endl;
100 //____________________________________________________________________________________
102 AliHLTPHOSFileWriterComponent::Deinit()
107 //____________________________________________________________________________________
109 AliHLTPHOSFileWriterComponent::DoDeinit()
111 Logging(kHLTLogInfo, "HLT", "PHOS", ",AliHLTPHOSFileWriterComponen DoDeinit");
116 //____________________________________________________________________________________
118 AliHLTPHOSFileWriterComponent::GetComponentID()
120 return "PhosFileWriter";
124 //____________________________________________________________________________________
126 AliHLTPHOSFileWriterComponent::Spawn()
128 return new AliHLTPHOSFileWriterComponent;
132 //____________________________________________________________________________________
134 AliHLTPHOSFileWriterComponent::GetInputDataTypes( vector<AliHLTComponentDataType>& list)
136 const AliHLTComponentDataType* pType=fgkInputDataTypes;
137 while (pType->fID!=0) {
138 list.push_back(*pType);
143 //____________________________________________________________________________________
144 AliHLTComponentDataType
145 AliHLTPHOSFileWriterComponent::GetOutputDataType()
147 return AliHLTPHOSDefinitions::fgkCellEnergyDataType;
150 //____________________________________________________________________________________
152 AliHLTPHOSFileWriterComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier )
155 // see header file for documentation
157 inputMultiplier = 0.1;
160 //____________________________________________________________________________________
162 AliHLTPHOSFileWriterComponent::IsRegisteredDataType(const AliHLTComponentDataType& dataType)
164 // see header file for documentation
166 for(int i =0; i<N_DATATYPES; i++)
168 if((fDataTypesToFile[i] == dataType) && (dataType != kAliHLTVoidDataType))