Improved common vertex handling in cocktails.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Jun 2003 10:27:43 +0000 (10:27 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Jun 2003 10:27:43 +0000 (10:27 +0000)
EVGEN/AliGenBox.cxx
EVGEN/AliGenCocktail.cxx
EVGEN/AliGenHIJINGpara.cxx
EVGEN/AliGenSlowNucleons.cxx
EVGEN/AliGenSlowNucleons.h

index 72a7259..fbc1e15 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $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.
 
@@ -115,12 +118,10 @@ void AliGenBox::Generate()
   //
     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);
index f8ef758..2edcaba 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $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.
 
@@ -120,10 +123,11 @@ AddGenerator(AliGenerator *Generator, char* Name, Float_t RateExp)
        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   
     
@@ -167,7 +171,14 @@ AddGenerator(AliGenerator *Generator, char* Name, Float_t RateExp)
     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;
     
@@ -191,7 +202,7 @@ AddGenerator(AliGenerator *Generator, char* Name, Float_t RateExp)
                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;
index e0003fc..3e78610 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $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.
 
@@ -362,16 +365,8 @@ void AliGenHIJINGpara::Generate()
     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);
index 115230e..3599590 100644 (file)
 
 /*
 $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.
 
@@ -32,6 +36,7 @@ Slow nucleon generator and model.
 #include <TDatabasePDG.h>
 #include <TPDGCode.h>
 #include <TH2F.h>
+#include <TCanvas.h>
 
 #include "AliCollisionGeometry.h"
 #include "AliGenSlowNucleons.h"
@@ -80,14 +85,20 @@ void AliGenSlowNucleons::Init()
     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();
     }
 }
 
@@ -110,7 +121,8 @@ void AliGenSlowNucleons::Generate()
        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);
        }
index 9ba2c63..f98875c 100644 (file)
@@ -58,7 +58,8 @@ public:
     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