second interation in improving debug stream in AttachClusters
authorabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 9 Oct 2008 09:27:19 +0000 (09:27 +0000)
committerabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 9 Oct 2008 09:27:19 +0000 (09:27 +0000)
TRD/AliTRDtrackingChamber.cxx
TRD/AliTRDtrackingChamber.h
TRD/AliTRDtrackingSector.cxx
TRD/AliTRDtrackingSector.h

index ca162a7..ca8b14b 100644 (file)
@@ -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);
index 3fe2977..e8d7c6a 100644 (file)
@@ -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
index 74d95f6..d70854e 100644 (file)
 //                                                                           //\r
 ///////////////////////////////////////////////////////////////////////////////\r
 \r
-#include "AliTRDtrackingSector.h"\r
 #include "AliTRDcalibDB.h"\r
 #include "AliTRDCommonParam.h"\r
-#include "AliTRDgeometry.h"\r
 #include "AliTRDpadPlane.h"\r
+#include "AliTRDtrackingSector.h"\r
 #include "AliTRDtrackingChamber.h"\r
 \r
+\r
 ClassImp(AliTRDtrackingSector)\r
 \r
 //_____________________________________________________________________________\r
@@ -42,11 +42,9 @@ AliTRDtrackingSector::AliTRDtrackingSector()
 {\r
   // Default constructor\r
   \r
-  for(int ic=0; ic<kNChambersSector; ic++){\r
-    fChamber[ic] = 0x0;\r
-    fIndex[ic]   = -1;\r
-  }\r
-  for(int il=0; il<AliTRDgeometry::kNlayer; il++) fX0[il] = 0.;\r
+  memset(fChamber, 0, AliTRDgeometry::kNdets*sizeof(AliTRDtrackingChamber*));\r
+  memset(fIndex, 1, AliTRDgeometry::kNdets*sizeof(Char_t));\r
+  memset(fX0, 0, AliTRDgeometry::kNlayer*sizeof(Float_t));\r
 }\r
 \r
 //_____________________________________________________________________________\r
@@ -59,33 +57,11 @@ AliTRDtrackingSector::AliTRDtrackingSector(AliTRDgeometry *geo, Int_t gs)
   // AliTRDtrackingSector Constructor\r
   //\r
 \r
-  for(int ic=0; ic<kNChambersSector; ic++){\r
-    fChamber[ic] = 0x0;\r
-    fIndex[ic]   = -1;\r
-  }\r
-  for(int il=0; il<AliTRDgeometry::kNlayer; il++) fX0[il] = 0.;\r
-}\r
-\r
-//_____________________________________________________________________________\r
-AliTRDtrackingSector::AliTRDtrackingSector(const AliTRDtrackingSector &/*t*/)\r
-  :fSector(-1)\r
-  ,fN(0)\r
-  ,fGeom(0x0)\r
-{\r
-  //\r
-  // Copy constructor\r
-  //\r
-\r
+  memset(fChamber, 0, AliTRDgeometry::kNdets*sizeof(AliTRDtrackingChamber*));\r
+  memset(fIndex, 1, AliTRDgeometry::kNdets*sizeof(Char_t));\r
+  memset(fX0, 0, AliTRDgeometry::kNlayer*sizeof(Float_t));\r
 }\r
 \r
-//_____________________________________________________________________________\r
-AliTRDtrackingSector::~AliTRDtrackingSector()\r
-{\r
-  //\r
-  // Destructor\r
-  //\r
-\r
-}\r
     \r
 //_____________________________________________________________________________\r
 void AliTRDtrackingSector::Init(const AliTRDReconstructor *rec, const AliTRDCalDet *cal)\r
@@ -95,13 +71,13 @@ void AliTRDtrackingSector::Init(const AliTRDReconstructor *rec, const AliTRDCalD
 //\r
   \r
   AliTRDchamberTimeBin *tb = 0x0;\r
-  AliTRDtrackingChamber *tc = 0x0; int ic = 0; \r
-  while((ic<kNChambersSector) && (tc = fChamber[ic++])){\r
-    for(Int_t itb=0; itb<AliTRDtrackingChamber::kNTimeBins; itb++){\r
-      if(!(tb = tc->GetTB(itb))) continue;\r
+  AliTRDtrackingChamber **tc = &fChamber[0];\r
+  for(Int_t ic = 0; (ic<AliTRDgeometry::kNdets) && (*tc); ic++, tc++){\r
+    for(Int_t itb=0; itb<AliTRDseed::knTimebins; itb++){\r
+      if(!(tb = (*tc)->GetTB(itb))) continue;\r
       tb->SetReconstructor(rec);\r
     }\r
-    tc->Build(fGeom, cal, rec->IsHLT());\r
+    (*tc)->Build(fGeom, cal, rec->IsHLT());\r
   }\r
     \r
   Int_t nl;\r
@@ -110,8 +86,8 @@ void AliTRDtrackingSector::Init(const AliTRDReconstructor *rec, const AliTRDCalD
     for(int is=0; is<AliTRDgeometry::kNstack; is++){\r
       Int_t idx = is*AliTRDgeometry::kNlayer + il;\r
       if(fIndex[idx]<0) continue;\r
-      tc = GetChamber(fIndex[idx]);\r
-      fX0[il] += tc->GetX(); nl++; \r
+      fX0[il] += GetChamber(fIndex[idx])->GetX(); \r
+      nl++; \r
     }\r
     if(!nl){\r
       //printf("Could not estimate radial position  of plane %d in sector %d.\n", ip, fSector);\r
@@ -128,11 +104,12 @@ void AliTRDtrackingSector::Clear(const Option_t *opt)
 {\r
 // Reset counters and steer chamber clear\r
 \r
-  for(Int_t ich=0; ich<fN; ich++){ \r
-    fChamber[ich]->Clear(opt);\r
-    delete fChamber[ich]; fChamber[ich] = 0x0;   // I would avoid\r
+  AliTRDtrackingChamber **tc = &fChamber[0];\r
+  for(Int_t ich=0; ich<fN; ich++, tc++){ \r
+    (*tc)->Clear(opt);\r
+    delete (*tc); (*tc) = 0x0;   // I would avoid\r
   }    \r
-  for(Int_t ich=0; ich<kNChambersSector; ich++) fIndex[ich] = -1;\r
+  memset(fIndex, 1, AliTRDgeometry::kNdets*sizeof(Char_t));\r
   fN = 0;\r
 }\r
 \r
@@ -151,10 +128,12 @@ AliTRDtrackingChamber* AliTRDtrackingSector::GetChamber(Int_t stack, Int_t layer
   fIndex[ch] = rch >=0 ? fIndex[rch]+1 : 0; \r
   fN++;\r
   \r
-  memmove(&fChamber[Int_t(fIndex[ch])+1], &fChamber[Int_t(fIndex[ch])], (kNChambersSector-fIndex[ch]-1)*sizeof(void*));\r
-  for(Int_t ic = ch+1; ic<kNChambersSector; ic++) fIndex[ic] += fIndex[ic] >= 0 ? 1 : 0;\r
+  memmove(&fChamber[Int_t(fIndex[ch])+1], &fChamber[Int_t(fIndex[ch])], (AliTRDgeometry::kNdets-fIndex[ch]-1)*sizeof(void*));\r
+  for(Int_t ic = ch+1; ic<AliTRDgeometry::kNdets; ic++) fIndex[ic] += fIndex[ic] >= 0 ? 1 : 0;\r
   \r
-  return fChamber[Int_t(fIndex[ch])] = new AliTRDtrackingChamber(AliTRDgeometry::GetDetector(layer, stack, fSector));\r
+  AliTRDtrackingChamber *chmb = fChamber[Int_t(fIndex[ch])] = new AliTRDtrackingChamber();\r
+  chmb->SetDetector(AliTRDgeometry::GetDetector(layer, stack, fSector));\r
+  return chmb;\r
 }\r
 \r
 //_____________________________________________________________________________\r
@@ -185,8 +164,8 @@ void AliTRDtrackingSector::Print(Option_t *)
 // \r
 \r
   printf("\tSector %2d\n", fSector);\r
-  for(int il=0; il<6; il++){\r
-    for(int is =0; is<5; is++){\r
+  for(int il=0; il<AliTRDgeometry::kNlayer; il++){\r
+    for(int is =0; is<AliTRDgeometry::kNstack; is++){\r
       Int_t ch = is*AliTRDgeometry::kNlayer + il;\r
       printf("%2d[%2d] ", fIndex[ch], fIndex[ch]>=0 ? fChamber[Int_t(fIndex[ch])]->GetNClusters() : 0);\r
     }\r
index cb3ac4a..4d52339 100644 (file)
@@ -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 $ */
 
 //                                                                        //
 ////////////////////////////////////////////////////////////////////////////
 
-#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
 };