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