#include "hpiontrackerdetector.h"
#include "hpiontrackerdef.h"
#include "hades.h"
#include "hcategory.h"
#include "hevent.h"
#include "hlinearcategory.h"
#include "hmatrixcategory.h"
#include "hpario.h"
#include "hdetpario.h"
#include "hparrootfileio.h"
#include "hpiontrackerparrootfileio.h"
#include "hparasciifileio.h"
#include "hpiontrackerparasciifileio.h"
#include "TClass.h"
using namespace std;
ClassImp (HPionTrackerDetector)
HPionTrackerDetector::HPionTrackerDetector()
{
fName = "PionTracker";
maxModules = PIONTRACKER_MAX_MODULES;
maxComponents = PIONTRACKER_MAX_COMPONENTS;
modules = new TArrayI (maxModules);
for (Int_t i = 0; i < maxModules; i++)
{
modules->AddAt (0, i);
}
}
HPionTrackerDetector::~HPionTrackerDetector()
{
if (NULL != modules)
{
delete modules;
modules = NULL;
}
}
Bool_t HPionTrackerDetector::init (void)
{
return kTRUE;
}
void HPionTrackerDetector::activateParIo (HParIo * io)
{
if (strcmp (io->IsA()->GetName(), "HParOraIo") == 0)
{
io->setDetParIo ("HPionTrackerParIo");
return;
}
if (strcmp (io->IsA()->GetName(), "HParRootFileIo") == 0)
{
HPionTrackerParRootFileIo * p = new HPionTrackerParRootFileIo ( ( (HParRootFileIo *) io)->getParRootFile());
io->setDetParIo (p);
}
if (strcmp (io->IsA()->GetName(), "HParAsciiFileIo") == 0)
{
HPionTrackerParAsciiFileIo * p = new HPionTrackerParAsciiFileIo ( ( (HParAsciiFileIo *) io)->getFile());
io->setDetParIo (p);
}
}
Bool_t HPionTrackerDetector::write (HParIo * output)
{
HDetParIo * out = output->getDetParIo ("HPionTrackerParIo");
if (out) return out->write (this);
return kFALSE;
}
HCategory * HPionTrackerDetector::buildMatrixCategory (const Text_t * className, Float_t fillRate)
{
Int_t maxMod = getMaxModInSetup();
if (maxMod == 0) return 0;
Int_t * sizes = new Int_t[2];
sizes[0] = maxMod;
sizes[1] = maxComponents;
HMatrixCategory * category = new HMatrixCategory (className, 2, sizes, fillRate);
delete [] sizes;
return category;
}
HCategory * HPionTrackerDetector::buildLinearCategory (const Text_t * className)
{
Int_t size = getMaxModInSetup() * maxComponents;
if (size)
{
HLinearCategory * category = new HLinearCategory (className, size);
return category;
}
return 0;
}
HCategory * HPionTrackerDetector::buildCategory (Cat_t cat)
{
HCategory * pcat;
pcat = gHades->getCurrentEvent()->getCategory (cat);
if (pcat) return (pcat);
switch (cat)
{
case catPionTrackerRaw:
pcat = buildMatrixCategory("HPionTrackerRaw", 0.5);
break;
case catPionTrackerCal:
pcat = buildMatrixCategory("HPionTrackerCal", 0.5);
break;
case catPionTrackerHit:
pcat = buildMatrixCategory("HPionTrackerHit", 0.5);
break;
case catPionTrackerTrack:
pcat = buildLinearCategory("HPionTrackerTrack");
break;
default:
return NULL;
}
if (pcat) gHades->getCurrentEvent()->addCategory (cat, pcat, "PionTracker");
return (pcat);
}
Int_t HPionTrackerDetector::getMaxModInSetup (void)
{
Int_t maxMod = -1;
for (Int_t i = 0; i < maxModules; i++)
{
if (modules->At (i)) maxMod = (i > maxMod) ? i : maxMod;
}
maxMod++;
return maxMod;
}
hpiontrackerdetector.cc:1 hpiontrackerdetector.cc:2 hpiontrackerdetector.cc:3 hpiontrackerdetector.cc:4 hpiontrackerdetector.cc:5 hpiontrackerdetector.cc:6 hpiontrackerdetector.cc:7 hpiontrackerdetector.cc:8 hpiontrackerdetector.cc:9 hpiontrackerdetector.cc:10 hpiontrackerdetector.cc:11 hpiontrackerdetector.cc:12 hpiontrackerdetector.cc:13 hpiontrackerdetector.cc:14 hpiontrackerdetector.cc:15 hpiontrackerdetector.cc:16 hpiontrackerdetector.cc:17 hpiontrackerdetector.cc:18 hpiontrackerdetector.cc:19 hpiontrackerdetector.cc:20 hpiontrackerdetector.cc:21 hpiontrackerdetector.cc:22 hpiontrackerdetector.cc:23 hpiontrackerdetector.cc:24 hpiontrackerdetector.cc:25 hpiontrackerdetector.cc:26 hpiontrackerdetector.cc:27 hpiontrackerdetector.cc:28 hpiontrackerdetector.cc:29 hpiontrackerdetector.cc:30 hpiontrackerdetector.cc:31 hpiontrackerdetector.cc:32 hpiontrackerdetector.cc:33 hpiontrackerdetector.cc:34 hpiontrackerdetector.cc:35 hpiontrackerdetector.cc:36 hpiontrackerdetector.cc:37 hpiontrackerdetector.cc:38 hpiontrackerdetector.cc:39 hpiontrackerdetector.cc:40 hpiontrackerdetector.cc:41 hpiontrackerdetector.cc:42 hpiontrackerdetector.cc:43 hpiontrackerdetector.cc:44 hpiontrackerdetector.cc:45 hpiontrackerdetector.cc:46 hpiontrackerdetector.cc:47 hpiontrackerdetector.cc:48 hpiontrackerdetector.cc:49 hpiontrackerdetector.cc:50 hpiontrackerdetector.cc:51 hpiontrackerdetector.cc:52 hpiontrackerdetector.cc:53 hpiontrackerdetector.cc:54 hpiontrackerdetector.cc:55 hpiontrackerdetector.cc:56 hpiontrackerdetector.cc:57 hpiontrackerdetector.cc:58 hpiontrackerdetector.cc:59 hpiontrackerdetector.cc:60 hpiontrackerdetector.cc:61 hpiontrackerdetector.cc:62 hpiontrackerdetector.cc:63 hpiontrackerdetector.cc:64 hpiontrackerdetector.cc:65 hpiontrackerdetector.cc:66 hpiontrackerdetector.cc:67 hpiontrackerdetector.cc:68 hpiontrackerdetector.cc:69 hpiontrackerdetector.cc:70 hpiontrackerdetector.cc:71 hpiontrackerdetector.cc:72 hpiontrackerdetector.cc:73 hpiontrackerdetector.cc:74 hpiontrackerdetector.cc:75 hpiontrackerdetector.cc:76 hpiontrackerdetector.cc:77 hpiontrackerdetector.cc:78 hpiontrackerdetector.cc:79 hpiontrackerdetector.cc:80 hpiontrackerdetector.cc:81 hpiontrackerdetector.cc:82 hpiontrackerdetector.cc:83 hpiontrackerdetector.cc:84 hpiontrackerdetector.cc:85 hpiontrackerdetector.cc:86 hpiontrackerdetector.cc:87 hpiontrackerdetector.cc:88 hpiontrackerdetector.cc:89 hpiontrackerdetector.cc:90 hpiontrackerdetector.cc:91 hpiontrackerdetector.cc:92 hpiontrackerdetector.cc:93 hpiontrackerdetector.cc:94 hpiontrackerdetector.cc:95 hpiontrackerdetector.cc:96 hpiontrackerdetector.cc:97 hpiontrackerdetector.cc:98 hpiontrackerdetector.cc:99 hpiontrackerdetector.cc:100 hpiontrackerdetector.cc:101 hpiontrackerdetector.cc:102 hpiontrackerdetector.cc:103 hpiontrackerdetector.cc:104 hpiontrackerdetector.cc:105 hpiontrackerdetector.cc:106 hpiontrackerdetector.cc:107 hpiontrackerdetector.cc:108 hpiontrackerdetector.cc:109 hpiontrackerdetector.cc:110 hpiontrackerdetector.cc:111 hpiontrackerdetector.cc:112 hpiontrackerdetector.cc:113 hpiontrackerdetector.cc:114 hpiontrackerdetector.cc:115 hpiontrackerdetector.cc:116 hpiontrackerdetector.cc:117 hpiontrackerdetector.cc:118 hpiontrackerdetector.cc:119 hpiontrackerdetector.cc:120 hpiontrackerdetector.cc:121 hpiontrackerdetector.cc:122 hpiontrackerdetector.cc:123 hpiontrackerdetector.cc:124 hpiontrackerdetector.cc:125 hpiontrackerdetector.cc:126 hpiontrackerdetector.cc:127 hpiontrackerdetector.cc:128 hpiontrackerdetector.cc:129 hpiontrackerdetector.cc:130 hpiontrackerdetector.cc:131 hpiontrackerdetector.cc:132 hpiontrackerdetector.cc:133 hpiontrackerdetector.cc:134 hpiontrackerdetector.cc:135 hpiontrackerdetector.cc:136 hpiontrackerdetector.cc:137 hpiontrackerdetector.cc:138 hpiontrackerdetector.cc:139 hpiontrackerdetector.cc:140 hpiontrackerdetector.cc:141 hpiontrackerdetector.cc:142 hpiontrackerdetector.cc:143 hpiontrackerdetector.cc:144 hpiontrackerdetector.cc:145 hpiontrackerdetector.cc:146 hpiontrackerdetector.cc:147 hpiontrackerdetector.cc:148 hpiontrackerdetector.cc:149 hpiontrackerdetector.cc:150 hpiontrackerdetector.cc:151 hpiontrackerdetector.cc:152 hpiontrackerdetector.cc:153 hpiontrackerdetector.cc:154 hpiontrackerdetector.cc:155 hpiontrackerdetector.cc:156 hpiontrackerdetector.cc:157 hpiontrackerdetector.cc:158 hpiontrackerdetector.cc:159 hpiontrackerdetector.cc:160 hpiontrackerdetector.cc:161 hpiontrackerdetector.cc:162 hpiontrackerdetector.cc:163 hpiontrackerdetector.cc:164 hpiontrackerdetector.cc:165 hpiontrackerdetector.cc:166 hpiontrackerdetector.cc:167 hpiontrackerdetector.cc:168 hpiontrackerdetector.cc:169 hpiontrackerdetector.cc:170 hpiontrackerdetector.cc:171 hpiontrackerdetector.cc:172 hpiontrackerdetector.cc:173 hpiontrackerdetector.cc:174 hpiontrackerdetector.cc:175