LCOV - code coverage report
Current view: top level - TRD/TRDsim - AliTRDsimTR.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 30 10.0 %
Date: 2016-06-14 17:26:59 Functions: 4 23 17.4 %

          Line data    Source code
       1             : #ifndef ALITRDSIMTR_H
       2             : #define ALITRDSIMTR_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             : //  TRD simulation - multimodule (regular rad.)                           //
      11             : //                                                                        //
      12             : ////////////////////////////////////////////////////////////////////////////
      13             : 
      14             : #include <TObject.h>
      15             : #include <TMath.h>
      16             : 
      17             : class TH1D;
      18             : 
      19             : class AliModule;
      20             : 
      21             : class AliTRDsimTR : public TObject {
      22             : 
      23             :  public:
      24             : 
      25             :   AliTRDsimTR();
      26             :   AliTRDsimTR(const AliTRDsimTR &s);
      27             :   AliTRDsimTR(AliModule *mod, Int_t foil, Int_t gap);
      28             :   virtual ~AliTRDsimTR();
      29             :   AliTRDsimTR &operator=(const AliTRDsimTR &s);
      30             : 
      31             :   virtual void     Copy(TObject &s) const;
      32             :   virtual void     Init();
      33             :   virtual Int_t    CreatePhotons(Int_t pdg, Float_t p
      34             :                                , Int_t &nPhoton, Float_t *ePhoton);
      35             :   virtual Int_t    TrPhotons(Float_t p, Float_t mass
      36             :                            , Int_t &nPhoton, Float_t *ePhoton);
      37             :   virtual Double_t Sigma(Double_t energykeV);
      38             :   virtual Double_t Interpolate(Double_t energyMeV
      39             :                              , Double_t *en, const Double_t * const mu, Int_t n);
      40             :   virtual Int_t    Locate(Double_t *xv, Int_t n, Double_t xval
      41             :                         , Int_t &kl, Double_t &dx);
      42          52 :   virtual Double_t Omega(Float_t rho, Float_t z, Float_t a)  { return (28.8 * TMath::Sqrt(rho * z / a)); };
      43             :   virtual Int_t    SelectNFoils(Float_t p) const;
      44             : 
      45           0 :           void     SetFoilThick(Float_t t)                   { fFoilThick = t;
      46           0 :                                                                SetSigma();                                  };
      47           0 :           void     SetGapThick(Float_t t)                    { fGapThick  = t;
      48           0 :                                                                SetSigma();                                  };
      49           0 :           void     SetFoilDens(Float_t d)                    { fFoilDens  = d; 
      50           0 :                                                                fFoilOmega = Omega(fFoilDens,fFoilZ,fFoilA);
      51           0 :                                                                SetSigma();                                  };
      52           0 :           void     SetFoilZ(Float_t z)                       { fFoilZ     = z; 
      53           0 :                                                                fFoilOmega = Omega(fFoilDens,fFoilZ,fFoilA); };
      54           0 :           void     SetFoilA(Float_t a)                       { fFoilA     = a; 
      55           0 :                                                                fFoilOmega = Omega(fFoilDens,fFoilZ,fFoilA); };
      56           0 :           void     SetGapDens(Float_t d)                     { fGapDens   = d;
      57           0 :                                                                fGapOmega  = Omega(fGapDens ,fGapZ ,fGapA );
      58           0 :                                                                SetSigma();                                  };
      59           0 :           void     SetGapZ(Float_t z)                        { fGapZ      = z;
      60           0 :                                                                fGapOmega  = Omega(fGapDens ,fGapZ ,fGapA ); };
      61           0 :           void     SetGapA(Float_t a)                        { fGapA      = a;
      62           0 :                                                                fGapOmega  = Omega(fGapDens ,fGapZ ,fGapA ); };
      63           0 :           void     SetTemp(Float_t t)                        { fTemp      = t; 
      64           0 :                                                                SetSigma();                                  };
      65             :           void     SetSigma();
      66             : 
      67             :   virtual Double_t GetMuPo(Double_t energyMeV);
      68             :   virtual Double_t GetMuCO(Double_t energyMeV);
      69             :   virtual Double_t GetMuXe(Double_t energyMeV);
      70             :   virtual Double_t GetMuAr(Double_t energyMeV);
      71             :   virtual Double_t GetMuMy(Double_t energyMeV);
      72             :   virtual Double_t GetMuN2(Double_t energyMeV);
      73             :   virtual Double_t GetMuO2(Double_t energyMeV);
      74             :   virtual Double_t GetMuHe(Double_t energyMeV);
      75             :   virtual Double_t GetMuAi(Double_t energyMeV);
      76             : 
      77           0 :           Float_t  GetFoilThick() const                      { return fFoilThick;     };
      78           0 :           Float_t  GetGapThick() const                       { return fGapThick;      };
      79           0 :           Float_t  GetFoilDens() const                       { return fFoilDens;      };
      80           0 :           Float_t  GetGapDens() const                        { return fGapDens;       };
      81           0 :           Double_t GetFoilOmega() const                      { return fFoilOmega;     };
      82           0 :           Double_t GetGapOmega() const                       { return fGapOmega;      };
      83      163638 :           Float_t  GetTemp() const                           { return fTemp / 273.16; };
      84           0 :           TH1D    *GetSpectrum() const                       { return fSpectrum;      };
      85             : 
      86             :  protected:
      87             : 
      88             :           Int_t     fNFoilsDim;            //  Dimension of the NFoils array
      89             :           Int_t    *fNFoils;               //[fNFoilsDim] Number of foils in the radiator stack
      90             :           Double_t *fNFoilsUp;             //[fNFoilsDim] Upper momenta for a given number of foils
      91             :           Float_t   fFoilThick;            //  Thickness of the foils (cm)
      92             :           Float_t   fGapThick;             //  Thickness of the gaps between the foils (cm)
      93             : 
      94             :           Float_t   fFoilDens;             //  Density of the radiator foils (g/cm^3) 
      95             :           Float_t   fGapDens;              //  Density of the gas in the radiator gaps (g/cm^3)
      96             : 
      97             :           Double_t  fFoilOmega;            //  Plasma frequency of the radiator foils
      98             :           Double_t  fGapOmega;             //  Plasma frequency of the gas in the radiator gaps
      99             : 
     100             :           Float_t   fFoilZ;                //  Z of the foil material
     101             :           Float_t   fGapZ;                 //  Z of the gas in the gaps
     102             : 
     103             :           Float_t   fFoilA;                //  A of the foil material
     104             :           Float_t   fGapA;                 //  A of the gas in the gaps
     105             : 
     106             :           Float_t   fTemp;                 //  Temperature of the radiator gas (Kelvin)
     107             : 
     108             :           Int_t     fSpNBins;              //  Number of bins of the TR spectrum
     109             :           Float_t   fSpRange;              //  Range of the TR spectrum
     110             :           Float_t   fSpBinWidth;           //  Bin width of the TR spectrum
     111             :           Float_t   fSpLower;              //  Lower border of the TR spectrum
     112             :           Float_t   fSpUpper;              //  Upper border of the TR spectrum
     113             : 
     114             :           Double_t *fSigma;                //[fSpNBins] Array of sigma values
     115             : 
     116             :           TH1D     *fSpectrum;             //! TR photon energy spectrum
     117             : 
     118          48 :   ClassDef(AliTRDsimTR,1)                  //  Simulates TR photons
     119             : 
     120             : };
     121             : #endif

Generated by: LCOV version 1.11