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()
{
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)
{
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)
{
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: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