New code for Flow physics (S.Radomski)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Nov 2002 08:38:49 +0000 (08:38 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Nov 2002 08:38:49 +0000 (08:38 +0000)
EVGEN/AliGenGeVSim.cxx
EVGEN/AliGenGeVSim.h
EVGEN/AliGenGeVSimEventHeader.cxx [new file with mode: 0644]
EVGEN/AliGenGeVSimEventHeader.h [new file with mode: 0644]
EVGEN/EVGENLinkDef.h
EVGEN/libEVGEN.pkg

index 45e01b2..6f49ce9 100644 (file)
@@ -49,7 +49,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
-#include <Riostream.h>
+#include <iostream.h>
 
 #include "TROOT.h"
 #include "TCanvas.h"
@@ -66,6 +66,7 @@
 
 #include "AliGenGeVSim.h"
 #include "AliGeVSimParticle.h"
+#include "AliGenGeVSimEventHeader.h"
 
 
 ClassImp(AliGenGeVSim);
@@ -110,7 +111,7 @@ AliGenGeVSim::AliGenGeVSim(Float_t psi, Bool_t isMultTotal) : AliGenerator(-1) {
   if (psi < 0 || psi > 360 ) 
     Error ("AliGenGeVSim", "Reaction plane angle ( %d )out of range [0..360]", psi);
 
-  fPsi = psi * 2 * TMath::Pi() / 360. ;
+  fPsi = psi * TMath::Pi() / 180. ;
   fIsMultTotal = isMultTotal;
 
   // initialization 
@@ -380,11 +381,14 @@ void AliGenGeVSim::DetermineReactionPlane() {
   
   form = 0;
   form = (TF1 *)gROOT->GetFunction("gevsimPsi");
-  if (form) fPsi = form->Eval(gAlice->GetEvNumber());
+  if (form) fPsi = form->Eval(gAlice->GetEvNumber()) * TMath::Pi() / 180;
   
   form = 0;
   form = (TF1 *)gROOT->GetFunction("gevsimPsiRndm");
-  if (form) fPsi = form->GetRandom();
+  if (form) fPsi = form->GetRandom() * TMath::Pi() / 180;
+
+  
+  cout << "Psi = " << fPsi << "\t" << (Int_t)(fPsi*180./TMath::Pi()) << endl;
   
   fPhiFormula->SetParameter(0, fPsi);
 }
@@ -534,7 +538,7 @@ void AliGenGeVSim::SetFormula(Int_t pdg) {
       fPtYHist = (TH2D*)gROOT->FindObject(buff);
     }
 
-    if (!fPtYHist) Error(where, msg[3], pdg);
+    if (!fPtYHist) Error(where, msg[4], pdg);
   }
 
 }
@@ -791,6 +795,17 @@ void AliGenGeVSim::Generate() {
     }
   }
 
+  // prepare and store header
+
+  AliGenGeVSimEventHeader *header = new AliGenGeVSimEventHeader("GeVSim header");
+  TArrayF eventVertex(3,orgin);
+
+  header->SetPrimaryVertex(eventVertex);
+  header->SetEventPlane(fPsi);
+  header->SetEllipticFlow(fPhiFormula->GetParameter(2));
+
+  gAlice->SetGenEventHeader(header);
+
   delete v;
 }
 
index 9e8b84c..08848bc 100644 (file)
@@ -87,7 +87,7 @@ class AliGenGeVSim : public AliGenerator {
 
   TF1 *fPtFormula;           //! Pt formula for model (1)
   TF1 *fYFormula;            //! Y formula for model (1)
-  TF2 *fPtYFormula[4];       //! Pt,Y formulae for model (2)-(4)
+  TF2 *fPtYFormula[3];       //! Pt,Y formulae for model (2)-(4)
   TF1 *fPhiFormula;          //! phi formula 
   
   TFormula *fCurrentForm;    //! currently used formula
diff --git a/EVGEN/AliGenGeVSimEventHeader.cxx b/EVGEN/AliGenGeVSimEventHeader.cxx
new file mode 100644 (file)
index 0000000..f852cea
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// Event header for GeVSim event generator
+// support event plane and elliptic flow
+// in next release will suport full differential 
+// directed and elliptic flow
+//
+// Sylwester Radomski, GSI
+// mail: S.Radomski@gsi
+// 31 Oct, 2002
+//
+//
+
+#include "AliGenGeVSimEventHeader.h"
+
+
+ClassImp(AliGenGeVSimEventHeader);
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+AliGenGeVSimEventHeader::AliGenGeVSimEventHeader()
+  :AliGenEventHeader() {
+  //
+  // Default Constructor 
+  //
+
+  fEventPlane = 0;
+  fEllipticFlow = 0;
+}
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+AliGenGeVSimEventHeader::AliGenGeVSimEventHeader(const char *name)
+  :AliGenEventHeader(name) {
+  //
+  // Standard constructor
+  //
+  
+  fEventPlane = 0;
+  fEllipticFlow = 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+void AliGenGeVSimEventHeader::SetEventPlane(Float_t psi) {
+  //
+  // Psi in rad.
+  //
+
+  fEventPlane = psi;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+void AliGenGeVSimEventHeader::SetEllipticFlow(Float_t v2) {
+  //
+  // Set elliptic flow
+  //
+
+  fEllipticFlow = v2;
+}
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/EVGEN/AliGenGeVSimEventHeader.h b/EVGEN/AliGenGeVSimEventHeader.h
new file mode 100644 (file)
index 0000000..a5db286
--- /dev/null
@@ -0,0 +1,47 @@
+#ifndef AliGenGeVSimEventHeader_h
+#define AliGenGeVSimEventHeader_h
+
+//
+// Event header for GeVSim event generator
+// support event plane and elliptic flow
+// in next release will suport full differential 
+// directed and elliptic flow
+//
+// Sylwester Radomski, GSI
+// mail: S.Radomski@gsi
+// 31 Oct, 2002
+//
+
+#include "AliGenEventHeader.h"
+
+
+class AliGenGeVSimEventHeader: public AliGenEventHeader {
+
+ public:
+  
+  //Constructors
+  AliGenGeVSimEventHeader();
+  AliGenGeVSimEventHeader(const char *name);
+  ~AliGenGeVSimEventHeader() {}
+
+  //Getters
+  Float_t GetEventPlane() const {return fEventPlane;}
+  Float_t GetEllipticFlow(Int_t pdg) const {return fEllipticFlow;}
+
+  //Setters
+  void SetEventPlane(Float_t psi);
+  void SetEllipticFlow(Float_t v2);
+
+ private:
+  
+  Float_t fEventPlane;       // event plane in rad.
+  Float_t fEllipticFlow;     // elliptic flow (fast solution)
+
+ public:
+  ClassDef(AliGenGeVSimEventHeader, 1) // Event Header for GeVSim
+
+};
+
+
+
+#endif
index 7674267..26af9b7 100644 (file)
@@ -54,6 +54,7 @@
 #pragma link C++ class  AliGenReaderEcalHijing++;
 #pragma link C++ class  AliGenReaderEcalJets++;
 #pragma link C++ class  AliGenGeVSim+;
+#pragma link C++ class  AliGenGeVSimEventHeader+;
 #pragma link C++ class  AliGeVSimParticle+;
 #pragma link C++ class  AliGenBeamGas+;
 #pragma link C++ class  AliGenAfterBurnerFlow+;
index 8bf5cde..17402cd 100644 (file)
@@ -20,7 +20,8 @@ SRCS          = AliGenHIJINGpara.cxx AliGenBox.cxx AliGenFixed.cxx \
                AliGenThetaSlice.cxx AliGenSTRANGElib.cxx AliGenBeamGas.cxx\
                AliGenAfterBurnerFlow.cxx \
                AliPartonicEnergyLoss.cxx AliGenHerwig.cxx \
-               AliStructFuncType.cxx AliGenGrayParticles.cxx
+               AliStructFuncType.cxx AliGenGrayParticles.cxx \
+               AliGenGeVSimEventHeader.cxx
 
 # Headerfiles for this particular package (Path respect to own directory)
 HDRS= $(SRCS:.cxx=.h)