/*
$Log$
+Revision 1.8 2003/01/14 10:50:18 alibrary
+Cleanup of STEER coding conventions
+
Revision 1.7 2002/02/08 16:50:50 morsch
Add name and title in constructor.
//
for (j=0;j<3;j++) origin[j]=fOrigin[j];
if(fVertexSmear==kPerEvent) {
- Rndm(random,6);
- for (j=0;j<3;j++) {
- origin[j]+=fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())*
- TMath::Sqrt(-2*TMath::Log(random[2*j+1]));
- }
+ Vertex();
+ for (j=0;j<3;j++) origin[j]=fVertex[j];
}
+
for(i=0;i<fNpart;i++) {
Rndm(random,3);
theta=fThetaMin+random[0]*(fThetaMax-fThetaMin);
/*
$Log$
+Revision 1.18 2003/03/24 16:38:40 morsch
+Bug corrected.
+
Revision 1.17 2003/03/24 15:58:27 morsch
FinishRun() implemented.
Generator->SetThetaRange(fThetaMin*180/TMath::Pi(),fThetaMax*180/TMath::Pi());
if (!(Generator->TestBit(kVertexRange)))
Generator->SetOrigin(fOrigin[0], fOrigin[1], fOrigin[2]);
- Generator->
- SetSigma(fOsigma[0], fOsigma[1], fOsigma[2]);
+
+ Generator->SetSigma(fOsigma[0], fOsigma[1], fOsigma[2]);
Generator->SetVertexSmear(fVertexSmear);
- Generator->SetTrackingFlag(fTrackIt);
+ Generator->SetVertexSource(kContainer);
+ Generator->SetTrackingFlag(fTrackIt);
//
// Add generator to list
AliGenerator* gen = 0;
TObjArray *partArray = gAlice->Particles();
- //
+
+//
+// Generate the vertex position used by all generators
+//
+ if(fVertexSmear == kPerEvent) Vertex();
+
+
+ //
// Loop over generators and generate events
Int_t igen=0;
Fatal("Generate()", "No Collision Geometry Provided");
}
}
-
+ entry->Generator()->SetVertex(fVertex.At(0), fVertex.At(1), fVertex.At(2));
entry->Generator()->Generate();
entry->SetLast(partArray->GetEntriesFast());
preventry = entry;
/*
$Log$
+Revision 1.21 2003/03/15 19:48:01 morsch
+AliDecayerPythia replaced by AliDecayer
+
Revision 1.20 2003/01/28 15:29:07 morsch
Spelling in name corrected.
for (j=0;j<3;j++) origin[j]=fOrigin[j];
if(fVertexSmear == kPerEvent) {
- Float_t dv[3];
- dv[2] = 1.e10;
- while(TMath::Abs(dv[2]) > fCutVertexZ*fOsigma[2]) {
- Rndm(random,6);
- for (j=0; j < 3; j++) {
- dv[j] = fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())*
- TMath::Sqrt(-2*TMath::Log(random[2*j+1]));
- }
- }
- for (j=0; j < 3; j++) origin[j] += dv[j];
+ Vertex();
+ for (j=0; j < 3; j++) origin[j] = fVertex[j];
} // if kPerEvent
TArrayF eventVertex;
eventVertex.Set(3);
/*
$Log$
+Revision 1.3 2003/06/26 08:45:22 morsch
+- Vertex using Vertex() method.
+- Use member data in GetNumberOfSlowNucleons call.
+
Revision 1.2 2003/03/25 09:55:24 morsch
Numbers of slow nucleons either from model or user set.
#include <TDatabasePDG.h>
#include <TPDGCode.h>
#include <TH2F.h>
+#include <TCanvas.h>
#include "AliCollisionGeometry.h"
#include "AliGenSlowNucleons.h"
fMomentum = fCMS/2. * fZTarget / fATarget;
fBeta = fMomentum / TMath::Sqrt(kMass * kMass + fMomentum * fMomentum);
if (fDebug) {
- fDebugHist = new TH2F("DebugHist", "N_heavy vs nu", 50, 0., 50., 50, 0., 50.);
+ fDebugHist1 = new TH2F("DebugHist1", "nu vs N_slow", 100, 0., 100., 20, 0., 20.);
+ fDebugHist2 = new TH2F("DebugHist2", "b vs N_slow", 100, 0., 100., 15, 0., 15.);
}
}
void AliGenSlowNucleons::FinishRun()
{
if (fDebug) {
- fDebugHist->Draw();
+ TCanvas *c = new TCanvas("c","Canvas 1",400,10,600,700);
+ c->Divide(2,1);
+ c->cd(1);
+ fDebugHist1->Draw();
+ c->cd(2);
+ fDebugHist2->Draw();
}
}
fSlowNucleonModel->GetNumberOfSlowNucleons(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
if (fDebug) {
printf("Nucleons %d %d %d %d \n", fNgp, fNgn, fNbp, fNbn);
- fDebugHist->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), fCollisionGeometry->NwN(), 1.);
+ fDebugHist1->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), fCollisionGeometry->NwN(), 1.);
+ fDebugHist2->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), b, 1.);
printf("AliGenSlowNucleons: Impact parameter from Collision Geometry %f %d %d %d %d\n",
b, nn, nwn, nnw, nwnw);
}
Int_t fNbp; // Number of black protons
Int_t fNbn; // Number of black neutrons
Int_t fDebug; // Debug flag
- TH2F* fDebugHist; // Histogram for debugging
+ TH2F* fDebugHist1; // Histogram for debugging
+ TH2F* fDebugHist2; // Histogram for debugging
//
AliSlowNucleonModel* fSlowNucleonModel; // The slow nucleon model