Pythia Event Weight modifications
authorlcunquei <lcunquei@cern.ch>
Thu, 20 Nov 2014 20:13:44 +0000 (21:13 +0100)
committerlcunquei <lcunquei@cern.ch>
Sat, 22 Nov 2014 11:04:03 +0000 (12:04 +0100)
15 files changed:
ANALYSIS/macros/train/AddMCGenPythia.C
ANALYSIS/macros/train/AddMCGenQuench.C
PWGJE/CMakelibPWGJEEMCALJetTasks.pkg
PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJet.cxx
PWGJE/EMCALJetTasks/AliJetContainer.cxx
PWGJE/EMCALJetTasks/AliJetContainer.h
PWGJE/EMCALJetTasks/AliJetEmbeddingFromGenTask.cxx
PWGJE/EMCALJetTasks/AliJetModelBaseTask.cxx
PWGJE/EMCALJetTasks/AliJetModelBaseTask.h
PWGJE/EMCALJetTasks/AliPythiaInfo.cxx [new file with mode: 0644]
PWGJE/EMCALJetTasks/AliPythiaInfo.h [new file with mode: 0644]
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalQGTagging.cxx
PWGJE/EMCALJetTasks/macros/AddTaskEmcalQGTagging.C
PWGJE/EMCALJetTasks/macros/AddTaskJetEmbeddingFromGen.C
PWGJE/PWGJEEMCALJetTasksLinkDef.h

index 4e8b7d0..494a8ff 100644 (file)
@@ -1,16 +1,16 @@
-AliGenerator* AddMCGenPythia(Float_t e_cms = 2760., Double_t ptHardMin = 0., Double_t ptHardMax = 1., Int_t tune = 2,Int_t cr=1) 
+AliGenerator* AddMCGenPythia(Float_t e_cms = 2760., Double_t ptHardMin = 0., Double_t ptHardMax = 1., Int_t tune = 2,Int_t cr=1,Int_t ptWeight=0) 
 {
   //Add Pythia generator: pt-hard bin or min bias
 
   gSystem->Load("liblhapdf.so");
  
   AliGenerator *genP = NULL;
-  genP = CreatePythia6Gen(e_cms, ptHardMin, ptHardMax, tune,cr);
+  genP = CreatePythia6Gen(e_cms, ptHardMin, ptHardMax, tune,cr,ptWeight);
   
   return genP;
 }
 
-AliGenerator* CreatePythia6Gen(Float_t e_cms, Int_t ptHardMin, Int_t ptHardMax, Int_t tune, Int_t cr) {
+AliGenerator* CreatePythia6Gen(Float_t e_cms, Int_t ptHardMin, Int_t ptHardMax, Int_t tune, Int_t cr,Int_t ptWeight) {
     
   gSystem->Load("libpythia6.4.25.so");
   gSystem->Load("libEGPythia6.so");
@@ -29,8 +29,10 @@ AliGenerator* CreatePythia6Gen(Float_t e_cms, Int_t ptHardMin, Int_t ptHardMax,
 
   //   charm, beauty, charm_unforced, beauty_unforced, jpsi, jpsi_chi, mb
   if(ptHardMin>0.) {
+   
     genP->SetProcess(kPyJets);
     genP->SetPtHard((float)ptHardMin,(float)ptHardMax);
+    if(ptWeight>0) genP->SetWeightPower(ptWeight);
   } else
     genP->SetProcess(kPyMb); // Minimum Bias  
 
index 20ed913..f3bbcf6 100644 (file)
 //If you want k in fm then you have to divide by the squared of hbarc (hbar c=0.197 GeV fm)
 // This gives k=4.4e^6 fm, which is the quench value we set in SetQhat
 
-AliGenerator* AddMCGenQuench(Float_t e_cms = 2760., Double_t ptHardMin = 0., Double_t ptHardMax = 0., Int_t fpythia = 1, Double_t quench=4.4e6, Int_t ianglepyquen = 2) 
+AliGenerator* AddMCGenQuench(Float_t e_cms = 2760., Double_t ptHardMin = 0., Double_t ptHardMax = 0., Int_t fpythia = 1, Double_t quench=4.4e6, Int_t ianglepyquen = 2,Int_t ptWeight=0) 
 {
   //Add Pythia generator: pt-hard bin or min bias
 
   gSystem->Load("liblhapdf.so");
  
-  return CreatePythia6Gen(e_cms, ptHardMin, ptHardMax, fpythia, quench, ianglepyquen);
+  return CreatePythia6Gen(e_cms, ptHardMin, ptHardMax, fpythia, quench, ianglepyquen,ptWeight);
 }
 
-AliGenerator* CreatePythia6Gen(Float_t e_cms, Int_t ptHardMin, Int_t ptHardMax, Int_t fpythia, Double_t quench = 4.4e6, Int_t ianglepyquen=2) {
+AliGenerator* CreatePythia6Gen(Float_t e_cms, Int_t ptHardMin, Int_t ptHardMax, Int_t fpythia, Double_t quench = 4.4e6, Int_t ianglepyquen=2,Int_t ptWeight=0) {
     
   gSystem->Load("libqpythia.so");
   gSystem->Load("libEGPythia6.so");
@@ -47,7 +47,8 @@ AliGenerator* CreatePythia6Gen(Float_t e_cms, Int_t ptHardMin, Int_t ptHardMax,
   if (ptHardMin>0.) {
     genP->SetProcess(kPyJets);
     genP->SetPtHard((float)ptHardMin,(float)ptHardMax);
-  } else
+    genP->SetWeightPower(ptWeight);
+   } else
     genP->SetProcess(kPyMb); // Minimum Bias  
 
   //   Centre of mass energy 
index 8225971..1ef5389 100644 (file)
@@ -52,7 +52,7 @@ set ( SRCS
  EMCALJetTasks/AliJetTriggerSelectionTask.cxx
  EMCALJetTasks/AliLocalRhoParameter.cxx
  EMCALJetTasks/AliRhoParameter.cxx
- EMCALJetTasks/AliStackPartonInfo.cxx
+ EMCALJetTasks/AliPythiaInfo.cxx
  EMCALJetTasks/UserTasks/AliAnalysisTaskCLQA.cxx
  EMCALJetTasks/UserTasks/AliAnalysisTaskChargedJetsPA.cxx
  EMCALJetTasks/UserTasks/AliAnalysisTaskDcalDijetPerf.cxx
index 14a56f5..70aa4bd 100644 (file)
@@ -176,7 +176,7 @@ void AliAnalysisTaskEmcalJet::ExecOnce()
     cont->SetEMCALGeometry();
     cont->SetArray(InputEvent());
     cont->LoadRho(InputEvent()); 
-    cont->LoadPartonsInfo(InputEvent());
+    cont->LoadPythiaInfo(InputEvent());
   }
 
   //Get Jets, cuts and rho for first jet container
index 6707a72..395dd34 100644 (file)
@@ -13,7 +13,7 @@
 #include "AliParticleContainer.h"
 #include "AliClusterContainer.h"
 #include "AliLocalRhoParameter.h"
-#include "AliStackPartonInfo.h"
+#include "AliPythiaInfo.h"
 
 #include "AliJetContainer.h"
 
@@ -27,7 +27,7 @@ AliJetContainer::AliJetContainer():
   fRhoName(),
   fLocalRhoName(),
   fRhoMassName(),
-  fPartonInfoName(),
+  fPythiaInfoName(),
   fFlavourSelection(0),
   fPtBiasJetTrack(0),
   fPtBiasJetClus(0),
@@ -54,7 +54,7 @@ AliJetContainer::AliJetContainer():
   fRho(0),
   fLocalRho(0),
   fRhoMass(0),
-  fPartonsInfo(0),
+  fPythiaInfo(0),
   fGeom(0),
   fRunNumber(0)
 {
@@ -71,7 +71,7 @@ AliJetContainer::AliJetContainer(const char *name):
   fRhoName(),
   fLocalRhoName(),
   fRhoMassName(),
-  fPartonInfoName(),
+  fPythiaInfoName(),
   fFlavourSelection(0),
   fPtBiasJetTrack(0),
   fPtBiasJetClus(0),
@@ -98,7 +98,7 @@ AliJetContainer::AliJetContainer(const char *name):
   fRho(0),
   fLocalRho(0),
   fRhoMass(0),
-  fPartonsInfo(0),
+  fPythiaInfo(0),
   fGeom(0),
   fRunNumber(0)
 {
@@ -176,14 +176,15 @@ void AliJetContainer::LoadRhoMass(AliVEvent *event)
   }
 }
 //________________________________________________________________________
-void AliJetContainer::LoadPartonsInfo(AliVEvent *event)
+void AliJetContainer::LoadPythiaInfo(AliVEvent *event)
 {
     // Load parton info
     
-    if (!fPartonInfoName.IsNull() && !fPartonsInfo) {
-        fPartonsInfo = dynamic_cast<AliStackPartonInfo*>(event->FindListObject(fPartonInfoName));
-        if (!fPartonsInfo) {
-           AliError(Form("%s: Could not retrieve parton infos! %s!", GetName(), fPartonInfoName.Data()));            return;
+    if (!fPythiaInfoName.IsNull() && !fPythiaInfo) {
+        fPythiaInfo = dynamic_cast<AliPythiaInfo*>(event->FindListObject(fPythiaInfoName));
+        if (!fPythiaInfo) {
+           AliError(Form("%s: Could not retrieve parton infos! %s!", GetName(), fPythiaInfoName.Data()));    
+        return;
         }
     }
 }
index d2bff3d..5cdbd53 100644 (file)
@@ -12,7 +12,7 @@ class AliVEvent;
 class AliParticleContainer;
 class AliClusterContainer;
 class AliLocalRhoParameter;
-class AliStackPartonInfo;
+class AliPythiaInfo;
 
 #include "AliRhoParameter.h"
 
@@ -37,7 +37,7 @@ class AliJetContainer : public AliEmcalContainer {
   void LoadRho(AliVEvent *event);
   void LoadLocalRho(AliVEvent *event);
   void LoadRhoMass(AliVEvent *event);
-  void LoadPartonsInfo(AliVEvent *event);
+  void LoadPythiaInfo(AliVEvent *event);
 
   void                        SetJetAcceptanceType(JetAcceptanceType type)         { fJetAcceptanceType          = type ; }
   void                        PrintCuts();
@@ -69,7 +69,7 @@ class AliJetContainer : public AliEmcalContainer {
   virtual void                SetRhoName(const char *n)                            { fRhoName        = n                ; }
   virtual void                SetLocalRhoName(const char *n)                       { fLocalRhoName   = n                ; }
   virtual void                SetRhoMassName(const char *n)                        { fRhoMassName    = n                ; }
-  virtual void                SetPartonInfoName(const char *n)                      { fPartonInfoName    = n; }
+  virtual void                SetPythiaInfoName(const char *n)                      { fPythiaInfoName    = n; }
     
   void                        ConnectParticleContainer(AliParticleContainer *c)    { fParticleContainer = c             ; }
   void                        ConnectClusterContainer(AliClusterContainer *c)      { fClusterContainer  = c             ; }
@@ -99,8 +99,8 @@ class AliJetContainer : public AliEmcalContainer {
   AliRhoParameter            *GetRhoMassParameter()                          {return fRhoMass;}
   Double_t                    GetRhoMassVal()                       const    {if (fRhoMass) return fRhoMass->GetVal(); else return 0;}
   const TString&              GetRhoMassName()                      const    {return fRhoMassName;}
-  const TString&              GetPartonInfoName()                   const    {return fPartonInfoName;}
-  AliStackPartonInfo         *GetStackPartonInfo()                  const    {return fPartonsInfo;}
+  const TString&              GetPythiaInfoName()                   const    {return fPythiaInfoName;}
+  AliPythiaInfo         *GetPythiaInfo()                  const    {return fPythiaInfo;}
   Double_t                    GetJetPtCorr(Int_t i)                 const;
   Double_t                    GetJetPtCorrLocal(Int_t i)            const;
   Float_t                     GetJetRadius()                        const    {return fJetRadius;}
@@ -122,7 +122,7 @@ class AliJetContainer : public AliEmcalContainer {
   TString                     fRhoName;              //  Name of rho object
   TString                     fLocalRhoName;         //  Name of local rho object
   TString                     fRhoMassName;          //  Name of rho mass object
-  TString                     fPartonInfoName;       //  Name of parton info object
+  TString                     fPythiaInfoName;       //  Name of pythia info object
   Int_t                       fFlavourSelection;     //  selection on jet flavour
   Float_t                     fPtBiasJetTrack;       //  select jets with a minimum pt track
   Float_t                     fPtBiasJetClus;        //  select jets with a minimum pt cluster
@@ -149,7 +149,7 @@ class AliJetContainer : public AliEmcalContainer {
   AliRhoParameter            *fRho;                  //! event rho for these jets
   AliLocalRhoParameter       *fLocalRho;             //! event local rho for these jets
   AliRhoParameter            *fRhoMass;              //! event rho mass for these jets
-  AliStackPartonInfo         *fPartonsInfo;          //! event parton info
+  AliPythiaInfo         *fPythiaInfo;          //! event parton info
   AliEMCALGeometry           *fGeom;                 //! emcal geometry
   Int_t                       fRunNumber;            //! run number
 
index e8d62dd..29fa272 100644 (file)
 #include "AliRun.h"
 #include "AliRunLoader.h"
 #include "AliStack.h"
-#include "AliStack.h"
 #include "AliVCluster.h"
 #include "AliVEvent.h"
 #include "AliGenPythiaEventHeader.h"
-#include "AliStackPartonInfo.h"
+#include "AliPythiaInfo.h"
 #include "AliPythiaRndm.h"
 ClassImp(AliJetEmbeddingFromGenTask)
 
@@ -129,11 +128,11 @@ Bool_t AliJetEmbeddingFromGenTask::ExecOnce()
     fNTracks = 0;
   }
 
-  if(!fPartonInfoName.IsNull()) {
-    if (!(InputEvent()->FindListObject(fPartonInfoName))) {
-      fStackPartonInfo = new AliStackPartonInfo("PartonsInfo");
-      fStackPartonInfo->SetName(fPartonInfoName);
-      InputEvent()->AddObject(fStackPartonInfo);
+  if(!fPythiaInfoName.IsNull()) {
+    if (!(InputEvent()->FindListObject(fPythiaInfoName))) {
+      fPythiaInfo = new AliPythiaInfo("PythiaInfo");
+      fPythiaInfo->SetName(fPythiaInfoName);
+      InputEvent()->AddObject(fPythiaInfo);
     }
   }
   return kTRUE;
@@ -154,19 +153,19 @@ void AliJetEmbeddingFromGenTask::Run()
   const Int_t nprim = stack->GetNprimary();
   // reject if partons are missing from stack for some reason
   if(nprim < 8) return;
-  if(fStackPartonInfo) {
+  if(fPythiaInfo) {
     TParticle *part6 = stack->Particle(6);
     TParticle *part7 = stack->Particle(7);
     
-    fStackPartonInfo->SetPartonFlag6(TMath::Abs(part6->GetPdgCode()));
-    fStackPartonInfo->SetPartonPt6(part6->Pt());
-    fStackPartonInfo->SetPartonEta6(part6->Eta());
-    fStackPartonInfo->SetPartonPhi6(part6->Phi());
+    fPythiaInfo->SetPartonFlag6(TMath::Abs(part6->GetPdgCode()));
+    fPythiaInfo->SetPartonPt6(part6->Pt());
+    fPythiaInfo->SetPartonEta6(part6->Eta());
+    fPythiaInfo->SetPartonPhi6(part6->Phi());
     
-    fStackPartonInfo->SetPartonFlag7(TMath::Abs(part7->GetPdgCode()));
-    fStackPartonInfo->SetPartonPt7(part7->Pt());
-    fStackPartonInfo->SetPartonEta7(part7->Eta());
-    fStackPartonInfo->SetPartonPhi7(part7->Phi());
+    fPythiaInfo->SetPartonFlag7(TMath::Abs(part7->GetPdgCode()));
+    fPythiaInfo->SetPartonPt7(part7->Pt());
+    fPythiaInfo->SetPartonEta7(part7->Eta());
+    fPythiaInfo->SetPartonPhi7(part7->Phi());
   }
 
   for (Int_t i=0;i<nprim;++i) {
@@ -216,7 +215,8 @@ void AliJetEmbeddingFromGenTask::FillPythiaHistograms() {
     Float_t xsec = genPH->GetXsection();
     Int_t trials = genPH->Trials();
     Float_t pthard = genPH->GetPtHard();
-
+    Float_t ptWeight=genPH->EventWeight(); 
+    if(fPythiaInfo) fPythiaInfo->SetPythiaEventWeight(ptWeight);
     fHistXsection->Fill(0.5,xsec);
     fHistTrials->Fill(0.5,trials);
     fHistPtHard->Fill(pthard);
index 252da77..8e487b5 100644 (file)
@@ -42,7 +42,7 @@ AliJetModelBaseTask::AliJetModelBaseTask() :
   fOutCellsName(),
   fMCParticlesName(),
   fOutMCParticlesName(),
-  fPartonInfoName(""),
+  fPythiaInfoName(""),
   fIsMC(kFALSE),
   fSuffix(),
   fEtaMin(-1),
@@ -80,7 +80,7 @@ AliJetModelBaseTask::AliJetModelBaseTask() :
   fMCLabelShift(0),
   fEsdMode(kFALSE),
   fOutput(0),
-  fStackPartonInfo(0x0)
+  fPythiaInfo(0x0)
 {
   // Default constructor.
 
@@ -101,7 +101,7 @@ AliJetModelBaseTask::AliJetModelBaseTask(const char *name, Bool_t drawqa) :
   fOutCellsName(""),
   fMCParticlesName(""),
   fOutMCParticlesName(""),
-  fPartonInfoName(""),
+  fPythiaInfoName(""),
   fIsMC(kFALSE),
   fSuffix("Processed"),
   fEtaMin(-1),
@@ -139,7 +139,7 @@ AliJetModelBaseTask::AliJetModelBaseTask(const char *name, Bool_t drawqa) :
   fMCLabelShift(0),
   fEsdMode(kFALSE),
   fOutput(0),
-  fStackPartonInfo(0x0)
+  fPythiaInfo(0x0)
 {
   // Standard constructor.
 
index 72bfedf..3760990 100644 (file)
@@ -11,7 +11,7 @@ class AliVCaloCells;
 class AliAODMCParticle;
 class AliNamedArrayI;
 class TF2;
-class AliStackPartonInfo;
+class AliPythiaInfo;
 
 #include <TH1F.h>
 #include <TF1.h>
@@ -43,7 +43,7 @@ class AliJetModelBaseTask : public AliAnalysisTaskSE {
   void                   SetClusName(const char *n)            { fCaloName     = n;    }
   void                   SetCellsName(const char *n)           { fCellsName    = n;    }
   void                   SetMCParticlesName(const char *n)     { fMCParticlesName = n; }
-    void                 SetPartonInfoName(const char *n)      { fPartonInfoName = n; }
+    void                 SetPythiaInfoName(const char *n)      { fPythiaInfoName = n; }
   void                   SetSuffix(const char *s)              { fSuffix       = s;    }
   void                   SetGeometryName(const char *n)        { fGeomName     = n;    }
   void                   SetMarkMC(Int_t m)                    { fMarkMC       = m;    }
@@ -86,7 +86,7 @@ class AliJetModelBaseTask : public AliAnalysisTaskSE {
   TString                fOutCellsName;           // name of output cells collection
   TString                fMCParticlesName;        // name of MC particle collection
   TString                fOutMCParticlesName;     // name of output MC particle collection
-  TString                fPartonInfoName;         // name of partons info
+  TString                fPythiaInfoName;         // name of pythia info
   Bool_t                 fIsMC;                   // whether the current event is MC or not
   TString                fSuffix;                 // suffix to add in the name of new collections
   Float_t                fEtaMin;                 // eta minimum value
@@ -125,7 +125,7 @@ class AliJetModelBaseTask : public AliAnalysisTaskSE {
   Int_t                  fMCLabelShift;           //!MC label shift
   Bool_t                 fEsdMode;                //!ESD/AOD mode
   TList                 *fOutput;                 //!output list for QA histograms
-  AliStackPartonInfo    *fStackPartonInfo;     //!Info on original partons:PDG,pt, eta, phi 
+  AliPythiaInfo    *fPythiaInfo;     //!Info on original partons:PDG,pt, eta, phi and pythia event weight
 
  private:
   AliJetModelBaseTask(const AliJetModelBaseTask&);            // not implemented
diff --git a/PWGJE/EMCALJetTasks/AliPythiaInfo.cxx b/PWGJE/EMCALJetTasks/AliPythiaInfo.cxx
new file mode 100644 (file)
index 0000000..0cfdd1b
--- /dev/null
@@ -0,0 +1,37 @@
+#include "AliPythiaInfo.h" 
+
+ClassImp(AliPythiaInfo)
+
+//_______________________________________________
+AliPythiaInfo::AliPythiaInfo() :
+TNamed("AliPythiaInfo","AliPythiaInfo"),
+  fPartonFlag6(0),
+  fPartonPt6(0),
+  fPartonEta6(0),
+  fPartonPhi6(0),
+  fPartonFlag7(0),
+  fPartonPt7(0),
+  fPartonEta7(0),
+  fPartonPhi7(0),
+  fPythiaEventWeight(1)
+{
+  
+}
+
+//_______________________________________________
+AliPythiaInfo::AliPythiaInfo(const char* name) :
+  TNamed(name,name),
+  fPartonFlag6(0),
+  fPartonPt6(0),
+  fPartonEta6(0),
+  fPartonPhi6(0),
+  fPartonFlag7(0),
+  fPartonPt7(0),
+  fPartonEta7(0),
+  fPartonPhi7(0),
+  fPythiaEventWeight(1)
+
+{
+  
+}
+
diff --git a/PWGJE/EMCALJetTasks/AliPythiaInfo.h b/PWGJE/EMCALJetTasks/AliPythiaInfo.h
new file mode 100644 (file)
index 0000000..51a1025
--- /dev/null
@@ -0,0 +1,53 @@
+#ifndef ALIPYTHIAINFO_H
+#define ALIPYTHIAINFO_H
+
+#include <TMath.h>
+#include <TNamed.h>
+
+class AliPythiaInfo : public TNamed{
+
+ public:
+  AliPythiaInfo();
+  AliPythiaInfo(const char* name); 
+
+  void SetPartonFlag6(Int_t flag6) {fPartonFlag6 = flag6;}
+  void SetPartonPt6(Float_t pt6) {fPartonPt6 = pt6;}
+  void SetPartonEta6(Float_t eta6) {fPartonEta6 = eta6;}
+  void SetPartonPhi6(Float_t phi6) {fPartonPhi6 = phi6;}
+
+  void SetPartonFlag7(Int_t flag7) {fPartonFlag7 = flag7;}
+  void SetPartonPt7(Float_t pt7) {fPartonPt7 = pt7;}
+  void SetPartonEta7(Float_t eta7) {fPartonEta7 = eta7;}
+  void SetPartonPhi7(Float_t phi7) {fPartonPhi7 = phi7;}
+  void SetPythiaEventWeight(Float_t ptWeight) {fPythiaEventWeight=ptWeight;}  
+  
+  Int_t GetPartonFlag6() {return fPartonFlag6;}
+  Float_t GetPartonPt6() {return fPartonPt6;}
+  Float_t GetPartonEta6() {return fPartonEta6;}
+  Float_t GetPartonPhi6() {return fPartonPhi6;}
+
+  Int_t GetPartonFlag7() {return fPartonFlag7;}
+  Float_t GetPartonPt7() {return fPartonPt7;}
+  Float_t GetPartonEta7() {return fPartonEta7;}
+  Float_t GetPartonPhi7() {return fPartonPhi7;}
+  Float_t GetPythiaEventWeight(){return fPythiaEventWeight;}
+
+ private: 
+  Int_t fPartonFlag6; //! parton flag 
+  Float_t fPartonPt6; //! pT parton 
+  Float_t fPartonEta6; //!eta parton 
+  Float_t fPartonPhi6; //! phi parton
+
+  Int_t fPartonFlag7; //! parton flag 
+  Float_t fPartonPt7; //! pT parton 
+  Float_t fPartonEta7; //!eta parton 
+  Float_t fPartonPhi7; //! phi parton
+  Float_t fPythiaEventWeight; //!the pythia event weight
+    
+  AliPythiaInfo(const AliPythiaInfo&);
+  AliPythiaInfo& operator=(const AliPythiaInfo&);
+  
+  ClassDef(AliPythiaInfo, 1);
+
+};
+#endif
index 35462a5..0e9e158 100644 (file)
@@ -35,7 +35,7 @@
 #include "AliAnalysisManager.h"
 #include "AliJetContainer.h"
 #include "AliParticleContainer.h"
-#include "AliStackPartonInfo.h"
+#include "AliPythiaInfo.h"
 
 
 #include "AliAODEvent.h"
@@ -181,7 +181,7 @@ Bool_t AliAnalysisTaskEmcalQGTagging::FillHistograms()
   //cout<<"base container"<<endl;
   AliEmcalJet* jet1 = NULL;
   AliJetContainer *jetCont = GetJetContainer(0);
-
+  Float_t kWeight=1;
   if(jetCont) {
     jetCont->ResetCurrentID();
     while((jet1 = jetCont->GetNextAcceptJet())) {
@@ -190,7 +190,7 @@ Bool_t AliAnalysisTaskEmcalQGTagging::FillHistograms()
       fPtJet->Fill(jet1->Pt());
 
       if (!(fJetShapeType == kData)) {
-       AliStackPartonInfo *partonsInfo = 0x0;
+       AliPythiaInfo *partonsInfo = 0x0;
        if((fJetShapeType == kTrueDet) || (fJetShapeType == kDetEmb)){
          AliJetContainer *jetContTrue = GetJetContainer(1);
          jet2 = jet1->ClosestJet();
@@ -202,18 +202,19 @@ Bool_t AliAnalysisTaskEmcalQGTagging::FillHistograms()
          Double_t fraction = jetCont->GetFractionSharedPt(jet1);
           cout<<"hey a jet"<<fraction<<" "<<jet1->Pt()<<" "<<jet2->Pt()<<endl;
          if(fraction<fMinFractionShared) continue;
-         partonsInfo = (AliStackPartonInfo*) jetContTrue->GetStackPartonInfo();     
+         partonsInfo = (AliPythiaInfo*) jetContTrue->GetPythiaInfo();     
          if(!partonsInfo) return 0;
+          
        }
        else {
-         partonsInfo = (AliStackPartonInfo*) jetCont->GetStackPartonInfo(); 
+         partonsInfo = (AliPythiaInfo*) jetCont->GetPythiaInfo(); 
          jet2=jet1;
           if(!partonsInfo) return 0;
        }
        
        Double_t jp1=(jet2->Phi())-(partonsInfo->GetPartonPhi6()); 
        Double_t detap1=(jet2->Eta())-(partonsInfo->GetPartonEta6());
-       
+       kWeight=partonsInfo->GetPythiaEventWeight();
        if (jp1< -1*TMath::Pi()) jp1 = (-2*TMath::Pi())-jp1;
        else if (jp1 > TMath::Pi()) jp1 = (2*TMath::Pi())-jp1;
        Float_t dRp1 = TMath::Sqrt(jp1 * jp1 + detap1 * detap1);
@@ -295,7 +296,7 @@ Bool_t AliAnalysisTaskEmcalQGTagging::FillHistograms()
       fShapesVar[16] = sigma2Match;
 
       fTreeObservableTagging->Fill();
-       
+      fTreeObservableTagging->SetWeight(kWeight); 
     }
     
   } 
index 9ba4a54..7f0fd6f 100644 (file)
@@ -59,7 +59,7 @@ AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
       jetContBase->ConnectParticleContainer(trackCont);
       jetContBase->ConnectClusterContainer(clusterCont);
       jetContBase->SetPercAreaCut(0.6);
-      jetContBase->SetPartonInfoName("PartonsInfo");
+      jetContBase->SetPythiaInfoName("PythiaInfo");
     }
   }
   
@@ -71,7 +71,7 @@ AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
       jetContBase->ConnectParticleContainer(trackCont);
       jetContBase->ConnectClusterContainer(clusterCont);
       jetContBase->SetPercAreaCut(0.6);
-      jetContBase->SetPartonInfoName("PartonsInfo");
+      jetContBase->SetPythiaInfoName("PythiaInfo");
     }
 
     jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
@@ -79,7 +79,7 @@ AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
       jetContTrue->SetRhoName(nrhoBase);
       jetContTrue->ConnectParticleContainer(trackContTrue);
       jetContTrue->SetPercAreaCut(0.6); 
-      jetContTrue->SetPartonInfoName("PartonsInfo");
+      jetContTrue->SetPythiaInfoName("PythiaInfo");
     }
   }  
 
@@ -100,7 +100,7 @@ AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
       jetContBase->ConnectParticleContainer(trackCont);
       jetContBase->ConnectClusterContainer(clusterCont);
       jetContBase->SetPercAreaCut(0.6);
-      jetContBase->SetPartonInfoName("PartonsInfo");
+      jetContBase->SetPythiaInfoName("PythiaInfo");
     }
 
     jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
@@ -108,7 +108,7 @@ AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
       jetContTrue->SetRhoName(nrhoBase);
       jetContTrue->ConnectParticleContainer(trackContTrue);
       jetContTrue->SetPercAreaCut(0.6); 
-      jetContTrue->SetPartonInfoName("PartonsInfo");
+      jetContTrue->SetPythiaInfoName("PythiaInfo");
     }
     
   }
index acbd7a8..0c3e0f9 100644 (file)
@@ -15,24 +15,29 @@ AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
   const Double_t  maxPhi         = TMath::Pi() * 2,
   const Bool_t    copyArray      = kTRUE,
   const Bool_t    drawQA         = kTRUE,
-  const char     *partonInfoName = "PartonInfo"
+  const char     *pythiaInfoName = "PythiaInfo",
+  Float_t            ptWeight        =0,
+  Int_t               kTune            =2,
+  Int_t               kColorReco     =1,
+  Float_t            kQuench        =4.4e6,
+  Int_t               kAnglePyquen = 2   
 )
 {
   AliGenerator *genGen = NULL;
   if(genType==0) { //PYTHIA Perugia 2011
     gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenPythia.C");
-    genGen = AddMCGenPythia(ecms, ptHardMin, ptHardMax, 2);
+    genGen = AddMCGenPythia(ecms, ptHardMin, ptHardMax, kTune,kColorReco,ptWeight);
   }
   else if(genType==1 || genType==2) { //QPYTHIA and PYQUEN
     gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenQuench.C");
-    genGen = AddMCGenQuench(ecms, ptHardMin, ptHardMax, genType);
+    genGen = AddMCGenQuench(ecms, ptHardMin, ptHardMax, genType,kQuench,kAnglePyquen,ptWeight);
   }
   if(!genGen)   {
     ::Error("AddTaskJetEmbeddingFromGenTask", "Generator does not exist");
     return NULL;
   }
 
-  AliJetEmbeddingFromGenTask *task = AddTaskJetEmbeddingFromGen(genGen,tracksName,taskName,minPt,maxPt,minEta,maxEta,minPhi,maxPhi,copyArray,drawQA,partonInfoName);
+  AliJetEmbeddingFromGenTask *task = AddTaskJetEmbeddingFromGen(genGen,tracksName,taskName,minPt,maxPt,minEta,maxEta,minPhi,maxPhi,copyArray,drawQA,pythiaInfoName);
 
   return task;
 
@@ -50,7 +55,7 @@ AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
   const Double_t  maxPhi         = TMath::Pi() * 2,
   const Bool_t    copyArray      = kTRUE,
   const Bool_t    drawQA         = kTRUE,
-  const char     *partonInfoName = ""
+  const char     *pythiaInfoName = ""
 )
 {  
   // Get the pointer to the existing analysis manager via the static access method.
@@ -81,7 +86,7 @@ AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
     jetEmb->SetGen(genGen);
   }
   jetEmb->SetTracksName(tracksName);
-  jetEmb->SetPartonInfoName(partonInfoName);
+  jetEmb->SetPythiaInfoName(pythiaInfoName);
   jetEmb->SetEtaRange(minEta, maxEta);
   jetEmb->SetPhiRange(minPhi, maxPhi);
   jetEmb->SetPtRange(minPt, maxPt);
index 828c83c..48a437e 100644 (file)
@@ -31,7 +31,7 @@
 #pragma link C++ class AliJetTriggerSelectionTask+;
 #pragma link C++ class AliLocalRhoParameter+;
 #pragma link C++ class AliRhoParameter+;
-#pragma link C++ class AliStackPartonInfo+;
+#pragma link C++ class AliPythiaInfo+;
 
 // user tasks
 #pragma link C++ class AliAnalysisTaskCLQA+;