]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSCalibrationComponent.cxx
New component for writing calibration data to fxs (Oystein)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSCalibrationComponent.cxx
1
2 #include "AliHLTPHOSCalibrationComponent.h"
3 #include "AliHLTPHOSConstants.h"
4 #include "AliHLTPHOSDefinitions.h"
5 #include "AliHLTPHOSEmcCalibData.h"
6
7 using namespace std;
8
9 AliHLTPHOSCalibrationComponent gAliHLTPHOSCalibrationComponent;
10
11 AliHLTPHOSCalibrationComponent::AliHLTPHOSCalibrationComponent() :
12   fEmcCalibData(0)
13 {
14 }
15
16 AliHLTPHOSCalibrationComponent::~AliHLTPHOSCalibrationComponent() 
17 {
18 }
19
20 AliHLTPHOSCalibrationComponent::AliHLTPHOSCalibrationComponent(const AliHLTPHOSCalibrationComponent&) :
21   fEmcCalibData(0)
22 {
23   HLTFatal("copy constructor untested");
24 }
25
26 AliHLTPHOSCalibrationComponent& AliHLTPHOSCalibrationComponent::operator=(const AliHLTPHOSCalibrationComponent&)
27 {
28   HLTFatal("assignement operator untested");
29 }
30
31 const char* AliHLTPHOSCalibrationComponent::GetComponentID()
32 {
33   return "AliHLTPHOSCalibrationComponent";
34 }
35
36 void AliHLTPHOSCalibrationComponent::GetInputDataTypes(vector<AliHLTComponentDataType>& list)
37 {
38   list.clear();
39   list.push_back(AliHLTPHOSDefinitions::fgkCellEnergyHistogramDataType);
40   list.push_back(AliHLTPHOSDefinitions::fgkCellAverageEnergyDataType);
41   list.push_back(AliHLTPHOSDefinitions::fgkCellAccumulatedEnergyDataType);
42   list.push_back(AliHLTPHOSDefinitions::fgkCellTimingHistogramDataType);
43   list.push_back(AliHLTPHOSDefinitions::fgkCellTimingAverageDataType);
44 }
45
46 AliHLTComponentDataType AliHLTPHOSCalibrationComponent::GetOutputDataType()
47 {
48   return AliHLTPHOSDefinitions::fgkEmcCalibDataType;
49 }
50                                      
51 void AliHLTPHOSCalibrationComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier)
52 {
53   constBase = 0;
54   inputMultiplier = 2;
55 }
56
57 AliHLTComponent* AliHLTPHOSCalibrationComponent::Spawn()
58 {
59   return new AliHLTPHOSCalibrationComponent();
60 }
61
62
63 Int_t AliHLTPHOSCalibrationComponent::ScanArgument( Int_t argc, const char** argv)
64 {
65   return 0;
66 }
67
68 Int_t AliHLTPHOSCalibrationComponent::InitCalibration()
69 {
70   fEmcCalibData = new AliHLTPHOSEmcCalibData();
71
72   return 0;
73 }
74
75 Int_t AliHLTPHOSCalibrationComponent::DeinitCalibration()
76 {
77   return 0;
78 }
79
80 Int_t AliHLTPHOSCalibrationComponent::ProcessCalibration(const AliHLTComponent_EventData& evtData,
81                                                          const AliHLTComponent_BlockData* blocks,
82                                                          AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
83                                                          AliHLTUInt32_t& size,
84                                                          vector<AliHLTComponent_BlockData>& outputBlocks)
85 //Int_t AliHLTPHOSCalibrationComponent::ProcessCalibration(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData)
86 {
87
88   const AliHLTComponentBlockData* iter = 0;
89
90   for ( int ndx = 0; ndx < evtData.fBlockCnt; ndx++ )
91     {
92       iter = blocks + ndx;
93       if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellEnergyHistogramDataType)
94         {
95           for(Int_t mod = 0; mod < N_MODULES; mod++)
96             {
97               for(Int_t x = 0; x < N_XCOLUMNS_MOD; x++)
98                 {
99                   for(Int_t z = 0; z < N_ZROWS_MOD; z++)
100                     {
101                       for(Int_t gain = 0; gain < N_GAINS; gain++)
102                         {
103                           fEmcCalibData->SetADCchannelEnergy(mod, x, z, gain, 1);
104                           fEmcCalibData->SetADCpedestalEmcMeasured(mod, x, z, gain, 1);
105                         }
106                     }
107                 }
108             }
109         }
110       if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellAverageEnergyDataType)
111         {
112
113         }
114       if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellAccumulatedEnergyDataType)
115         {
116
117         }
118       if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellTimingHistogramDataType)
119         {
120
121         }
122       if(iter->fDataType == AliHLTPHOSDefinitions::fgkCellTimingAverageDataType)
123         {
124
125         }
126       else
127         {
128
129         }
130     }
131
132   PushBack((TObject*) fEmcCalibData,  AliHLTPHOSDefinitions::fgkEmcCalibDataType, 0);
133  
134   return 0; 
135 }
136   
137 Int_t AliHLTPHOSCalibrationComponent::ShipDataToFXS( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/ ) {
138   // see header file for class documentation
139  
140   // ** PushBack data to FXS ...
141   PushToFXS( (TObject*) fEmcCalibData, "PHOS", "EmcCalibData" ) ;
142   
143   return 0;
144