00001
00002 #include "mEmcPerfectModule.h"
00003 #include "mEmcPerfect.h"
00004 #include "PHIODataNode.h"
00005
00006 #include "dEmcGeaHitWrapper.h"
00007
00008 typedef PHIODataNode<dEmcGeaHitWrapper> dEmcGeaHitNode_t;
00009
00010 #include "dEmcClusterLocalWrapper.h"
00011
00012 typedef PHIODataNode<dEmcClusterLocalWrapper> dEmcClusterLocalNode_t;
00013
00014 #include "dEmcGeaClusterTrackWrapper.h"
00015
00016 typedef PHIODataNode<dEmcGeaClusterTrackWrapper> dEmcGeaClusterTrackNode_t;
00017
00018 PHBoolean
00019 mEmcPerfectModule::callPAM(PHPointerList<PHNode> &nl) {
00020 long result;
00021
00022 TABLE_HEAD_ST t1;
00023 DEMCGEAHIT_ST *d1;
00024 TABLE_HEAD_ST t2;
00025 DEMCCLUSTERLOCAL_ST *d2;
00026 TABLE_HEAD_ST t3;
00027 DEMCGEACLUSTERTRACK_ST *d3;
00028
00029 dEmcGeaHitNode_t* n1 = static_cast<dEmcGeaHitNode_t*>(nl[0]);
00030 dEmcClusterLocalNode_t* n2 = static_cast<dEmcClusterLocalNode_t*>(nl[1]);
00031 dEmcGeaClusterTrackNode_t* n3 = static_cast<dEmcGeaClusterTrackNode_t*>(nl[2]);
00032
00033 t1 = n1->getData()->TableHeader();
00034 d1 = n1->getData()->TableData();
00035 t2 = n2->getData()->TableHeader();
00036 d2 = n2->getData()->TableData();
00037 t3 = n3->getData()->TableHeader();
00038 d3 = n3->getData()->TableData();
00039
00040 result = memcperfect_(
00041 &t1, d1,
00042 &t2, d2,
00043 &t3, d3 );
00044
00045 n1->getData()->SetRowCount(t1.nok);
00046 n2->getData()->SetRowCount(t2.nok);
00047 n3->getData()->SetRowCount(t3.nok);
00048
00049 if (result == 1) {
00050 return True;
00051 } else {
00052 return False;
00053 }
00054 }