00001
00002 #include "mEmcCalibTowerModule.h"
00003 #include "mEmcCalibTower.h"
00004 #include "PHIODataNode.h"
00005
00006 #include "dEmcRawDataWrapper.h"
00007
00008 typedef PHIODataNode<dEmcRawDataWrapper> dEmcRawDataNode_t;
00009
00010 #include "dEmcGeometryWrapper.h"
00011
00012 typedef PHIODataNode<dEmcGeometryWrapper> dEmcGeometryNode_t;
00013
00014 #include "dEmcEventWrapper.h"
00015
00016 typedef PHIODataNode<dEmcEventWrapper> dEmcEventNode_t;
00017
00018 #include "dEmcCalibTowerWrapper.h"
00019
00020 typedef PHIODataNode<dEmcCalibTowerWrapper> dEmcCalibTowerNode_t;
00021
00022 PHBoolean
00023 mEmcCalibTowerModule::callPAM(PHPointerList<PHNode> &nl) {
00024 long result;
00025
00026 TABLE_HEAD_ST t1;
00027 DEMCRAWDATA_ST *d1;
00028 TABLE_HEAD_ST t2;
00029 DEMCGEOMETRY_ST *d2;
00030 TABLE_HEAD_ST t3;
00031 DEMCEVENT_ST *d3;
00032 TABLE_HEAD_ST t4;
00033 DEMCCALIBTOWER_ST *d4;
00034
00035 dEmcRawDataNode_t* n1 = static_cast<dEmcRawDataNode_t*>(nl[0]);
00036 dEmcGeometryNode_t* n2 = static_cast<dEmcGeometryNode_t*>(nl[1]);
00037 dEmcEventNode_t* n3 = static_cast<dEmcEventNode_t*>(nl[2]);
00038 dEmcCalibTowerNode_t* n4 = static_cast<dEmcCalibTowerNode_t*>(nl[3]);
00039
00040 t1 = n1->getData()->TableHeader();
00041 d1 = n1->getData()->TableData();
00042 t2 = n2->getData()->TableHeader();
00043 d2 = n2->getData()->TableData();
00044 t3 = n3->getData()->TableHeader();
00045 d3 = n3->getData()->TableData();
00046 t4 = n4->getData()->TableHeader();
00047 d4 = n4->getData()->TableData();
00048
00049 result = memccalibtower_(
00050 &t1, d1,
00051 &t2, d2,
00052 &t3, d3,
00053 &t4, d4 );
00054
00055 n1->getData()->SetRowCount(t1.nok);
00056 n2->getData()->SetRowCount(t2.nok);
00057 n3->getData()->SetRowCount(t3.nok);
00058 n4->getData()->SetRowCount(t4.nok);
00059
00060 if (result == 1) {
00061 return True;
00062 } else {
00063 return False;
00064 }
00065 }