From 349f5eeb46e1c19249d943ccf92511b46dfab8dc Mon Sep 17 00:00:00 2001 From: abercuci Date: Thu, 9 Oct 2008 09:27:19 +0000 Subject: [PATCH] second interation in improving debug stream in AttachClusters --- TRD/AliTRDtrackingChamber.cxx | 9 ++++- TRD/AliTRDtrackingChamber.h | 3 +- TRD/AliTRDtrackingSector.cxx | 75 +++++++++++++---------------------- TRD/AliTRDtrackingSector.h | 67 +++++++++++++++---------------- 4 files changed, 67 insertions(+), 87 deletions(-) diff --git a/TRD/AliTRDtrackingChamber.cxx b/TRD/AliTRDtrackingChamber.cxx index ca162a7b19b..ca8b14b8897 100644 --- a/TRD/AliTRDtrackingChamber.cxx +++ b/TRD/AliTRDtrackingChamber.cxx @@ -43,9 +43,9 @@ ClassImp(AliTRDtrackingChamber) //_______________________________________________________ -AliTRDtrackingChamber::AliTRDtrackingChamber(Int_t det) +AliTRDtrackingChamber::AliTRDtrackingChamber() :TObject() - ,fDetector(det) + ,fDetector(-1) ,fX0(0.) {} @@ -68,6 +68,11 @@ Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *geo, const AliTRDCalDet *cal // 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); diff --git a/TRD/AliTRDtrackingChamber.h b/TRD/AliTRDtrackingChamber.h index 3fe2977e61f..e8d7c6a1f8b 100644 --- a/TRD/AliTRDtrackingChamber.h +++ b/TRD/AliTRDtrackingChamber.h @@ -35,7 +35,7 @@ public: enum{ kNTimeBins = AliTRDseed::knTimebins }; - AliTRDtrackingChamber(Int_t det); + AliTRDtrackingChamber(); virtual ~AliTRDtrackingChamber(){} Bool_t Build(AliTRDgeometry *geo, const AliTRDCalDet *cal, Bool_t hlt = kFALSE); @@ -48,6 +48,7 @@ public: AliTRDchamberTimeBin* GetTB(int tb) {return tb >= 0 && tb < kNTimeBins ? &fTB[tb] : 0x0;} void InsertCluster(AliTRDcluster *c, Int_t index); + void SetDetector(Int_t det) { fDetector = det;} private: Int_t fDetector; // detector number diff --git a/TRD/AliTRDtrackingSector.cxx b/TRD/AliTRDtrackingSector.cxx index 74d95f61f2b..d70854ea214 100644 --- a/TRD/AliTRDtrackingSector.cxx +++ b/TRD/AliTRDtrackingSector.cxx @@ -25,13 +25,13 @@ // // /////////////////////////////////////////////////////////////////////////////// -#include "AliTRDtrackingSector.h" #include "AliTRDcalibDB.h" #include "AliTRDCommonParam.h" -#include "AliTRDgeometry.h" #include "AliTRDpadPlane.h" +#include "AliTRDtrackingSector.h" #include "AliTRDtrackingChamber.h" + ClassImp(AliTRDtrackingSector) //_____________________________________________________________________________ @@ -42,11 +42,9 @@ AliTRDtrackingSector::AliTRDtrackingSector() { // Default constructor - for(int ic=0; icGetTB(itb))) continue; + AliTRDtrackingChamber **tc = &fChamber[0]; + for(Int_t ic = 0; (icGetTB(itb))) continue; tb->SetReconstructor(rec); } - tc->Build(fGeom, cal, rec->IsHLT()); + (*tc)->Build(fGeom, cal, rec->IsHLT()); } Int_t nl; @@ -110,8 +86,8 @@ void AliTRDtrackingSector::Init(const AliTRDReconstructor *rec, const AliTRDCalD for(int is=0; isGetX(); nl++; + fX0[il] += GetChamber(fIndex[idx])->GetX(); + nl++; } if(!nl){ //printf("Could not estimate radial position of plane %d in sector %d.\n", ip, fSector); @@ -128,11 +104,12 @@ void AliTRDtrackingSector::Clear(const Option_t *opt) { // Reset counters and steer chamber clear - for(Int_t ich=0; ichClear(opt); - delete fChamber[ich]; fChamber[ich] = 0x0; // I would avoid + AliTRDtrackingChamber **tc = &fChamber[0]; + for(Int_t ich=0; ichClear(opt); + delete (*tc); (*tc) = 0x0; // I would avoid } - for(Int_t ich=0; ich=0 ? fIndex[rch]+1 : 0; fN++; - memmove(&fChamber[Int_t(fIndex[ch])+1], &fChamber[Int_t(fIndex[ch])], (kNChambersSector-fIndex[ch]-1)*sizeof(void*)); - for(Int_t ic = ch+1; ic= 0 ? 1 : 0; + memmove(&fChamber[Int_t(fIndex[ch])+1], &fChamber[Int_t(fIndex[ch])], (AliTRDgeometry::kNdets-fIndex[ch]-1)*sizeof(void*)); + for(Int_t ic = ch+1; ic= 0 ? 1 : 0; - return fChamber[Int_t(fIndex[ch])] = new AliTRDtrackingChamber(AliTRDgeometry::GetDetector(layer, stack, fSector)); + AliTRDtrackingChamber *chmb = fChamber[Int_t(fIndex[ch])] = new AliTRDtrackingChamber(); + chmb->SetDetector(AliTRDgeometry::GetDetector(layer, stack, fSector)); + return chmb; } //_____________________________________________________________________________ @@ -185,8 +164,8 @@ void AliTRDtrackingSector::Print(Option_t *) // printf("\tSector %2d\n", fSector); - for(int il=0; il<6; il++){ - for(int is =0; is<5; is++){ + for(int il=0; il=0 ? fChamber[Int_t(fIndex[ch])]->GetNClusters() : 0); } diff --git a/TRD/AliTRDtrackingSector.h b/TRD/AliTRDtrackingSector.h index cb3ac4a83f8..4d52339ff0f 100644 --- a/TRD/AliTRDtrackingSector.h +++ b/TRD/AliTRDtrackingSector.h @@ -2,7 +2,7 @@ #define ALITRDTRACKINGSECTOR_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ +* See cxx source for full Copyright notice */ /* $Id: AliTRDtrackingSector.h 22646 2007-11-29 18:13:40Z cblume $ */ @@ -17,54 +17,49 @@ // // //////////////////////////////////////////////////////////////////////////// -#ifndef ROOT_Rtypes -#include "Rtypes.h" +#ifndef ALITRDGEOMETRY_H +#include "AliTRDgeometry.h" #endif class AliTRDCalDet; -class AliTRDgeometry; class AliTRDReconstructor; class AliTRDtrackingChamber; class AliTRDtrackingSector { public: - enum{ - kNChambersSector = 30 - , kNplane = 6 - , kTrackingSectors = 18 - }; - - AliTRDtrackingSector(); - AliTRDtrackingSector(AliTRDgeometry* geo, Int_t gs); - AliTRDtrackingSector(const AliTRDtrackingSector &/*t*/); - virtual ~AliTRDtrackingSector(); - - AliTRDtrackingSector &operator=(const AliTRDtrackingSector &/*t*/) { return *this; } - + AliTRDtrackingSector(); + AliTRDtrackingSector(AliTRDgeometry* geo, Int_t gs); + virtual ~AliTRDtrackingSector(){;} + void Clear(const Option_t *opt = 0x0); - Int_t GetNChambers() const { return fN; } - Double_t GetX(Int_t pl) const { return pl >=0 && pl < kNplane ? fX0[pl] : 0.; } - AliTRDtrackingChamber* GetChamber(Int_t i) const { return i>=0 && i < fN ? fChamber[i] : 0x0; } - AliTRDtrackingChamber* GetChamber(Int_t stack, Int_t plane, Bool_t build = kFALSE); - AliTRDtrackingChamber** GetStack(Int_t stack); - Int_t GetSector() const {return fSector;} + Int_t GetNChambers() const { return fN; } + Double_t GetX(Int_t pl) const { return pl >=0 && pl < AliTRDgeometry::kNlayer ? fX0[pl] : 0.; } + AliTRDtrackingChamber* GetChamber(Int_t i) const { return i>=0 && i < fN ? fChamber[i] : 0x0; } + AliTRDtrackingChamber* GetChamber(Int_t stack, Int_t plane, Bool_t build = kFALSE); + AliTRDtrackingChamber** GetStack(Int_t stack); + Int_t GetSector() const {return fSector;} - void Init(const AliTRDReconstructor *rec, const AliTRDCalDet *cal); - void Print(Option_t *opt = 0x0); - - void SetGeometry(AliTRDgeometry *geo) {fGeom = geo;} - + void Init(const AliTRDReconstructor *rec, const AliTRDCalDet *cal); + void Print(Option_t *opt = 0x0); + + void SetGeometry(AliTRDgeometry *geo) {fGeom = geo;} + private: - Char_t fSector; // Sector# in AliTRDgeometry - UChar_t fN; // Total number of chambers allocated - Char_t fIndex[kNChambersSector]; // indexes of allocated chambers - Float_t fX0[kNplane]; // average position of pad plane for each plane - AliTRDgeometry *fGeom; // Geometry - AliTRDtrackingChamber *fChamber[kNChambersSector];// chambers - AliTRDtrackingChamber *fStack[kNplane]; //! temporary holding one stack + AliTRDtrackingSector(const AliTRDtrackingSector &/*t*/); + AliTRDtrackingSector &operator=(const AliTRDtrackingSector &/*t*/); - ClassDef(AliTRDtrackingSector, 1) // TRD tracker container for one sector + +private: + Char_t fSector; // Sector# in AliTRDgeometry + UChar_t fN; // Total number of chambers allocated + Char_t fIndex[AliTRDgeometry::kNdets]; // indexes of allocated chambers + Float_t fX0[AliTRDgeometry::kNlayer]; // average position of pad plane for each plane + AliTRDgeometry *fGeom; // Geometry + AliTRDtrackingChamber *fChamber[AliTRDgeometry::kNdets];// chambers + AliTRDtrackingChamber *fStack[AliTRDgeometry::kNlayer]; //! temporary holding one stack + + ClassDef(AliTRDtrackingSector, 1) // TRD tracker container for one sector }; -- 2.39.3