LCOV - code coverage report
Current view: top level - TRD/TRDbase - AliTRDdEdxBaseUtils.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 7 19 36.8 %
Date: 2016-06-14 17:26:59 Functions: 7 19 36.8 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       3             :  *                                                                        *
       4             :  * Author: The ALICE Off-line Project.                                    *
       5             :  * Contributors are mentioned in the code where appropriate.              *
       6             :  *                                                                        *
       7             :  * Permission to use, copy, modify and distribute this software and its   *
       8             :  * documentation strictly for non-commercial purposes is hereby granted   *
       9             :  * without fee, provided that the above copyright notice appears in all   *
      10             :  * copies and that both the copyright notice and this permission notice   *
      11             :  * appear in the supporting documentation. The authors make no claims     *
      12             :  * about the suitability of this software for any purpose. It is          *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : //
      16             : //
      17             : //
      18             : //  Xianguo Lu 
      19             : //  lu@physi.uni-heidelberg.de
      20             : //  Xianguo.Lu@cern.ch
      21             : //
      22             : /*
      23             : grep " AliTRDdEdxBaseUtils::" AliTRDdEdxBaseUtils.cxx | grep "=" -v  | grep -v "[6]" | grep -v printf  |wc
      24             : grep "(" AliTRDdEdxBaseUtils.h | grep ";" | grep -v grep | grep -v ClassDef | grep -v "{" | grep -v typedef | wc
      25             : */
      26             : 
      27             : 
      28             : #ifndef ALITRDDEDXBASEUTILS_H
      29             : #define ALITRDDEDXBASEUTILS_H
      30             : 
      31             : #ifndef TVECTORD_H
      32             : #include "TVectorD.h"
      33             : #endif
      34             : 
      35             : #ifndef THNSPARSE_H
      36             : #include "THnBase.h"
      37             : #endif
      38             : 
      39             : #ifndef TTREESTREAM_H
      40             : #include "TTreeStream.h"
      41             : #endif 
      42             : 
      43             : class TH1D;
      44             : class TH2D;
      45             : class TObjArray;
      46             : 
      47             : class AliESDEvent;
      48             : class AliESDtrack;
      49             : class AliTRDcluster;
      50             : class AliTRDtrackV1;
      51             : class AliTRDseedV1;
      52             : 
      53             : class AliTRDdEdxBaseUtils
      54             : {
      55             :  public:
      56             :   //===================================================================================
      57             :   //                                   Math and Histogram
      58             :   //===================================================================================
      59             :   static void BinLogX(TAxis *axis);
      60             :   static void GetCDFCuts(const TH1D *hh, Int_t ncut, Double_t cuts[], const Double_t cdfs[], Double_t thres);
      61             :   static Double_t GetMeanRMS(Double_t nn, Double_t sum, Double_t w2s, Double_t * grms=0x0, Double_t * gerr=0x0);
      62             :   static Double_t TruncatedMean(Int_t nx, const Double_t xdata[], Double_t lowfrac, Double_t highfrac, Double_t * grms=0x0, Double_t * gerr=0x0, Double_t *wws=0x0);
      63             :   static Double_t TruncatedMean(const TH1 *hh, Double_t lowfrac, Double_t highfrac, Double_t * grms=0x0, Double_t * gerr=0x0);
      64             :   static void FitSlicesY(const TH2D *hh, TH1D *&hnor, TH1D *&hmpv, TH1D *&hwid, TH1D *&hres, Double_t thres, Double_t lowfrac, Double_t highfrac);
      65             : 
      66             :   //===================================================================================
      67             :   //                                TRD Analysis Fast Tool
      68             :   //===================================================================================
      69             :   static Int_t GetNtracklet(const AliESDEvent *esd);
      70             :   static AliTRDtrackV1 * GetTRDtrackV1(const AliESDtrack * esdtrack);
      71             :   static Bool_t IsInSameStack(const AliTRDtrackV1 *trdtrack);
      72             :   static AliTRDseedV1 * GetFirstTracklet(const AliTRDtrackV1 *trdtrack);
      73             :   static AliTRDseedV1 * GetLastTracklet(const AliTRDtrackV1 *trdtrack);
      74             :   static void GetFirstSectorStackMomentum(const AliTRDtrackV1 *trdtrack, Int_t & isec, Int_t & istk, Double_t & mom);
      75             :   static Double_t GetRedefinedPhi(Double_t phi);
      76             :   static Double_t Getdydx(const AliTRDseedV1 *tracklet);
      77             :   static Double_t Getdzdx(const AliTRDseedV1 *tracklet);
      78             :   static Double_t Getdldx(const AliTRDseedV1 *tracklet);
      79             : 
      80             :   //===================================================================================
      81             :   //                                 Detector, Data and Control Constant
      82             :   //===================================================================================
      83             :   
      84           0 :   static Int_t NTRDchamber(){return 18*5*6;} //540
      85           0 :   static Int_t NTRDtimebin(){return NTRDchamber()*31;} //16740
      86             :   static Int_t ToDetector(Int_t gtb);
      87             :   static Int_t ToTimeBin(Int_t gtb);
      88             :   static Int_t ToSector(Int_t gtb);
      89             :   static Int_t ToStack(Int_t gtb);
      90             :   static Int_t ToLayer(Int_t gtb);
      91             : 
      92             :   static void CheckRunB(TString listrun1kg, Int_t run, TString & type);
      93             :   static TString GetRunType(Int_t run);
      94             : 
      95           0 :   static void SetQ0Frac(Double_t q0){ fgQ0Frac = q0; }
      96           0 :   static void SetQ1Frac(Double_t q1){ fgQ1Frac = q1; }
      97           0 :   static void SetTimeBinCountCut(Double_t tbc){ fgTimeBinCountCut = tbc; }
      98           0 :   static void SetCalibTPCnclsCut(Int_t tpc){ fgCalibTPCnclsCut = tpc; }
      99           0 :   static void SetExBOn(Bool_t kon){ fgExBOn = kon; }
     100           0 :   static void SetPadGainOn(Bool_t kon){ fgPadGainOn = kon; }
     101           0 :   static void SetQScale(Double_t scale){ fgQScale = scale; }
     102             :  
     103         212 :   static Double_t Q0Frac(){return fgQ0Frac;}
     104           4 :   static Double_t Q1Frac(){return fgQ1Frac;}
     105           4 :   static Double_t TimeBinCountCut(){return fgTimeBinCountCut;}
     106           4 :   static Int_t CalibTPCnclsCut(){return fgCalibTPCnclsCut;}
     107         420 :   static Bool_t IsExBOn(){return fgExBOn;}
     108       99868 :   static Bool_t IsPadGainOn(){return fgPadGainOn;}
     109       12776 :   static Double_t QScale(){return fgQScale;}
     110             :   
     111             :   static void PrintControl();
     112             :   
     113             :   //===================================================================================
     114             :   //                                 dEdx Parameterization
     115             :   //===================================================================================
     116             :   static void FastFitdEdxTR(TH1 * hh);
     117             : 
     118             :   static Double_t ALEPH(const Double_t * xx,  const Double_t * par);
     119             :   static Double_t MeandEdx(const Double_t * xx, const Double_t * par);
     120             :   static Double_t MeanTR(const Double_t * xx, const Double_t * par);
     121             :   static Double_t MeandEdxTR(const Double_t * xx, const Double_t * par);
     122             : 
     123             :   static Double_t QMeanTPC(Double_t bg);
     124             :   static Double_t Q0MeanTRDpp(Double_t bg);
     125             :   static Double_t Q1MeanTRDpp(Double_t bg);
     126             :   static Double_t Q0MeanTRDPbPb(Double_t bg);
     127             :   static Double_t Q1MeanTRDPbPb(Double_t bg);
     128             : 
     129             :   typedef Double_t (*FFunc)(const Double_t *xx, const Double_t *par);
     130             :   
     131           0 :   static Double_t MeandEdxLogx(const Double_t * xx, const Double_t * par){return ToLogx(MeandEdx, xx, par);}
     132           0 :   static Double_t MeanTRLogx(const Double_t * xx, const Double_t * par){return ToLogx(MeanTR, xx, par);}
     133           0 :   static Double_t MeandEdxTRLogx(const Double_t * xx, const Double_t * par){return ToLogx(MeandEdxTR, xx, par);}
     134             : 
     135             :  private:
     136             :   //dEdx Parameterization
     137             :   static Double_t ToLogx(FFunc func, const Double_t * xx, const Double_t * par);
     138             : 
     139             :   //Control Constant
     140             :   static Double_t fgQ0Frac; //q0frac
     141             :   static Double_t fgQ1Frac; //q1frac
     142             :   static Double_t fgTimeBinCountCut; //tbcut
     143             :   static Int_t    fgCalibTPCnclsCut; //tpccut
     144             :   static Bool_t   fgExBOn;    //exbon
     145             :   static Bool_t fgPadGainOn; //pad gain
     146             :   static Double_t fgQScale; //Qscale
     147             : 
     148             : };
     149             : 
     150             : #endif  

Generated by: LCOV version 1.11