ClassImp(AliTRDtrackingChamber)
//_______________________________________________________
-AliTRDtrackingChamber::AliTRDtrackingChamber(Int_t det) :
- fDetector(det)
+AliTRDtrackingChamber::AliTRDtrackingChamber()
+ :TObject()
+ ,fDetector(-1)
,fX0(0.)
{}
// Calculates radial position of the chamber based on
// radial positions of the time bins (calibration/alignment aware)
//
+ if(fDetector < 0 || fDetector >= AliTRDgeometry::kNdet){
+ AliWarning(Form("Detector index not set correctly to %d", fDetector));
+ return kFALSE;
+ }
+
Int_t stack = geo->GetStack(fDetector);
Int_t layer = geo->GetLayer(fDetector);
AliTRDpadPlane *pp = geo->GetPadPlane(layer, stack);
mean /= roc->GetNchannels();
t0 = (Int_t)(cal->GetValue(fDetector) + mean);
}
-
+ fTB[t0].SetT0();
fX0 = x0 + dx*(index[0] - t0);
return kTRUE;
}
//_______________________________________________________
Int_t AliTRDtrackingChamber::GetNClusters() const
{
+// Basic loop method
// Returns number of clusters in chamber
//
Int_t n = 0;
return n;
}
+//_______________________________________________________
+void AliTRDtrackingChamber::Bootstrap(const AliTRDReconstructor *rec)
+{
+// Basic loop method
+// Bootstrap each time bin
+//
+ AliTRDchamberTimeBin *jtb = &fTB[0];
+ for(Int_t itb=0; itb<kNTimeBins; itb++, ++jtb){
+ (*jtb).Bootstrap(rec, fDetector);
+ }
+}
+
+//_______________________________________________________
+void AliTRDtrackingChamber::SetOwner()
+{
+// Basic loop method
+// Set ownership in time bins
+//
+ AliTRDchamberTimeBin *jtb = &fTB[0];
+ for(Int_t itb=0; itb<kNTimeBins; itb++, ++jtb){
+ if(!(Int_t(*jtb))) continue;
+ (*jtb).SetOwner();
+ }
+}
+
//_______________________________________________________
Double_t AliTRDtrackingChamber::GetQuality()
{
new(fakeLayer) AliTRDchamberTimeBin(layer, stack, sector, z0, zl);
fakeLayer->SetReconstructor(rec);
- AliTRDcluster *cluster = 0x0;
+ fakeLayer->SetNRows(nRows);
+ fakeLayer->SetOwner(kFALSE);
if(nCandidates){
UInt_t fakeIndex = 0;
for(Int_t ican = 0; ican < nCandidates; ican++){
pos[2] = z/n;
sig[0] = .02;
sig[1] = sigcands[ican];
- cluster = new AliTRDcluster(fDetector, 0., pos, sig, 0x0, 3, signal, col, row, 0, 0, 0., 0);
- fakeLayer->InsertCluster(cluster, fakeIndex++);
+ fakeLayer->InsertCluster(new AliTRDcluster(fDetector, 0., pos, sig, 0x0, 3, signal, col, row, 0, 0, 0., 0), fakeIndex++);
}
}
- fakeLayer->SetNRows(nRows);
- fakeLayer->SetOwner();
fakeLayer->BuildIndices();
- //fakeLayer->PrintClusters();
+ //fakeLayer->Print();
if(rec->GetStreamLevel(AliTRDReconstructor::kTracker) >= 3){
//TMatrixD hist(nRows, nCols);
return kTRUE;
}
+
+//_______________________________________________________
+void AliTRDtrackingChamber::Print(Option_t *opt) const
+{
+ if(!GetNClusters()) return;
+ AliInfo(Form("fDetector = %d", fDetector));
+ AliInfo(Form("fX0 = %7.3f", fX0));
+ const AliTRDchamberTimeBin *itb = &fTB[0];
+ for(Int_t jtb=0; jtb<kNTimeBins; jtb++, itb++) (*itb).Print(opt);
+}