]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
new debugging structure in the reconstruction (Markus)
authorabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 13 Dec 2008 17:03:06 +0000 (17:03 +0000)
committerabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 13 Dec 2008 17:03:06 +0000 (17:03 +0000)
- move debugging management to AliTRDReconstructor
- introduce debug streaming in the clusterizer

TRD/AliTRDReconstructor.cxx
TRD/AliTRDReconstructor.h
TRD/AliTRDchamberTimeBin.cxx
TRD/AliTRDclusterizer.cxx
TRD/AliTRDseedV1.cxx
TRD/AliTRDtrackerV1.cxx
TRD/AliTRDtrackerV1.h
TRD/AliTRDtrackingChamber.cxx

index 23824cd837972a7c35adfd8b84e0d54726aae1f6..cc735de661aa2d8ff4c6afcfab2b6744d7f95337 100644 (file)
@@ -42,6 +42,8 @@
 #include "AliTRDtrackerV1.h"
 #include "AliTRDrecoParam.h"
 
+#include "TTreeStream.h"
+
 #define SETFLG(n,f) ((n) |= f)
 #define CLRFLG(n,f) ((n) &= ~f)
 
@@ -62,6 +64,7 @@ AliTRDReconstructor::AliTRDReconstructor()
   SETFLG(fSteerParam, kSteerPID);
 
   memset(fStreamLevel, 0, 5*sizeof(UChar_t));
+  memset(fDebugStream, 0, sizeof(TTreeSRedirector *) * 4);
   // Xe tail cancellation parameters
   fTCParams[0] = 1.156; // r1
   fTCParams[1] = 0.130; // r2
@@ -72,6 +75,7 @@ AliTRDReconstructor::AliTRDReconstructor()
   fTCParams[5] = 0.62;  // r2
   fTCParams[6] = 0.0087;// c1
   fTCParams[7] = 0.07;  // c2
+  SetBit(kOwner, kTRUE);
 }
 
 //_____________________________________________________________________________
@@ -81,6 +85,8 @@ AliTRDReconstructor::AliTRDReconstructor(const AliTRDReconstructor &r)
 {
   memcpy(fStreamLevel, r.fStreamLevel, 5*sizeof(UChar_t));
   memcpy(fTCParams, r.fTCParams, 8*sizeof(Double_t));
+  memcpy(fDebugStream, r.fDebugStream, sizeof(TTreeSRedirector *) *4);
+  SetBit(kOwner, kFALSE);
 }
 
 //_____________________________________________________________________________
@@ -89,6 +95,10 @@ AliTRDReconstructor::~AliTRDReconstructor()
   if(fgClusters) {
     fgClusters->Delete(); delete fgClusters;
   }
+  if(TestBit(kOwner)){
+    for(Int_t itask = 0; itask < 4; itask++)
+      if(fDebugStream[itask]) delete fDebugStream[itask];
+  }
 }
 
 
@@ -276,7 +286,8 @@ void AliTRDReconstructor::SetOption(Option_t *opt)
       // Set the stream Level
       Int_t level = levelstring.Atoi();
       AliTRDReconstructorTask task = kTracker;
-      if(taskstr.CompareTo("cl") == 0) task = kClusterizer;    
+      if(taskstr.CompareTo("raw") == 0) task = kRawReader;     
+      else if(taskstr.CompareTo("cl") == 0) task = kClusterizer;       
       else if(taskstr.CompareTo("tr") == 0) task = kTracker;
       else if(taskstr.CompareTo("pi") == 0) task = kPID;
       SetStreamLevel(level, task);
@@ -290,18 +301,14 @@ void AliTRDReconstructor::SetStreamLevel(Int_t level, AliTRDReconstructorTask ta
   //
   // Set the Stream Level for one of the tasks Clusterizer, Tracker or PID
   //
-  TString taskname;
-  switch(task){
-  case kClusterizer: 
-    taskname = "Clusterizer";
-    break;
-  case kTracker: 
-    taskname = "Tracker";
-    break;
-  case kPID: 
-    taskname = "PID";
-    break;
-  }
+  TString taskname[4] = {"RawReader", "Clusterizer", "Tracker", "PID"};
+  const Int_t minLevel[4] = {1, 1, 2, 1}; // the minimum debug level upon which a debug stream is created for different tasks
   //AliInfo(Form("Setting Stream Level for Task %s to %d", taskname.Data(),level));
   fStreamLevel[(Int_t)task] = level;
+  // Initialize DebugStreamer if not yet done
+  if(level >= minLevel[task] && !fDebugStream[task]){
+    TDirectory *savedir = gDirectory;
+    fDebugStream[task] = new TTreeSRedirector(Form("TRD.%sDebug.root", taskname[task].Data()));
+    savedir->cd();
+  }
 }
index 909a1faeae0b53188472fb2f7b8bacbb98877626..96e93a30df00299864a7373748f53167e1277b9e 100644 (file)
@@ -16,6 +16,7 @@
 #include "AliTRDrecoParam.h"
 
 class TClonesArray;
+class TTreeSRedirector;
 class AliRawReader;
 class AliTRDReconstructor: public AliReconstructor 
 {
@@ -32,9 +33,10 @@ public:
     ,kCosmic         = BIT(8)
   };
   enum AliTRDReconstructorTask {
-    kClusterizer = 0
-    ,kTracker    = 1
-    ,kPID        = 2
+    kRawReader    = 0
+    ,kClusterizer = 1
+    ,kTracker     = 2
+    ,kPID         = 3
   };
   enum AliTRDpidMethod {
     kLQPID = 0,
@@ -48,6 +50,9 @@ public:
     kNNslices = 8
    ,kLQslices = 3
   };
+  enum{
+    kOwner = BIT(14)
+  };
 
   AliTRDReconstructor();
   AliTRDReconstructor(const AliTRDReconstructor &r);
@@ -58,6 +63,7 @@ public:
 
   virtual void        ConvertDigits(AliRawReader *rawReader, TTree *digitsTree) const;
   virtual AliTracker* CreateTracker() const;
+  TTreeSRedirector*   GetDebugStream(AliTRDReconstructorTask task) const { return task < 4 ? fDebugStream[task] : 0x0; }
 
   virtual void        FillESD(AliRawReader *, TTree *clusterTree, AliESDEvent *esd) const { FillESD((TTree * )NULL, clusterTree, esd);                    }
   virtual void        FillESD(TTree *digitsTree, TTree *clusterTree, AliESDEvent *esd) const;
@@ -85,9 +91,10 @@ public:
   void                SetStreamLevel(Int_t level, AliTRDReconstructorTask task= kTracker);
 
 private:
-  UChar_t       fStreamLevel[5];      // stream level for each reconstruction task         
-  UInt_t        fSteerParam;          // steering flags
-  Double_t      fTCParams[8];         // Tail Cancellation parameters for drift gases 
+  UChar_t           fStreamLevel[5];      // stream level for each reconstruction task         
+  UInt_t            fSteerParam;          // steering flags
+  Double_t          fTCParams[8];         // Tail Cancellation parameters for drift gases 
+  TTreeSRedirector *fDebugStream[4];      // Debug Streamer container;
  
   static TClonesArray *fgClusters;    // list of clusters for local reconstructor
 
index c59b66998f2ea388ff61afde89aae260eceb9588..ccc024285bc2c4d29df635917ea5a91620abb348 100644 (file)
@@ -43,8 +43,6 @@
 #include "AliTRDchamberTimeBin.h"
 #include "AliTRDrecoParam.h"
 #include "AliTRDReconstructor.h"
-#include "AliTRDtrackerV1.h"
-
 
 ClassImp(AliTRDchamberTimeBin)
 
@@ -320,7 +318,7 @@ void AliTRDchamberTimeBin::BuildIndices(Int_t iter)
     
     // Debug Streaming
     if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) >= 3){
-      TTreeSRedirector &cstream = *AliTRDtrackerV1::DebugStreamer();
+      TTreeSRedirector &cstream = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
       cstream << "BuildIndices"
       << "Plane="    << fPlane
       << "Stack="    << fStack
index dc7b75bd685c14a456fb51b5bcd74053130f05e0..72408f895c97c099205f4b7bb94f367c540f0c25 100644 (file)
@@ -51,6 +51,8 @@
 #include "AliTRDrawStreamBase.h"
 #include "AliTRDfeeParam.h"
 
+#include "TTreeStream.h"
+
 #include "Cal/AliTRDCalROC.h"
 #include "Cal/AliTRDCalDet.h"
 #include "Cal/AliTRDCalSingleChamberStatus.h"
@@ -90,7 +92,7 @@ AliTRDclusterizer::AliTRDclusterizer(AliTRDReconstructor *rec)
   if(fReconstructor){
     if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kClusterizer) > 1){
       TDirectory *savedir = gDirectory; 
-      //fgDebugStreamer    = new TTreeSRedirector("TRD.ClusterizerDebug.root");
+      //fgGetDebugStream    = new TTreeSRedirector("TRD.ClusterizerDebug.root");
       savedir->cd();
     }
   }
@@ -124,15 +126,6 @@ AliTRDclusterizer::AliTRDclusterizer(const Text_t *name, const Text_t *title, Al
     AliFatal("Could not get calibration object");
   }
 
-  // Initialize debug stream
-  if (fReconstructor){
-    if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kClusterizer) > 1){
-      TDirectory *savedir = gDirectory; 
-      //fgDebugStreamer    = new TTreeSRedirector("TRD.ClusterizerDebug.root");
-      savedir->cd();
-    }
-  }
-
   fDigitsManager->CreateArrays();
 
   fRawVersion = AliTRDfeeParam::Instance()->GetRAWversion();
@@ -765,6 +758,8 @@ Bool_t AliTRDclusterizer::MakeClusters(Int_t det)
     return kFALSE;
   }
 
+  TTreeSRedirector *fDebugStream = fReconstructor->GetDebugStream(AliTRDReconstructor::kClusterizer);
+
   // Threshold value for the maximum
   Float_t maxThresh            = fReconstructor->GetRecoParam()->GetClusMaxThresh();
   // Threshold value for the digit signal
@@ -848,6 +843,7 @@ Bool_t AliTRDclusterizer::MakeClusters(Int_t det)
     
   UChar_t status[3]={0, 0, 0}, ipos = 0;
   fIndexesOut->ResetCounters();
+  Int_t nMaximas = 0, nCorrupted = 0;
   while (fIndexesOut->NextRCTbinIndex(row, col, time)) {
     // reset pad status
     ipos = 0; for(Int_t is=3; is--;) status[is] = 0;
@@ -1103,6 +1099,15 @@ Bool_t AliTRDclusterizer::MakeClusters(Int_t det)
 
   }
 
+  if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kClusterizer) > 2){
+    (*fDebugStream) << "MakeClusters"
+                   << "Detector="   << det
+                   << "NMaxima="    << nMaximas
+                   << "NClusters="  << nClusterROC
+                   << "NCorrupted=" << nCorrupted
+                   << "\n";
+  }
+
   delete digitsOut;
 
   if (fAddLabels) {
@@ -1285,6 +1290,7 @@ void AliTRDclusterizer::TailCancelation(AliTRDarrayADC *digitsIn
   Double_t *inADC  = new Double_t[nTimeTotal];  // ADC data before tail cancellation
   Double_t *outADC = new Double_t[nTimeTotal];  // ADC data after tail cancellation
   indexesIn->ResetCounters();
+  TTreeSRedirector *fDebugStream = fReconstructor->GetDebugStream(AliTRDReconstructor::kClusterizer);
   while (indexesIn->NextRCIndex(iRow, iCol))
     {
       Float_t  calGainFactorROCValue = calGainFactorROC->GetValue(iCol,iRow);
@@ -1299,6 +1305,17 @@ void AliTRDclusterizer::TailCancelation(AliTRDarrayADC *digitsIn
           if (digitsIn->GetPadStatus(iRow, iCol, iTime)) corrupted = kTRUE;
           inADC[iTime]  /= gain;
           outADC[iTime]  = inADC[iTime];
+         if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kClusterizer) > 7){
+           (*fDebugStream) << "TailCancellation"
+                             << "col="  << iCol
+                             << "row="  << iRow
+                             << "time=" << iTime
+                             << "inADC=" << inADC[iTime]
+                             << "gain=" << gain
+                             << "outADC=" << outADC[iTime]
+                             << "corrupted=" << corrupted
+                             << "\n";
+         }
         }
       if (!corrupted)
         {
index 65f51052269bd66fc5aaa0f9b6704d81d16a5f13..1d750f44812b7e90de3aedbdccae28632c8a931b 100644 (file)
@@ -384,7 +384,8 @@ Bool_t      AliTRDseedV1::AttachClustersIter(AliTRDtrackingChamber *chamber, Float_t
   if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker)>=7){
     AliTRDtrackingChamber ch(*chamber);
     ch.SetOwner(); 
-    (*AliTRDtrackerV1::DebugStreamer()) << "AttachClustersIter"
+    TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
+    cstreamer << "AttachClustersIter"
       << "chamber.="   << &ch
       << "tracklet.="  << this
       << "\n"; 
index fd99f4cdb14564025e0c3d7ef5221a48b37343dd..10a4b2b59eeb507fecf4360c997f7bd86eda73c2 100644 (file)
@@ -1,4 +1,3 @@
-
 /**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
@@ -74,7 +73,6 @@ Double_t AliTRDtrackerV1::fgTopologicQA[kNConfigs] = {
   0.0474, 0.0408, 0.0335, 0.0335, 0.0335
 };
 Int_t AliTRDtrackerV1::fgNTimeBins = 0;
-TTreeSRedirector *AliTRDtrackerV1::fgDebugStreamer = 0x0;
 AliRieman* AliTRDtrackerV1::fgRieman = 0x0;
 TLinearFitter* AliTRDtrackerV1::fgTiltedRieman = 0x0;
 TLinearFitter* AliTRDtrackerV1::fgTiltedRiemanConstrained = 0x0;
@@ -114,7 +112,6 @@ AliTRDtrackerV1::~AliTRDtrackerV1()
   // Destructor
   //
   
-  if(fgDebugStreamer) delete fgDebugStreamer;
   if(fgRieman) delete fgRieman;
   if(fgTiltedRieman) delete fgTiltedRieman;
   if(fgTiltedRiemanConstrained) delete fgTiltedRiemanConstrained;
@@ -570,7 +567,7 @@ Int_t AliTRDtrackerV1::FollowProlongation(AliTRDtrackV1 &t)
     }
 
     Int_t eventNumber = AliTRDtrackerDebug::GetEventNumber();
-    TTreeSRedirector &cstreamer = *fgDebugStreamer;
+    TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
     cstreamer << "FollowProlongation"
         << "EventNumber="      << eventNumber
         << "ncl="                                      << nClustersExpected
@@ -741,7 +738,7 @@ Int_t AliTRDtrackerV1::FollowBackProlongation(AliTRDtrackV1 &t)
   } // end layers loop
 
   if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 1){
-    TTreeSRedirector &cstreamer = *fgDebugStreamer;
+    TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
     Int_t eventNumber = AliTRDtrackerDebug::GetEventNumber();
     //AliTRDtrackV1 *debugTrack = new AliTRDtrackV1(t);
     //debugTrack->SetOwner();
@@ -902,7 +899,7 @@ Float_t AliTRDtrackerV1::FitTiltedRiemanConstraint(AliTRDseedV1 *tracklets, Doub
     Float_t chi2Z = CalculateChi2Z(tracklets, zref, slope, xref);
     Int_t eventNumber = AliTRDtrackerDebug::GetEventNumber();
     Int_t candidateNumber = AliTRDtrackerDebug::GetCandidateNumber();
-    TTreeSRedirector &treeStreamer = *fgDebugStreamer;
+    TTreeSRedirector &treeStreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
     treeStreamer << "FitTiltedRiemanConstraint"
     << "EventNumber="          << eventNumber
     << "CandidateNumber="      << candidateNumber
@@ -1067,7 +1064,7 @@ Float_t AliTRDtrackerV1::FitTiltedRieman(AliTRDseedV1 *tracklets, Bool_t sigErro
   }
   
 /*  if(fReconstructor->GetStreamLevel() >=5){
-    TTreeSRedirector &cstreamer = *fgDebugStreamer;
+    TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
     Int_t eventNumber                  = AliTRDtrackerDebug::GetEventNumber();
     Int_t candidateNumber      = AliTRDtrackerDebug::GetCandidateNumber();
     Double_t chi2z = CalculateChi2Z(tracklets, offset, slope, xref);
@@ -2068,7 +2065,7 @@ Int_t AliTRDtrackerV1::Clusters2TracksStack(AliTRDtrackingChamber **stack, TClon
     Int_t eventNumber = AliTRDtrackerDebug::GetEventNumber();
     Int_t trackNumber = AliTRDtrackerDebug::GetTrackNumber();
     Int_t candidateNumber = AliTRDtrackerDebug::GetCandidateNumber();
-    TTreeSRedirector &cstreamer = *fgDebugStreamer;
+    TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
     cstreamer << "Clusters2TracksStack"
         << "EventNumber="              << eventNumber
         << "TrackNumber="              << trackNumber
@@ -2364,7 +2361,7 @@ Int_t AliTRDtrackerV1::MakeSeeds(AliTRDtrackingChamber **stack, AliTRDseedV1 *ss
           Int_t eventNumber = AliTRDtrackerDebug::GetEventNumber();
           Int_t candidateNumber = AliTRDtrackerDebug::GetCandidateNumber();
           AliRieman *rim = GetRiemanFitter();
-          TTreeSRedirector &cs0 = *fgDebugStreamer;
+          TTreeSRedirector &cs0 = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
           cs0 << "MakeSeeds0"
               <<"EventNumber="         << eventNumber
               <<"CandidateNumber="     << candidateNumber
@@ -2473,7 +2470,7 @@ Int_t AliTRDtrackerV1::MakeSeeds(AliTRDtrackingChamber **stack, AliTRDseedV1 *ss
         // AliInfo("Extrapolation done.");
         // Debug Stream containing all the 6 tracklets
         if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) >= 2){
-          TTreeSRedirector &cstreamer = *fgDebugStreamer;
+          TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
           TLinearFitter *tiltedRieman = GetTiltedRiemanFitter();
           Int_t eventNumber            = AliTRDtrackerDebug::GetEventNumber();
           Int_t candidateNumber        = AliTRDtrackerDebug::GetCandidateNumber();
@@ -2540,7 +2537,7 @@ Int_t AliTRDtrackerV1::MakeSeeds(AliTRDtrackingChamber **stack, AliTRDseedV1 *ss
         }
             
         if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) >= 2){
-          TTreeSRedirector &cstreamer = *fgDebugStreamer;
+          TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
           Int_t eventNumber = AliTRDtrackerDebug::GetEventNumber();
           Int_t candidateNumber = AliTRDtrackerDebug::GetCandidateNumber();
           TLinearFitter *fitterTC = GetTiltedRiemanFitterConstraint();
@@ -2636,7 +2633,7 @@ AliTRDtrackV1* AliTRDtrackerV1::MakeTrack(AliTRDseedV1 *seeds, Double_t *params)
     Int_t candidateNumber = AliTRDtrackerDebug::GetCandidateNumber();
     Double_t p[5]; // Track Params for the Debug Stream
     track.GetExternalParameters(params[0], p);
-    TTreeSRedirector &cs = *fgDebugStreamer;
+    TTreeSRedirector &cs = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
     cs << "MakeTrack"
     << "EventNumber="     << eventNumber
     << "CandidateNumber=" << candidateNumber
@@ -2734,7 +2731,7 @@ Int_t AliTRDtrackerV1::ImproveSeedQuality(AliTRDtrackingChamber **stack, AliTRDs
       Int_t eventNumber                = AliTRDtrackerDebug::GetEventNumber();
       Int_t candidateNumber = AliTRDtrackerDebug::GetCandidateNumber();
       TLinearFitter *tiltedRieman = GetTiltedRiemanFitter();
-      TTreeSRedirector &cstreamer = *fgDebugStreamer;
+      TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
       cstreamer << "ImproveSeedQuality"
     << "EventNumber="          << eventNumber
     << "CandidateNumber="      << candidateNumber
@@ -2792,7 +2789,7 @@ Double_t AliTRDtrackerV1::CalculateTrackLikelihood(AliTRDseedV1 *tracklets, Doub
   if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) >= 2){
     Int_t eventNumber = AliTRDtrackerDebug::GetEventNumber();
     Int_t candidateNumber = AliTRDtrackerDebug::GetCandidateNumber();
-    TTreeSRedirector &cstreamer = *fgDebugStreamer;
+    TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
     cstreamer << "CalculateTrackLikelihood0"
         << "EventNumber="                      << eventNumber
         << "CandidateNumber="  << candidateNumber
@@ -2868,7 +2865,7 @@ Double_t AliTRDtrackerV1::CookLikelihood(AliTRDseedV1 *cseed, Int_t planes[4])
     }
     if(nTracklets) mean_ncls /= nTracklets;
     // The Debug Stream contains the seed 
-    TTreeSRedirector &cstreamer = *fgDebugStreamer;
+    TTreeSRedirector &cstreamer = *fReconstructor->GetDebugStream(AliTRDReconstructor::kTracker);
     cstreamer << "CookLikelihood"
         << "EventNumber="                      << eventNumber
         << "CandidateNumber=" << candidateNumber
@@ -3250,17 +3247,6 @@ Int_t AliTRDtrackerV1::Freq(Int_t n, const Int_t *inlist
 
 
 //____________________________________________________________________
-void AliTRDtrackerV1::SetReconstructor(const AliTRDReconstructor *rec)
-{
-  fReconstructor = rec;
-  if(fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 1){
-    if(!fgDebugStreamer){
-      TDirectory *savedir = gDirectory;
-      fgDebugStreamer = new TTreeSRedirector("TRD.TrackerDebug.root");
-      savedir->cd();
-    }
-  }    
-}
 
 //_____________________________________________________________________________
 Float_t AliTRDtrackerV1::GetChi2Y(AliTRDseedV1 *tracklets) const
index 8d4f4c42d5114cc6f130b992844d2478385be141..b560d7cb78e6bcdeab6afc79b3d6652f57e94fc7 100644 (file)
@@ -70,7 +70,6 @@ public:
   AliTRDtrackingSector* GetTrackingSector(Int_t sec) {return &fTrSec[sec];}
   
   Int_t           Clusters2Tracks(AliESDEvent *esd);
-  static TTreeSRedirector* DebugStreamer() {return fgDebugStreamer;}
   AliCluster*     GetCluster(Int_t index) const;
   AliTRDseedV1*   GetTracklet(Int_t index) const;
   AliKalmanTrack* GetTrack(Int_t index) const;
@@ -103,7 +102,7 @@ public:
   Int_t           ReadClusters(TClonesArray* &array, TTree *in) const;
   Int_t           RefitInward(AliESDEvent *event);
   static void     SetNTimeBins(Int_t nTimeBins){fgNTimeBins = nTimeBins; }
-  void            SetReconstructor(const AliTRDReconstructor *rec)
+  void            SetReconstructor(const AliTRDReconstructor *rec){ fReconstructor = rec; }
   void            UnloadClusters();
   
   static Int_t    Freq(Int_t n, const Int_t *inlist, Int_t *outlist, Bool_t down); // to be removed 
@@ -181,8 +180,6 @@ private:
        static TLinearFitter *fgTiltedRieman;                 //  Fitter for the tilted Rieman fit without vertex constriant
        static TLinearFitter *fgTiltedRiemanConstrained;      //  Fitter for the tilted Rieman fit with vertex constraint       
        static AliRieman     *fgRieman;                       //  Fitter for the untilted Rieman fit
-  
-       static TTreeSRedirector *fgDebugStreamer;             //!Debug streamer
        
        ClassDef(AliTRDtrackerV1, 2)                          //  TRD tracker development class
 
index c35063c1f453df61a483bbfc29c9f6e0af83e8c7..2f4f91cc381be928ea888c97d4c0e2b06e6d72d8 100644 (file)
@@ -390,7 +390,7 @@ Bool_t AliTRDtrackingChamber::GetSeedingLayer(AliTRDchamberTimeBin *&fakeLayer,
     //for(Int_t i = 0; i < nRows; i++)
     // for(Int_t j = 0; j < nCols; j++)
     //         hist(i,j) = histogram[i][j];
-    TTreeSRedirector &cstreamer = *AliTRDtrackerV1::DebugStreamer();
+    TTreeSRedirector &cstreamer = *rec->GetDebugStream(AliTRDReconstructor::kTracker);
     cstreamer << "GetSeedingLayer"
     << "layer="      << layer
     << "ymin="       << ymin