UA1 jet finder (Pycell) for software triggering added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 9 Dec 2002 08:22:56 +0000 (08:22 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 9 Dec 2002 08:22:56 +0000 (08:22 +0000)
EVGEN/AliGenPythia.cxx
EVGEN/AliGenPythia.h
EVGEN/AliPythia.cxx
EVGEN/AliPythia.h

index 3ce43d5f08d028dd22dee602c3e6d157b76928b9..4f27fb7c504e1cbc0092dfc131ec6611ff3cc938 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.65  2002/11/19 08:57:10  morsch
+Configuration of pt-kick added.
+
 Revision 1.64  2002/11/15 00:43:06  morsch
 Changes for kPyJets
 - initial and final state g-radiation + pt-kick default
@@ -324,7 +327,6 @@ void AliGenPythia::Init()
       fPythia->SetMSTP(111,0);
     }
 
-    fPythia->ProcInit(fProcess,fEnergyCMS,fStrucFunc);
 
 //  initial state radiation   
     fPythia->SetMSTP(61,fGinit);
@@ -337,8 +339,11 @@ void AliGenPythia::Init()
     } else {
        fPythia->SetMSTP(91,0);
     }
-    
+
+ //   fPythia->SetMSTJ(1,2);
  //
+    fPythia->ProcInit(fProcess,fEnergyCMS,fStrucFunc);
+
 //  Parent and Children Selection
     switch (fProcess) 
     {
@@ -752,7 +757,7 @@ void AliGenPythia::MakeHeader()
     {
        Int_t ntrig, njet;
        Float_t jets[4][10];
-       GetJets(5.0, 1, njet, ntrig, jets);
+       GetJets(5., 1, njet, ntrig, jets);
        for (Int_t i = 0; i < ntrig; i++) {
            ((AliGenPythiaEventHeader*) header)->AddJet(jets[0][i], jets[1][i], jets[2][i], 
                                                        jets[3][i]);
@@ -848,6 +853,46 @@ void  AliGenPythia::LoadEvent()
     }
 }
 
+void AliGenPythia::RecJetsUA1(Float_t eCellMin, Float_t eCellSeed, Float_t eMin, Float_t rMax, 
+                             Int_t& njets, Float_t jets [4][50])
+{
+//
+//  Calls the Pythia jet finding algorithm to find jets in the current event
+//
+//
+//  Configure detector (EMCAL like)
+//
+    fPythia->SetPARU(51,2.);
+    fPythia->SetMSTU(51,Int_t(96 * 2./0.7));
+    fPythia->SetMSTU(52,3 * 144);
+//
+//  Configure Jet Finder
+//  
+    fPythia->SetPARU(58, eCellMin);
+    fPythia->SetPARU(52, eCellSeed);
+    fPythia->SetPARU(53, eMin);
+    fPythia->SetPARU(54, rMax);
+    fPythia->SetMSTU(54, 2);
+//
+//  Save jets
+    Int_t n     = fPythia->GetN();
+
+//
+//  Run Jet Finder
+    fPythia->Pycell(njets);
+    Int_t i;
+    for (i = 0; i < njets; i++) {
+       Float_t px    = (fPythia->GetPyjets())->P[0][n+i];
+       Float_t py    = (fPythia->GetPyjets())->P[1][n+i];
+       Float_t pz    = (fPythia->GetPyjets())->P[2][n+i];
+       Float_t e     = (fPythia->GetPyjets())->P[3][n+i];
+       jets[0][i] = px;
+       jets[1][i] = py;
+       jets[2][i] = pz;
+       jets[3][i] = e;
+    }
+}
+
 
 void  AliGenPythia::GetJets(Float_t dist, Int_t part, Int_t& nJets, Int_t& nJetsTrig, Float_t jets[4][10])
 {
@@ -893,6 +938,7 @@ void  AliGenPythia::GetJets(Float_t dist, Int_t part, Int_t& nJets, Int_t& nJets
            jets[2][nJetsTrig] = pz;
            jets[3][nJetsTrig] = e;
            nJetsTrig++;
+//         if (et > 55.) fPythia->Pylist(1);
            
        } else {
 //         printf("\n........-Jet #%d: %10.3f %10.3f %10.3f %10.3f \n", i, pt, et, eta, phi * kRaddeg);
index e0de07fe762e58a616129481ff5b78fe75a6f011..81797536673116044f3ccdcbc16eff3082279cfe 100644 (file)
@@ -87,6 +87,8 @@ class AliGenPythia : public AliGenMC
     virtual Float_t GetXsection() const {return fXsection;}
     // get triggered jets
     void GetJets(Float_t dist, Int_t part, Int_t& njets, Int_t& ntrig, Float_t[4][10]);
+    void RecJetsUA1(Float_t eCellMin, Float_t eCellSeed, Float_t eMin, Float_t rMin, 
+                   Int_t& njets, Float_t jets[4][50]);    
     void LoadEvent();
     // Getters
     virtual Process_t    GetProcess() {return fProcess;}
index 9043ead307ca6cde6f6f7d07ac7057a707416c87..b6745b6cf93ae2147c538423d18162b42b354337 100644 (file)
 
 /*
 $Log$
+Revision 1.27  2002/11/15 00:39:37  morsch
+- Correct initialisation of sRandom.
+- QCD Jets with initial and final state gluon radiation is default
+- pt kick for jets default
+- Interface to Pyclus added.
+
 Revision 1.26  2002/11/14 00:37:32  morsch
 Warning message for kPyJets added.
 
@@ -99,13 +105,16 @@ ClassImp(AliPythia)
 
 #ifndef WIN32
 # define pyclus pyclus_
+# define pycell pycell_
 # define type_of_call
 #else
 # define pyclus PYCLUS
+# define pycell PYCELL
 # define type_of_call _stdcall
 #endif
 
 extern "C" void type_of_call pyclus(Int_t & );
+extern "C" void type_of_call pycell(Int_t & );
 
 //_____________________________________________________________________________
 
@@ -410,6 +419,13 @@ void  AliPythia::Pyclus(Int_t& njet)
     pyclus(njet);
 }
 
+void  AliPythia::Pycell(Int_t& njet)
+{
+//  Call Pythia jet reconstruction algorithm
+//
+    pycell(njet);
+}
+
 
 
 #ifndef WIN32
@@ -417,11 +433,13 @@ void  AliPythia::Pyclus(Int_t& njet)
 #define pyrset pyrset_
 #define pyrget pyrget_
 #define pyclus pyclus_
+#define pycell pycell_
 #else
 #define pyr    PYR
 #define pyrset PYRSET
 #define pyrget PYRGET
 #define pyclus PYCLUS
+#define pycell PYCELL
 #endif
 
 extern "C" {
index 9ba4e35fe7dbef85e1ad87901500516c2f7163a5..a71b7fd927f73aa6d1472d90ef33aecfefe386c0 100644 (file)
@@ -9,7 +9,9 @@
 #include <AliRndm.h>
 #include <AliStructFuncType.h>
 typedef enum
-{kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced, kPyJpsi, kPyJpsiChi, kPyMb, kPyMbNonDiffr, kPyJets, kPyDirectGamma, kPyCharmPbMNR, kPyD0PbMNR, kPyBeautyPbMNR}
+{kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced,
+ kPyJpsi, kPyJpsiChi, kPyMb, kPyMbNonDiffr, kPyJets, kPyDirectGamma,
+ kPyCharmPbMNR, kPyD0PbMNR, kPyBeautyPbMNR}
 Process_t;
 /*
 typedef enum
@@ -45,6 +47,7 @@ class AliPythia : public TPythia6, public AliRndm
     virtual void PrintParticles();
     virtual void ResetDecayTable();
     virtual void SetDecayTable();
+    virtual void Pycell(Int_t& nclus);
     virtual void Pyclus(Int_t& nclus);
     // return instance of the singleton
     static  AliPythia* Instance();