LCOV - code coverage report
Current view: top level - EVGEN - AliGenMUONLMR.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 12 8.3 %
Date: 2016-06-14 17:26:59 Functions: 1 19 5.3 %

          Line data    Source code
       1             : #ifndef AliGenMUONLMR_h
       2             : #define AliGenMUONLMR_h
       3             : 
       4             : #include <TH1F.h> 
       5             : #include <TH1D.h> 
       6             : #include <TF1.h> 
       7             : #include <TParticle.h> 
       8             : #include <TLorentzVector.h> 
       9             : #include "AliGenMC.h" 
      10             :  
      11             : class AliGenMUONLMR : public AliGenMC { 
      12             :  public:
      13             :   enum parttype_t {kPionLMR, kKaonLMR, kEtaLMR, kRhoLMR, kOmegaLMR, kPhiLMR, kEtaPrimeLMR};
      14             :   enum CMSEnergies {kCMS2760GeV, kCMS7000GeV, kCMS8000GeV, kCMS5020GeVpPb, kCMS5020GeVPbp, kNCMSEnergies};    
      15             :   enum process_t {kEtaDalitz, kOmegaDalitz, kEtaPrimeDalitz, kEta2Body, kRho2Body, kOmega2Body, kPhi2Body, kPionSemiMuonic, kKaonSemiMuonic, kNProcess}; 
      16             :   enum thetaOpt_t {kFlat, kPolarized};
      17             :   AliGenMUONLMR(); 
      18             :   AliGenMUONLMR(AliGenMUONLMR &gen); 
      19             :   AliGenMUONLMR &operator=(const AliGenMUONLMR &gen);  
      20             :   ~AliGenMUONLMR(); 
      21             :   static Double_t PtDistr(Double_t *x, Double_t *par); 
      22             :   static Double_t YDistr(Double_t *x, Double_t *par); 
      23           0 :   virtual void SetPtParams(Int_t iproc, Double_t p1, Double_t p2, Double_t p3) {fPt[iproc]->SetParameters(p1,p2,p3);}
      24           0 :   virtual void SetYParams(Int_t iproc, Double_t p1, Double_t p2, Double_t p3, Double_t ycm=0) {fY[iproc]->SetParameters(p1,p2,p3,ycm);}
      25             :   virtual void Decay2Body(TParticle *mother);
      26             :   virtual void DalitzDecay(TParticle *mother);
      27             :   virtual void DecayPiK(TParticle *mother, Bool_t &hadDecayed);
      28             :   virtual Double_t FormFactor(Double_t q2, Int_t decay); 
      29             :   virtual void Generate(); 
      30           0 :   virtual TParticle* GetMuon(Int_t i) {return fMu[i];} 
      31           0 :   virtual void SetNMuMin(Int_t nmin) {fNMuMin = nmin;}
      32           0 :   virtual void GenerateSingleProcess(Int_t whichproc) { fGenSingleProc = whichproc;}
      33           0 :   virtual void SetScaleMultiplicity(Int_t ipart, Double_t scale) { fScaleMult[ipart] = scale; } 
      34             :   static Double_t RhoLineShapeNew(Double_t *, Double_t *); 
      35             :   virtual void FinishRun(); 
      36           0 :   virtual TF1* GetRapidity(Int_t iproc) { return fY[iproc]; }
      37           0 :   virtual TF1* GetPt(Int_t iproc) { return fPt[iproc]; }
      38             :   void SetCMSEnergy(CMSEnergies energy);
      39           0 :   virtual void SetCMSRapidity(Double_t ycm) { fYCM = ycm; } 
      40           0 :   virtual void SetThetaOption(process_t proc, thetaOpt_t opt) { fThetaOpt[proc] = opt; }
      41           0 :   virtual thetaOpt_t GetThetaOption(process_t proc) { return fThetaOpt[proc]; }
      42             :  private: 
      43             :   static const Int_t fgkNpart = 7;  // number of particles to be generated 
      44             :   Int_t fNMuMin;                    // min. number of muons to accept the event for writing
      45             :   CMSEnergies fCMSEnergy;           // CMS Energy 
      46             :   Int_t fGenSingleProc;             // flag to generate a single process (1) or the whole cocktail (0)
      47             :   Double_t fYCM;                    // center of mass rapidity (def. 0) 
      48             :   Int_t fPDG[7];                    // pdg code of particle to be generated 
      49             :   Double_t fScaleMult[7];           // multiplicity scaling factor (w.r.t. pythia@7TeV)
      50             :   TF1 *fPt[7];                      // pt distribution
      51             :   TF1 *fY[7];                       // rapidity distribution
      52             :   TF1 *fMult[7];                    // multiplicity distribution 
      53             :   TF1 *fDecay[2];                   // fDecay[0] = pion, fDecay[1] = kaon
      54             :   TH1F *fDalitz[3];                 // Dalitz decay form factor for eta, omega, etaprime
      55             :   TF1 *fCosTheta;                   // function for polarized theta distributions
      56             :   TF1 *fRhoLineShape;               // rho line shape 
      57             :   TParticle* fParticle[7];          // TPaticle object for the particles to be generated
      58             :   TParticle* fMu[2];                // fMu[0] = mu+    fMu[1] = mu-
      59             :   TH1D *fHMultMu;                   // muon multiplicity 
      60             :   TH1D *fHNProc;                    // number of events generated per process
      61             :   thetaOpt_t fThetaOpt[kNProcess];  // option for the cos(theta) distribution of each process
      62           6 :   ClassDef(AliGenMUONLMR, 1)        // low mass dimuons parametric generator
      63             : }; 
      64             : 
      65             : #endif
      66             : 

Generated by: LCOV version 1.11