ROOT logo
//_HADES_CLASS_DESCRIPTION
/////////////////////////////////////////////////////////////
//
// HPionTrackerHitFPar
//
// Container class for PionTracker hit finder parameters
//
/////////////////////////////////////////////////////////////

using namespace std;
#include "hpiontrackerhitfpar.h"
#include "hades.h"
#include "hspectrometer.h"
#include "hpiontrackerdetector.h"
#include "hparamlist.h"
#include <iostream>

ClassImp (HPionTrackerHitFPar)

HPionTrackerHitFPar::HPionTrackerHitFPar (const Char_t * name, const Char_t * title, const Char_t * context)
	: HParCond (name, title, context)
{
	clear();
}

void HPionTrackerHitFPar::clear()
{
	// clears the container
	numModules = 0;
	fTimeWindowOffset.Reset();
	fTimeWindowWidth.Reset();
	fChargeThresh.Reset();
	fClusterDistX.Reset();
	fClusterDistT.Reset();
	fClusterThresh.Reset();
	numPlanes = 0;
	fPlanePair.Reset();
	fHitMatchTimeC.Reset();
	fHitMatchTimeW.Reset();
	fHitMatchChargeC.Reset();
	fHitMatchChargeW.Reset();
}

void HPionTrackerHitFPar::putParams (HParamList * l)
{
	// add the parameters to the list for writing
	if (!l) return;

	l->add ("numModules",      numModules);
	l->add ("fTimeWindowOffset", fTimeWindowOffset);
	l->add ("fTimeWindowWidth", fTimeWindowWidth);
	l->add ("fChargeThresh", fChargeThresh);
	l->add ("fClusterDistX", fClusterDistX);
	l->add ("fClusterDistT", fClusterDistT);
	l->add ("fClusterThresh", fClusterThresh);
	l->add ("numPlanes", numPlanes);
	l->add ("fPlanePair", fPlanePair);
	l->add ("fHitMatchTimeC", fHitMatchTimeC);
	l->add ("fHitMatchTimeW", fHitMatchTimeW);
	l->add ("fHitMatchChargeC", fHitMatchChargeC);
	l->add ("fHitMatchChargeW", fHitMatchChargeW);
}

Bool_t HPionTrackerHitFPar::getParams (HParamList * l)
{
	// gets the parameters from the list (read from input)
	if (!l) return kFALSE;

	Int_t n = 0;

	if (!l->fill ("numModules", &n)) return kFALSE;
	setNumModules (n);

	if (!getParam(l, "fTimeWindowOffset", &fTimeWindowOffset, numModules)) return kFALSE;
	if (!getParam(l, "fTimeWindowWidth", &fTimeWindowWidth, numModules)) return kFALSE;
	if (!getParam(l, "fChargeThresh", &fChargeThresh, numModules)) return kFALSE;
	if (!getParam(l, "fClusterDistX", &fClusterDistX, numModules)) return kFALSE;
	if (!getParam(l, "fClusterDistT", &fClusterDistT, numModules)) return kFALSE;
	if (!getParam(l, "fClusterThresh", &fClusterThresh, numModules)) return kFALSE;

	if (!l->fill ("numPlanes", &n)) return kFALSE;
	setNumPlanes (n);

	if (!getParam(l, "fPlanePair", &fPlanePair, numPlanes*2)) return kFALSE;
	if (!getParam(l, "fHitMatchTimeC", &fHitMatchTimeC, numPlanes)) return kFALSE;
	if (!getParam(l, "fHitMatchTimeW", &fHitMatchTimeW, numPlanes)) return kFALSE;
	if (!getParam(l, "fHitMatchChargeC", &fHitMatchChargeC, numPlanes)) return kFALSE;
	if (!getParam(l, "fHitMatchChargeW", &fHitMatchChargeW, numPlanes)) return kFALSE;

	return kTRUE;
}

Bool_t HPionTrackerHitFPar::getParam(HParamList * l, const char* name, TArrayI* arr, Int_t size)
{
	if (!l->fill (name, arr)) return kFALSE;

	if (size != arr->GetSize())
	{
		Error ("HPionTrackerHitFPar::getParam(HParamList *, const char *, TArray *)",
			   "Number of modules does not match array size of %s", name);
		return kFALSE;
	}
	return kTRUE;
}

Bool_t HPionTrackerHitFPar::getParam(HParamList * l, const char* name, TArrayF* arr, Int_t size)
{
	if (!l->fill (name, arr)) return kFALSE;

	if (size != arr->GetSize())
	{
		Error ("HPionTrackerHitFPar::getParam(HParamList *, const char *, TArray *)",
			   "Number of modules does not match array size of %s", name);
		return kFALSE;
	}
	return kTRUE;
}

Float_t HPionTrackerHitFPar::getTimeWindowOffset (const Int_t m) const
{
	if (m >= 0 && m < numModules) return fTimeWindowOffset.At (m);
	else return 0;
}

Float_t HPionTrackerHitFPar::getTimeWindowWidth (const Int_t m) const
{
	if (m >= 0 && m < numModules) return fTimeWindowWidth.At (m);
	else return 0;
}

Float_t HPionTrackerHitFPar::getChargeThresh(const Int_t m) const
{
	if (m >= 0 && m < numModules) return fChargeThresh.At (m);
	else return 0;
}

Float_t HPionTrackerHitFPar::getClusterDistX(const Int_t m) const
{
	if (m >= 0 && m < numModules) return fClusterDistX.At (m);
	else return 0;
}

Float_t HPionTrackerHitFPar::getClusterDistT(const Int_t m) const
{
	if (m >= 0 && m < numModules) return fClusterDistT.At (m);
	else return 0;
}

Float_t HPionTrackerHitFPar::getClusterThresh(const Int_t m) const
{
	if (m >= 0 && m < numModules) return fClusterThresh.At (m);
	else return 0;
}
void HPionTrackerHitFPar::getPlanePair (const Int_t m, Int_t & x, Int_t & y) const
{
	if (m >= 0 && m < numPlanes)
	{
		x = fPlanePair.At (m*2);
		y = fPlanePair.At (m*2+1);
	}
	else
	{
		x = 0;
		y = 0;
	}
}

Int_t HPionTrackerHitFPar::getPlaneX(const Int_t m) const
{
	if (m >= 0 && m < numPlanes) return fPlanePair.At (m*2);
	else return 0;
}

Int_t HPionTrackerHitFPar::getPlaneY(const Int_t m) const
{
	if (m >= 0 && m < numPlanes) return fPlanePair.At (m*2+1);
	else return 0;
}

Float_t HPionTrackerHitFPar::getHitMatchTimeC(const Int_t m) const
{
	if (m >= 0 && m < numPlanes) return fHitMatchTimeC.At (m);
	else return 0;
}

Float_t HPionTrackerHitFPar::getHitMatchTimeW(const Int_t m) const
{
	if (m >= 0 && m < numPlanes) return fHitMatchTimeW.At (m);
	else return 0;
}

Float_t HPionTrackerHitFPar::getHitMatchChargeC(const Int_t m) const
{
	if (m >= 0 && m < numPlanes) return fHitMatchChargeC.At (m);
	else return 0;
}

Float_t HPionTrackerHitFPar::getHitMatchChargeW(const Int_t m) const
{
	if (m >= 0 && m < numPlanes) return fHitMatchChargeW.At (m);
	else return 0;
}

Bool_t HPionTrackerHitFPar::setNumModules (const Int_t nMod)
{
	if (nMod > 0)
	{
		Int_t maxModules = 0;
		HPionTrackerDetector * pDet = (HPionTrackerDetector *) gHades->getSetup()->getDetector ("PionTracker");

		if (pDet) maxModules = pDet->getMaxModInSetup();

		if (nMod >= maxModules)
		{
			numModules = nMod;
			return kTRUE;
		}
		else
		{
			Error ("HPionTrackerHitFPar::setNumModules(const Int_t nMod)",
				   "Number of modules smaller than number of active modules in the setup");
			return kFALSE;
		}
	}

	Error ("HPionTrackerHitFPar::setNumModules(const Int_t nMod)", "nMod must be larger than 0");
	return kFALSE;
}

void HPionTrackerHitFPar::setNumPlanes (const Int_t nPlanes)
{
	numPlanes = nPlanes;
}

void HPionTrackerHitFPar::setTimeWindowOffset (const Int_t m, const Float_t v)
{
	if (numModules > 0 && fTimeWindowOffset.GetSize() == 0)
	{
		fTimeWindowOffset.Set (numModules);
	}

	fTimeWindowOffset.SetAt (v, m);
}

void HPionTrackerHitFPar::setTimeWindowWidth (const Int_t m, const Float_t v)
{
	if (numModules > 0 && fTimeWindowWidth.GetSize() == 0)
	{
		fTimeWindowWidth.Set (numModules);
	}

	fTimeWindowWidth.SetAt (v, m);
}

void HPionTrackerHitFPar::setChargeThresh (const Int_t m, const Float_t v)
{
	if (numModules > 0 && fChargeThresh.GetSize() == 0)
	{
		fChargeThresh.Set (numModules);
	}

	fChargeThresh.SetAt (v, m);
}

void HPionTrackerHitFPar::setClusterDistX(const Int_t m, const Float_t v)
{
	if (numModules > 0 && fClusterDistX.GetSize() == 0)
	{
		fClusterDistX.Set (numModules);
	}

	fClusterDistX.SetAt (v, m);
}

void HPionTrackerHitFPar::setClusterDistT(const Int_t m, const Float_t v)
{
	if (numModules > 0 && fClusterDistT.GetSize() == 0)
	{
		fClusterDistT.Set (numModules);
	}

	fClusterDistT.SetAt (v, m);
}

void HPionTrackerHitFPar::setClusterThresh(const Int_t m, const Float_t v)
{
	if (numModules > 0 && fClusterThresh.GetSize() == 0)
	{
		fClusterThresh.Set (numModules);
	}

	fClusterThresh.SetAt (v, m);
}

void HPionTrackerHitFPar::setPlanePair (const Int_t m, const Int_t x, Int_t y)
{
	if (numPlanes > 0 && fPlanePair.GetSize() == 0)
	{
		fPlanePair.Set (numPlanes);
	}

	fPlanePair.SetAt (x, m*2);
	fPlanePair.SetAt (y, m*2+1);
}

void HPionTrackerHitFPar::setHitMatchTime(const Int_t m , const Float_t c, const Float_t w)
{
	if (numModules > 0 && fHitMatchTimeC.GetSize() == 0)
	{
		fHitMatchTimeC.Set (numPlanes);
		fHitMatchTimeW.Set (numPlanes);
	}

	fHitMatchTimeC.SetAt (c, m);
	fHitMatchTimeW.SetAt (w, m);
}

void HPionTrackerHitFPar::setHitMatchCharge(const Int_t m, const Float_t c, const Float_t w)
{
	if (numModules > 0 && fHitMatchChargeC.GetSize() == 0)
	{
		fHitMatchChargeC.Set (numPlanes);
		fHitMatchChargeW.Set (numPlanes);
	}

	fHitMatchChargeC.SetAt (c, m);
	fHitMatchChargeW.SetAt (w, m);
}
 hpiontrackerhitfpar.cc:1
 hpiontrackerhitfpar.cc:2
 hpiontrackerhitfpar.cc:3
 hpiontrackerhitfpar.cc:4
 hpiontrackerhitfpar.cc:5
 hpiontrackerhitfpar.cc:6
 hpiontrackerhitfpar.cc:7
 hpiontrackerhitfpar.cc:8
 hpiontrackerhitfpar.cc:9
 hpiontrackerhitfpar.cc:10
 hpiontrackerhitfpar.cc:11
 hpiontrackerhitfpar.cc:12
 hpiontrackerhitfpar.cc:13
 hpiontrackerhitfpar.cc:14
 hpiontrackerhitfpar.cc:15
 hpiontrackerhitfpar.cc:16
 hpiontrackerhitfpar.cc:17
 hpiontrackerhitfpar.cc:18
 hpiontrackerhitfpar.cc:19
 hpiontrackerhitfpar.cc:20
 hpiontrackerhitfpar.cc:21
 hpiontrackerhitfpar.cc:22
 hpiontrackerhitfpar.cc:23
 hpiontrackerhitfpar.cc:24
 hpiontrackerhitfpar.cc:25
 hpiontrackerhitfpar.cc:26
 hpiontrackerhitfpar.cc:27
 hpiontrackerhitfpar.cc:28
 hpiontrackerhitfpar.cc:29
 hpiontrackerhitfpar.cc:30
 hpiontrackerhitfpar.cc:31
 hpiontrackerhitfpar.cc:32
 hpiontrackerhitfpar.cc:33
 hpiontrackerhitfpar.cc:34
 hpiontrackerhitfpar.cc:35
 hpiontrackerhitfpar.cc:36
 hpiontrackerhitfpar.cc:37
 hpiontrackerhitfpar.cc:38
 hpiontrackerhitfpar.cc:39
 hpiontrackerhitfpar.cc:40
 hpiontrackerhitfpar.cc:41
 hpiontrackerhitfpar.cc:42
 hpiontrackerhitfpar.cc:43
 hpiontrackerhitfpar.cc:44
 hpiontrackerhitfpar.cc:45
 hpiontrackerhitfpar.cc:46
 hpiontrackerhitfpar.cc:47
 hpiontrackerhitfpar.cc:48
 hpiontrackerhitfpar.cc:49
 hpiontrackerhitfpar.cc:50
 hpiontrackerhitfpar.cc:51
 hpiontrackerhitfpar.cc:52
 hpiontrackerhitfpar.cc:53
 hpiontrackerhitfpar.cc:54
 hpiontrackerhitfpar.cc:55
 hpiontrackerhitfpar.cc:56
 hpiontrackerhitfpar.cc:57
 hpiontrackerhitfpar.cc:58
 hpiontrackerhitfpar.cc:59
 hpiontrackerhitfpar.cc:60
 hpiontrackerhitfpar.cc:61
 hpiontrackerhitfpar.cc:62
 hpiontrackerhitfpar.cc:63
 hpiontrackerhitfpar.cc:64
 hpiontrackerhitfpar.cc:65
 hpiontrackerhitfpar.cc:66
 hpiontrackerhitfpar.cc:67
 hpiontrackerhitfpar.cc:68
 hpiontrackerhitfpar.cc:69
 hpiontrackerhitfpar.cc:70
 hpiontrackerhitfpar.cc:71
 hpiontrackerhitfpar.cc:72
 hpiontrackerhitfpar.cc:73
 hpiontrackerhitfpar.cc:74
 hpiontrackerhitfpar.cc:75
 hpiontrackerhitfpar.cc:76
 hpiontrackerhitfpar.cc:77
 hpiontrackerhitfpar.cc:78
 hpiontrackerhitfpar.cc:79
 hpiontrackerhitfpar.cc:80
 hpiontrackerhitfpar.cc:81
 hpiontrackerhitfpar.cc:82
 hpiontrackerhitfpar.cc:83
 hpiontrackerhitfpar.cc:84
 hpiontrackerhitfpar.cc:85
 hpiontrackerhitfpar.cc:86
 hpiontrackerhitfpar.cc:87
 hpiontrackerhitfpar.cc:88
 hpiontrackerhitfpar.cc:89
 hpiontrackerhitfpar.cc:90
 hpiontrackerhitfpar.cc:91
 hpiontrackerhitfpar.cc:92
 hpiontrackerhitfpar.cc:93
 hpiontrackerhitfpar.cc:94
 hpiontrackerhitfpar.cc:95
 hpiontrackerhitfpar.cc:96
 hpiontrackerhitfpar.cc:97
 hpiontrackerhitfpar.cc:98
 hpiontrackerhitfpar.cc:99
 hpiontrackerhitfpar.cc:100
 hpiontrackerhitfpar.cc:101
 hpiontrackerhitfpar.cc:102
 hpiontrackerhitfpar.cc:103
 hpiontrackerhitfpar.cc:104
 hpiontrackerhitfpar.cc:105
 hpiontrackerhitfpar.cc:106
 hpiontrackerhitfpar.cc:107
 hpiontrackerhitfpar.cc:108
 hpiontrackerhitfpar.cc:109
 hpiontrackerhitfpar.cc:110
 hpiontrackerhitfpar.cc:111
 hpiontrackerhitfpar.cc:112
 hpiontrackerhitfpar.cc:113
 hpiontrackerhitfpar.cc:114
 hpiontrackerhitfpar.cc:115
 hpiontrackerhitfpar.cc:116
 hpiontrackerhitfpar.cc:117
 hpiontrackerhitfpar.cc:118
 hpiontrackerhitfpar.cc:119
 hpiontrackerhitfpar.cc:120
 hpiontrackerhitfpar.cc:121
 hpiontrackerhitfpar.cc:122
 hpiontrackerhitfpar.cc:123
 hpiontrackerhitfpar.cc:124
 hpiontrackerhitfpar.cc:125
 hpiontrackerhitfpar.cc:126
 hpiontrackerhitfpar.cc:127
 hpiontrackerhitfpar.cc:128
 hpiontrackerhitfpar.cc:129
 hpiontrackerhitfpar.cc:130
 hpiontrackerhitfpar.cc:131
 hpiontrackerhitfpar.cc:132
 hpiontrackerhitfpar.cc:133
 hpiontrackerhitfpar.cc:134
 hpiontrackerhitfpar.cc:135
 hpiontrackerhitfpar.cc:136
 hpiontrackerhitfpar.cc:137
 hpiontrackerhitfpar.cc:138
 hpiontrackerhitfpar.cc:139
 hpiontrackerhitfpar.cc:140
 hpiontrackerhitfpar.cc:141
 hpiontrackerhitfpar.cc:142
 hpiontrackerhitfpar.cc:143
 hpiontrackerhitfpar.cc:144
 hpiontrackerhitfpar.cc:145
 hpiontrackerhitfpar.cc:146
 hpiontrackerhitfpar.cc:147
 hpiontrackerhitfpar.cc:148
 hpiontrackerhitfpar.cc:149
 hpiontrackerhitfpar.cc:150
 hpiontrackerhitfpar.cc:151
 hpiontrackerhitfpar.cc:152
 hpiontrackerhitfpar.cc:153
 hpiontrackerhitfpar.cc:154
 hpiontrackerhitfpar.cc:155
 hpiontrackerhitfpar.cc:156
 hpiontrackerhitfpar.cc:157
 hpiontrackerhitfpar.cc:158
 hpiontrackerhitfpar.cc:159
 hpiontrackerhitfpar.cc:160
 hpiontrackerhitfpar.cc:161
 hpiontrackerhitfpar.cc:162
 hpiontrackerhitfpar.cc:163
 hpiontrackerhitfpar.cc:164
 hpiontrackerhitfpar.cc:165
 hpiontrackerhitfpar.cc:166
 hpiontrackerhitfpar.cc:167
 hpiontrackerhitfpar.cc:168
 hpiontrackerhitfpar.cc:169
 hpiontrackerhitfpar.cc:170
 hpiontrackerhitfpar.cc:171
 hpiontrackerhitfpar.cc:172
 hpiontrackerhitfpar.cc:173
 hpiontrackerhitfpar.cc:174
 hpiontrackerhitfpar.cc:175
 hpiontrackerhitfpar.cc:176
 hpiontrackerhitfpar.cc:177
 hpiontrackerhitfpar.cc:178
 hpiontrackerhitfpar.cc:179
 hpiontrackerhitfpar.cc:180
 hpiontrackerhitfpar.cc:181
 hpiontrackerhitfpar.cc:182
 hpiontrackerhitfpar.cc:183
 hpiontrackerhitfpar.cc:184
 hpiontrackerhitfpar.cc:185
 hpiontrackerhitfpar.cc:186
 hpiontrackerhitfpar.cc:187
 hpiontrackerhitfpar.cc:188
 hpiontrackerhitfpar.cc:189
 hpiontrackerhitfpar.cc:190
 hpiontrackerhitfpar.cc:191
 hpiontrackerhitfpar.cc:192
 hpiontrackerhitfpar.cc:193
 hpiontrackerhitfpar.cc:194
 hpiontrackerhitfpar.cc:195
 hpiontrackerhitfpar.cc:196
 hpiontrackerhitfpar.cc:197
 hpiontrackerhitfpar.cc:198
 hpiontrackerhitfpar.cc:199
 hpiontrackerhitfpar.cc:200
 hpiontrackerhitfpar.cc:201
 hpiontrackerhitfpar.cc:202
 hpiontrackerhitfpar.cc:203
 hpiontrackerhitfpar.cc:204
 hpiontrackerhitfpar.cc:205
 hpiontrackerhitfpar.cc:206
 hpiontrackerhitfpar.cc:207
 hpiontrackerhitfpar.cc:208
 hpiontrackerhitfpar.cc:209
 hpiontrackerhitfpar.cc:210
 hpiontrackerhitfpar.cc:211
 hpiontrackerhitfpar.cc:212
 hpiontrackerhitfpar.cc:213
 hpiontrackerhitfpar.cc:214
 hpiontrackerhitfpar.cc:215
 hpiontrackerhitfpar.cc:216
 hpiontrackerhitfpar.cc:217
 hpiontrackerhitfpar.cc:218
 hpiontrackerhitfpar.cc:219
 hpiontrackerhitfpar.cc:220
 hpiontrackerhitfpar.cc:221
 hpiontrackerhitfpar.cc:222
 hpiontrackerhitfpar.cc:223
 hpiontrackerhitfpar.cc:224
 hpiontrackerhitfpar.cc:225
 hpiontrackerhitfpar.cc:226
 hpiontrackerhitfpar.cc:227
 hpiontrackerhitfpar.cc:228
 hpiontrackerhitfpar.cc:229
 hpiontrackerhitfpar.cc:230
 hpiontrackerhitfpar.cc:231
 hpiontrackerhitfpar.cc:232
 hpiontrackerhitfpar.cc:233
 hpiontrackerhitfpar.cc:234
 hpiontrackerhitfpar.cc:235
 hpiontrackerhitfpar.cc:236
 hpiontrackerhitfpar.cc:237
 hpiontrackerhitfpar.cc:238
 hpiontrackerhitfpar.cc:239
 hpiontrackerhitfpar.cc:240
 hpiontrackerhitfpar.cc:241
 hpiontrackerhitfpar.cc:242
 hpiontrackerhitfpar.cc:243
 hpiontrackerhitfpar.cc:244
 hpiontrackerhitfpar.cc:245
 hpiontrackerhitfpar.cc:246
 hpiontrackerhitfpar.cc:247
 hpiontrackerhitfpar.cc:248
 hpiontrackerhitfpar.cc:249
 hpiontrackerhitfpar.cc:250
 hpiontrackerhitfpar.cc:251
 hpiontrackerhitfpar.cc:252
 hpiontrackerhitfpar.cc:253
 hpiontrackerhitfpar.cc:254
 hpiontrackerhitfpar.cc:255
 hpiontrackerhitfpar.cc:256
 hpiontrackerhitfpar.cc:257
 hpiontrackerhitfpar.cc:258
 hpiontrackerhitfpar.cc:259
 hpiontrackerhitfpar.cc:260
 hpiontrackerhitfpar.cc:261
 hpiontrackerhitfpar.cc:262
 hpiontrackerhitfpar.cc:263
 hpiontrackerhitfpar.cc:264
 hpiontrackerhitfpar.cc:265
 hpiontrackerhitfpar.cc:266
 hpiontrackerhitfpar.cc:267
 hpiontrackerhitfpar.cc:268
 hpiontrackerhitfpar.cc:269
 hpiontrackerhitfpar.cc:270
 hpiontrackerhitfpar.cc:271
 hpiontrackerhitfpar.cc:272
 hpiontrackerhitfpar.cc:273
 hpiontrackerhitfpar.cc:274
 hpiontrackerhitfpar.cc:275
 hpiontrackerhitfpar.cc:276
 hpiontrackerhitfpar.cc:277
 hpiontrackerhitfpar.cc:278
 hpiontrackerhitfpar.cc:279
 hpiontrackerhitfpar.cc:280
 hpiontrackerhitfpar.cc:281
 hpiontrackerhitfpar.cc:282
 hpiontrackerhitfpar.cc:283
 hpiontrackerhitfpar.cc:284
 hpiontrackerhitfpar.cc:285
 hpiontrackerhitfpar.cc:286
 hpiontrackerhitfpar.cc:287
 hpiontrackerhitfpar.cc:288
 hpiontrackerhitfpar.cc:289
 hpiontrackerhitfpar.cc:290
 hpiontrackerhitfpar.cc:291
 hpiontrackerhitfpar.cc:292
 hpiontrackerhitfpar.cc:293
 hpiontrackerhitfpar.cc:294
 hpiontrackerhitfpar.cc:295
 hpiontrackerhitfpar.cc:296
 hpiontrackerhitfpar.cc:297
 hpiontrackerhitfpar.cc:298
 hpiontrackerhitfpar.cc:299
 hpiontrackerhitfpar.cc:300
 hpiontrackerhitfpar.cc:301
 hpiontrackerhitfpar.cc:302
 hpiontrackerhitfpar.cc:303
 hpiontrackerhitfpar.cc:304
 hpiontrackerhitfpar.cc:305
 hpiontrackerhitfpar.cc:306
 hpiontrackerhitfpar.cc:307
 hpiontrackerhitfpar.cc:308
 hpiontrackerhitfpar.cc:309
 hpiontrackerhitfpar.cc:310
 hpiontrackerhitfpar.cc:311
 hpiontrackerhitfpar.cc:312
 hpiontrackerhitfpar.cc:313
 hpiontrackerhitfpar.cc:314
 hpiontrackerhitfpar.cc:315
 hpiontrackerhitfpar.cc:316
 hpiontrackerhitfpar.cc:317
 hpiontrackerhitfpar.cc:318
 hpiontrackerhitfpar.cc:319
 hpiontrackerhitfpar.cc:320
 hpiontrackerhitfpar.cc:321
 hpiontrackerhitfpar.cc:322
 hpiontrackerhitfpar.cc:323
 hpiontrackerhitfpar.cc:324
 hpiontrackerhitfpar.cc:325
 hpiontrackerhitfpar.cc:326
 hpiontrackerhitfpar.cc:327
 hpiontrackerhitfpar.cc:328