Hi Jennifer,
Could you clarify which version of Pythia you are using?
The recent Root releases, including today release 3.05/06 work only
with Pythia 6.2. You should not use them with Pythia6.1
Rene Brun
Jennifer Klay wrote:
>
> Hi,
> Here is the macro I used to run Pythia. It is essentially an adaptation of
> the example available in $ROOTSYS/tutorials.
>
> After I generate the events, I plot the status code for pi-zeros in the
> TreeViewer and they all have status 11.
>
> Thanks,
> Jennifer
>
> ==================================================
> #include <cstdlib>
> #include <iostream>
>
> using namespace std;
>
> #define FILENAME "pythia2.root"
> #define TREENAME "tree"
> #define BRANCHNAME "particles"
> #define HISTNAME "ptSpectra"
> #define PDGNUMBER 211
>
> //----------------------------------------------------------------------
> void RunPythia(Int_t n=100) {
> generateEvents(n);
> showEventSample();
> }
>
> //----------------------------------------------------------------------
> // nEvents is how many events we want.
> int generateEvents(Int_t nEvents)
> {
> //----------------------
> // Load needed libraries
> //----------------------
> loadLibraries();
>
> //-----------------------------------------------------
> // Create an instance of the Pythia event generator ...
> //-----------------------------------------------------
> TPythia6* pythia = new TPythia6;
>
> //--------------------------------------------------
> // Initialise it to run p+p at sqrt(5500) GeV in CMS
> //--------------------------------------------------
>
> pythia->Initialize("cms", "p", "p", 5500);
>
> //-----------------------------------------------
> // Set up all other special codes/settings here:
> //-----------------------------------------------
> // pythia->SetCKIN(3,10.); //Minimum Jet Et = 10 GeV
> // pythia->SetCKIN(7,-1.0); //Minimum rapidity
> // pythia->SetCKIN(8,1.0); //Maximum rapidity
>
> // pythia->SetMSTP(111,1); //Fragmentation on (0 = off)
>
> pythia->SetMDCY(111,1,0); //Don't decay pizeros
>
> //----------------------
> // Open an output file
> //----------------------
> TFile* file = TFile::Open(FILENAME, "RECREATE");
> if (!file || !file->IsOpen()) {
> Error("generateEvents", "Couldn;t open file %s", FILENAME);
> return 1;
> }
>
> //--------------------------------
> // Make a tree in that file ...
> //--------------------------------
> TTree* tree = new TTree(TREENAME, "Pythia 6 tree");
>
> //------------------------------------------------------------------------------------
>
> // Register the cache of pythia on a branch (TClonesArray of TMCParticle
> objects. )
>
> //------------------------------------------------------------------------------------
>
> TClonesArray* particles = (TClonesArray*)pythia->GetListOfParticles();
> tree->Branch(BRANCHNAME, &particles);
>
> //---------------------------
> // Now we make some events
> //---------------------------
> for (Int_t i = 0; i < nEvents; i++) {
> // Show how far we got every 100'th event.
> if (i % 100 == 0)
> cout << "Event # " << i << endl;
>
> //-----------------
> // Make one event.
> //-----------------
> pythia->GenerateEvent();
>
> // Maybe you want to have another branch with global event
> // information. In that case, you should process that here.
> // You can also filter out particles here if you want.
>
> //---------------------------------------------------------
> // Now we're ready to fill the tree, and the event is over.
> //---------------------------------------------------------
> tree->Fill();
>
> }
>
> //--------------------
> // Show tree structure
> //--------------------
> tree->Print();
>
> //--------------------------
> // Flush and close the file
> //--------------------------
> file->Write();
> file->Close();
>
> return 0;
> }
>
> //----------------------------------------------------
> // Start the tree viewer.
> //----------------------------------------------------
> int showEventSample()
> {
> // Load needed libraries
> loadLibraries();
>
> // Open the file
> TFile* file = TFile::Open(FILENAME, "READ");
> if (!file || !file->IsOpen()) {
> Error("showEventSample", "Couldn;t open file %s", FILENAME);
> return 1;
> }
>
> // Get the tree
> TTree* tree = (TTree*)file->Get(TREENAME);
> if (!tree) {
> Error("showEventSample", "couldn't get TTree %s", TREENAME);
> return 2;
> }
>
> TClonesArray* particles;
> tree->SetBranchAddress(BRANCHNAME,&particles);
>
> Int_t nEvt = (Int_t)tree->GetEntries();
> cout << "There are " << nEvt << " events" << endl;
>
> // tree->Print();
> // Start the viewer.
> tree->StartViewer();
>
> return 0;
> }
>
> //-------------------------------------------------------------
> void loadLibraries()
> {
> // Load the Event Generator abstraction library, Pythia 6
> // library, and the Pythia 6 interface library.
> gSystem->Load("libEG");
> gSystem->Load("libEGPythia6");
> gSystem->Load("libPythia6");
> }
>
> ==============================================================
>
> ==============================
> Jennifer L. Klay
> Lawrence Postdoctoral Fellow
> Relativistic Nuclear Collisions Group
> Nuclear Science Division
> Lawrence Berkeley National Laboratory
> ==============================
>
> Rene Brun wrote:
>
> > Hi Jennifer,
> >
> > I do not see any problem with TPythia6::SetMDCY.
> >
> > Did you initialize the class?
> > Could you send a short example showing the problem?
> >
> > Rene Brun
> >
> > Jennifer Klay wrote:
> > >
> > > Hi,
> > > I am using the TPythia6 libraries with ROOT to do some simulations on a
> > > linux machine running Redhat linux. I have tried running in several
> > > different versions of ROOT: 3.02.07, 3.03.09, 3.05.04.
> > >
> > > Using the $ROOTSYS/tutorials/pythiaExample.C, I tried to set the
> > > parameter that turns OFF neutral pion decay:
> > >
> > > pythia->SetMDCY(111,1,0);
> > >
> > > Setting or unsetting this has no effect. Neutral pions are always
> > > decayed (have status code 11). I checked the value of the parameter at
> > > the end of the macro by using the Get method:
> > > cout << pythia->GetMDCY(111,1) << endl;
> > >
> > > and it verifies that the value set is zero.
> > >
> > > When running PYTHIA as a standalone fortran program, this flag works, so
> > > I suspect that the value is not being properly passed through the
> > > wrapper code to the fortran implementation.
> > >
> > > Are there any workarounds to set this parameter and still use the ROOT
> > > classes? I want to generate TTrees of the event record so I can run
> > > some analysis after generating the events.
> > >
> > > Thanks,
> > > Jennifer
> > >
> > > ==============================
> > > Jennifer L. Klay
> > > Lawrence Postdoctoral Fellow
> > > Relativistic Nuclear Collisions Group
> > > Nuclear Science Division
> > > Lawrence Berkeley National Laboratory
> > > ==============================
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET