]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDReconstructor.h
running local for SP and LYZEP and new histograms for QC
[u/mrichter/AliRoot.git] / TRD / AliTRDReconstructor.h
index 86538ee31f9c2302f3c5c5cbc2e49fc2d385cb93..96e93a30df00299864a7373748f53167e1277b9e 100644 (file)
 #include "AliTRDrecoParam.h"
 
 class TClonesArray;
+class TTreeSRedirector;
 class AliRawReader;
 class AliTRDReconstructor: public AliReconstructor 
 {
 public:
   enum AliTRDsteerParam {
-    kWriteClusters   = BIT(0)
-    ,kSeeding        = BIT(1)
-    ,kSteerPID       = BIT(2)
-    ,kWriteTracklets = BIT(3)
-    ,kDriftGas       = BIT(4)
-    ,kHLT            = BIT(5)
+    kDigitsConversion= BIT(0)
+    ,kWriteClusters  = BIT(1)
+    ,kSeeding        = BIT(2)
+    ,kSteerPID       = BIT(3)
+    ,kEightSlices    = BIT(4)
+    ,kWriteTracklets = BIT(5)
+    ,kDriftGas       = BIT(6)
+    ,kHLT            = BIT(7)
+    ,kCosmic         = BIT(8)
   };
   enum AliTRDReconstructorTask {
-    kClusterizer = 0
-    ,kTracker    = 1
-    ,kPID        = 2
+    kRawReader    = 0
+    ,kClusterizer = 1
+    ,kTracker     = 2
+    ,kPID         = 3
   };
   enum AliTRDpidMethod {
     kLQPID = 0,
@@ -41,16 +46,24 @@ public:
     kXe = 0,
     kAr = 1
   };
+  enum{
+    kNNslices = 8
+   ,kLQslices = 3
+  };
+  enum{
+    kOwner = BIT(14)
+  };
 
   AliTRDReconstructor();
   AliTRDReconstructor(const AliTRDReconstructor &r);
-  virtual ~AliTRDReconstructor() {;}
+  virtual ~AliTRDReconstructor();
   AliTRDReconstructor& operator = (const AliTRDReconstructor&)          { return *this;}
        
        virtual void        Init();
 
   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;
@@ -61,11 +74,13 @@ public:
   static const AliTRDrecoParam* GetRecoParam() { return dynamic_cast<const AliTRDrecoParam*>(AliReconstructor::GetRecoParam(2)); }
   Int_t               GetStreamLevel(AliTRDReconstructorTask task) const    { return fStreamLevel[task];} 
   inline void         GetTCParams(Double_t *par) const;
-  virtual Bool_t      HasDigitConversion() const                   { return kFALSE;           };
+  virtual Bool_t      HasDigitConversion() const                   { return fSteerParam&kDigitsConversion;  };
   Bool_t              IsWritingClusters() const  { return fSteerParam&kWriteClusters;}
   Bool_t              IsWritingTracklets() const { return fSteerParam&kWriteTracklets;}
   Bool_t              IsHLT() const              { return fSteerParam&kHLT;}
   Bool_t              IsSeeding() const          { return fSteerParam&kSeeding;}
+  Bool_t              IsCosmic() const           { return fSteerParam&kCosmic;}
+  Bool_t              IsEightSlices() const      { return fSteerParam&kEightSlices;}
 
   virtual void        Reconstruct(AliRawReader *rawReader, TTree *clusterTree) const;
   virtual void        Reconstruct(TTree *digitsTree, TTree *clusterTree) const;
@@ -76,13 +91,10 @@ public:
   void                SetStreamLevel(Int_t level, AliTRDReconstructorTask task= kTracker);
 
 private:
-  enum{
-    kNNslices = 8
-   ,kLQslices = 3
-  };
-  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