]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/AliJetContainer.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetContainer.h
index dc4626f8bda9e2f2cf45bc997382350db1130a0f..74ccb365c369047dbbff80f3390a83eb69c5015d 100644 (file)
@@ -1,9 +1,7 @@
 #ifndef AliJetContainer_H
 #define AliJetContainer_H
 
-//
-// container with name, TClonesArray and cuts for jets
-//
+// $Id$
 
 class TClonesArray;
 class TString;
@@ -14,10 +12,13 @@ class AliVEvent;
 class AliParticleContainer;
 class AliClusterContainer;
 class AliLocalRhoParameter;
+class AliPythiaInfo;
 
+#include <TMath.h>
 #include "AliRhoParameter.h"
-
 #include "AliEmcalContainer.h"
+#include "AliLog.h"
+#include "AliVEvent.h"
 
 class AliJetContainer : public AliEmcalContainer {
  public:
@@ -37,61 +38,71 @@ class AliJetContainer : public AliEmcalContainer {
   void SetEMCALGeometry(AliEMCALGeometry *p) {fGeom = p;}
   void LoadRho(AliVEvent *event);
   void LoadLocalRho(AliVEvent *event);
+  void LoadRhoMass(AliVEvent *event);
+  void LoadPythiaInfo(AliVEvent *event);
 
   void                        SetJetAcceptanceType(JetAcceptanceType type)         { fJetAcceptanceType          = type ; }
-
+  void                        PrintCuts();
   void                        ResetCuts();
-
   void                        SetJetEtaPhiEMCAL() ;
   void                        SetJetEtaPhiTPC()   ;
   void                        SetRunNumber(Int_t r)                                { fRunNumber = r;                      }
-
   void                        SetJetEtaLimits(Float_t min, Float_t max)            { fJetMinEta = min, fJetMaxEta = max ; }
   void                        SetJetPhiLimits(Float_t min, Float_t max)            { fJetMinPhi = min, fJetMaxPhi = max ; }
+  void                        SetJetPtCut(Float_t cut)                             { fJetPtCut       = cut              ; }
+  void                        SetJetRadius(Float_t r)                              { fJetRadius      = r                ; } 
   void                        SetJetAreaCut(Float_t cut)                           { fJetAreaCut     = cut              ; }
-  void                        SetPercAreaCut(Float_t p)                            { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0"); fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
+  void                        SetPercAreaCut(Float_t p)                            { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0"); 
+                                                                                     fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
+  void                        SetAreaEmcCut(Double_t a = 0.99)                     { fAreaEmcCut     = a                ; }
   void                        SetZLeadingCut(Float_t zemc, Float_t zch)            { fZLeadingEmcCut = zemc; fZLeadingChCut = zch ; }
   void                        SetNEFCut(Float_t min = 0., Float_t max = 1.)        { fNEFMinCut = min; fNEFMaxCut = max;  }
-
-  void                        SetAreaEmcCut(Double_t a = 0.99)                     { fAreaEmcCut     = a                ; }
-  void                        SetJetPtCut(Float_t cut)                             { fJetPtCut       = cut              ; }
-  void                        SetJetRadius(Float_t r)                              { fJetRadius      = r                ; } 
-  virtual void                SetRhoName(const char *n)                            { fRhoName        = n                ; }
-  virtual void                SetLocalRhoName(const char *n)                       { fLocalRhoName   = n                ; }
+  void                        SetFlavourCut(Int_t myflavour)                       { fFlavourSelection = myflavour;}
   void                        SetMaxClusterPt(Float_t b)                           { fMaxClusterPt   = b                ; }
   void                        SetMaxTrackPt(Float_t b)                             { fMaxTrackPt     = b                ; }
   void                        SetPtBiasJetClus(Float_t b)                          { fPtBiasJetClus  = b                ; }
   void                        SetNLeadingJets(Int_t t)                             { fNLeadingJets   = t                ; }
   void                        SetPtBiasJetTrack(Float_t b)                         { fPtBiasJetTrack = b                ; }
-
   void                        SetLeadingHadronType(Int_t t)                        { fLeadingHadronType = t             ; }
   void                        SetJetBitMap(UInt_t m)                               { fJetBitMap      = m                ; }
   void                        SetJetTrigger(UInt_t t=AliVEvent::kEMCEJE)           { fJetTrigger     = t                ; }
+  void                        SetTagStatus(Int_t i)                                { fTagStatus      = i                ; }
 
+  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                SetPythiaInfoName(const char *n)                      { fPythiaInfoName    = n; }
+    
   void                        ConnectParticleContainer(AliParticleContainer *c)    { fParticleContainer = c             ; }
   void                        ConnectClusterContainer(AliClusterContainer *c)      { fClusterContainer  = c             ; }
 
   AliEmcalJet                *GetLeadingJet(const char* opt="")          ;
   AliEmcalJet                *GetJet(Int_t i)                       const;
-  AliEmcalJet                *GetAcceptJet(Int_t i)                 const;
+  AliEmcalJet                *GetAcceptJet(Int_t i)                      ;
   AliEmcalJet                *GetJetWithLabel(Int_t lab)            const;
-  AliEmcalJet                *GetAcceptJetWithLabel(Int_t lab)      const;
+  AliEmcalJet                *GetAcceptJetWithLabel(Int_t lab)           ;
   AliEmcalJet                *GetNextAcceptJet(Int_t i=-1)               ;
   AliEmcalJet                *GetNextJet(Int_t i=-1)                     ;
   void                        GetMomentum(TLorentzVector &mom, Int_t i) const;
-  Bool_t                      AcceptJet(AliEmcalJet* jet)           const;
-  Bool_t                      AcceptBiasJet(AliEmcalJet* jet)       const; 
+  Bool_t                      AcceptJet(const AliEmcalJet* jet)          ;
+  Bool_t                      AcceptBiasJet(const AliEmcalJet* jet)      ;
+  Int_t                       GetFlavourCut()                       const    {return fFlavourSelection;}
   Int_t                       GetNJets()                            const    {return GetNEntries();}
-  Double_t                    GetLeadingHadronPt(AliEmcalJet* jet)  const;
-  void                        GetLeadingHadronMomentum(TLorentzVector &mom, AliEmcalJet* jet)  const;
-  Double_t                    GetZ(AliEmcalJet *jet, TLorentzVector mom) const;
-  Double_t                    GetZLeadingEmc(AliEmcalJet *jet)      const;
-  Double_t                    GetZLeadingCharged(AliEmcalJet *jet)  const;
+  Double_t                    GetLeadingHadronPt(const AliEmcalJet* jet)  const;
+  void                        GetLeadingHadronMomentum(TLorentzVector &mom, const AliEmcalJet* jet)  const;
+  Double_t                    GetZ(const AliEmcalJet *jet, TLorentzVector mom) const;
+  Double_t                    GetZLeadingEmc(const AliEmcalJet *jet)      const;
+  Double_t                    GetZLeadingCharged(const AliEmcalJet *jet)  const;
   AliRhoParameter            *GetRhoParameter()                              {return fRho;}
-  Double_t                    GetRhoVal()                           const    { if (fRho) return fRho->GetVal(); else return 0;}
+  Double_t                    GetRhoVal()                           const    {if (fRho) return fRho->GetVal(); else return 0;}
   const TString&              GetRhoName()                          const    {return fRhoName;}
   AliLocalRhoParameter       *GetLocalRhoParameter()                const    {return fLocalRho;}
   const TString&              GetLocalRhoName()                     const    {return fLocalRhoName;}
+  AliRhoParameter            *GetRhoMassParameter()                          {return fRhoMass;}
+  Double_t                    GetRhoMassVal()                       const    {if (fRhoMass) return fRhoMass->GetVal(); else return 0;}
+  const TString&              GetRhoMassName()                      const    {return fRhoMassName;}
+  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;}
@@ -99,16 +110,22 @@ class AliJetContainer : public AliEmcalContainer {
   Float_t                     GetJetEtaMax()                        const    {return fJetMaxEta;}
   Float_t                     GetJetPhiMin()                        const    {return fJetMinPhi;}
   Float_t                     GetJetPhiMax()                        const    {return fJetMaxPhi;}
+  Float_t                     GetJetPtCut()                         const    {return fJetPtCut;}
   void                        SetClassName(const char *clname);
   void                        SetArray(AliVEvent *event);
-  AliParticleContainer       *GetParticleContainer()                         {return fParticleContainer;}
-  AliClusterContainer        *GetClusterContainer()                          {return fClusterContainer;}
+  AliParticleContainer       *GetParticleContainer() const                   {return fParticleContainer;}
+  AliClusterContainer        *GetClusterContainer() const                    {return fClusterContainer;}
+  Double_t                    GetFractionSharedPt(const AliEmcalJet *jet) const;
 
  protected:
   JetAcceptanceType           fJetAcceptanceType;    //  acceptance type
   Float_t                     fJetRadius;            //  jet radius
   TString                     fRhoName;              //  Name of rho object
   TString                     fLocalRhoName;         //  Name of local rho object
+  TString                     fRhoMassName;          //  Name of rho mass 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
   Float_t                     fJetPtCut;             //  cut on jet pt
@@ -128,11 +145,13 @@ class AliJetContainer : public AliEmcalContainer {
   Int_t                       fNLeadingJets;         //  how many jets are to be considered the leading jet(s)
   UInt_t                      fJetBitMap;            //  bit map of accepted jets
   UInt_t                      fJetTrigger;           //  jet trigger
+  Int_t                       fTagStatus;            //  jet tag status
   AliParticleContainer       *fParticleContainer;    //  particle container (jet constituents)
   AliClusterContainer        *fClusterContainer;     //  cluster container (jet constituents)
-
   AliRhoParameter            *fRho;                  //! event rho for these jets
   AliLocalRhoParameter       *fLocalRho;             //! event local rho for these jets
+  AliRhoParameter            *fRhoMass;              //! event rho mass for these jets
+  AliPythiaInfo         *fPythiaInfo;          //! event parton info
   AliEMCALGeometry           *fGeom;                 //! emcal geometry
   Int_t                       fRunNumber;            //! run number
 
@@ -140,10 +159,8 @@ class AliJetContainer : public AliEmcalContainer {
   AliJetContainer(const AliJetContainer& obj); // copy constructor
   AliJetContainer& operator=(const AliJetContainer& other); // assignment
 
-  ClassDef(AliJetContainer,5);
+  ClassDef(AliJetContainer,10);
 
 };
 
 #endif
-
-