If present, pass header to container.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 29 Jun 2005 09:31:08 +0000 (09:31 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 29 Jun 2005 09:31:08 +0000 (09:31 +0000)
PYTHIA6/AliGenPythia.cxx
PYTHIA6/AliGenPythia.h
THijing/AliGenHijing.cxx
THijing/AliGenHijing.h

index 90f7144..f505b7e 100644 (file)
@@ -872,11 +872,21 @@ void AliGenPythia::MakeHeader()
        }
     
 //
-//  Pass header to RunLoader
+//  Pass header
 //
-    AliRunLoader::GetRunLoader()->GetHeader()->SetGenEventHeader(fHeader);   
+    AddHeader(fHeader);
 }
-       
+
+void AliGenPythia::AddHeader(AliGenEventHeader* header)
+{
+    // Add header to container or runloader
+    if (fContainer) {
+       fContainer->AddHeader(header);
+    } else {
+       AliRunLoader::GetRunLoader()->GetHeader()->SetGenEventHeader(header);   
+    }
+}
+
 
 Bool_t AliGenPythia::CheckTrigger(TParticle* jet1, TParticle* jet2)
 {
index c3381a5..2c28671 100644 (file)
@@ -3,6 +3,7 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+
 /* $Id$ */
 
 //
@@ -21,6 +22,7 @@
 class AliPythia;
 class TParticle;
 class AliGenPythiaEventHeader;
+class AliGenEventHeader;
 class AliStack;
 class AliRunLoader;
 
@@ -91,11 +93,9 @@ class AliGenPythia : public AliGenMC
     virtual void SetQuench(Int_t flag = 0) {fQuench = flag;}
     virtual void SetHadronisation(Int_t flag = 1) {fHadronisation = flag;}
     virtual void SetReadFromFile(const Text_t *filname) {fFileName = filname;  fReadFromFile = 1;}    
-    
     // Get interaction rate for pileup studies
     virtual void    SetInteractionRate(Float_t rate,Float_t timewindow = 90.e-6);
     virtual Float_t GetInteractionRate() const {return fInteractionRate;}
-    
     // get cross section of process
     virtual Float_t GetXsection() const {return fXsection;}
     // get triggered jets
@@ -128,16 +128,15 @@ class AliGenPythia : public AliGenMC
     
     // Assignment Operator
     AliGenPythia & operator=(const AliGenPythia & rhs);
-
     void     GetSubEventTime();
-
+    void     AddHeader(AliGenEventHeader* header);
+    
  protected:
     // adjust the weight from kinematic cuts
     void     AdjustWeights();
     Int_t    GenerateMB();
     void     MakeHeader();    
     void     GeneratePileup();
-    
     Process_t   fProcess;           //Process type
     StrucFunc_t fStrucFunc;         //Structure Function
     Float_t     fEnergyCMS;         //Centre of mass energy
index 35a5a11..c34d2ca 100644 (file)
@@ -316,7 +316,6 @@ void AliGenHijing::Generate()
          TParticle *  iparticle = (TParticle *) fParticles->At(i);
          Bool_t  hasMother   = (iparticle->GetFirstMother()     >=0);
          Bool_t  hasDaughter = (iparticle->GetFirstDaughter()   >=0);
-
          if (pSelected[i]) {
              kf   = iparticle->GetPdgCode();
              ks   = iparticle->GetStatusCode();
@@ -337,6 +336,8 @@ void AliGenHijing::Generate()
              Bool_t tFlag = (fTrackIt && !hasDaughter);
              PushTrack(tFlag,imo,kf,p,origin,polar,
                       tof,kPNoProcess,nt, 1., ks);
+
+             
              KeepTrack(nt);
              newPos[i] = nt;
          } // if selected
@@ -539,10 +540,21 @@ void AliGenHijing::MakeHeader()
     ((AliGenHijingEventHeader*) header)->SetTrials(fTrials);
 // Event Vertex
     header->SetPrimaryVertex(fVertex);
-    if (gAlice) gAlice->SetGenEventHeader(header);   
+    AddHeader(header);
     fCollisionGeometry = (AliGenHijingEventHeader*)  header;
 }
 
+void AliGenHijing::AddHeader(AliGenEventHeader* header)
+{
+    // Passes header either to the container or to gAlice
+    if (fContainer) {
+       fContainer->AddHeader(header);
+    } else {
+       gAlice->SetGenEventHeader(header);      
+    }
+}
+
+
 Bool_t AliGenHijing::CheckTrigger()
 {
 // Check the kinematic trigger condition
index 6d341b0..e9bd34b 100644 (file)
@@ -55,6 +55,7 @@ class AliGenHijing : public AliGenMC
        {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;}
+    virtual void    AddHeader(AliGenEventHeader* header);
     virtual void    SwitchOffHeavyQuarks(Bool_t flag = kTRUE) {fNoHeavyQuarks = flag;}