LCOV - code coverage report
Current view: top level - EVGEN - AliGenDeuteron.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 14 7.1 %
Date: 2016-06-14 17:26:59 Functions: 1 21 4.8 %

          Line data    Source code
       1             : #ifndef ALIGENDEUTERON_H
       2             : #define ALIGENDEUTERON_H
       3             : 
       4             : 
       5             : /* Copyright(c) 2009-2010, ALICE Experiment at CERN, All rights reserved. *
       6             :  * See cxx source for full Copyright notice                               */
       7             : 
       8             : // Afterburner to simulate coalescence of (anti)nucleons
       9             : // Author: Eulogio Serradilla <eulogio.serradilla@ciemat.es>
      10             : //         Arturo Menchaca <menchaca@fisica.unam.mx>
      11             : 
      12             : #include "AliGenerator.h"
      13             : 
      14             : 
      15             : class AliGenDeuteron: public AliGenerator
      16             : {
      17             : 
      18             :  public:
      19             : 
      20             :         AliGenDeuteron(Int_t sign=1, Double_t pmax=0.1, Double_t rmax=2.1, Int_t cluster=0 );
      21             :         virtual ~AliGenDeuteron();
      22             : 
      23             :         virtual void Init();
      24             :         virtual void Generate();
      25             :         
      26           0 :         Int_t GetSign() const { return fSign;}
      27           0 :         Double_t GetCoalescenceMomentum() const { return fPmax; }
      28           0 :         Double_t GetCoalescenceDistance() const { return fRmax; }
      29           0 :         Double_t GetSpinProbability() const { return fSpinProb; }
      30             :         Double_t GetCoalescenceProbability(const TParticle* nucleon1, const TParticle* nucleon2) const;
      31           0 :         Int_t GetClusterType() const { return fClusterType; }
      32           0 :         Int_t GetFreezeOutModel() const { return fModel; }
      33           0 :         Double_t GetFreezeOutTime() const { return fTimeLength; }
      34             :         
      35           0 :         void SetSign(Int_t sign) {  fSign = sign > 0 ? 1 : -1;}
      36           0 :         void SetCoalescenceMomentum(Double_t p) { fPmax = p; }
      37           0 :         void SetCoalescenceDistance(Double_t r) { fRmax = r; }
      38           0 :         void SetSpinProbability(Double_t s) { fSpinProb = s; }
      39           0 :         void SetClusterType(Int_t cluster) { fClusterType = cluster; }
      40           0 :         void SetFreezeOutModel(Int_t model, Double_t timeLength=2.5) { fModel = model; fTimeLength=timeLength;}
      41             :         
      42             :  public:
      43             : 
      44             :         enum { kFirstPartner=0, kLowestMomentum, kLowestDistance, kBoth };
      45             :         enum { kNone=0, kThermal, kExpansion };
      46             :         enum { kCluster=77 };
      47             :         
      48             :  private:
      49             :  
      50             :         AliGenDeuteron(const AliGenDeuteron &other);
      51             :         AliGenDeuteron& operator=(const AliGenDeuteron &other);
      52             :         
      53             :         void FixProductionVertex(class TParticle* i);
      54             :         void FirstPartner(const TList* protons, TList* neutrons);
      55             :         void WeightMatrix(const TList* protons, const TList* neutrons);
      56             :         void PushDeuteron(TParticle* parent1, TParticle* parent2);
      57             :         
      58             :         Double_t GetS(Double_t p1x, Double_t p1y, Double_t p1z, Double_t m1, Double_t p2x, Double_t p2y, Double_t p2z, Double_t m2) const;
      59             :         Double_t GetPcm(Double_t p1x, Double_t p1y, Double_t p1z, Double_t m1, Double_t p2x, Double_t p2y, Double_t p2z, Double_t m2) const;
      60             :         Double_t GetPcm(const TVector3& p1, Double_t m1, const TVector3& p2, Double_t m2) const;
      61             :         
      62             :  private:
      63             :         
      64             :         Int_t fSign;          // +1 for deuterons, -1 for antideuterons
      65             :         Double_t fPmax;       // Maximum p-n momentum difference (GeV/c)
      66             :         Double_t fRmax;       // Maximum p-n distance (fm)
      67             :         Double_t fSpinProb;   // cluster formation probability due to spin
      68             :         Int_t fClusterType;   // Probability criteria to find clusters
      69             :         Int_t fModel;         // Model to override generator source
      70             :         Double_t fTimeLength; // Thermal and chemical freeze-out time (fm/c)
      71             :         Double_t fB;          // Impact parameter (fm)
      72             :         Double_t fR;          // Projectile/Target nuclear radius (fm)
      73             :         Double_t fPsiR;       // Reaction plane angle
      74             :         AliStack* fCurStack;  //! current event stack
      75             :         
      76           6 :         ClassDef(AliGenDeuteron,2)
      77             : };
      78             : 
      79             : #endif // ALIGENDEUTERON_H

Generated by: LCOV version 1.11