// Set random number generator
if (!AliPythiaRndm::GetPythiaRandom())
AliPythiaRndm::SetPythiaRandom(GetRandom());
- fParticles = new TClonesArray("TParticle",1000);
SetNuclei(0,0);
}
// printf("Calling hadronisation %d\n", fPythia->GetN());
fPythia->Pyexec();
fTrials++;
- fPythia->ImportParticles(fParticles,"All");
+ fPythia->ImportParticles(&fParticles,"All");
Boost();
//
//
Int_t i;
fNprimaries = 0;
- Int_t np = fParticles->GetEntriesFast();
+ Int_t np = fParticles.GetEntriesFast();
if (np == 0) continue;
//
fProcess != kPyBeautyppMNRwmi) {
for (i = 0; i < np; i++) {
- TParticle* iparticle = (TParticle *) fParticles->At(i);
+ TParticle* iparticle = (TParticle *) fParticles.At(i);
Int_t ks = iparticle->GetStatusCode();
kf = CheckPDGCode(iparticle->GetPdgCode());
// No initial state partons
if (kf >= fFlavorSelect && kf <= 6) {
Int_t idau = iparticle->GetFirstDaughter() - 1;
if (idau > -1) {
- TParticle* daughter = (TParticle *) fParticles->At(idau);
+ TParticle* daughter = (TParticle *) fParticles.At(idau);
Int_t pdgD = daughter->GetPdgCode();
if (pdgD == 91 || pdgD == 92) {
Int_t jmin = daughter->GetFirstDaughter() - 1;
Int_t jmax = daughter->GetLastDaughter() - 1;
for (Int_t j = jmin; j <= jmax; j++)
- ((TParticle *) fParticles->At(j))->SetFirstMother(i+1);
+ ((TParticle *) fParticles.At(j))->SetFirstMother(i+1);
} // is string or cluster
} // has daughter
} // heavy quark
if (ipa > -1) {
- TParticle * mother = (TParticle *) fParticles->At(ipa);
+ TParticle * mother = (TParticle *) fParticles.At(ipa);
kfMo = TMath::Abs(mother->GetPdgCode());
}
if (nc > 0) {
for (i = 0; i<np; i++) {
if (!pSelected[i]) continue;
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
kf = CheckPDGCode(iparticle->GetPdgCode());
Int_t ks = iparticle->GetStatusCode();
p[0] = iparticle->Px();
- Int_t np = (fHadronisation) ? fParticles->GetEntriesFast() : fNpartons;
+ Int_t np = (fHadronisation) ? fParticles.GetEntriesFast() : fNpartons;
Int_t* pParent = new Int_t[np];
for (i=0; i< np; i++) pParent[i] = -1;
if (fProcess == kPyJets || fProcess == kPyDirectGamma) {
- TParticle* jet1 = (TParticle *) fParticles->At(6);
- TParticle* jet2 = (TParticle *) fParticles->At(7);
+ TParticle* jet1 = (TParticle *) fParticles.At(6);
+ TParticle* jet2 = (TParticle *) fParticles.At(7);
if (!CheckTrigger(jet1, jet2)) {
delete [] pParent;
return 0;
else if (fPi0InCalo) pdg = 111 ; // Pi0
for (i=0; i< np; i++) {
- TParticle* iparticle = (TParticle *) fParticles->At(i);
+ TParticle* iparticle = (TParticle *) fParticles.At(i);
if(iparticle->GetStatusCode()==1 && iparticle->GetPdgCode()==pdg &&
iparticle->Pt() > fFragPhotonOrPi0MinPt){
Int_t imother = iparticle->GetFirstMother() - 1;
- TParticle* pmother = (TParticle *) fParticles->At(imother);
+ TParticle* pmother = (TParticle *) fParticles.At(imother);
if(pdg == 111 ||
(pdg == 22 && pmother->GetStatusCode() != 11))//No photon from hadron decay
{
if (fTriggerMultiplicity > 0) {
Int_t multiplicity = 0;
for (i = 0; i < np; i++) {
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
Int_t statusCode = iparticle->GetStatusCode();
Int_t pdg = 22;
Int_t iphcand = -1;
for (i=0; i< np; i++) {
- TParticle* iparticle = (TParticle *) fParticles->At(i);
+ TParticle* iparticle = (TParticle *) fParticles.At(i);
Float_t phi = iparticle->Phi()*180./TMath::Pi(); //Convert to degrees
Float_t eta =TMath::Abs(iparticle->Eta());//in calos etamin=-etamax
if (fTriggerParticle) {
Bool_t triggered = kFALSE;
for (i = 0; i < np; i++) {
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
kf = CheckPDGCode(iparticle->GetPdgCode());
if (kf != fTriggerParticle) continue;
if (iparticle->Pt() == 0.) continue;
Float_t yQ;
Int_t pdgQ;
for(i=0; i<np; i++) {
- hvq = (TParticle*)fParticles->At(i);
+ hvq = (TParticle*)fParticles.At(i);
pdgQ = hvq->GetPdgCode();
if(TMath::Abs(pdgQ) != fFlavorSelect) continue;
if(pdgQ>0) { theQ=kTRUE; } else { theQbar=kTRUE; }
for (i = 0; i < np; i++) {
Int_t trackIt = 0;
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
kf = CheckPDGCode(iparticle->GetPdgCode());
Int_t ks = iparticle->GetStatusCode();
Int_t km = iparticle->GetFirstMother();
Int_t nPartAcc = 0; //number of particles in the acceptance range
Int_t numberOfAcceptedParticles = 1;
if (fNumberOfAcceptedParticles != 0) { numberOfAcceptedParticles = fNumberOfAcceptedParticles; }
- Int_t npart = fParticles->GetEntriesFast();
+ Int_t npart = fParticles.GetEntriesFast();
for (j = 0; j<npart; j++) {
- TParticle * jparticle = (TParticle *) fParticles->At(j);
+ TParticle * jparticle = (TParticle *) fParticles.At(j);
kcode = TMath::Abs( CheckPDGCode(jparticle->GetPdgCode()) );
ks = jparticle->GetStatusCode();
km = jparticle->GetFirstMother();
Double_t phiPHOS = gRandom->Uniform(phiPHOSmin,phiPHOSmax);
//calculate deltaphi
- TParticle* ph = (TParticle *) fParticles->At(iphcand);
+ TParticle* ph = (TParticle *) fParticles.At(iphcand);
Double_t phphi = ph->Phi();
Double_t deltaphi = phiPHOS - phphi;
//loop for all particles and produce the phi rotation
- Int_t np = (fHadronisation) ? fParticles->GetEntriesFast() : fNpartons;
+ Int_t np = (fHadronisation) ? fParticles.GetEntriesFast() : fNpartons;
Double_t oldphi, newphi;
Double_t newVx, newVy, R, Vz, time;
Double_t newPx, newPy, pt, Pz, e;
for(Int_t i=0; i< np; i++) {
- TParticle* iparticle = (TParticle *) fParticles->At(i);
+ TParticle* iparticle = (TParticle *) fParticles.At(i);
oldphi = iparticle->Phi();
newphi = oldphi + deltaphi;
if(newphi < 0) newphi = 2*TMath::Pi() + newphi; // correct angle
// Set random number generator
if (!AliPythiaRndm::GetPythiaRandom())
AliPythiaRndm::SetPythiaRandom(GetRandom());
- fParticles = new TClonesArray("TParticle",1000);
SetNuclei(0,0);
}
// printf("Calling hadronisation %d\n", fPythia->GetN());
// fPythia->HadronizeEvent();
fTrials++;
- fPythia->GetParticles(fParticles);
+ fPythia->GetParticles(&fParticles);
Boost();
//
//
Int_t i;
fNprimaries = 0;
- Int_t np = fParticles->GetEntriesFast();
+ Int_t np = fParticles.GetEntriesFast();
if (np == 0) continue;
//
fProcess != kPyBeautyppMNRwmi) {
for (i = 0; i < np; i++) {
- TParticle* iparticle = (TParticle *) fParticles->At(i);
+ TParticle* iparticle = (TParticle *) fParticles.At(i);
Int_t ks = iparticle->GetStatusCode();
kf = CheckPDGCode(iparticle->GetPdgCode());
// No initial state partons
if (kf >= fFlavorSelect && kf <= 6) {
Int_t idau = (fPythia->Version() == 6) ? (iparticle->GetFirstDaughter() - 1) :(iparticle->GetFirstDaughter());
if (idau > -1) {
- TParticle* daughter = (TParticle *) fParticles->At(idau);
+ TParticle* daughter = (TParticle *) fParticles.At(idau);
Int_t pdgD = daughter->GetPdgCode();
if (pdgD == 91 || pdgD == 92) {
Int_t jmin = (fPythia->Version() == 6) ? (daughter->GetFirstDaughter() - 1) : (daughter->GetFirstDaughter());
Int_t jmax = (fPythia->Version() == 6) ? (daughter->GetLastDaughter() - 1) : (daughter->GetLastDaughter());
for (Int_t j = jmin; j <= jmax; j++)
- ((TParticle *) fParticles->At(j))->SetFirstMother(i+1);
+ ((TParticle *) fParticles.At(j))->SetFirstMother(i+1);
} // is string or cluster
} // has daughter
} // heavy quark
if (ipa > -1) {
- TParticle * mother = (TParticle *) fParticles->At(ipa);
+ TParticle * mother = (TParticle *) fParticles.At(ipa);
kfMo = TMath::Abs(mother->GetPdgCode());
}
if (nc > 0) {
for (i = 0; i < np; i++) {
if (!pSelected[i]) continue;
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
kf = CheckPDGCode(iparticle->GetPdgCode());
Int_t ks = iparticle->GetStatusCode();
p[0] = iparticle->Px();
// converts from mm/c to s
const Float_t kconv = 0.001 / 2.999792458e8;
- Int_t np = (fHadronisation) ? fParticles->GetEntriesFast() : fNpartons;
+ Int_t np = (fHadronisation) ? fParticles.GetEntriesFast() : fNpartons;
Int_t* pParent = new Int_t[np];
for (i=0; i< np; i++) pParent[i] = -1;
if (fProcess == kPyJets || fProcess == kPyDirectGamma) {
- TParticle* jet1 = (TParticle *) fParticles->At(6);
- TParticle* jet2 = (TParticle *) fParticles->At(7);
+ TParticle* jet1 = (TParticle *) fParticles.At(6);
+ TParticle* jet2 = (TParticle *) fParticles.At(7);
if (!CheckTrigger(jet1, jet2)) {
delete [] pParent;
return 0;
else if (fPi0InCalo) pdg = 111 ; // Pi0
for (i=0; i< np; i++) {
- TParticle* iparticle = (TParticle *) fParticles->At(i);
+ TParticle* iparticle = (TParticle *) fParticles.At(i);
if(iparticle->GetStatusCode()==1 && iparticle->GetPdgCode()==pdg &&
iparticle->Pt() > fFragPhotonOrPi0MinPt){
Int_t imother = (fPythia->Version() == 6) ? (iparticle->GetFirstMother() - 1) :(iparticle->GetFirstMother()) ;
- TParticle* pmother = (TParticle *) fParticles->At(imother);
+ TParticle* pmother = (TParticle *) fParticles.At(imother);
if(pdg == 111 ||
(pdg == 22 && pmother->GetStatusCode() != 11))//No photon from hadron decay
{
Int_t pdg = 22;
Int_t iphcand = -1;
for (i=0; i< np; i++) {
- TParticle* iparticle = (TParticle *) fParticles->At(i);
+ TParticle* iparticle = (TParticle *) fParticles.At(i);
Float_t phi = iparticle->Phi()*180./TMath::Pi(); //Convert to degrees
Float_t eta =TMath::Abs(iparticle->Eta());//in calos etamin=-etamax
if (fTriggerParticle) {
Bool_t triggered = kFALSE;
for (i = 0; i < np; i++) {
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
kf = CheckPDGCode(iparticle->GetPdgCode());
if (kf != fTriggerParticle) continue;
if (iparticle->Pt() == 0.) continue;
Float_t yQ;
Int_t pdgQ;
for(i=0; i<np; i++) {
- hvq = (TParticle*)fParticles->At(i);
+ hvq = (TParticle*)fParticles.At(i);
pdgQ = hvq->GetPdgCode();
if(TMath::Abs(pdgQ) != fFlavorSelect) continue;
if(pdgQ>0) { theQ=kTRUE; } else { theQbar=kTRUE; }
for (i = 0; i < np; i++) {
Int_t trackIt = 0;
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
kf = CheckPDGCode(iparticle->GetPdgCode());
Int_t ks = iparticle->GetStatusCode();
Int_t km = iparticle->GetFirstMother();
Int_t nPartAcc = 0; //number of particles in the acceptance range
Int_t numberOfAcceptedParticles = 1;
if (fNumberOfAcceptedParticles != 0) { numberOfAcceptedParticles = fNumberOfAcceptedParticles; }
- Int_t npart = fParticles->GetEntriesFast();
+ Int_t npart = fParticles.GetEntriesFast();
for (j = 0; j<npart; j++) {
- TParticle * jparticle = (TParticle *) fParticles->At(j);
+ TParticle * jparticle = (TParticle *) fParticles.At(j);
kcode = TMath::Abs( CheckPDGCode(jparticle->GetPdgCode()) );
ks = jparticle->GetStatusCode();
km = jparticle->GetFirstMother();
Double_t phiPHOS = gRandom->Uniform(phiPHOSmin,phiPHOSmax);
//calculate deltaphi
- TParticle* ph = (TParticle *) fParticles->At(iphcand);
+ TParticle* ph = (TParticle *) fParticles.At(iphcand);
Double_t phphi = ph->Phi();
Double_t deltaphi = phiPHOS - phphi;
//loop for all particles and produce the phi rotation
- Int_t np = (fHadronisation) ? fParticles->GetEntriesFast() : fNpartons;
+ Int_t np = (fHadronisation) ? fParticles.GetEntriesFast() : fNpartons;
Double_t oldphi, newphi;
Double_t newVx, newVy, R, Vz, time;
Double_t newPx, newPy, pt, Pz, e;
for(Int_t i=0; i< np; i++) {
- TParticle* iparticle = (TParticle *) fParticles->At(i);
+ TParticle* iparticle = (TParticle *) fParticles.At(i);
oldphi = iparticle->Phi();
newphi = oldphi + deltaphi;
if(newphi < 0) newphi = 2*TMath::Pi() + newphi; // correct angle
fSpecn(0),
fSpecp(0),
fDPMjet(0),
- fParticles(0),
fNoGammas(0),
fLHC(0),
fPi0Decay(0),
fSpecn(0),
fSpecp(0),
fDPMjet(0),
- fParticles(new TClonesArray("TParticle",10000)),
fNoGammas(0),
fLHC(0),
fPi0Decay(0),
fSpecn(0),
fSpecp(0),
fDPMjet(0),
- fParticles(0),
fNoGammas(0),
fLHC(0),
fPi0Decay(0),
AliGenDPMjet::~AliGenDPMjet()
{
// Destructor
- delete fParticles;
}
//______________________________________________________________________________
void AliGenDPMjet::Init()
fDPMjet->GenerateEvent();
fTrials++;
- fDPMjet->ImportParticles(fParticles,"All");
+ fDPMjet->ImportParticles(&fParticles,"All");
if (fLHC) Boost();
// Temporaneo
fGenImpPar = fDPMjet->GetBImpac();
- Int_t np = fParticles->GetEntriesFast();
+ Int_t np = fParticles.GetEntriesFast();
printf("\n **************************************************%d\n",np);
Int_t nc=0;
if (np==0) continue;
// First select parent particles
for (i = 0; i<np; i++) {
- TParticle *iparticle = (TParticle *) fParticles->At(i);
+ TParticle *iparticle = (TParticle *) fParticles.At(i);
// Is this a parent particle ?
for (i=0; i<np; i++) {
- TParticle *iparticle = (TParticle *) fParticles->At(i);
+ TParticle *iparticle = (TParticle *) fParticles.At(i);
// Is this a final state particle ?
// Write particles to stack
for (i = 0; i<np; i++) {
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
Bool_t hasMother = (iparticle->GetFirstMother()>=0);
if (pSelected[i]) {
TParticle* mother = 0;
if (hasMother) {
imo = iparticle->GetFirstMother();
- mother = (TParticle *) fParticles->At(imo);
+ mother = (TParticle *) fParticles.At(imo);
imo = (mother->GetPdgCode() != 92) ? newPos[imo] : -1;
} // if has mother
imin = iparticle->GetFirstDaughter();
imax = iparticle->GetLastDaughter();
for (i = imin; i <= imax; i++){
- TParticle * jparticle = (TParticle *) fParticles->At(i);
+ TParticle * jparticle = (TParticle *) fParticles.At(i);
Int_t ip = jparticle->GetPdgCode();
if (KinematicSelection(jparticle,0)&&SelectFlavor(ip)) {
selected=kTRUE; break;
fNoHeavyQuarks(kFALSE)
{
// Constructor
- fParticles = 0;
AliHijingRndm::SetHijingRandom(GetRandom());
}
fName = "Hijing";
fTitle= "Particle Generator using HIJING";
//
- fParticles = new TClonesArray("TParticle",10000);
//
// Set random number generator
AliHijingRndm::SetHijingRandom(GetRandom());
// Destructor
if ( fDsigmaDb) delete fDsigmaDb;
if ( fDnDb) delete fDnDb;
- delete fParticles;
}
void AliGenHijing::Init()
fHijing->GenerateEvent();
fTrials++;
fNprimaries = 0;
- fHijing->ImportParticles(fParticles,"All");
+ fHijing->ImportParticles(&fParticles,"All");
if (fTrigger != kNoTrigger) {
if (!CheckTrigger()) continue;
}
if (fLHC) Boost();
- Int_t np = fParticles->GetEntriesFast();
+ Int_t np = fParticles.GetEntriesFast();
printf("\n **************************************************%d\n",np);
Int_t nc = 0;
if (np == 0 ) continue;
// Get event vertex
//
- TParticle * iparticle = (TParticle *) fParticles->At(0);
+ TParticle * iparticle = (TParticle *) fParticles.At(0);
fVertex[0] = origin0[0];
fVertex[1] = origin0[1];
fVertex[2] = origin0[2];
//
for (i = 0; i < np; i++) {
- iparticle = (TParticle *) fParticles->At(i);
+ iparticle = (TParticle *) fParticles.At(i);
// Is this a parent particle ?
if (Stable(iparticle)) continue;
//
for (i = 0; i<np; i++) {
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
// Is this a final state particle ?
if (!Stable(iparticle)) continue;
// Write particles to stack
for (i = 0; i<np; i++) {
- TParticle * iparticle = (TParticle *) fParticles->At(i);
+ TParticle * iparticle = (TParticle *) fParticles.At(i);
Bool_t hasMother = (iparticle->GetFirstMother() >=0);
Bool_t hasDaughter = (iparticle->GetFirstDaughter() >=0);
if (pSelected[i]) {
TParticle* mother = 0;
if (hasMother) {
imo = iparticle->GetFirstMother();
- mother = (TParticle *) fParticles->At(imo);
+ mother = (TParticle *) fParticles.At(imo);
imo = (mother->GetPdgCode() != 92) ? newPos[imo] : -1;
} // if has mother
Bool_t tFlag = (fTrackIt && !hasDaughter);
imin = iparticle->GetFirstDaughter();
imax = iparticle->GetLastDaughter();
for (i = imin; i <= imax; i++){
- TParticle * jparticle = (TParticle *) fParticles->At(i);
+ TParticle * jparticle = (TParticle *) fParticles.At(i);
Int_t ip = jparticle->GetPdgCode();
if (KinematicSelection(jparticle,0)&&SelectFlavor(ip)) {
selected=kTRUE; break;
} else if (fTrigger == 2) {
// Gamma Jet
//
- Int_t np = fParticles->GetEntriesFast();
+ Int_t np = fParticles.GetEntriesFast();
for (Int_t i = 0; i < np; i++) {
- TParticle* part = (TParticle*) fParticles->At(i);
+ TParticle* part = (TParticle*) fParticles.At(i);
Int_t kf = part->GetPdgCode();
Int_t ksp = part->GetUniqueID();
if (kf == 22 && ksp == 40) {
fBWDelay(0.0)
{
// Default constructor
- fParticles = new TClonesArray("TParticle",20000);
}
AliGenTherminator::AliGenTherminator(Int_t npart):
AliGenMC(npart),
fBWDelay(0.0)
{
// Constructor specifying the size of the particle table
- fParticles = new TClonesArray("TParticle",20000);
fNprimaries = 0;
}
((TTherminator *) fMCEvGen)->GenerateEvent();
AliWarning("Generated");
- ((TTherminator *) fMCEvGen)->ImportParticles(fParticles);
+ ((TTherminator *) fMCEvGen)->ImportParticles(&fParticles);
- Int_t np = fParticles->GetEntriesFast();
+ Int_t np = fParticles.GetEntriesFast();
AliWarning(Form("Imported %d particles", np));
TParticle *iparticle;
Double_t evrot = gRandom->Rndm()*TMath::Pi();
for (int i = 0; i < np; i++) {
- iparticle = (TParticle *) fParticles->At(i);
+ iparticle = (TParticle *) fParticles.At(i);
Bool_t hasMother = (iparticle->GetFirstMother() >=0);
Bool_t hasDaughter = (iparticle->GetFirstDaughter() >=0);
TParticle* mother = 0;
if (hasMother) {
imo = iparticle->GetFirstMother();
- mother = (TParticle *) fParticles->At(imo);
+ mother = (TParticle *) fParticles.At(imo);
} // if has mother
Bool_t tFlag = (!hasDaughter);