#include <TObjArray.h>
#include <TPDGCode.h>
#include <TParticle.h>
+#include <TDatabasePDG.h>
#include <TROOT.h>
#include "AliRun.h"
+using std::cout;
+using std::endl;
ClassImp(AliGenGeVSim)
//////////////////////////////////////////////////////////////////////////////////
fPhiFormula(0),
fCurrentForm(0),
fPtYHist(0),
- fPartTypes(0) {
+ fPartTypes(0)
+{
//
// Default constructor
//
//////////////////////////////////////////////////////////////////////////////////
-AliGenGeVSim::AliGenGeVSim(Float_t psi, Bool_t isMultTotal) : AliGenerator(-1) {
+AliGenGeVSim::AliGenGeVSim(Float_t psi, Bool_t isMultTotal)
+ : AliGenerator(-1),
+ fModel(0),
+ fPsi(psi),
+ fIsMultTotal(isMultTotal),
+ fPtFormula(0),
+ fYFormula(0),
+ fPhiFormula(0),
+ fCurrentForm(0),
+ fPtYHist(0),
+ fPartTypes(0)
+ {
//
// Standard Constructor.
//
// checking consistancy
if (psi < 0 || psi > 360 )
- Error ("AliGenGeVSim", "Reaction plane angle ( %d )out of range [0..360]", psi);
+ Error ("AliGenGeVSim", "Reaction plane angle ( %13.3f )out of range [0..360]", psi);
fPsi = psi * TMath::Pi() / 180. ;
fIsMultTotal = isMultTotal;
- // initialization
+ // Initialization
fPartTypes = new TObjArray();
InitFormula();
// mass -> [0] , temperature -> [1] , expansion velocity -> [2]
Double_t aFormE = TMath::Sqrt(par[0]*par[0] + x[0]*x[0]) * TMath::CosH(x[1]);
- Double_t aFormG = 1 / TMath::Sqrt( 1 - par[2]*par[2] );
+ Double_t aFormG = 1 / TMath::Sqrt((1.-par[2])*(1.+par[2]));
Double_t aFormYp = par[2]*TMath::Sqrt( (par[0]*par[0] + x[0]*x[0])
- * TMath::CosH(x[1])*TMath::CosH(x[1])
- - par[0]*par[0] )
- /( par[1]*TMath::Sqrt(1-par[2]*par[2]));
+ * (TMath::CosH(x[1])-par[0])*(TMath::CosH(x[1])+par[0]))
+ /( par[1]*TMath::Sqrt((1.-par[2])*(1.+par[2])));
return x[0] * aFormE * TMath::Exp( - aFormG * aFormE / par[1])
*( TMath::SinH(aFormYp)/aFormYp
form = 0;
- if (i == 0) sprintf(buffer, patt1, params[paramId], ending[j]);
- else sprintf(buffer, patt2, pdg, params[paramId], ending[j]);
+ if (i == 0) snprintf(buffer, 80, patt1, params[paramId], ending[j]);
+ else snprintf(buffer, 80, patt2, pdg, params[paramId], ending[j]);
form = (TF1 *)gROOT->GetFunction(buffer);
if (!fCurrentForm) {
- sprintf(buff, pattern[1], pdg);
+ snprintf(buff, 40, pattern[1], pdg);
fCurrentForm = (TF2*)gROOT->GetFunction(buff);
if (!fCurrentForm) Error(where, msg[0], pdg);
if (!fHist[i]) {
- sprintf(buff, pattern[3+2*i], pdg);
+ snprintf(buff, 40, pattern[3+2*i], pdg);
fHist[i] = (TH1D*)gROOT->FindObject(buff);
if (!fHist[i]) Error(where, msg[1+i], pdg);
if (!fPtYHist) {
- sprintf(buff, pattern[7], pdg);
+ snprintf(buff, 40, pattern[7], pdg);
fPtYHist = (TH2D*)gROOT->FindObject(buff);
}
orgin[0] = fVertex[0];
orgin[1] = fVertex[1];
orgin[2] = fVertex[2];
-
+ time = fTime;
// Particle params database
TArrayF eventVertex(3,orgin);
header->SetPrimaryVertex(eventVertex);
+ header->SetInteractionTime(time);
header->SetEventPlane(fPsi);
header->SetEllipticFlow(fPhiFormula->GetParameter(2));