// Files can be chained.
// Author: andreas.morsch@cern.ch
-#include "TPDGCode.h"
-
#include "AliGenFLUKAsource.h"
-#include "AliRun.h"
-
+#include <stdlib.h>
+#include <TDatabasePDG.h>
+#include <TPDGCode.h>
+#include <RVersion.h>
+#include <TChain.h>
#include <TFile.h>
#include <TTree.h>
-#include <TChain.h>
-#include <stdlib.h>
- ClassImp(AliGenFLUKAsource)
- AliGenFLUKAsource::AliGenFLUKAsource()
+#include <TVirtualMC.h>
+
+#include "AliRun.h"
+
+ClassImp(AliGenFLUKAsource)
+
+AliGenFLUKAsource::AliGenFLUKAsource()
:AliGenerator(-1)
{
// Constructor
fSourceId=-1;
}
-AliGenFLUKAsource::AliGenFLUKAsource(const AliGenFLUKAsource & FLUKAsource)
+AliGenFLUKAsource::AliGenFLUKAsource(const AliGenFLUKAsource & FLUKAsource):
+ AliGenerator(FLUKAsource)
{
-// copy constructor
+// Copy constructor
+ FLUKAsource.Copy(*this);
}
Float_t prwn;
Float_t wgt, fwgt;
Float_t phi;
- char name[100];
- Float_t amass, charge, tlife;
- Int_t itrtyp;
+ Float_t amass;
Int_t iwgt;
Int_t i, j, part, nt;
static Int_t irwn=0;
part=kIfluge[int(ifip)-1];
//
// Calculate momentum from kinetic energy and mass of the particle
- gMC->Gfpart(part, name, itrtyp,
- amass, charge, tlife);
+#if ROOT_VERSION_CODE > 197895
+ amass = gMC->ParticleMass(part);
+#else
+ amass = (TDatabasePDG::Instance())->GetParticle(part)->Mass();
+#endif
prwn=fEkin*sqrt(1. + 2.*amass/fEkin);
if (part==1 && iwgt>100) iwgt=100;
Int_t nstack=0;
for (j=0; j<iwgt; j++) {
- SetTrack(fTrackIt,-1,part,p,origin,polar,fAge,kPPrimary,nt);
+ PushTrack(fTrackIt,-1,part,p,origin,polar,fAge,kPPrimary,nt);
Rndm(random,2);
phi=2*random[1]*TMath::Pi();
Float_t pn1=p[0]*TMath::Sin(phi) - p[1]*TMath::Cos(phi);
AliGenFLUKAsource& AliGenFLUKAsource::operator=(const AliGenFLUKAsource& rhs)
{
// Assignment operator
- return *this;
+ rhs.Copy(*this);
+ return (*this);
}
+void AliGenFLUKAsource::Copy(TObject &) const
+{
+ Fatal("Copy","Not implemented!\n");
+}
+