]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliGenZDC.cxx
AliTPCcalibCalib.cxx - use also alignmnet - not implemented yet
[u/mrichter/AliRoot.git] / ZDC / AliGenZDC.cxx
index 7fb86efbb4009d24883ac9b03add1b30160f5e60..2e3a30756f338967588d71363486e91b6530f347 100644 (file)
@@ -40,34 +40,42 @@ ClassImp(AliGenZDC)
  
 //_____________________________________________________________________________
 AliGenZDC::AliGenZDC()
-   :AliGenerator()
+   :AliGenerator(),
+  fIpart(0),
+  fCosx(0),    
+  fCosy(0),    
+  fCosz(0),    
+  fPseudoRapidity(0),          
+  fFermiflag(0),       
+  fBeamDiv(0), 
+  fBeamCrossAngle(0),
+  fBeamCrossPlane(0),
+  fDebugOpt(0)
 {
   //
   // Default constructor
   //
-  fIpart = 0;
 }
 
 //_____________________________________________________________________________
 AliGenZDC::AliGenZDC(Int_t npart)
-   :AliGenerator(npart)
+   :AliGenerator(npart),
+  fIpart(kNeutron),
+  fCosx(0.),   
+  fCosy(0.),   
+  fCosz(1.),   
+  fPseudoRapidity(0.),         
+  fFermiflag(1),       
+  fBeamDiv(0.000032),  
+  fBeamCrossAngle(0.0001),
+  fBeamCrossPlane(2),
+  fDebugOpt(0)
 {
   //
   // Standard constructor
   //
   fName = "AliGenZDC";
   fTitle = "Generation of Test Particles for ZDCs";
-  fIpart = kNeutron;
-  fCosx  = 0.;
-  fCosy  = 0.;
-  fCosz  = 1.;
-  fPseudoRapidity = 0.;
-  
-  fFermiflag = 1;
-  // LHC values for beam divergence and crossing angle
-  fBeamDiv = 0.000032;
-  fBeamCrossAngle = 0.0001;
-  fBeamCrossPlane = 2;
   
   Int_t i, j;
   for(i=0; i<201; i++){
@@ -75,7 +83,6 @@ AliGenZDC::AliGenZDC(Int_t npart)
      fProbintn[i] = 0;
   }
   for(j=0; j<3; j++) fPp[i] = 0;
-  fDebugOpt = 0;
 }
 
 //_____________________________________________________________________________
@@ -90,7 +97,7 @@ void AliGenZDC::Init()
          "= %f, Crossing plane = %d\n\n", fFermiflag, fBeamDiv, fBeamCrossAngle,
         fBeamCrossPlane);
 
-  FermiTwoGaussian(207.,fPp,fProbintp,fProbintn);
+  FermiTwoGaussian(208.);
 }  
   
 //_____________________________________________________________________________
@@ -124,19 +131,19 @@ void AliGenZDC::Generate()
   
   // Beam divergence and crossing angle
   if(fBeamCrossAngle!=0.) {
-    BeamDivCross(1,fBeamDiv,fBeamCrossAngle,fBeamCrossPlane,pLab);
+    BeamDivCross(1, pLab);
     for(i=0; i<=2; i++) fP[i] = pLab[i];
   }
   if(fBeamDiv!=0.) {
-    BeamDivCross(0,fBeamDiv,fBeamCrossAngle,fBeamCrossPlane,pLab);
+    BeamDivCross(0, pLab);
     for(i=0; i<=2; i++) fP[i] = pLab[i];
   }
 
   // If required apply the Fermi momentum
   if(fFermiflag==1){
     if((fIpart==kProton) || (fIpart==kNeutron))
-      ExtractFermi(fIpart,fPp,fProbintp,fProbintn,ddp);
-    mass=gAlice->PDGDB()->GetParticle(fIpart)->Mass();
+      ExtractFermi(fIpart, ddp);
+    mass=TDatabasePDG::Instance()->GetParticle(fIpart)->Mass();
     fP0 = TMath::Sqrt(fP[0]*fP[0]+fP[1]*fP[1]+fP[2]*fP[2]+mass*mass);
     for(i=0; i<=2; i++) dddp[i] = ddp[i];
     dddp0 = TMath::Sqrt(dddp[0]*dddp[0]+dddp[1]*dddp[1]+dddp[2]*dddp[2]+mass*mass);
@@ -175,16 +182,13 @@ void AliGenZDC::Generate()
 }
 
 //_____________________________________________________________________________
-void AliGenZDC::FermiTwoGaussian(Float_t A, Double_t *fPp, 
-                Double_t *fProbintp, Double_t *fProbintn)
+void AliGenZDC::FermiTwoGaussian(Float_t A)
 {
 //
 // Momenta distributions according to the "double-gaussian"
 // distribution (Ilinov) - equal for protons and neutrons
 //
 
-   fProbintp[0] = 0;
-   fProbintn[0] = 0;
    Double_t sig1 = 0.113;
    Double_t sig2 = 0.250;
    Double_t alfa = 0.18*(TMath::Power((A/12.),(Float_t)1/3));
@@ -209,8 +213,7 @@ void AliGenZDC::FermiTwoGaussian(Float_t A, Double_t *fPp,
    }
 } 
 //_____________________________________________________________________________
-void AliGenZDC::ExtractFermi(Int_t id, Double_t *fPp, Double_t *fProbintp,
-                Double_t *fProbintn, Double_t *ddp)
+void AliGenZDC::ExtractFermi(Int_t id, Double_t *ddp)
 {
 //
 // Compute Fermi momentum for spectator nucleons
@@ -244,8 +247,7 @@ void AliGenZDC::ExtractFermi(Int_t id, Double_t *fPp, Double_t *fProbintp,
 }
 
 //_____________________________________________________________________________
-void AliGenZDC::BeamDivCross(Int_t icross, Float_t fBeamDiv, Float_t fBeamCrossAngle, 
-                Int_t fBeamCrossPlane, Double_t *pLab)
+void AliGenZDC::BeamDivCross(Int_t icross, Double_t *pLab)
 {
   // Applying beam divergence and crossing angle
   //
@@ -263,15 +265,15 @@ void AliGenZDC::BeamDivCross(Int_t icross, Float_t fBeamDiv, Float_t fBeamCrossA
     fidiv = (gRandom->Rndm())*k2PI;
   }
   else if(icross==1){ // ##### Crossing angle
-    if(fBeamCrossPlane==0.){
+    if(fBeamCrossPlane==0){
       tetdiv = 0.;
       fidiv = 0.;
     }
-    else if(fBeamCrossPlane==1.){     // Horizontal crossing plane
+    else if(fBeamCrossPlane==1){     // Horizontal crossing plane
       tetdiv = fBeamCrossAngle;
       fidiv = 0.;
     }
-    else if(fBeamCrossPlane==2.){     // Vertical crossing plane
+    else if(fBeamCrossPlane==2){     // Vertical crossing plane
       tetdiv = fBeamCrossAngle;
       fidiv = k2PI/4.;
     }