#include "Riostream.h"
#include "AliITSUReconstructor.h"
#include "AliITSURecoDet.h"
#include "AliRun.h"
#include "AliRawReader.h"
#include "AliESDEvent.h"
#include "AliTracker.h"
#include "AliITSUTrackerCooked.h"
#include "AliITSUCATracker.h"
#include "AliITSUGeomTGeo.h"
#include "AliITSUSegmentationPix.h"
#include "AliITSUDigitPix.h"
#include "AliITSUClusterizer.h"
#include "AliITSUClusterPix.h"
#include "AliITSUVertexer.h"
#include "AliMagF.h"
ClassImp(AliITSUReconstructor)
AliITSUReconstructor::AliITSUReconstructor()
: AliReconstructor()
,fGeom(0)
,fITS(0)
,fClusterFinders(0)
,fClusters(0)
{
}
AliITSUReconstructor::~AliITSUReconstructor()
{
if (!fGeom) return;
for (int i=fGeom->GetNLayers();i--;) {
TObject* clFinder = fClusterFinders.At(i);
if (clFinder) {
while (fClusterFinders.Remove(clFinder)) {}
delete clFinder;
}
delete fClusters[i];
}
delete[] fClusters;
delete fITS;
delete fGeom;
}
void AliITSUReconstructor::Init()
{
AliInfo("Initializing");
if (fGeom) AliFatal("was already done, something is wrong...");
fGeom = new AliITSUGeomTGeo(kTRUE,kTRUE);
AliITSUClusterPix::SetGeom(fGeom);
AliITSUClusterizer* clusPIX = 0;
fClusters = new TClonesArray*[fGeom->GetNLayers()];
for (int ilr=fGeom->GetNLayers();ilr--;) {
fClusters[ilr] = 0;
int tpDet = fGeom->GetLayerChipTypeID(ilr)/AliITSUGeomTGeo::kMaxSegmPerChipType;
if (tpDet == AliITSUGeomTGeo::kChipTypePix) {
if (!clusPIX) clusPIX = new AliITSUClusterizer();
fClusterFinders.AddAtAndExpand(clusPIX, ilr);
fClusters[ilr] = new TClonesArray(AliITSUClusterPix::Class());
clusPIX->SetSegmentation((AliITSUSegmentationPix*)fGeom->GetSegmentation(ilr));
continue;
}
else {
AliFatal(Form("ClusterFinder for detector type %d is not defined",tpDet));
}
}
return;
}
void AliITSUReconstructor::Reconstruct(TTree *digitsTree, TTree *clustersTree) const
{
if (!digitsTree) return;
AliDebug(1,"ITSU Cluster finder (from digits tree) is initiated here \n");
TClonesArray *digArrPix = 0;
digitsTree->SetBranchAddress("ITSDigitsPix",&digArrPix);
TBranch *lrBranch[fGeom->GetNLayers()];
for (int ilr=0;ilr<fGeom->GetNLayers();ilr++) {
lrBranch[ilr] = 0;
if (clustersTree) {
int tp = fGeom->GetLayerChipTypeID(ilr)/AliITSUGeomTGeo::kMaxSegmPerChipType;
if (tp==AliITSUGeomTGeo::kChipTypePix) {
lrBranch[ilr] = clustersTree->Bronch(Form("ITSRecPoints%d",ilr),"TClonesArray",&fClusters[ilr]);
}
else {
AliFatal(Form("Detector type %d is not defined",tp));
}
}
}
AliITSUClusterizer* clFinder = 0;
AliMagF* field = dynamic_cast<AliMagF*>(TGeoGlobalMagField::Instance()->GetField());
double bz = 0;
if (field == 0) AliError("Cannot get magnetic field from TGeoGlobalMagField");
else bz = field->SolenoidField();
const AliITSURecoParam* recPar = GetRecoParam();
for (int ilr=0;ilr<fGeom->GetNLayers();ilr++) {
fClusters[ilr]->Clear();
clFinder = (AliITSUClusterizer*)fClusterFinders[ilr];
clFinder->SetSegmentation((AliITSUSegmentationPix*)fGeom->GetSegmentation(ilr));
clFinder->SetLayerID(ilr);
clFinder->SetClusters(fClusters[ilr]);
clFinder->SetRecoParam(recPar);
clFinder->SetAllowDiagonalClusterization(recPar->GetAllowDiagonalClusterization(ilr));
clFinder->PrepareLorentzAngleCorrection(bz);
int modF=fGeom->GetFirstChipIndex(ilr);
int modL=fGeom->GetLastChipIndex(ilr)+1;
for (int imod=modF;imod<modL;imod++) {
digitsTree->GetEntry(imod);
int ndig = digArrPix->GetEntries();
if (!ndig) continue;
clFinder->SetVolID(imod);
clFinder->SetDigits(digArrPix);
clFinder->Clusterize();
}
AliDebug(1,Form(" -> Lr%d : %d Cluster",ilr,fClusters[ilr]->GetEntries()));
if (clustersTree) lrBranch[ilr]->Fill();
}
if (clustersTree) clustersTree->SetEntries();
}
AliTracker* AliITSUReconstructor::CreateTracker() const
{
Int_t opt = GetRecoParam()->GetTracker();
Bool_t sa = GetRecoParam()->GetSAonly();
Info("CreateTracker","Creating the ITSU tracker %d in mode %d",opt,sa);
AliTracker *tracker=0;
switch (opt) {
case 0:
tracker = new AliITSUTrackerGlo((AliITSUReconstructor*)this);
break;
case 1:
tracker = new AliITSUTrackerCooked((AliITSUReconstructor*)this);
((AliITSUTrackerCooked*)tracker)->SetSAonly(sa);
break;
case 2:
tracker = new AliITSUCATracker((AliITSUReconstructor*)this);
((AliITSUCATracker*)tracker)->SetSAonly(sa);
break;
default:
AliFatal("Undefined ITSU tracker type !");
}
return tracker;
}
AliVertexer* AliITSUReconstructor::CreateVertexer() const
{
AliInfo("Creating vertexer using tracklets with the first 3 ITS layers");
if (GetRecoParam()->GetEventSpecie() & AliRecoParam::kHighMult) {
return new AliITSUVertexer();
} else {
return new AliITSUVertexer(0.05,0.003,0.04,0.8,3);
}
}
AliTrackleter* AliITSUReconstructor::CreateMultFinder() const
{
AliDebug(1,"ITSU MultFinder should be initiated here\n");
return 0;
}
AliTracker* AliITSUReconstructor::CreateTrackleter() const
{
AliDebug(1,"ITSU Trackleter should be initiated here\n");
return 0;
}
AliITSURecoDet* AliITSUReconstructor::GetITSInterface()
{
if (fITS) return fITS;
fITS = new AliITSURecoDet(fGeom,"ITSURecoInterface");
int nLr = fITS->GetNLayersActive();
for (int ilr=nLr;ilr--;) fITS->GetLayerActive(ilr)->SetClusters(GetClusters(ilr));
return fITS;
}
AliITSUReconstructor.cxx:1 AliITSUReconstructor.cxx:2 AliITSUReconstructor.cxx:3 AliITSUReconstructor.cxx:4 AliITSUReconstructor.cxx:5 AliITSUReconstructor.cxx:6 AliITSUReconstructor.cxx:7 AliITSUReconstructor.cxx:8 AliITSUReconstructor.cxx:9 AliITSUReconstructor.cxx:10 AliITSUReconstructor.cxx:11 AliITSUReconstructor.cxx:12 AliITSUReconstructor.cxx:13 AliITSUReconstructor.cxx:14 AliITSUReconstructor.cxx:15 AliITSUReconstructor.cxx:16 AliITSUReconstructor.cxx:17 AliITSUReconstructor.cxx:18 AliITSUReconstructor.cxx:19 AliITSUReconstructor.cxx:20 AliITSUReconstructor.cxx:21 AliITSUReconstructor.cxx:22 AliITSUReconstructor.cxx:23 AliITSUReconstructor.cxx:24 AliITSUReconstructor.cxx:25 AliITSUReconstructor.cxx:26 AliITSUReconstructor.cxx:27 AliITSUReconstructor.cxx:28 AliITSUReconstructor.cxx:29 AliITSUReconstructor.cxx:30 AliITSUReconstructor.cxx:31 AliITSUReconstructor.cxx:32 AliITSUReconstructor.cxx:33 AliITSUReconstructor.cxx:34 AliITSUReconstructor.cxx:35 AliITSUReconstructor.cxx:36 AliITSUReconstructor.cxx:37 AliITSUReconstructor.cxx:38 AliITSUReconstructor.cxx:39 AliITSUReconstructor.cxx:40 AliITSUReconstructor.cxx:41 AliITSUReconstructor.cxx:42 AliITSUReconstructor.cxx:43 AliITSUReconstructor.cxx:44 AliITSUReconstructor.cxx:45 AliITSUReconstructor.cxx:46 AliITSUReconstructor.cxx:47 AliITSUReconstructor.cxx:48 AliITSUReconstructor.cxx:49 AliITSUReconstructor.cxx:50 AliITSUReconstructor.cxx:51 AliITSUReconstructor.cxx:52 AliITSUReconstructor.cxx:53 AliITSUReconstructor.cxx:54 AliITSUReconstructor.cxx:55 AliITSUReconstructor.cxx:56 AliITSUReconstructor.cxx:57 AliITSUReconstructor.cxx:58 AliITSUReconstructor.cxx:59 AliITSUReconstructor.cxx:60 AliITSUReconstructor.cxx:61 AliITSUReconstructor.cxx:62 AliITSUReconstructor.cxx:63 AliITSUReconstructor.cxx:64 AliITSUReconstructor.cxx:65 AliITSUReconstructor.cxx:66 AliITSUReconstructor.cxx:67 AliITSUReconstructor.cxx:68 AliITSUReconstructor.cxx:69 AliITSUReconstructor.cxx:70 AliITSUReconstructor.cxx:71 AliITSUReconstructor.cxx:72 AliITSUReconstructor.cxx:73 AliITSUReconstructor.cxx:74 AliITSUReconstructor.cxx:75 AliITSUReconstructor.cxx:76 AliITSUReconstructor.cxx:77 AliITSUReconstructor.cxx:78 AliITSUReconstructor.cxx:79 AliITSUReconstructor.cxx:80 AliITSUReconstructor.cxx:81 AliITSUReconstructor.cxx:82 AliITSUReconstructor.cxx:83 AliITSUReconstructor.cxx:84 AliITSUReconstructor.cxx:85 AliITSUReconstructor.cxx:86 AliITSUReconstructor.cxx:87 AliITSUReconstructor.cxx:88 AliITSUReconstructor.cxx:89 AliITSUReconstructor.cxx:90 AliITSUReconstructor.cxx:91 AliITSUReconstructor.cxx:92 AliITSUReconstructor.cxx:93 AliITSUReconstructor.cxx:94 AliITSUReconstructor.cxx:95 AliITSUReconstructor.cxx:96 AliITSUReconstructor.cxx:97 AliITSUReconstructor.cxx:98 AliITSUReconstructor.cxx:99 AliITSUReconstructor.cxx:100 AliITSUReconstructor.cxx:101 AliITSUReconstructor.cxx:102 AliITSUReconstructor.cxx:103 AliITSUReconstructor.cxx:104 AliITSUReconstructor.cxx:105 AliITSUReconstructor.cxx:106 AliITSUReconstructor.cxx:107 AliITSUReconstructor.cxx:108 AliITSUReconstructor.cxx:109 AliITSUReconstructor.cxx:110 AliITSUReconstructor.cxx:111 AliITSUReconstructor.cxx:112 AliITSUReconstructor.cxx:113 AliITSUReconstructor.cxx:114 AliITSUReconstructor.cxx:115 AliITSUReconstructor.cxx:116 AliITSUReconstructor.cxx:117 AliITSUReconstructor.cxx:118 AliITSUReconstructor.cxx:119 AliITSUReconstructor.cxx:120 AliITSUReconstructor.cxx:121 AliITSUReconstructor.cxx:122 AliITSUReconstructor.cxx:123 AliITSUReconstructor.cxx:124 AliITSUReconstructor.cxx:125 AliITSUReconstructor.cxx:126 AliITSUReconstructor.cxx:127 AliITSUReconstructor.cxx:128 AliITSUReconstructor.cxx:129 AliITSUReconstructor.cxx:130 AliITSUReconstructor.cxx:131 AliITSUReconstructor.cxx:132 AliITSUReconstructor.cxx:133 AliITSUReconstructor.cxx:134 AliITSUReconstructor.cxx:135 AliITSUReconstructor.cxx:136 AliITSUReconstructor.cxx:137 AliITSUReconstructor.cxx:138 AliITSUReconstructor.cxx:139 AliITSUReconstructor.cxx:140 AliITSUReconstructor.cxx:141 AliITSUReconstructor.cxx:142 AliITSUReconstructor.cxx:143 AliITSUReconstructor.cxx:144 AliITSUReconstructor.cxx:145 AliITSUReconstructor.cxx:146 AliITSUReconstructor.cxx:147 AliITSUReconstructor.cxx:148 AliITSUReconstructor.cxx:149 AliITSUReconstructor.cxx:150 AliITSUReconstructor.cxx:151 AliITSUReconstructor.cxx:152 AliITSUReconstructor.cxx:153 AliITSUReconstructor.cxx:154 AliITSUReconstructor.cxx:155 AliITSUReconstructor.cxx:156 AliITSUReconstructor.cxx:157 AliITSUReconstructor.cxx:158 AliITSUReconstructor.cxx:159 AliITSUReconstructor.cxx:160 AliITSUReconstructor.cxx:161 AliITSUReconstructor.cxx:162 AliITSUReconstructor.cxx:163 AliITSUReconstructor.cxx:164 AliITSUReconstructor.cxx:165 AliITSUReconstructor.cxx:166 AliITSUReconstructor.cxx:167 AliITSUReconstructor.cxx:168 AliITSUReconstructor.cxx:169 AliITSUReconstructor.cxx:170 AliITSUReconstructor.cxx:171 AliITSUReconstructor.cxx:172 AliITSUReconstructor.cxx:173 AliITSUReconstructor.cxx:174 AliITSUReconstructor.cxx:175 AliITSUReconstructor.cxx:176 AliITSUReconstructor.cxx:177 AliITSUReconstructor.cxx:178 AliITSUReconstructor.cxx:179 AliITSUReconstructor.cxx:180 AliITSUReconstructor.cxx:181 AliITSUReconstructor.cxx:182 AliITSUReconstructor.cxx:183 AliITSUReconstructor.cxx:184 AliITSUReconstructor.cxx:185 AliITSUReconstructor.cxx:186 AliITSUReconstructor.cxx:187 AliITSUReconstructor.cxx:188 AliITSUReconstructor.cxx:189 AliITSUReconstructor.cxx:190 AliITSUReconstructor.cxx:191 AliITSUReconstructor.cxx:192 AliITSUReconstructor.cxx:193 AliITSUReconstructor.cxx:194 AliITSUReconstructor.cxx:195 AliITSUReconstructor.cxx:196 AliITSUReconstructor.cxx:197 AliITSUReconstructor.cxx:198 AliITSUReconstructor.cxx:199 AliITSUReconstructor.cxx:200 AliITSUReconstructor.cxx:201 AliITSUReconstructor.cxx:202 AliITSUReconstructor.cxx:203 AliITSUReconstructor.cxx:204 AliITSUReconstructor.cxx:205 AliITSUReconstructor.cxx:206 AliITSUReconstructor.cxx:207 AliITSUReconstructor.cxx:208 AliITSUReconstructor.cxx:209 AliITSUReconstructor.cxx:210 AliITSUReconstructor.cxx:211 AliITSUReconstructor.cxx:212 AliITSUReconstructor.cxx:213 AliITSUReconstructor.cxx:214 AliITSUReconstructor.cxx:215 AliITSUReconstructor.cxx:216 AliITSUReconstructor.cxx:217 AliITSUReconstructor.cxx:218 AliITSUReconstructor.cxx:219 AliITSUReconstructor.cxx:220 AliITSUReconstructor.cxx:221 AliITSUReconstructor.cxx:222 AliITSUReconstructor.cxx:223 AliITSUReconstructor.cxx:224 AliITSUReconstructor.cxx:225 AliITSUReconstructor.cxx:226 AliITSUReconstructor.cxx:227 AliITSUReconstructor.cxx:228 AliITSUReconstructor.cxx:229 AliITSUReconstructor.cxx:230 AliITSUReconstructor.cxx:231 AliITSUReconstructor.cxx:232 AliITSUReconstructor.cxx:233 AliITSUReconstructor.cxx:234 AliITSUReconstructor.cxx:235 AliITSUReconstructor.cxx:236 AliITSUReconstructor.cxx:237 AliITSUReconstructor.cxx:238 AliITSUReconstructor.cxx:239 AliITSUReconstructor.cxx:240 AliITSUReconstructor.cxx:241 AliITSUReconstructor.cxx:242 AliITSUReconstructor.cxx:243 AliITSUReconstructor.cxx:244 AliITSUReconstructor.cxx:245 AliITSUReconstructor.cxx:246 AliITSUReconstructor.cxx:247 AliITSUReconstructor.cxx:248 AliITSUReconstructor.cxx:249 AliITSUReconstructor.cxx:250 AliITSUReconstructor.cxx:251 AliITSUReconstructor.cxx:252 AliITSUReconstructor.cxx:253 AliITSUReconstructor.cxx:254 AliITSUReconstructor.cxx:255 AliITSUReconstructor.cxx:256 AliITSUReconstructor.cxx:257 AliITSUReconstructor.cxx:258 AliITSUReconstructor.cxx:259 AliITSUReconstructor.cxx:260 AliITSUReconstructor.cxx:261 AliITSUReconstructor.cxx:262 AliITSUReconstructor.cxx:263 AliITSUReconstructor.cxx:264 AliITSUReconstructor.cxx:265 AliITSUReconstructor.cxx:266 AliITSUReconstructor.cxx:267 AliITSUReconstructor.cxx:268 AliITSUReconstructor.cxx:269 AliITSUReconstructor.cxx:270 AliITSUReconstructor.cxx:271 AliITSUReconstructor.cxx:272 AliITSUReconstructor.cxx:273 AliITSUReconstructor.cxx:274