CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/HoughTransAlg/HoughTransAlg-00-00-14/HoughTransAlg/Hough.h
Go to the documentation of this file.
1#ifndef HOUGHFINDER_H
2#define HOUGHFINDER_H
3
4#include "GaudiKernel/Algorithm.h"
5#include "GaudiKernel/INTupleSvc.h"
6#include "GaudiKernel/NTuple.h"
7#include "MdcRecEvent/RecMdcTrack.h"
8#include "MdcRecEvent/RecMdcHit.h"
9#include "RawDataProviderSvc/RawDataProviderSvc.h"
10#include "MagneticField/IMagneticFieldSvc.h"
11#include "BField/BField.h"
12#include "TrkFitter/TrkContextEv.h"
13#include "HoughTransAlg/HoughTrack.h"
14#include "MdcTrkRecon/MdcTrack.h"
15#include "MdcTrkRecon/MdcTrackList.h"
16#include "TH2D.h"
17#include "TGraph.h"
18
19class HoughFinder:public Algorithm
20{
21 public:
22 HoughFinder(const std::string& name, ISvcLocator* pSvcLocator);
23 //~HoughFinder();
24 StatusCode initialize();
25 StatusCode execute();
26 StatusCode finalize();
27 StatusCode bookTuple();
28 StatusCode registerTrack(RecMdcTrackCol*& trackList_tds, RecMdcHitCol*& hitList_tds);
29
34 //int findTrack(vector<HoughHit> &hitList, vector<HoughTrack*>& trackVector, double x, double y, double dx, double dy, int charge, int step, int mapType);
35 //TH2D* buildMap(vector<HoughHit> &hitList, map<int,TH2D*>& hitMapList, double x, double y, double dx, double dy, int charge, int step, int mapType);
36 int fillHistogram(HoughHit* hit, TH2D* hitMap, int charge, int vote);
37 int fillHistogram(HoughHit* hit, TH2D* hitMap, HoughTrack* trkCandi, int vote);
38 int fillHistogram(vector<HoughHit*> &hitList, TH2D* hitMap, int charge, int vote, HoughTrack* trkCandi=NULL);
39 //int findPeak(vector<HoughHit> &hitList, map<int,TH2D*>& hitMapList, TH2D* houghMap, vector<HoughTrack*>& trackVector, int charge, int step, int mapType);
40 //int centroid(TH2D* houghMap, int xInclude, int yInclude, double &xc, double &yc);
41 //double mapDev(TH2D* houghMap,double nRMS);
42 //int removeHitMap(map<int,TH2D*>& hitMapList, TH2D* houghMap, vector<HoughTrack*>& trackVector);
43 //int removeHitMap(map<int,TH2D*>& hitMapList, TH2D* houghMap, HoughTrack* track);
44 //int removeHitMap(map<int,TH2D*>& hitMapList, TH2D* houghMap,int binx, int biny);
45 //int clearMap(TH2D* houghMap, map<int,TH2D*>& hitMapList);
46 int checkHot(vector<HoughTrack>& trackVector);//check track by hots, remove the shorter track with too many shared hits
47 int checkTrack(vector<HoughTrack>& trackVector);//check track by track parameters
48 void clearTrack(vector<HoughTrack>& trackVector);//clear tracks
49 //int checkTrack(MdcTrackList& mdcTrackList);
50 //int completeTrack(vector<HoughTrack*>& trackVector);
51 int storeTrack(vector<HoughTrack>& trackVector, RecMdcTrackCol*& recMdcTrackCol ,RecMdcHitCol*& recMdcHitCol);
52 int storeTracks(RecMdcTrackCol* trackList, RecMdcHitCol* hitList, vector<HoughTrack>& trackVector);
54 int activeUnusedCgemHitsOnly(vector<HoughHit*>& hitPntList);// llwang 2018-12-24
55 void checkSharedHits(vector<HoughHit*>& hitList);// re-associate shard hits, llwang 2018-12-26
56 vector<HoughTrack>::iterator getHoughTrkIt(vector<HoughTrack>& houghTrkList, int trkId); // llwang 2018-12-31
57
59
60 int Layer;
62 int m_clearTrack;
63 int storeFlag;
65 int printFlag;
66
67 private:
68 RawDataProviderSvc* m_rawDataProviderSvc;
69 MdcGeomSvc* m_mdcGeomSvc;
70 MdcCalibFunSvc* m_mdcCalibFunSvc;
71 CgemGeomSvc* m_cgemGeomSvc;
72 CgemCalibFunSvc* m_cgemCalibFunSvc;
73 IMagneticFieldSvc* m_pIMF;
74 TrkContextEv* m_trkContextEv;
75 const BField* m_bfield;
76 const MdcDetector* m_mdcDetector;
77 std::string m_pdtFile;
78 //IBesTimerSvc* m_timersvc;
79 //BesTimer* m_timer_all;
80 //MdcPrintSvc* m_mdcPrintSvc;
81 //RecCgemCluster* m_recCgemCluster;
82
83 int m_run;
84 int m_event;
85 int m_totEvtProcessed;
86 double m_bunchT0;
87
88 int m_debug;
89 int m_cgem;
90 int m_mcTruth;
91 int m_fillNTuple;
92
93 bool m_keepBadTdc;
94 bool m_dropHot;
95 bool m_keepUnmatch;
96
97 int m_checkHits;
98 double m_shareHitRate;
99 double m_drCut;
100 double m_phi0Cut;
101 double m_kappaCut;
102 double m_dzCut;
103 double m_tanlCut;
104
105 int m_trackCharge;
106 int m_findPeakMethod;// 0:DFS, 1:BFS
107 int m_maxFireLayer;
108 int m_removeNOuterHits;
109
110 //int m_nStep_xy;
111 ////vector<int> m_xBin_xy;
112 //vector<int> m_yBin_xy;
113 //vector<int> m_xExtend_xy;
114 //vector<int> m_yExtend_xy;
115 //vector<int> m_nVote_xy;
116 //vector<int> m_nRMS_xy;
117 //int m_xInclude_xy;
118 //int m_yInclude_xy;
119
120 //int m_nStep_sz;
121 //vector<int> m_xBin_sz;
122 //vector<int> m_yBin_sz;
123 //vector<int> m_xExtend_sz;
124 //vector<int> m_yExtend_sz;
125 //vector<int> m_nVote_sz;
126 //vector<int> m_nRMS_sz;
127 //int m_xInclude_sz;
128 //int m_yInclude_sz;
129
130 //int m_nStep;
131 //vector<int> m_xBin;
132 //vector<int> m_yBin;
133 //vector<int> m_xExtend;
134 //vector<int> m_yExtend;
135 //vector<int> m_nVote;
136 //vector<int> m_nRMS;
137 //int m_xInclude;
138 //int m_yInclude;
139
140 vector<MdcHit*> m_mdcHitCol;
141 vector<HoughHit> m_mcHitCol;
142 vector<HoughHit> m_houghHitList;
143 vector<HoughTrack> m_mcTrackCol; //make from McParticle
144 vector<HoughTrack> m_houghTrackList; //reconstruct from CgemCluster and MdcDigi
145 //vector<HoughTrack> m_recMcTrackList; //reconstruct form McHit
146 vector<HoughHit*> m_XHoughHitList;
147 vector<HoughHit*> m_VHoughHitList;
148
149 int m_filter;
150 std::string m_evtFile;
151 int m_fitFlag;//0:Taubin, 1:X, 2:V, 3:XV
152
153 // tests by llwang
154 int m_nBinTheta;
155 int m_nBinRho;
156 double m_rhoRange;
157 TH2D m_roughRhoThetaMap;
158 TH2D m_fineRhoThetaMap;
159 int searchCircle();
160 void getWeightedPeak(TH2D& h, double& x_peak, double& y_peak, double& x_weight, double& y_weight, int x_ext=2, int y_ext=1);
161 int m_ExtPeak_theta;
162 int m_ExtPeak_rho;
163 int nFineBinTheta(double rho);
164 int nFineBinRho(double rho);
165 TGraph* m_cut1_cgem, *m_cut2_cgem;
166 TGraph* m_cut1_ODC1, *m_cut2_ODC1;
167 TGraph* m_cut1_ODC2, *m_cut2_ODC2;
168 void XhitCutWindow(double rho, int ilayer, double charge, double& cut1, double &cut2);
169 RecMdcTrackCol* m_trackList_tds;
170 RecMdcHitCol* m_hitList_tds;
171 //RecCgemClusterCol* m_recCgemClusterCol;
172
173 // add by Huang Zhen
174 int m_nBinTanl;
175 int m_nBinDz;
176 double m_tanlRange;
177 double m_dzRange;
178 TH2D m_roughTanlDzMap;
179 TH2D m_fineTanlDzMap;
180 int associateVHits();
181 int m_ExtPeak_tanl;
182 int m_ExtPeak_dz;
183 int nFineBinTanl(double tanl);
184 int nFineBinDz(double tanl);
185 void XVhitCutWindow(double tanl, int ilayer, double charge, double& cut1, double &cut2);
186
187 void findMcTrack(HoughTrack* track);
188 int dumpHit();
189 int dumpHoughTrack();
190 int dumpHoughEvent();
191 int dumpTdsTrack();
192 int dumpTdsEvent();
193
194 // --- Ntuple
195 NTuple::Tuple* ntuple_hit;
196 NTuple::Item<int> m_hit_run;
197 NTuple::Item<int> m_hit_event;
198 NTuple::Item<int> m_hit_nhit;
199
200 NTuple::Array<int> m_hit_hitID;
201 NTuple::Array<int> m_hit_hitType;
202 NTuple::Array<int> m_hit_layer;
203 NTuple::Array<int> m_hit_wire;
204 NTuple::Array<int> m_hit_flag;
205 NTuple::Array<int> m_hit_halfCircle;
206 NTuple::Array<double> m_hit_x;
207 NTuple::Array<double> m_hit_y;
208 NTuple::Array<double> m_hit_z;
209 NTuple::Array<double> m_hit_drift;
210
211 NTuple::Array<int> m_mcHit_hitID;
212 NTuple::Array<int> m_mcHit_hitType;
213 NTuple::Array<int> m_mcHit_layer;
214 NTuple::Array<int> m_mcHit_wire;
215 NTuple::Array<int> m_mcHit_flag;
216 NTuple::Array<int> m_mcHit_halfCircle;
217 NTuple::Array<double> m_mcHit_x;
218 NTuple::Array<double> m_mcHit_y;
219 NTuple::Array<double> m_mcHit_z;
220 NTuple::Array<double> m_mcHit_drift;
221
222
223
224 NTuple::Tuple* ntuple_track;
225 NTuple::Item<int> m_trk_run;
226 NTuple::Item<int> m_trk_event;
227 NTuple::Item<int> m_trk_nTrack;
228 NTuple::Item<int> m_trk_trackID;
229 NTuple::Item<int> m_trk_charge;
230 NTuple::Item<int> m_trk_flag;
231 NTuple::Item<double> m_trk_angle;
232 NTuple::Item<double> m_trk_rho;
233 NTuple::Item<double> m_trk_dAngle;
234 NTuple::Item<double> m_trk_dRho;
235 NTuple::Item<double> m_trk_dTanl;
236 NTuple::Item<double> m_trk_dDz;
237 NTuple::Item<double> m_trk_Xc;
238 NTuple::Item<double> m_trk_Yc;
239 NTuple::Item<double> m_trk_R;
240 NTuple::Item<double> m_trk_dr;
241 NTuple::Item<double> m_trk_phi0;
242 NTuple::Item<double> m_trk_kappa;
243 NTuple::Item<double> m_trk_dz;
244 NTuple::Item<double> m_trk_tanl;
245 NTuple::Item<double> m_trk_pxy;
246 NTuple::Item<double> m_trk_px;
247 NTuple::Item<double> m_trk_py;
248 NTuple::Item<double> m_trk_pz;
249 NTuple::Item<double> m_trk_p;
250 NTuple::Item<double> m_trk_phi;
251 NTuple::Item<double> m_trk_theta;
252 NTuple::Item<double> m_trk_cosTheta;
253 NTuple::Item<double> m_trk_vx;
254 NTuple::Item<double> m_trk_vy;
255 NTuple::Item<double> m_trk_vz;
256 NTuple::Item<double> m_trk_vr;
257 NTuple::Item<double> m_trk_chi2;
258 NTuple::Item<double> m_trk_fiTerm;
259 NTuple::Item<int> m_trk_nhit;
260 NTuple::Item<int> m_trk_ncluster;
261 NTuple::Item<int> m_trk_stat;
262 NTuple::Item<int> m_trk_ndof;
263 NTuple::Item<int> m_trk_nster;
264 NTuple::Item<int> m_trk_nlayer;
265 NTuple::Item<int> m_trk_firstLayer;
266 NTuple::Item<int> m_trk_lastLayer;
267 NTuple::Item<int> m_trk_nCgemXClusters;
268 NTuple::Item<int> m_trk_nCgemVClusters;
269 NTuple::Item<int> m_trk_nHot;
270
271 NTuple::Array<int> m_hot_hitID;
272 NTuple::Array<int> m_hot_hitType;
273 NTuple::Array<int> m_hot_layer;
274 NTuple::Array<int> m_hot_wire;
275 NTuple::Array<int> m_hot_flag;
276 NTuple::Array<int> m_hot_halfCircle;
277 NTuple::Array<double> m_hot_x;
278 NTuple::Array<double> m_hot_y;
279 NTuple::Array<double> m_hot_z;
280 NTuple::Array<double> m_hot_drift;
281 NTuple::Array<double> m_hot_residual;
282
283 NTuple::Array<int> m_mcHot_hitID;
284 NTuple::Array<int> m_mcHot_hitType;
285 NTuple::Array<int> m_mcHot_layer;
286 NTuple::Array<int> m_mcHot_wire;
287 NTuple::Array<int> m_mcHot_flag;
288 NTuple::Array<int> m_mcHot_halfCircle;
289 NTuple::Array<double> m_mcHot_x;
290 NTuple::Array<double> m_mcHot_y;
291 NTuple::Array<double> m_mcHot_z;
292 NTuple::Array<double> m_mcHot_drift;
293
294 NTuple::Item<int> m_mcTrk_trackID;
295 NTuple::Item<int> m_mcTrk_charge;
296 NTuple::Item<int> m_mcTrk_flag;
297 NTuple::Item<double> m_mcTrk_angle;
298 NTuple::Item<double> m_mcTrk_rho;
299 NTuple::Item<double> m_mcTrk_dAngle;
300 NTuple::Item<double> m_mcTrk_dRho;
301 NTuple::Item<double> m_mcTrk_dTanl;
302 NTuple::Item<double> m_mcTrk_dDz;
303 NTuple::Item<double> m_mcTrk_Xc;
304 NTuple::Item<double> m_mcTrk_Yc;
305 NTuple::Item<double> m_mcTrk_R;
306 NTuple::Item<double> m_mcTrk_dr;
307 NTuple::Item<double> m_mcTrk_phi0;
308 NTuple::Item<double> m_mcTrk_kappa;
309 NTuple::Item<double> m_mcTrk_dz;
310 NTuple::Item<double> m_mcTrk_tanl;
311 NTuple::Item<double> m_mcTrk_pxy;
312 NTuple::Item<double> m_mcTrk_px;
313 NTuple::Item<double> m_mcTrk_py;
314 NTuple::Item<double> m_mcTrk_pz;
315 NTuple::Item<double> m_mcTrk_p;
316 NTuple::Item<double> m_mcTrk_phi;
317 NTuple::Item<double> m_mcTrk_theta;
318 NTuple::Item<double> m_mcTrk_cosTheta;
319 NTuple::Item<double> m_mcTrk_vx;
320 NTuple::Item<double> m_mcTrk_vy;
321 NTuple::Item<double> m_mcTrk_vz;
322 NTuple::Item<double> m_mcTrk_vr;
323 NTuple::Item<double> m_mcTrk_chi2;
324 NTuple::Item<double> m_mcTrk_fiTerm;
325 NTuple::Item<int> m_mcTrk_nhit;
326 NTuple::Item<int> m_mcTrk_ncluster;
327 NTuple::Item<int> m_mcTrk_stat;
328 NTuple::Item<int> m_mcTrk_ndof;
329 NTuple::Item<int> m_mcTrk_nster;
330 NTuple::Item<int> m_mcTrk_nlayer;
331 NTuple::Item<int> m_mcTrk_firstLayer;
332 NTuple::Item<int> m_mcTrk_lastLayer;
333 NTuple::Item<int> m_mcTrk_nCgemXClusters;
334 NTuple::Item<int> m_mcTrk_nCgemVClusters;
335 NTuple::Item<int> m_mcTrk_nHot;
336
337 NTuple::Array<int> m_mcTrkHot_hitID;
338 NTuple::Array<int> m_mcTrkHot_hitType;
339 NTuple::Array<int> m_mcTrkHot_layer;
340 NTuple::Array<int> m_mcTrkHot_wire;
341 NTuple::Array<int> m_mcTrkHot_flag;
342 NTuple::Array<int> m_mcTrkHot_halfCircle;
343 NTuple::Array<double> m_mcTrkHot_x;
344 NTuple::Array<double> m_mcTrkHot_y;
345 NTuple::Array<double> m_mcTrkHot_z;
346 NTuple::Array<double> m_mcTrkHot_drift;
347
348
349
350 NTuple::Tuple* ntuple_event;
351 NTuple::Item<int> m_evt_run;
352 NTuple::Item<int> m_evt_event;
353 NTuple::Item<int> m_evt_nXCluster;
354 NTuple::Item<int> m_evt_nVCluster;
355 NTuple::Item<int> m_evt_nXVCluster;
356 NTuple::Item<int> m_evt_nCGEMCluster;
357 NTuple::Item<int> m_evt_nAxialHit;
358 NTuple::Item<int> m_evt_nStereoHit;
359 NTuple::Item<int> m_evt_nODCHit;
360 NTuple::Item<int> m_evt_nHit;
361 NTuple::Item<int> m_evt_nTrack;
362
363 NTuple::Array<int> m_evtTrk_trackID;
364 NTuple::Array<int> m_evtTrk_charge;
365 NTuple::Array<int> m_evtTrk_flag;
366 NTuple::Array<double> m_evtTrk_angle;
367 NTuple::Array<double> m_evtTrk_rho;
368 NTuple::Array<double> m_evtTrk_dAngle;
369 NTuple::Array<double> m_evtTrk_dRho;
370 NTuple::Array<double> m_evtTrk_dTanl;
371 NTuple::Array<double> m_evtTrk_dDz;
372 NTuple::Array<double> m_evtTrk_Xc;
373 NTuple::Array<double> m_evtTrk_Yc;
374 NTuple::Array<double> m_evtTrk_R;
375 NTuple::Array<double> m_evtTrk_dr;
376 NTuple::Array<double> m_evtTrk_phi0;
377 NTuple::Array<double> m_evtTrk_kappa;
378 NTuple::Array<double> m_evtTrk_dz;
379 NTuple::Array<double> m_evtTrk_tanl;
380 NTuple::Array<double> m_evtTrk_pxy;
381 NTuple::Array<double> m_evtTrk_px;
382 NTuple::Array<double> m_evtTrk_py;
383 NTuple::Array<double> m_evtTrk_pz;
384 NTuple::Array<double> m_evtTrk_p;
385 NTuple::Array<double> m_evtTrk_phi;
386 NTuple::Array<double> m_evtTrk_theta;
387 NTuple::Array<double> m_evtTrk_cosTheta;
388 NTuple::Array<double> m_evtTrk_vx;
389 NTuple::Array<double> m_evtTrk_vy;
390 NTuple::Array<double> m_evtTrk_vz;
391 NTuple::Array<double> m_evtTrk_vr;
392 NTuple::Array<double> m_evtTrk_chi2;
393 NTuple::Array<double> m_evtTrk_fiTerm;
394 NTuple::Array<int> m_evtTrk_nhit;
395 NTuple::Array<int> m_evtTrk_ncluster;
396 NTuple::Array<int> m_evtTrk_stat;
397 NTuple::Array<int> m_evtTrk_ndof;
398 NTuple::Array<int> m_evtTrk_nster;
399 NTuple::Array<int> m_evtTrk_nlayer;
400 NTuple::Array<int> m_evtTrk_firstLayer;
401 NTuple::Array<int> m_evtTrk_lastLayer;
402 NTuple::Array<int> m_evtTrk_nCgemXClusters;
403 NTuple::Array<int> m_evtTrk_nCgemVClusters;
404
405 NTuple::Array<int> m_mcEvtTrk_trackID;
406 NTuple::Array<int> m_mcEvtTrk_charge;
407 NTuple::Array<int> m_mcEvtTrk_flag;
408 NTuple::Array<double> m_mcEvtTrk_angle;
409 NTuple::Array<double> m_mcEvtTrk_rho;
410 NTuple::Array<double> m_mcEvtTrk_dAngle;
411 NTuple::Array<double> m_mcEvtTrk_dRho;
412 NTuple::Array<double> m_mcEvtTrk_dTanl;
413 NTuple::Array<double> m_mcEvtTrk_dDz;
414 NTuple::Array<double> m_mcEvtTrk_Xc;
415 NTuple::Array<double> m_mcEvtTrk_Yc;
416 NTuple::Array<double> m_mcEvtTrk_R;
417 NTuple::Array<double> m_mcEvtTrk_dr;
418 NTuple::Array<double> m_mcEvtTrk_phi0;
419 NTuple::Array<double> m_mcEvtTrk_kappa;
420 NTuple::Array<double> m_mcEvtTrk_dz;
421 NTuple::Array<double> m_mcEvtTrk_tanl;
422 NTuple::Array<double> m_mcEvtTrk_pxy;
423 NTuple::Array<double> m_mcEvtTrk_px;
424 NTuple::Array<double> m_mcEvtTrk_py;
425 NTuple::Array<double> m_mcEvtTrk_pz;
426 NTuple::Array<double> m_mcEvtTrk_p;
427 NTuple::Array<double> m_mcEvtTrk_phi;
428 NTuple::Array<double> m_mcEvtTrk_theta;
429 NTuple::Array<double> m_mcEvtTrk_cosTheta;
430 NTuple::Array<double> m_mcEvtTrk_vx;
431 NTuple::Array<double> m_mcEvtTrk_vy;
432 NTuple::Array<double> m_mcEvtTrk_vz;
433 NTuple::Array<double> m_mcEvtTrk_vr;
434 NTuple::Array<double> m_mcEvtTrk_chi2;
435 NTuple::Array<double> m_mcEvtTrk_fiTerm;
436 NTuple::Array<int> m_mcEvtTrk_nhit;
437 NTuple::Array<int> m_mcEvtTrk_ncluster;
438 NTuple::Array<int> m_mcEvtTrk_stat;
439 NTuple::Array<int> m_mcEvtTrk_ndof;
440 NTuple::Array<int> m_mcEvtTrk_nster;
441 NTuple::Array<int> m_mcEvtTrk_nlayer;
442 NTuple::Array<int> m_mcEvtTrk_firstLayer;
443 NTuple::Array<int> m_mcEvtTrk_lastLayer;
444 NTuple::Array<int> m_mcEvtTrk_nCgemXClusters;
445 NTuple::Array<int> m_mcEvtTrk_nCgemVClusters;
446};
447
448#endif
449
ObjectVector< RecMdcHit > RecMdcHitCol
ObjectVector< RecMdcTrack > RecMdcTrackCol
int printTdsTrack()
StatusCode execute()
int separateHoughHitByPhi()
int activeUnusedCgemHitsOnly(vector< HoughHit * > &hitPntList)
int checkTrack(vector< HoughTrack > &trackVector)
int fillHistogram(HoughHit *hit, TH2D *hitMap, HoughTrack *trkCandi, int vote)
int makeHoughHitList()
StatusCode finalize()
int storeTrack(vector< HoughTrack > &trackVector, RecMdcTrackCol *&recMdcTrackCol, RecMdcHitCol *&recMdcHitCol)
int storeTracks(RecMdcTrackCol *trackList, RecMdcHitCol *hitList, vector< HoughTrack > &trackVector)
vector< HoughTrack >::iterator getHoughTrkIt(vector< HoughTrack > &houghTrkList, int trkId)
StatusCode bookTuple()
int getMcHitCol()
int fillHistogram(vector< HoughHit * > &hitList, TH2D *hitMap, int charge, int vote, HoughTrack *trkCandi=NULL)
void checkSharedHits(vector< HoughHit * > &hitList)
StatusCode initialize()
void clearTrack(vector< HoughTrack > &trackVector)
HoughFinder(const std::string &name, ISvcLocator *pSvcLocator)
int getMcParticleCol()
int checkHot(vector< HoughTrack > &trackVector)
void printHitList()
int fillHistogram(HoughHit *hit, TH2D *hitMap, int charge, int vote)
StatusCode registerTrack(RecMdcTrackCol *&trackList_tds, RecMdcHitCol *&hitList_tds)
void clearMemory()