]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCFragment.cxx
Add class to access simulation parameters, AliEMCALSimParam, to be set in configurati...
[u/mrichter/AliRoot.git] / ZDC / AliZDCFragment.cxx
index 08c585c4fa7328590c2f98e98ba27539a8904b45..d59a2d3f7794fcc833493477a416ad83682927f4 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
+
+// ******************************************************************
+//
+//     Class for nuclear fragments formation
+//
+// ******************************************************************
+
 // --- Standard libraries
 #include <stdlib.h>
 
@@ -29,38 +36,45 @@ int comp(const void *i,const void *j) {return *(int *)i - *(int *)j;}
 
 
 //_____________________________________________________________________________
-AliZDCFragment::AliZDCFragment()
+AliZDCFragment::AliZDCFragment():
+  fB(0),
+  fZbAverage(0),
+  fNimf(0),
+  fZmax(0),
+  fTau(0),
+  fNalpha(0),
+  fZtot(0),
+  fNtot(0)
 {
   //
   // Default constructor
   //
-  fB = 0;
 }
 
 //_____________________________________________________________________________
-AliZDCFragment::AliZDCFragment(Float_t b)
-     : TNamed(" "," ")
+AliZDCFragment::AliZDCFragment(Float_t b): 
+  TNamed(" "," "),
+  fB(b),
+  fZbAverage(0),
+  fNimf(0),
+  fZmax(0),
+  fTau(0),
+  fNalpha(0),
+  fZtot(0),
+  fNtot(0)
 {
   //
   // Standard constructor
   //
-  fB = b;
-  fZbAverage = 0;
-  fNimf = 0;
-  fZmax = 0;
-  fTau = 0;
   for(Int_t i=0; i<=99; i++){
      fZZ[i] = 0;
      fNN[i] = 0;
   }
-  fNalpha = 0;
-  fZtot = 0;
-  fNtot = 0;
   
 }
 
 //_____________________________________________________________________________
-void AliZDCFragment::GenerateIMF(Int_t* fZZ, Int_t &fNalpha)
+void AliZDCFragment::GenerateIMF()
 {
 
    // Loop variables
@@ -286,7 +300,7 @@ void AliZDCFragment::GenerateIMF(Int_t* fZZ, Int_t &fNalpha)
 }
 
 //_____________________________________________________________________________
-void AliZDCFragment::AttachNeutrons(Int_t *fZZ, Int_t *fNN, Int_t &fZtot,Int_t &fNtot)
+void AliZDCFragment::AttachNeutrons()
 {
 //
 // Prepare nuclear fragment by attaching a suitable number of neutrons
@@ -347,3 +361,14 @@ void AliZDCFragment::AttachNeutrons(Int_t *fZZ, Int_t *fNN, Int_t &fZtot,Int_t &
    
 
 }
+
+//_____________________________________________________________________________
+Float_t AliZDCFragment::DeuteronNumber()
+{
+    // Calculates the fraction of deuterum nucleus produced
+    //
+    Float_t deuteronProdPar[2] = {-0.068,0.0385};
+    Float_t deutNum = deuteronProdPar[0] + deuteronProdPar[1]*fB;
+    if(deutNum<0.) deutNum = 0.;
+    return deutNum;
+}