AliGenerator* GeneratorCustom()
{
  AliGenCocktail *ctl = GeneratorCocktail("Monash2013_RsnNcl002");
  // pythia8
  AliGenerator   *py8 = GeneratorPythia8(kPythia8Tune_Monash2013);
  ctl->AddGenerator(py8, "Pythia8 (Monash2013)", 1.);

  // randomly injected particles
  const int nParticles = 10;
  particle_inj particleList[10] = { // {name,pdgcode,maxpt,maxy},
    {1,"f2(1270)",225,15.,0.6},
    {1,"Lambda(1520)",3124,15.,0.6},
    {1,"Lambda_bar(1520)",-3124,15.,0.6},
    {1,"f0(980)",9010221,15.,0.6},
    {1,"Xi*0(1530)",3324,15.,0.6},
    {1,"Xi*0_bar(1530)",-3324,15.,0.6},
    {1,"Xi0(1820)",123324,15.,0.6},
    {1,"Xi0_bar(1820)",-123324,15.,0.6},
    {1,"Xi-(1820)",123314,15.,0.6},
    {1,"Xi+(1820)",-123314,15.,0.6}
  };

  AliDecayerPythia *dec = new AliDecayerPythia;
  AliPDG::AddParticlesToPdgDataBase();

  ctl->UseSingleInjectionPerEvent();
  for (int idx = 0; idx < nParticles; ++idx) {
    AliGenerator   *inj = GeneratorParam(particleList[idx].n, particleList[idx].pdg, 0., particleList[idx].maxpt,-particleList[idx].maxy, particleList[idx].maxy,dec);
    ctl->AddGenerator(inj, (TString(particleList[idx].name) + " injector").Data(), 1.);
  }
  return ctl;
}
AliGenerator *
GeneratorCustom()
{
  AliGenCocktail *ctl = GeneratorCocktail("Monash2013_Nuclex001");
  // pythia8
  AliGenerator   *py8 = GeneratorPythia8(kPythia8Tune_Monash2013);
  ctl->AddGenerator(py8, "Pythia8 (Monash2013)", 1.);
  //
  AliGenerator   *nu1a  = Generator_Nuclex(0x7, kFALSE, 7,6.f,1.f);
  AliGenerator   *nu1b  = Generator_Nuclex(0x7, kTRUE,  7,6.f,1.f);
  ctl->AddGenerator(nu1a,  "Nuclex1a", 1.);
  ctl->AddGenerator(nu1b,  "Nuclex1b", 1.);
  return ctl;
}