LCOV - code coverage report
Current view: top level - TRD/TRDbase - AliTRDcalibDB.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 9 22.2 %
Date: 2016-06-14 17:26:59 Functions: 3 13 23.1 %

          Line data    Source code
       1             : #ifndef ALITRDCALIBDB_H
       2             : #define ALITRDCALIBDB_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : ///////////////////////////////////////////////////////////////////////////////
       7             : //                                                                           //
       8             : // Class providing the calibration parameters by accessing the CDB           //
       9             : //                                                                           //
      10             : ///////////////////////////////////////////////////////////////////////////////
      11             : 
      12             : /* $Id$ */
      13             : 
      14             : #ifndef ROOT_TObject
      15             : #include "TObject.h"
      16             : #endif
      17             : 
      18             : #ifndef ALITRDPIDUTIL_H
      19             : #include "AliTRDpidUtil.h"
      20             : #endif
      21             : 
      22             : #ifndef ALITRDPIDRESPONSE_H
      23             : #include "AliTRDPIDResponse.h"
      24             : #endif
      25             : 
      26             : #include "AliTRDCalTrapConfig.h"
      27             : #include "AliTRDtrapConfig.h"
      28             : 
      29             : class TString;
      30             : 
      31             : class AliCDBEntry;
      32             : 
      33             : class AliTRDrecoParam;
      34             : class AliTRDCalTrkAttach;
      35             : class AliTRDCalPID;
      36             : class AliTRDCalMonitoring;
      37             : class AliTRDCalROC;
      38             : class AliTRDCalDet;
      39             : class AliTRDCalSingleChamberStatus;
      40             : class AliTRDCalOnlineGainTableROC;
      41             : 
      42             : class AliTRDcalibDB : public TObject {
      43             : 
      44             :  public:
      45             : 
      46             :   enum { kNlayer  =   6
      47             :        , kNstack  =   5
      48             :        , kNsector =  18
      49             :        , kNdet    = 540 };
      50             :   
      51             :   enum { kFltrSet = 1
      52             :        , kReadout
      53             :        , kTimebin
      54             :        , kTrkMode
      55             :        , kTrigSet
      56             :        , kAddOpti };
      57             : 
      58             :   static AliTRDcalibDB               *Instance();
      59             :   static void                         Terminate();
      60             :   void                                SetRun(Long64_t run);
      61         760 :   Long64_t                            GetRun() const { return fRun; }
      62             : 
      63             :   Float_t                             GetNoise(Int_t det, Int_t col, Int_t row);
      64             :         AliTRDCalROC                 *GetNoiseROC(Int_t det);
      65             :   const AliTRDCalDet                 *GetNoiseDet();
      66             : 
      67             :   Float_t                             GetVdrift(Int_t det, Int_t col, Int_t row);
      68             :   Float_t                             GetVdriftAverage(Int_t det);
      69             :         AliTRDCalROC                 *GetVdriftROC(Int_t det);
      70             :   const AliTRDCalDet                 *GetVdriftDet();
      71             :   TObjArray                          *GetPHQ();
      72             :   const AliTRDCalDet                 *GetExBDet();
      73             : 
      74             :   Float_t                             GetT0(Int_t det, Int_t col, Int_t row);
      75             :   Float_t                             GetT0Average(Int_t det);
      76             :         AliTRDCalROC                 *GetT0ROC(Int_t det);
      77             :   const AliTRDCalDet                 *GetT0Det();
      78             : 
      79             :   Float_t                             GetGainFactor(Int_t det, Int_t col, Int_t row);
      80             :   Float_t                             GetGainFactorAverage(Int_t det);
      81             :   AliTRDCalROC                       *GetGainFactorROC(Int_t det);
      82             :   const AliTRDCalDet                 *GetGainFactorDet();
      83             : 
      84             :   Float_t                             GetOnlineGainFactor(Int_t det, Int_t col, Int_t row);
      85             :   AliTRDCalOnlineGainTableROC        *GetOnlineGainTableROC(Int_t det);
      86             : 
      87             :   AliTRDCalROC                       *GetPRFROC(Int_t det);
      88             :   Float_t                             GetPRFWidth(Int_t det, Int_t col, Int_t row);
      89             : 
      90           0 :   Float_t*                            GetSampledPRF() const { return fPRFsmp; };
      91           0 :   Int_t                               GetPRFbin() const     { return fPRFbin; };
      92           0 :   Float_t                             GetPRFlo() const      { return fPRFlo;  };
      93           0 :   Float_t                             GetPRFhi() const      { return fPRFhi;  };
      94             : 
      95             :   static Int_t                        ExtractTimeBinsFromString(TString tbstr);
      96             :   Int_t                               GetNumberOfTimeBinsDCS();
      97             :   void                                GetFilterType(TString &filterType);
      98             :   void                                GetGlobalConfiguration(TString &config);
      99             :   void                                GetGlobalConfigurationByChamber(TString &config,Int_t par, Int_t opt=0);
     100             :   void                                GetGlobalConfigurationVersion(TString &version);
     101             :   static Int_t                        GetNumberOfParsDCS(TString cname, Char_t delimiter='_');
     102             :   static Int_t                        GetNumberOfOptsDCS(TString cname, Int_t cfgType);
     103             :   static void                         GetDCSConfigParOption(TString cname, Int_t cfgType, Int_t option, TString &cfgo);
     104             : 
     105             :   Int_t                               GetOnlineGainTableID();
     106             : 
     107             :   Bool_t                              HasOnlineFilterPedestal();
     108             :   Bool_t                              HasOnlineFilterGain();
     109             :   Bool_t                              HasOnlineTailCancellation();
     110             : 
     111             :   Char_t                              GetPadStatus(Int_t det, Int_t col, Int_t row);
     112             :   AliTRDCalSingleChamberStatus       *GetPadStatusROC(Int_t det);
     113             :   AliTRDrecoParam*                    GetRecoParam(Int_t *eventtype);
     114             :   AliTRDPIDResponse                  *GetPIDResponse(AliTRDPIDResponse::ETRDPIDMethod m);
     115             : 
     116             :   Char_t                              GetChamberStatus(Int_t det);
     117             : 
     118             :   Bool_t                              IsPadMasked(Int_t det, Int_t col, Int_t row);
     119             :   Bool_t                              IsPadBridgedLeft(Int_t det, Int_t col, Int_t row);
     120             :   Bool_t                              IsPadBridgedRight(Int_t det, Int_t col, Int_t row);
     121             :   Bool_t                              IsPadNotConnected(Int_t det, Int_t col, Int_t row);
     122             :   
     123             :   Bool_t                              IsChamberGood(Int_t det);
     124             :   Bool_t                              IsChamberNoData(Int_t det);
     125             :   Bool_t                              IsHalfChamberNoData(Int_t det, Int_t side);
     126             :   Bool_t                              IsChamberBadCalibrated(Int_t det);
     127             :   Bool_t                              IsChamberNotCalibrated(Int_t det);
     128             : 
     129             :   const AliTRDCalMonitoring          *GetMonitoringObject();
     130             :   const AliTRDCalPID                 *GetPIDObject(AliTRDpidUtil::ETRDPIDMethod m);
     131             :   const AliTRDCalTrkAttach           *GetAttachObject();
     132             : 
     133             :   // Related functions, these depend on calibration data
     134             :   Int_t                               PadResponse(Double_t signal, Double_t dist
     135             :                                                 , Int_t layer, Double_t *pad) const;
     136             : 
     137             :   AliTRDtrapConfig*                   GetTrapConfig();
     138           0 :   void                                GetTrapConfig(TString &name, TString &version) { name = fTrapConfigName; version = fTrapConfigVersion; }
     139           0 :   void                                SetTrapConfig(const TString name, const TString version) { fTrapConfigName = name; fTrapConfigVersion = version; }
     140           0 :   void                                SetTrapConfig(AliTRDtrapConfig *trapcfg) { fTrapConfig = trapcfg; }
     141             :   void                                Invalidate();
     142             : 
     143             :  protected:
     144             : 
     145             :   AliTRDtrapConfig*                   LoadTrapConfig(const TString &name = "", const TString &version = "");
     146             :   Int_t                               GetNumberOfTimeBinsDCSBoard(); // Old method as fallback for patched OCDB 
     147             :   virtual                            ~AliTRDcalibDB();
     148             :   // For caching see also implentation of GetCachedCDBObject in the .cxx file
     149             :   enum { kIDVdriftPad = 0
     150             :        , kIDVdriftChamber
     151             :        , kIDExBChamber
     152             :        , kIDT0Pad
     153             :        , kIDT0Chamber
     154             :        , kIDGainFactorPad
     155             :        , kIDGainFactorChamber
     156             :        , kIDOnlineGainFactor
     157             :        , kIDNoiseChamber
     158             :        , kIDNoisePad
     159             :        , kIDPRFWidth
     160             :        , kIDFEE
     161             :        , kIDTrapConfig
     162             :        , kIDChamberPos
     163             :        , kIDStackPos
     164             :        , kIDSuperModulePos
     165             :        , kIDPIDNN
     166             :        , kIDPIDLQ
     167             :        , kIDPIDLQ1D
     168             :        , kIDRecoParam
     169             :        , kIDMonitoringData
     170             :        , kIDChamberStatus
     171             :        , kIDPadStatus
     172             :        , kIDDCS
     173             :        , kIDAttach
     174             :        , kIDPHQ
     175             :        , kCDBCacheSize };         // IDs of cached objects
     176             : 
     177             :   const TObject *GetCachedCDBObject(Int_t id);
     178             :   
     179             :   void           SamplePRF();
     180             :   
     181             :   AliCDBEntry   *GetCDBEntry(const Char_t *cdbPath);
     182             :   const TObject *CacheCDBEntry(Int_t id, const Char_t *cdbPath);
     183             : 
     184             :   static AliTRDcalibDB *fgInstance;                 //  Instance of this class (singleton implementation)
     185             :   static Bool_t         fgTerminated;               //  Defines if this class has already been terminated
     186             : 
     187             :   AliCDBEntry          *fCDBEntries[kCDBCacheSize]; //  Cache for CDB entries
     188             :   TObject              *fCDBCache[kCDBCacheSize];   //  Cache for calibration objects.
     189             : 
     190             :   Long64_t              fRun;                       //  Run Number
     191             : 
     192             :   Float_t              *fPRFsmp;                    //! Sampled pad response
     193             :   Int_t                 fPRFbin;                    //  Number of bins for the PRF
     194             :   Float_t               fPRFlo;                     //  Lower boundary of the PRF
     195             :   Float_t               fPRFhi;                     //  Higher boundary of the PRF
     196             :   Float_t               fPRFwid;                    //  Bin width of the sampled PRF
     197             :   Int_t                 fPRFpad;                    //  Distance to next pad in PRF
     198             : 
     199             :   AliTRDPIDResponse    *fPIDResponse;               //  TRD PID Response function
     200             : 
     201             :   Int_t                 fOnlineGainTableID;         //  ID for online gain table 
     202             : 
     203             :   AliTRDtrapConfig*     fTrapConfig;                //  TRAP configuration
     204             :   TString               fTrapConfigName;            //  name of the TRAPconfig
     205             :   TString               fTrapConfigVersion;         //  version of the TRAPconfig
     206             :   
     207             :  private:
     208             : 
     209             :   AliTRDcalibDB();                                  //  This is a singleton, constructor is private!  
     210             :   AliTRDcalibDB(const AliTRDcalibDB &c);   
     211             :   AliTRDcalibDB &operator=(const AliTRDcalibDB &c); 
     212             : 
     213          62 :   ClassDef(AliTRDcalibDB, 8)                        //  Provides central access to the CDB
     214             : 
     215             : };
     216             : 
     217             : #endif
     218             : 

Generated by: LCOV version 1.11