2) store the event weight (also cross section) in AliGenHerwigEventHeader.
M. van Leeuwen
savannah 77127
AliGenHerwigEventHeader::AliGenHerwigEventHeader():
fProcessType(0),
- fTrials(0)
+ fTrials(0),
+ fWeight(1.)
{
// Default Constructor
}
AliGenHerwigEventHeader::AliGenHerwigEventHeader(const char* name):
AliGenEventHeader(name),
fProcessType(0),
- fTrials(0)
+ fTrials(0),
+ fWeight(1.)
{
// Constructor
}
void SetProcessType(Int_t type) {fProcessType = type;}
Int_t Trials() {return fTrials;}
void SetTrials(Int_t trials) {fTrials = trials;}
+ Int_t Weight() {return fWeight;}
+ void SetWeight(Float_t weight) {fWeight = weight;}
protected:
Int_t fProcessType; // HERWIG process id for this event
Int_t fTrials; // Number of trials to fulfill trigger condition
- ClassDef(AliGenHerwigEventHeader, 1) // Event header for Herwig event
+ Float_t fWeight; // Event weight (= cross section in nb for unweighted events)
+ ClassDef(AliGenHerwigEventHeader, 2) // Event header for Herwig event
};
{
fEv1Pr = eventFirst;
fEv2Pr = eventLast;
- if ( fEv2Pr == -1 ) fEv2Pr = fEv2Pr;
+ if ( fEv2Pr == -1 ) fEv2Pr = fEv1Pr;
}
void AliGenHerwig::Init()
// Number of trials
((AliGenHerwigEventHeader*) fHeader)->SetTrials(fTrials);
//
+// Event weight (cross section)
+ ((AliGenHerwigEventHeader*) fHeader)->SetWeight(fHerwig->GetEVWGT());
+//
// Event Vertex
fHeader->SetPrimaryVertex(fVertex);
#include "TClonesArray.h"
#include "TParticle.h"
#include "TObjArray.h"
+#include "Riostream.h"
ClassImp(THerwig6)
void herwig6_close_fortran_file_(int* lun);
}
+THerwig6 *THerwig6::fgInstance = 0;
THerwig6::THerwig6() : TGenerator("Herwig6","Herwig6")
{
fParticles = new TClonesArray("TParticle",50);
// initialize common-blocks
+
+ if (fgInstance)
+ cout << "WARNING: creating second instance of THerwig6" << endl;
+ fgInstance = this;
}
THerwig6::THerwig6(const THerwig6 & source): TGenerator(source)
THerwig6::~THerwig6()
{
// Destructor. The data members of TGenerator are delete by itself
+ fgInstance = 0;
}
+//------------------------------------------------------------------------------
+THerwig6 *THerwig6::Instance()
+ {
+ return fgInstance ? fgInstance : new THerwig6;
+ }
//______________________________________________________________________________
void THerwig6::GenerateEvent()
{
return *this;
}
virtual ~THerwig6();
+ static THerwig6 *Instance();
// acces to hep common block
int GetNEVHEP () const;
void Jimmin();
void Jmefin();
protected:
+ static THerwig6 *fgInstance;
ClassDef(THerwig6,0) //Interface to Herwig6.1 Event Generator
};