LCOV - code coverage report
Current view: top level - TRD/TRDbase - AliTRDReconstructor.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 21 37 56.8 %
Date: 2016-06-14 17:26:59 Functions: 22 41 53.7 %

          Line data    Source code
       1             : #ifndef ALITRDRECONSTRUCTOR_H
       2             : #define ALITRDRECONSTRUCTOR_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : /* $Id$ */
       7             : 
       8             : ///////////////////////////////////////////////////////////////////////////////
       9             : //                                                                           //
      10             : // Class for TRD reconstruction                                              //
      11             : //                                                                           //
      12             : ///////////////////////////////////////////////////////////////////////////////
      13             : 
      14             : #include "AliReconstructor.h"
      15             : #include "AliRecoParam.h"
      16             : #include "AliDetectorRecoParam.h"
      17             : #include "AliTRDpidUtil.h"
      18             : #include "AliTRDrecoParam.h"
      19             : #include "AliTRDdigitsParam.h"
      20             : #include "AliESDTrdTrigger.h"
      21             : 
      22             : class TClonesArray;
      23             : class TTreeSRedirector;
      24             : class AliRawReader;
      25             : class AliTRDclusterizer;
      26             : class AliTRDonlineTrackMatching;
      27             : class AliTRDReconstructor: public AliReconstructor 
      28             : {
      29             : public:
      30             :   enum ETRDReconstructorSteer {
      31             :     kDigitsConversion= BIT(0)
      32             :     ,kWriteClusters  = BIT(1)
      33             :     ,kWriteTracklets = BIT(2)
      34             :     ,kSeeding        = BIT(3)
      35             :     ,kHLT            = BIT(4)
      36             :     ,kProcTracklets  = BIT(5) // process online tracklets
      37             :     ,kDebug          = BIT(6)
      38             :     ,kClRadialCorr   = BIT(7) // toggle radial correction in clusters
      39             :     ,kOwner          = BIT(8)
      40             :     ,kNsteer         = 8      // number of tasks
      41             :   };
      42             :   AliTRDReconstructor();
      43             :   virtual ~AliTRDReconstructor();
      44             :         
      45             :         virtual void        Init();
      46             : 
      47             :   virtual void        ConvertDigits(AliRawReader *rawReader, TTree *digitsTree) const;
      48             :   virtual AliTracker* CreateTracker() const;
      49        1504 :   TTreeSRedirector*   GetDebugStream(AliTRDrecoParam::ETRDReconstructionTask task) const { return task < AliTRDrecoParam::kTRDreconstructionTasks ? fDebugStream[task] : NULL; }
      50             : 
      51           8 :   virtual void        FillESD(AliRawReader *, TTree *clusterTree, AliESDEvent *esd) const { FillESD((TTree * )NULL, clusterTree, esd);                    }
      52             :   virtual void        FillESD(TTree *digitsTree, TTree *clusterTree, AliESDEvent *esd) const;
      53             :   static TClonesArray* GetClusters();
      54             :   static TClonesArray* GetTracklets(const char *trkltype = "");
      55             :   static TClonesArray* GetTracks();
      56           4 :   static Int_t        GetNTimeBins()             { return fgNTimeBins;}
      57           0 :   Int_t               GetNdEdxSlices() const     { return (Int_t)AliTRDpidUtil::GetNdEdxSlices(GetPIDMethod());}
      58           0 :   AliTRDpidUtil::ETRDPIDMethod       GetPIDMethod() const       { return GetRecoParam()->IsPIDNeuralNetwork() ? AliTRDpidUtil::kNN : AliTRDpidUtil::kLQ;}
      59       39216 :   static const AliTRDrecoParam* GetRecoParam()   { return dynamic_cast<const AliTRDrecoParam*>(AliReconstructor::GetRecoParam(2)); }
      60           0 :   static Float_t      GetMinClustersInTrack()    { return fgkMinClustersInTrack;}
      61         208 :   static Float_t      GetLabelFraction()         { return fgkLabelFraction;}
      62           0 :   static Double_t     GetMaxChi2()               { return fgkMaxChi2;}
      63        2126 :   static Double_t     GetMaxSnp()                { return fgkMaxSnp;}
      64        7968 :   static Double_t     GetMaxStep()               { return fgkMaxStep;}
      65       42818 :   static Double_t     GetEpsilon()               { return fgkEpsilon;}
      66             : 
      67          24 :   virtual Bool_t      HasDigitConversion() const { return fSteerParam&kDigitsConversion;  };
      68           0 :   Bool_t              IsCosmic() const           { return GetRecoParam()->GetEventSpecie() & AliRecoParam::kCosmic;}
      69          32 :   Bool_t              IsWritingClusters() const  { return fSteerParam&kWriteClusters;}
      70           0 :   Bool_t              IsWritingTracklets() const { return fSteerParam&kWriteTracklets;}
      71       76994 :   Bool_t              IsHLT() const              { return fSteerParam&kHLT;}
      72          16 :   Bool_t              IsSeeding() const          { return fSteerParam&kSeeding;}
      73           0 :   Bool_t              IsProcessingTracklets() const { return fSteerParam&kProcTracklets;}
      74        2592 :   Bool_t              IsDebugStreaming() const   { return (fSteerParam&kDebug || AliTRDReconstructor::GetStreamLevel()>0);}
      75       38116 :   Bool_t              UseClusterRadialCorrection() const { return fSteerParam&kClRadialCorr;}
      76             : 
      77             :   static void         Options(UInt_t steer=0);
      78             :   virtual void        Reconstruct(AliRawReader *rawReader, TTree *clusterTree) const;
      79             :   virtual void        Reconstruct(TTree *digitsTree, TTree *clusterTree) const;
      80             : 
      81           0 :  static void         SetClusters(TClonesArray *clusters)  { fgClusters = clusters;}
      82           0 :  static void         SetTracklets(TClonesArray *tracklets) { fgTracklets = tracklets;}
      83           0 :  static void         SetTracks(TClonesArray *tracks) { fgTracks = tracks;}
      84             :   void                SetOption(Option_t *opt);
      85        3428 :   static Int_t GetStreamLevel()               { return fgStreamLevel;}
      86           0 :   static void  SetStreamLevel(Int_t level) { fgStreamLevel = level;}
      87             :   //
      88           0 :   static void SetExtraMaxClPerLayer(Int_t n)      {if (n>0) fgExtraMaxClPerLayer = n;}
      89           0 :   static void SetExtraBoundaryTolerance(double v) {fgExtraBoundaryTolerance =v;}
      90           0 :   static void SetExtraRoadY(double v)             {fgExtraRoadY = v;}
      91           0 :   static void SetExtraRoadZ(double v)             {fgExtraRoadZ = v;}
      92           0 :   static void SetExtraChi2Out(double v)           {fgExtraChi2Out = v;}
      93             :   //
      94         540 :   static Int_t    GetExtraMaxClPerLayer()     {return fgExtraMaxClPerLayer;}
      95         228 :   static Double_t GetExtraBoundaryTolerance() {return fgExtraBoundaryTolerance;}
      96         540 :   static Double_t GetExtraRoadY()             {return fgExtraRoadY;}
      97         540 :   static Double_t GetExtraRoadZ()             {return fgExtraRoadZ;}
      98         228 :   static Double_t GetExtraChi2Out()           {return fgExtraChi2Out;}
      99             :   //
     100             : private:
     101             :   AliTRDReconstructor(const AliTRDReconstructor &r); //Not implemented
     102             :   AliTRDReconstructor& operator = (const AliTRDReconstructor&); //Not implemented
     103             :   void                ResetContainers() const;
     104             :   static Int_t               fgStreamLevel; // flag for streaming      - for TRD reconstruction
     105             : 
     106             :   static Char_t const *fgSteerNames[kNsteer];//! steering names
     107             :   static Char_t const *fgSteerFlags[kNsteer];//! steering flags
     108             :   static Char_t const   *fgTaskNames[AliTRDrecoParam::kTRDreconstructionTasks]; //! tasks names
     109             :   static Char_t const   *fgTaskFlags[AliTRDrecoParam::kTRDreconstructionTasks]; //! tasks flags
     110             :   UInt_t            fSteerParam;          // steering bits
     111             :   // configuration vars for tracking
     112             :   static const Double_t    fgkMaxChi2;                  // Max increment in track chi2
     113             :   static const Float_t     fgkMinClustersInTrack;       // Min number of clusters in track
     114             :   static const Float_t     fgkLabelFraction;            // Min fraction of same label
     115             :   static const Double_t    fgkMaxSnp;                   // Maximal snp for tracking
     116             :   static const Double_t    fgkMaxStep;                  // Maximal step for tracking
     117             :   static const Double_t    fgkEpsilon;                  // Precision of radial coordinate
     118             : 
     119             :   TTreeSRedirector *fDebugStream[AliTRDrecoParam::kTRDreconstructionTasks];// Debug Streamer container;
     120             :  
     121             :   static TClonesArray *fgClusters;    //  list of clusters for local reconstructor
     122             :   static TClonesArray *fgTracklets;   //  list of online tracklets for local reconstructor
     123             :   static TClonesArray *fgTracks;      //  list of GTU tracks for local reconstructor
     124             :   static Int_t         fgNTimeBins;   //  number of time bins as given by the clusterizer
     125             :   AliTRDclusterizer   *fClusterizer;  //! instance of TRD clusterizer
     126             :   static AliTRDonlineTrackMatching fgOnlineTrackMatcher; // track matcher between on-line and off-line track
     127             :   static AliESDTrdTrigger fgTriggerFlags; //  L1 trigger flags
     128             :   //
     129             :   static Double_t fgExtraBoundaryTolerance; // additional tolerance for boundary check
     130             :   static Double_t fgExtraRoadY;             // additional road in Y
     131             :   static Double_t fgExtraRoadZ;             // additional road in Z
     132             :   static Double_t fgExtraChi2Out;           // additional chi2 on backpropagation
     133             :   static Int_t    fgExtraMaxClPerLayer;     // additional cl. per layer allowed
     134             :   //
     135         370 :   ClassDef(AliTRDReconstructor, 6)    //  Class for the TRD reconstruction
     136             : 
     137             : };
     138             : 
     139             : #endif
     140             : 

Generated by: LCOV version 1.11