Possibility to change sign of Pz event by event, needed for pA, Ap simulation in
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 4 May 2005 08:07:49 +0000 (08:07 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 4 May 2005 08:07:49 +0000 (08:07 +0000)
the same (for example beam gas background).

THijing/AliGenHijing.cxx
THijing/AliGenHijing.h

index 654f721..2cd1c15 100644 (file)
@@ -190,14 +190,16 @@ void AliGenHijing::Generate()
       for (j=0; j < 3; j++) origin0[j] = fVertex[j];
   } 
 
+
+  Float_t sign = (fRandomPz && (Rndm() < 0.5))? -1. : 1.;
   while(1)
   {
 //    Generate one event
 // --------------------------------------------------------------------------
       fProjectileSpecn    = 0;  
       fProjectileSpecp    = 0;
-      fTargetSpecn    = 0;  
-      fTargetSpecp    = 0;
+      fTargetSpecn        = 0;  
+      fTargetSpecp        = 0;
 // --------------------------------------------------------------------------
       fHijing->GenerateEvent();
       fTrials++;
@@ -309,7 +311,7 @@ void AliGenHijing::Generate()
              ks   = iparticle->GetStatusCode();
              p[0] = iparticle->Px();
              p[1] = iparticle->Py();
-             p[2] = iparticle->Pz();
+             p[2] = iparticle->Pz() * sign;
              origin[0] = origin0[0]+iparticle->Vx()/10;
              origin[1] = origin0[1]+iparticle->Vy()/10;
              origin[2] = origin0[2]+iparticle->Vz()/10;
index 41689df..d930efe 100644 (file)
@@ -54,6 +54,7 @@ class AliGenHijing : public AliGenMC
     virtual void    SetJetPhiRange(Float_t phimin = -180., Float_t phimax = 180.)
        {fPhiMinJet = TMath::Pi()*phimin/180.; fPhiMaxJet = TMath::Pi()*phimax/180.;}
     virtual void    SetBoostLHC(Int_t flag = 0)         {fLHC        = flag;}
+    virtual void    SetRandomPz(Bool_t flag = 0)        {fRandomPz   = flag;}
 // Getters
     virtual Float_t GetEnergyCMS()       const {return fEnergyCMS;}
     virtual TString GetReferenceFrame()  const {return fFrame;}
@@ -124,6 +125,7 @@ class AliGenHijing : public AliGenMC
     Int_t      fTargetSpecn;    // Num. of spectator neutrons from target nucleus
     Int_t      fTargetSpecp;    // Num. of spectator protons from target nucleus
     Int_t       fLHC;            // Assume LHC as lab frame
+    Int_t       fRandomPz;       // Randomise sign of pz  event by event 
  private:
     void Copy(TObject &rhs) const;
     // adjust the weight from kinematic cuts