4 #include "AliHLTPHOSCalibrationComponent.h"
5 #include "AliHLTPHOSConstant.h"
6 #include "AliHLTPHOSDefinitions.h"
7 #include "AliHLTPHOSEmcCalibData.h"
11 AliHLTPHOSCalibrationComponent gAliHLTPHOSCalibrationComponent;
13 AliHLTPHOSCalibrationComponent::AliHLTPHOSCalibrationComponent() :
18 AliHLTPHOSCalibrationComponent::~AliHLTPHOSCalibrationComponent()
22 AliHLTPHOSCalibrationComponent::AliHLTPHOSCalibrationComponent(const AliHLTPHOSCalibrationComponent&) :
25 HLTFatal("copy constructor untested");
28 AliHLTPHOSCalibrationComponent& AliHLTPHOSCalibrationComponent::operator=(const AliHLTPHOSCalibrationComponent&)
30 HLTFatal("assignement operator untested");
33 const char* AliHLTPHOSCalibrationComponent::GetComponentID()
35 return "PhosCalibrationComponent";
38 void AliHLTPHOSCalibrationComponent::GetInputDataTypes(vector<AliHLTComponentDataType>& list)
41 list.push_back(AliHLTPHOSDefinitions::fgkCellEnergyHistogramDataType);
42 list.push_back(AliHLTPHOSDefinitions::fgkCellAverageEnergyDataType);
43 list.push_back(AliHLTPHOSDefinitions::fgkCellAccumulatedEnergyDataType);
44 list.push_back(AliHLTPHOSDefinitions::fgkCellTimingHistogramDataType);
45 list.push_back(AliHLTPHOSDefinitions::fgkCellTimingAverageDataType);
48 AliHLTComponentDataType AliHLTPHOSCalibrationComponent::GetOutputDataType()
50 return AliHLTPHOSDefinitions::fgkEmcCalibDataType;
53 void AliHLTPHOSCalibrationComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier)
59 AliHLTComponent* AliHLTPHOSCalibrationComponent::Spawn()
61 return new AliHLTPHOSCalibrationComponent();
65 Int_t AliHLTPHOSCalibrationComponent::ScanArgument( Int_t argc, const char** argv)
70 Int_t AliHLTPHOSCalibrationComponent::InitCalibration()
72 fEmcCalibData = new AliHLTPHOSEmcCalibData();
77 Int_t AliHLTPHOSCalibrationComponent::DeinitCalibration()
82 Int_t AliHLTPHOSCalibrationComponent::ProcessCalibration(const AliHLTComponent_EventData& evtData,
83 const AliHLTComponent_BlockData* blocks,
84 AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
86 vector<AliHLTComponent_BlockData>& outputBlocks)
87 //Int_t AliHLTPHOSCalibrationComponent::ProcessCalibration(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData)
90 const AliHLTComponentBlockData* iter = 0;
92 for ( int ndx = 0; ndx < evtData.fBlockCnt; ndx++ )
95 if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellEnergyHistogramDataType)
97 for(Int_t mod = 0; mod < N_MODULES; mod++)
99 for(Int_t x = 0; x < N_XCOLUMNS_MOD; x++)
101 for(Int_t z = 0; z < N_ZROWS_MOD; z++)
103 for(Int_t gain = 0; gain < N_GAINS; gain++)
105 fEmcCalibData->SetADCchannelEnergy(mod, x, z, gain, 1);
106 fEmcCalibData->SetADCpedestalEmcMeasured(mod, x, z, gain, 1);
112 if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellAverageEnergyDataType)
116 if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellAccumulatedEnergyDataType)
120 if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellTimingHistogramDataType)
124 if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellTimingAverageDataType)
134 PushBack((TObject*) fEmcCalibData, AliHLTPHOSDefinitions::fgkEmcCalibDataType, 0);
139 Int_t AliHLTPHOSCalibrationComponent::ShipDataToFXS( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/ ) {
140 // see header file for class documentation
142 // ** PushBack data to FXS ...
143 PushToFXS( (TObject*) fEmcCalibData, "PHOS", "EmcCalibData" ) ;