<commit_before>#ifndef AliFJWrapper_H
#define AliFJWrapper_H

#if !defined(__CINT__)

#include <vector>
#include <TString.h>
#include "AliLog.h"
#include "FJ_includes.h"
#include "AliJetShape.h"


class AliFJWrapper
{
 public:
  AliFJWrapper(const char *name, const char *title);
  virtual ~AliFJWrapper();

  virtual void  AddInputVector (Double_t px, Double_t py, Double_t pz, Double_t E, Int_t index = -99999);
  virtual void  AddInputVector (const fastjet::PseudoJet& vec,                Int_t index = -99999);
  virtual void  AddInputVectors(const std::vector<fastjet::PseudoJet>& vecs,  Int_t offsetIndex = -99999);
  virtual void  AddInputGhost  (Double_t px, Double_t py, Double_t pz, Double_t E, Int_t index = -99999);
  virtual const char *ClassName()                            const { return "AliFJWrapper";              }
  virtual void  Clear(const Option_t* /*opt*/ = "");
  virtual void  ClearMemory();
  virtual void  CopySettingsFrom (const AliFJWrapper& wrapper);
  virtual void  GetMedianAndSigma(Double_t& median, Double_t& sigma, Int_t remove = 0) const;
  fastjet::ClusterSequenceArea*           GetClusterSequence() const   { return fClustSeq;                 }
  fastjet::ClusterSequence*               GetClusterSequenceSA() const { return fClustSeqSA;               }
  fastjet::ClusterSequenceActiveAreaExplicitGhosts* GetClusterSequenceGhosts() const { return fClustSeqActGhosts; }
  const std::vector<fastjet::PseudoJet>&  GetInputVectors()    const { return fInputVectors;               }
  const std::vector<fastjet::PseudoJet>&  GetEventSubInputVectors()    const { return fEventSubInputVectors;               }
  const std::vector<fastjet::PseudoJet>&  GetInputGhosts()     const { return fInputGhosts;                }
  const std::vector<fastjet::PseudoJet>&  GetInclusiveJets()   const { return fInclusiveJets;              }
  const std::vector<fastjet::PseudoJet>&  GetEventSubJets()   const { return fEventSubJets;              }
  const std::vector<fastjet::PseudoJet>&  GetFilteredJets()    const { return fFilteredJets;               }
  std::vector<fastjet::PseudoJet>         GetJetConstituents(UInt_t idx) const;
  std::vector<fastjet::PseudoJet>         GetEventSubJetConstituents(UInt_t idx) const;
  std::vector<fastjet::PseudoJet>         GetFilteredJetConstituents(UInt_t idx) const;
  Double_t                                GetMedianUsedForBgSubtraction() const { return fMedUsedForBgSub; }
  const char*                             GetName()            const { return fName;                       }
  const char*                             GetTitle()           const { return fTitle;                      }
  Double_t                                GetJetArea         (UInt_t idx) const;
  Double_t                                GetEventSubJetArea         (UInt_t idx) const;
  fastjet::PseudoJet                      GetJetAreaVector   (UInt_t idx) const;
  fastjet::PseudoJet                      GetEventSubJetAreaVector   (UInt_t idx) const;
  Double_t                                GetFilteredJetArea (UInt_t idx) const;
  fastjet::PseudoJet                      GetFilteredJetAreaVector(UInt_t idx) const;
  Double_t                                GetJetSubtractedPt (UInt_t idx) const;
  virtual std::vector<double>             GetSubtractedJetsPts(Double_t median_pt = -1, Bool_t sorted = kFALSE);
  Bool_t                                  GetLegacyMode()            { return fLegacyMode; }
  Bool_t                                  GetDoFilterArea()          { return fDoFilterArea; }
  Double_t                                NSubjettiness(Int_t N, Int_t Algorithm, Double_t Radius, Double_t Beta, Int_t Option=0, Int_t Measure=0, Double_t Beta_SD=0.0, Double_t ZCut=0.1, Int_t SoftDropOn=0);
  Double32_t                              NSubjettinessDerivativeSub(Int_t N, Int_t Algorithm, Double_t Radius, Double_t Beta, Double_t JetR, fastjet::PseudoJet jet, Int_t Option=0, Int_t Measure=0, Double_t Beta_SD=0.0, Double_t ZCut=0.1, Int_t SoftDropOn=0);
#ifdef FASTJET_VERSION
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetMass()        const {return fGenSubtractorInfoJetMass        ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetAngularity()  const {return fGenSubtractorInfoJetAngularity  ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetpTD()         const {return fGenSubtractorInfoJetpTD         ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetCircularity() const {return fGenSubtractorInfoJetCircularity ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetSigma2()      const {return fGenSubtractorInfoJetSigma2      ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetConstituent() const {return fGenSubtractorInfoJetConstituent ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetLeSub()       const {return fGenSubtractorInfoJetLeSub       ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet1subjettiness_kt()       const {return fGenSubtractorInfoJet1subjettiness_kt ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet2subjettiness_kt()       const {return fGenSubtractorInfoJet2subjettiness_kt ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet3subjettiness_kt()       const {return fGenSubtractorInfoJet3subjettiness_kt ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetOpeningAngle_kt()       const {return fGenSubtractorInfoJetOpeningAngle_kt ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet1subjettiness_ca()       const {return fGenSubtractorInfoJet1subjettiness_ca ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet2subjettiness_ca()       const {return fGenSubtractorInfoJet2subjettiness_ca ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetOpeningAngle_ca()       const {return fGenSubtractorInfoJetOpeningAngle_ca ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet1subjettiness_akt02()       const {return fGenSubtractorInfoJet1subjettiness_akt02 ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet2subjettiness_akt02()       const {return fGenSubtractorInfoJet2subjettiness_akt02 ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetOpeningAngle_akt02()       const {return fGenSubtractorInfoJetOpeningAngle_akt02 ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet1subjettiness_casd()       const {return fGenSubtractorInfoJet1subjettiness_casd ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet2subjettiness_casd()       const {return fGenSubtractorInfoJet2subjettiness_casd ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetOpeningAngle_casd()       const {return fGenSubtractorInfoJetOpeningAngle_casd ; }
  const std::vector<fastjet::PseudoJet>                      GetConstituentSubtrJets()            const {return fConstituentSubtrJets            ; }
  const std::vector<fastjet::PseudoJet>                      GetGroomedJets()            const {return fGroomedJets            ; }
  Int_t CreateGenSub();          // fastjet::contrib::GenericSubtractor
  Int_t CreateConstituentSub();  // fastjet::contrib::ConstituentSubtractor
  Int_t CreateEventConstituentSub(); //fastjet::contrib::ConstituentSubtractor
  Int_t CreateSoftDrop();
#endif
  virtual std::vector<double>                                GetGRNumerator()                     const { return fGRNumerator                    ; }
  virtual std::vector<double>                                GetGRDenominator()                   const { return fGRDenominator                  ; }
  virtual std::vector<double>                                GetGRNumeratorSub()                  const { return fGRNumeratorSub                 ; }
  virtual std::vector<double>                                GetGRDenominatorSub()                const { return fGRDenominatorSub               ; }

  virtual void RemoveLastInputVector();

  virtual Int_t Run();
  virtual Int_t Filter();
  virtual void  DoGenericSubtraction(const fastjet::FunctionOfPseudoJet<Double32_t>& jetshape, std::vector<fastjet::contrib::GenericSubtractorInfo>& output);
  virtual Int_t DoGenericSubtractionJetMass();
  virtual Int_t DoGenericSubtractionGR(Int_t ijet);
  virtual Int_t DoGenericSubtractionJetAngularity();
  virtual Int_t DoGenericSubtractionJetpTD();
  virtual Int_t DoGenericSubtractionJetCircularity();
  virtual Int_t DoGenericSubtractionJetSigma2();
  virtual Int_t DoGenericSubtractionJetConstituent();
  virtual Int_t DoGenericSubtractionJetLeSub();
  virtual Int_t DoGenericSubtractionJet1subjettiness_kt();
  virtual Int_t DoGenericSubtractionJet2subjettiness_kt();
  virtual Int_t DoGenericSubtractionJet3subjettiness_kt();
  virtual Int_t DoGenericSubtractionJetOpeningAngle_kt();
  virtual Int_t DoGenericSubtractionJet1subjettiness_ca();
  virtual Int_t DoGenericSubtractionJet2subjettiness_ca();
  virtual Int_t DoGenericSubtractionJet3subjettiness_ca();
  virtual Int_t DoGenericSubtractionJetOpeningAngle_ca();
  virtual Int_t DoGenericSubtractionJet1subjettiness_akt02();
  virtual Int_t DoGenericSubtractionJet2subjettiness_akt02();
  virtual Int_t DoGenericSubtractionJet3subjettiness_akt02();
  virtual Int_t DoGenericSubtractionJetOpeningAngle_akt02();
  virtual Int_t DoGenericSubtractionJet1subjettiness_casd();
  virtual Int_t DoGenericSubtractionJet2subjettiness_casd();
  virtual Int_t DoGenericSubtractionJet3subjettiness_casd();
  virtual Int_t DoGenericSubtractionJetOpeningAngle_casd();
  virtual Int_t DoConstituentSubtraction();
  virtual Int_t DoEventConstituentSubtraction();
  virtual Int_t DoSoftDrop();
  
  void SetName(const char* name)        { fName           = name;    }
  void SetTitle(const char* title)      { fTitle          = title;   }
  void SetStrategy(const fastjet::Strategy &strat)                 { fStrategy = strat;  }
  void SetAlgorithm(const fastjet::JetAlgorithm &algor)            { fAlgor    = algor;  }
  void SetRecombScheme(const fastjet::RecombinationScheme &scheme) { fScheme   = scheme; }
  void SetAreaType(const fastjet::AreaType &atype)                 { fAreaType = atype;  }
  void SetNRepeats(Int_t nrepeat)       { fNGhostRepeats  = nrepeat; }
  void SetGhostArea(Double_t gharea)    { fGhostArea      = gharea;  }
  void SetMaxRap(Double_t maxrap)       { fMaxRap         = maxrap;  }
  void SetR(Double_t r)                 { fR              = r;       }
  void SetGridScatter(Double_t gridSc)  { fGridScatter    = gridSc;  }
  void SetKtScatter(Double_t ktSc)      { fKtScatter      = ktSc;    }
  void SetMeanGhostKt(Double_t meankt)  { fMeanGhostKt    = meankt;  }
  void SetPluginAlgor(Int_t plugin)     { fPluginAlgor    = plugin;  }
  void SetUseArea4Vector(Bool_t useA4v) { fUseArea4Vector = useA4v;  }
  void SetupAlgorithmfromOpt(const char *option);
  void SetupAreaTypefromOpt(const char *option);
  void SetupSchemefromOpt(const char *option);
  void SetupStrategyfromOpt(const char *option);
  void SetLegacyMode (Bool_t mode)      { fLegacyMode ^= mode; }
  void SetLegacyFJ();
  void SetUseExternalBkg(Bool_t b, Double_t rho, Double_t rhom) { fUseExternalBkg = b; fRho = rho; fRhom = rhom;}
  void SetRMaxAndStep(Double_t rmax, Double_t dr) {fRMax = rmax; fDRStep = dr; }
  void SetRhoRhom (Double_t rho, Double_t rhom) { fUseExternalBkg = kTRUE; fRho = rho; fRhom = rhom;} // if using rho,rhom then fUseExternalBkg is true
  void SetMinJetPt(Double_t MinPt) {fMinJetPt=MinPt;}
  void SetEventSub(Bool_t b) {fEventSub = b;}<commit_msg>bug fix for derivative subtraction<commit_after>#ifndef AliFJWrapper_H
#define AliFJWrapper_H

#if !defined(__CINT__)

#include <vector>
#include <TString.h>
#include "AliLog.h"
#include "FJ_includes.h"
#include "AliJetShape.h"


class AliFJWrapper
{
 public:
  AliFJWrapper(const char *name, const char *title);
  virtual ~AliFJWrapper();

  virtual void  AddInputVector (Double_t px, Double_t py, Double_t pz, Double_t E, Int_t index = -99999);
  virtual void  AddInputVector (const fastjet::PseudoJet& vec,                Int_t index = -99999);
  virtual void  AddInputVectors(const std::vector<fastjet::PseudoJet>& vecs,  Int_t offsetIndex = -99999);
  virtual void  AddInputGhost  (Double_t px, Double_t py, Double_t pz, Double_t E, Int_t index = -99999);
  virtual const char *ClassName()                            const { return "AliFJWrapper";              }
  virtual void  Clear(const Option_t* /*opt*/ = "");
  virtual void  ClearMemory();
  virtual void  CopySettingsFrom (const AliFJWrapper& wrapper);
  virtual void  GetMedianAndSigma(Double_t& median, Double_t& sigma, Int_t remove = 0) const;
  fastjet::ClusterSequenceArea*           GetClusterSequence() const   { return fClustSeq;                 }
  fastjet::ClusterSequence*               GetClusterSequenceSA() const { return fClustSeqSA;               }
  fastjet::ClusterSequenceActiveAreaExplicitGhosts* GetClusterSequenceGhosts() const { return fClustSeqActGhosts; }
  const std::vector<fastjet::PseudoJet>&  GetInputVectors()    const { return fInputVectors;               }
  const std::vector<fastjet::PseudoJet>&  GetEventSubInputVectors()    const { return fEventSubInputVectors;               }
  const std::vector<fastjet::PseudoJet>&  GetInputGhosts()     const { return fInputGhosts;                }
  const std::vector<fastjet::PseudoJet>&  GetInclusiveJets()   const { return fInclusiveJets;              }
  const std::vector<fastjet::PseudoJet>&  GetEventSubJets()   const { return fEventSubJets;              }
  const std::vector<fastjet::PseudoJet>&  GetFilteredJets()    const { return fFilteredJets;               }
  std::vector<fastjet::PseudoJet>         GetJetConstituents(UInt_t idx) const;
  std::vector<fastjet::PseudoJet>         GetEventSubJetConstituents(UInt_t idx) const;
  std::vector<fastjet::PseudoJet>         GetFilteredJetConstituents(UInt_t idx) const;
  Double_t                                GetMedianUsedForBgSubtraction() const { return fMedUsedForBgSub; }
  const char*                             GetName()            const { return fName;                       }
  const char*                             GetTitle()           const { return fTitle;                      }
  Double_t                                GetJetArea         (UInt_t idx) const;
  Double_t                                GetEventSubJetArea         (UInt_t idx) const;
  fastjet::PseudoJet                      GetJetAreaVector   (UInt_t idx) const;
  fastjet::PseudoJet                      GetEventSubJetAreaVector   (UInt_t idx) const;
  Double_t                                GetFilteredJetArea (UInt_t idx) const;
  fastjet::PseudoJet                      GetFilteredJetAreaVector(UInt_t idx) const;
  Double_t                                GetJetSubtractedPt (UInt_t idx) const;
  virtual std::vector<double>             GetSubtractedJetsPts(Double_t median_pt = -1, Bool_t sorted = kFALSE);
  Bool_t                                  GetLegacyMode()            { return fLegacyMode; }
  Bool_t                                  GetDoFilterArea()          { return fDoFilterArea; }
  Double_t                                NSubjettiness(Int_t N, Int_t Algorithm, Double_t Radius, Double_t Beta, Int_t Option=0, Int_t Measure=0, Double_t Beta_SD=0.0, Double_t ZCut=0.1, Int_t SoftDropOn=0);
  Double32_t                              NSubjettinessDerivativeSub(Int_t N, Int_t Algorithm, Double_t Radius, Double_t Beta, Double_t JetR, fastjet::PseudoJet jet, Int_t Option=0, Int_t Measure=0, Double_t Beta_SD=0.0, Double_t ZCut=0.1, Int_t SoftDropOn=0);
#ifdef FASTJET_VERSION
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetMass()        const {return fGenSubtractorInfoJetMass        ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetAngularity()  const {return fGenSubtractorInfoJetAngularity  ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetpTD()         const {return fGenSubtractorInfoJetpTD         ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetCircularity() const {return fGenSubtractorInfoJetCircularity ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetSigma2()      const {return fGenSubtractorInfoJetSigma2      ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetConstituent() const {return fGenSubtractorInfoJetConstituent ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetLeSub()       const {return fGenSubtractorInfoJetLeSub       ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet1subjettiness_kt()       const {return fGenSubtractorInfoJet1subjettiness_kt ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet2subjettiness_kt()       const {return fGenSubtractorInfoJet2subjettiness_kt ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet3subjettiness_kt()       const {return fGenSubtractorInfoJet3subjettiness_kt ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetOpeningAngle_kt()       const {return fGenSubtractorInfoJetOpeningAngle_kt ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet1subjettiness_ca()       const {return fGenSubtractorInfoJet1subjettiness_ca ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet2subjettiness_ca()       const {return fGenSubtractorInfoJet2subjettiness_ca ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetOpeningAngle_ca()       const {return fGenSubtractorInfoJetOpeningAngle_ca ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet1subjettiness_akt02()       const {return fGenSubtractorInfoJet1subjettiness_akt02 ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet2subjettiness_akt02()       const {return fGenSubtractorInfoJet2subjettiness_akt02 ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetOpeningAngle_akt02()       const {return fGenSubtractorInfoJetOpeningAngle_akt02 ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet1subjettiness_casd()       const {return fGenSubtractorInfoJet1subjettiness_casd ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJet2subjettiness_casd()       const {return fGenSubtractorInfoJet2subjettiness_casd ; }
  const std::vector<fastjet::contrib::GenericSubtractorInfo> GetGenSubtractorInfoJetOpeningAngle_casd()       const {return fGenSubtractorInfoJetOpeningAngle_casd ; }
  const std::vector<fastjet::PseudoJet>                      GetConstituentSubtrJets()            const {return fConstituentSubtrJets            ; }
  const std::vector<fastjet::PseudoJet>                      GetGroomedJets()            const {return fGroomedJets            ; }
  Int_t CreateGenSub();          // fastjet::contrib::GenericSubtractor
  Int_t CreateConstituentSub();  // fastjet::contrib::ConstituentSubtractor
  Int_t CreateEventConstituentSub(); //fastjet::contrib::ConstituentSubtractor
  Int_t CreateSoftDrop();
#endif
  virtual std::vector<double>                                GetGRNumerator()                     const { return fGRNumerator                    ; }
  virtual std::vector<double>                                GetGRDenominator()                   const { return fGRDenominator                  ; }
  virtual std::vector<double>                                GetGRNumeratorSub()                  const { return fGRNumeratorSub                 ; }
  virtual std::vector<double>                                GetGRDenominatorSub()                const { return fGRDenominatorSub               ; }

  virtual void RemoveLastInputVector();

  virtual Int_t Run();
  virtual Int_t Filter();
  virtual void  DoGenericSubtraction(const fastjet::FunctionOfPseudoJet<Double32_t>& jetshape, std::vector<fastjet::contrib::GenericSubtractorInfo>& output);
  virtual Int_t DoGenericSubtractionJetMass();
  virtual Int_t DoGenericSubtractionGR(Int_t ijet);
  virtual Int_t DoGenericSubtractionJetAngularity();
  virtual Int_t DoGenericSubtractionJetpTD();
  virtual Int_t DoGenericSubtractionJetCircularity();
  virtual Int_t DoGenericSubtractionJetSigma2();
  virtual Int_t DoGenericSubtractionJetConstituent();
  virtual Int_t DoGenericSubtractionJetLeSub();
  virtual Int_t DoGenericSubtractionJet1subjettiness_kt();
  virtual Int_t DoGenericSubtractionJet2subjettiness_kt();
  virtual Int_t DoGenericSubtractionJet3subjettiness_kt();
  virtual Int_t DoGenericSubtractionJetOpeningAngle_kt();
  virtual Int_t DoGenericSubtractionJet1subjettiness_ca();
  virtual Int_t DoGenericSubtractionJet2subjettiness_ca();
  virtual Int_t DoGenericSubtractionJetOpeningAngle_ca();
  virtual Int_t DoGenericSubtractionJet1subjettiness_akt02();
  virtual Int_t DoGenericSubtractionJet2subjettiness_akt02();
  virtual Int_t DoGenericSubtractionJetOpeningAngle_akt02();
  virtual Int_t DoGenericSubtractionJet1subjettiness_casd();
  virtual Int_t DoGenericSubtractionJet2subjettiness_casd();
  virtual Int_t DoGenericSubtractionJetOpeningAngle_casd();
  virtual Int_t DoConstituentSubtraction();
  virtual Int_t DoEventConstituentSubtraction();
  virtual Int_t DoSoftDrop();
  
  void SetName(const char* name)        { fName           = name;    }
  void SetTitle(const char* title)      { fTitle          = title;   }
  void SetStrategy(const fastjet::Strategy &strat)                 { fStrategy = strat;  }
  void SetAlgorithm(const fastjet::JetAlgorithm &algor)            { fAlgor    = algor;  }
  void SetRecombScheme(const fastjet::RecombinationScheme &scheme) { fScheme   = scheme; }
  void SetAreaType(const fastjet::AreaType &atype)                 { fAreaType = atype;  }
  void SetNRepeats(Int_t nrepeat)       { fNGhostRepeats  = nrepeat; }
  void SetGhostArea(Double_t gharea)    { fGhostArea      = gharea;  }
  void SetMaxRap(Double_t maxrap)       { fMaxRap         = maxrap;  }
  void SetR(Double_t r)                 { fR              = r;       }
  void SetGridScatter(Double_t gridSc)  { fGridScatter    = gridSc;  }
  void SetKtScatter(Double_t ktSc)      { fKtScatter      = ktSc;    }
  void SetMeanGhostKt(Double_t meankt)  { fMeanGhostKt    = meankt;  }
  void SetPluginAlgor(Int_t plugin)     { fPluginAlgor    = plugin;  }
  void SetUseArea4Vector(Bool_t useA4v) { fUseArea4Vector = useA4v;  }
  void SetupAlgorithmfromOpt(const char *option);
  void SetupAreaTypefromOpt(const char *option);
  void SetupSchemefromOpt(const char *option);
  void SetupStrategyfromOpt(const char *option);
  void SetLegacyMode (Bool_t mode)      { fLegacyMode ^= mode; }
  void SetLegacyFJ();
  void SetUseExternalBkg(Bool_t b, Double_t rho, Double_t rhom) { fUseExternalBkg = b; fRho = rho; fRhom = rhom;}
  void SetRMaxAndStep(Double_t rmax, Double_t dr) {fRMax = rmax; fDRStep = dr; }
  void SetRhoRhom (Double_t rho, Double_t rhom) { fUseExternalBkg = kTRUE; fRho = rho; fRhom = rhom;} // if using rho,rhom then fUseExternalBkg is true
  void SetMinJetPt(Double_t MinPt) {fMinJetPt=MinPt;}
  void SetEventSub(Bool_t b) {fEventSub = b;}
{'fraction_non_alphanumeric': 0.0815001047559187, 'fraction_numerical': 0.007919547454431176, 'mean_word_length': 3.62340178225494, 'pattern_counts': {'":': 0, '<': 85, '<?xml version=': 0, '>': 85, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7371264', 'n_tokens_mistral': 7699, 'n_tokens_neox': 7344, 'n_words': 1390}