]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - THijing/AliGenHijing.cxx
- adding time information in NbyN clusterizer
[u/mrichter/AliRoot.git] / THijing / AliGenHijing.cxx
index b98a039e01368a65d445c8ece165afaec178f521..e8bb091d0f72e036def5fb03fa83436aa28f0c96 100644 (file)
@@ -45,7 +45,7 @@ AliGenHijing::AliGenHijing()
      fKeep(0),
      fQuench(1),
      fShadowing(1),
-     fDecaysOff(1),
+     fDecaysOff(3),
      fTrigger(0),     
      fEvaluate(0),
      fSelectAll(0),
@@ -54,8 +54,8 @@ AliGenHijing::AliGenHijing()
      fTrials(0),
      fXsection(0.),
      fHijing(0),
-     fPtHardMin(0.),
-     fPtHardMax(1.e4),
+     fPtHardMin(2.0),
+     fPtHardMax(-1),
      fSpectators(1),
      fDsigmaDb(0),
      fDnDb(0),
@@ -74,7 +74,8 @@ AliGenHijing::AliGenHijing()
      fLHC(kFALSE),
      fRandomPz(kFALSE),
      fNoHeavyQuarks(kFALSE),
-     fEventTime(0.)
+     fEventTime(0.),
+     fHeader(AliGenHijingEventHeader("Hijing"))
 {
   // Constructor
   fEnergyCMS = 5500.;
@@ -89,7 +90,7 @@ AliGenHijing::AliGenHijing(Int_t npart)
      fKeep(0),
      fQuench(1),
      fShadowing(1),
-     fDecaysOff(1),
+     fDecaysOff(3),
      fTrigger(0),     
      fEvaluate(0),
      fSelectAll(0),
@@ -98,8 +99,8 @@ AliGenHijing::AliGenHijing(Int_t npart)
      fTrials(0),
      fXsection(0.),
      fHijing(0),
-     fPtHardMin(0.),
-     fPtHardMax(1.e4),
+     fPtHardMin(2.0),
+     fPtHardMax(-1),
      fSpectators(1),
      fDsigmaDb(0),
      fDnDb(0),
@@ -118,7 +119,8 @@ AliGenHijing::AliGenHijing(Int_t npart)
      fLHC(kFALSE),
      fRandomPz(kFALSE),
      fNoHeavyQuarks(kFALSE),
-     fEventTime(0.)
+     fEventTime(0.),
+     fHeader(AliGenHijingEventHeader("Hijing"))
 {
 // Default PbPb collisions at 5. 5 TeV
 //
@@ -129,6 +131,7 @@ AliGenHijing::AliGenHijing(Int_t npart)
 //
 // Set random number generator   
     AliHijingRndm::SetHijingRandom(GetRandom());
+    
 }
 
 AliGenHijing::~AliGenHijing()
@@ -155,6 +158,8 @@ void AliGenHijing::Init()
     fHijing->SetIHPR2(6,  fShadowing);
     fHijing->SetIHPR2(12, fDecaysOff);    
     fHijing->SetIHPR2(21, fKeep);
+    fHijing->SetHIPR1(8,  fPtHardMin);         
+    fHijing->SetHIPR1(9,  fPtHardMax);         
     fHijing->SetHIPR1(10, fPtMinJet);  
     fHijing->SetHIPR1(50, fSimpleJet);
 //
@@ -275,7 +280,6 @@ void AliGenHijing::Generate()
       
 //      Get event vertex
 //
-      TParticle *  iparticle = (TParticle *) fParticles.At(0);
       fVertex[0] = origin0[0];
       fVertex[1] = origin0[1]; 
       fVertex[2] = origin0[2];
@@ -283,7 +287,7 @@ void AliGenHijing::Generate()
 //
 //      First select parent particles
 //
-
+      TParticle *  iparticle = 0;
       for (i = 0; i < np; i++) {
          iparticle = (TParticle *) fParticles.At(i);
 
@@ -434,13 +438,19 @@ void AliGenHijing::EvaluateCrossSections()
 
     printf("\n Projectile Radius (fm): %f \n",fHijing->GetHIPR1(34));
     printf("\n Target     Radius (fm): %f \n",fHijing->GetHIPR1(35));    
+    printf("\n Inelastic and total cross section (mb) %f %f \n",fHijing->GetHINT1(12), fHijing->GetHINT1(13));    
     Int_t i;
     Float_t oldvalue= 0.;
 
     Float_t* b   = new Float_t[kMax];
     Float_t* si1 = new Float_t[kMax];    
     Float_t* si2 = new Float_t[kMax];    
-    
+    for (i = 0; i < kMax; i++){
+      b[i] = 0.;
+      si1[i] = 0.;
+      si2[i] = 0.;
+    }
+
     for (i = 0; i < kMax; i++)
     {
        Float_t xb  = bMin+i*kdib;
@@ -483,7 +493,7 @@ void AliGenHijing::EvaluateCrossSections()
     fDnDb      = new TGraph(i, b, si2);
 }
 
-Bool_t AliGenHijing::DaughtersSelection(TParticle* iparticle)
+Bool_t AliGenHijing::DaughtersSelection(const TParticle* iparticle)
 {
 //
 // Looks recursively if one of the daughters has been selected
@@ -535,7 +545,7 @@ Bool_t AliGenHijing::SelectFlavor(Int_t pid)
     return res;
 }
 
-Bool_t AliGenHijing::Stable(TParticle*  particle) const
+Bool_t AliGenHijing::Stable(const TParticle*  particle) const
 {
 // Return true for a stable particle
 //
@@ -553,22 +563,18 @@ Bool_t AliGenHijing::Stable(TParticle*  particle) const
 void AliGenHijing::MakeHeader()
 {
 // Builds the event header, to be called after each event
-    AliGenEventHeader* header = new AliGenHijingEventHeader("Hijing");
-    ((AliGenHijingEventHeader*) header)->SetNProduced(fNprimaries);
-    ((AliGenHijingEventHeader*) header)->SetImpactParameter(fHijing->GetHINT1(19));
-    ((AliGenHijingEventHeader*) header)->SetTotalEnergy(fHijing->GetEATT());
-    ((AliGenHijingEventHeader*) header)->SetHardScatters(fHijing->GetJATT());
-    ((AliGenHijingEventHeader*) header)->SetParticipants(fHijing->GetNP(), fHijing->GetNT());
-    ((AliGenHijingEventHeader*) header)->SetCollisions(fHijing->GetN0(),
-                                                      fHijing->GetN01(),
-                                                      fHijing->GetN10(),
-                                                      fHijing->GetN11());
-    ((AliGenHijingEventHeader*) header)->SetSpectators(fProjectileSpecn, fProjectileSpecp,
-                                                      fTargetSpecn,fTargetSpecp);
-    ((AliGenHijingEventHeader*) header)->SetReactionPlaneAngle(fHijing->GetHINT1(20));
-//    printf("Impact Parameter %13.3f \n", fHijing->GetHINT1(19));
-    
-
+    fHeader.SetNProduced(fNprimaries);
+    fHeader.SetImpactParameter(fHijing->GetHINT1(19));
+    fHeader.SetTotalEnergy(fHijing->GetEATT());
+    fHeader.SetHardScatters(fHijing->GetJATT());
+    fHeader.SetParticipants(fHijing->GetNP(), fHijing->GetNT());
+    fHeader.SetCollisions(fHijing->GetN0(),
+                         fHijing->GetN01(),
+                         fHijing->GetN10(),
+                         fHijing->GetN11());
+    fHeader.SetSpectators(fProjectileSpecn, fProjectileSpecp,
+                         fTargetSpecn,fTargetSpecp);
+    fHeader.SetReactionPlaneAngle(fHijing->GetHINT1(20));
 
 // 4-momentum vectors of the triggered jets.
 //
@@ -592,14 +598,14 @@ void AliGenHijing::MakeHeader()
                                              fHijing->GetHINT1(37),
                                              fHijing->GetHINT1(38),
                                              fHijing->GetHINT1(39));
-    ((AliGenHijingEventHeader*) header)->SetJets(jet1, jet2, jet3, jet4);
+    fHeader.SetJets(jet1, jet2, jet3, jet4);
 // Bookkeeping for kinematic bias
-    ((AliGenHijingEventHeader*) header)->SetTrials(fTrials);
+    fHeader.SetTrials(fTrials);
 // Event Vertex
-    header->SetPrimaryVertex(fVertex);
-    header->SetInteractionTime(fEventTime);
-    AddHeader(header);
-    fCollisionGeometry = (AliGenHijingEventHeader*)  header;
+    fHeader.SetPrimaryVertex(fVertex);
+    fHeader.SetInteractionTime(fEventTime);
+    AddHeader(&fHeader);
+    fCollisionGeometry = &fHeader;
 }