Program Listing for File Jet.h

Return to documentation for file (xAODAnaHelpers/Jet.h)

#ifndef xAODAnaHelpers_Jet_H
#define xAODAnaHelpers_Jet_H

#include "xAODAnaHelpers/Particle.h"
#include "xAODAnaHelpers/MuonContainer.h"


namespace xAH {

  class Jet : public Particle
    {
    public:
      enum BTaggerOP {
    None,
    DL1r_FixedCutBEff_60  , DL1r_FixedCutBEff_70  , DL1r_FixedCutBEff_77  , DL1r_FixedCutBEff_85  ,
    DL1dv00_FixedCutBEff_60  , DL1dv00_FixedCutBEff_70  , DL1dv00_FixedCutBEff_77  , DL1dv00_FixedCutBEff_85  ,
    DL1dv01_FixedCutBEff_60  , DL1dv01_FixedCutBEff_70  , DL1dv01_FixedCutBEff_77  , DL1dv01_FixedCutBEff_85  ,
    GN120220509_FixedCutBEff_60  , GN120220509_FixedCutBEff_70  , GN120220509_FixedCutBEff_77  , GN120220509_FixedCutBEff_85  ,
    DL1dv00_Continuous, DL1r_Continuous, DL1dv01_Continuous, GN120220509_Continuous , // Continuous
  GN2v00LegacyWP_FixedCutBEff_60  , GN2v00LegacyWP_FixedCutBEff_70  , GN2v00LegacyWP_FixedCutBEff_77  , GN2v00LegacyWP_FixedCutBEff_85  ,
  GN2v00NewAliasWP_FixedCutBEff_60  , GN2v00NewAliasWP_FixedCutBEff_70  , GN2v00NewAliasWP_FixedCutBEff_77  , GN2v00NewAliasWP_FixedCutBEff_85  ,
  GN2v01_FixedCutBEff_65  , GN2v01_FixedCutBEff_70  , GN2v01_FixedCutBEff_77  , GN2v01_FixedCutBEff_85  , GN2v01_FixedCutBEff_90  ,
    GN2v01_Continuous , // Continuous
      };

      float rapidity;

      // trigger
      int               isTrigMatched;
      std::vector<int>  isTrigMatchedToChain;
      std::string       listTrigChains;

      // clean
      float Timing;
      float LArQuality;
      float HECQuality;
      float NegativeE;
      float AverageLArQF;
      float BchCorrCell;
      float N90Constituents;
      float LArBadHVEFrac;
      int   LArBadHVNCell;
      float ChargedFraction;
      float OotFracClusters5;
      float OotFracClusters10;
      float LeadingClusterPt;
      float LeadingClusterSecondLambda;
      float LeadingClusterCenterLambda;
      float LeadingClusterSecondR;
      int   clean_passLooseBad;
      int   clean_passLooseBadLLP;
      int   clean_passLooseBadTrigger;
      int   clean_passLooseBadTriggerUgly;
      int   clean_passLooseBadUgly;
      int   clean_passTightBad;
      int   clean_passTightBadUgly;

      // energy
      float HECFrac;
      float EMFrac;
      float CentroidR;
      float FracSamplingMax;
      float FracSamplingMaxIndex;
      float LowEtConstituentsFrac;
      float GhostMuonSegmentCount;
      float Width;

      // trackPV
      float NumTrkPt1000PV;
      float SumPtTrkPt1000PV;
      float TrackWidthPt1000PV;
      float NumTrkPt500PV;
      float SumPtTrkPt500PV;
      float TrackWidthPt500PV;
      float JVFPV;

      // trackAll or trackPV
      float Jvt;
      float JvtJvfcorr;
      float JvtRpt;

      // chargedPFOPV
      float SumPtChargedPFOPt500PV;
      float fCharged;

      //JVC
      float JVC;

      // flavTag
      float SV0;
      float SV1;
      float IP3D;
      float SV1IP3D;
      float COMBx;
      float DL1r;
      float DL1r_pu;
      float DL1r_pc;
      float DL1r_pb;
      float DL1dv00;
      float DL1dv00_pu;
      float DL1dv00_pc;
      float DL1dv00_pb;
      float DL1dv01;
      float DL1dv01_pu;
      float DL1dv01_pc;
      float DL1dv01_pb;
      float fastDIPS;
      float fastDIPS_pu;
      float fastDIPS_pc;
      float fastDIPS_pb;
      float GN1;
      float GN1_pu;
      float GN1_pc;
      float GN1_pb;
      float GN2v00LegacyWP;
      float GN2v00LegacyWP_pu;
      float GN2v00LegacyWP_pc;
      float GN2v00LegacyWP_pb;
      float GN2v00NewAliasWP;
      float GN2v00NewAliasWP_pu;
      float GN2v00NewAliasWP_pc;
      float GN2v00NewAliasWP_pb;
      float GN2v01;
      float GN2v01_pu;
      float GN2v01_pc;
      float GN2v01_pb;
      float GN2v01_ptau;
      int  HadronConeExclTruthLabelID;
      int  HadronConeExclExtendedTruthLabelID;

      float vtxOnlineValid;
      float vtxHadDummy;

      float bs_online_vx;
      float bs_online_vy;
      float bs_online_vz;

      float vtx_offline_x0;
      float vtx_offline_y0;
      float vtx_offline_z0;

      float vtx_online_x0;
      float vtx_online_y0;
      float vtx_online_z0;

      float vtx_online_bkg_x0;
      float vtx_online_bkg_y0;
      float vtx_online_bkg_z0;

      float JetFitter_nVTX           ;
      float JetFitter_nSingleTracks  ;
      float JetFitter_nTracksAtVtx   ;
      float JetFitter_mass           ;
      float JetFitter_energyFraction ;
      float JetFitter_significance3d ;
      float JetFitter_deltaeta       ;
      float JetFitter_deltaphi       ;
      float JetFitter_N2Tpar         ;

      float sv0_NGTinSvx  ;
      float sv0_N2Tpair   ;
      float sv0_massvx    ;
      float sv0_efracsvx  ;
      float sv0_normdist  ;
      float sv1_pu        ;
      float sv1_pb        ;
      float sv1_pc        ;
      float sv1_c         ;
      float sv1_cu        ;
      float sv1_NGTinSvx  ;
      float sv1_N2Tpair   ;
      float sv1_massvx    ;
      float sv1_efracsvx  ;
      float sv1_normdist  ;
      float sv1_Lxy       ;
      float sv1_sig3d     ;
      float sv1_L3d       ;
      float sv1_distmatlay;
      float sv1_dR        ;

      float IP2D_pu     ;
      float IP2D_pb     ;
      float IP2D_pc     ;
      float IP2D        ;
      float IP2D_c      ;
      float IP2D_cu     ;
      float nIP2DTracks ;

      std::vector<float> IP2D_gradeOfTracks         ;
      std::vector<float> IP2D_flagFromV0ofTracks    ;
      std::vector<float> IP2D_valD0wrtPVofTracks    ;
      std::vector<float> IP2D_sigD0wrtPVofTracks    ;
      std::vector<float> IP2D_weightBofTracks       ;
      std::vector<float> IP2D_weightCofTracks       ;
      std::vector<float> IP2D_weightUofTracks       ;

      float IP3D_pu     ;
      float IP3D_pb     ;
      float IP3D_pc     ;
      float IP3D_c      ;
      float IP3D_cu     ;
      float nIP3DTracks ;

      std::vector<float> IP3D_gradeOfTracks      ;
      std::vector<float> IP3D_flagFromV0ofTracks ;
      std::vector<float> IP3D_valD0wrtPVofTracks ;
      std::vector<float> IP3D_sigD0wrtPVofTracks ;
      std::vector<float> IP3D_valZ0wrtPVofTracks ;
      std::vector<float> IP3D_sigZ0wrtPVofTracks ;
      std::vector<float> IP3D_weightBofTracks    ;
      std::vector<float> IP3D_weightCofTracks    ;
      std::vector<float> IP3D_weightUofTracks    ;

      // jetBTag

      int is_DL1r_FixedCutBEff_60;
      std::vector<float> SF_DL1r_FixedCutBEff_60;
      int is_DL1r_FixedCutBEff_70;
      std::vector<float> SF_DL1r_FixedCutBEff_70;
      int is_DL1r_FixedCutBEff_77;
      std::vector<float> SF_DL1r_FixedCutBEff_77;
      int is_DL1r_FixedCutBEff_85;
      std::vector<float> SF_DL1r_FixedCutBEff_85;
      int is_DL1dv00_FixedCutBEff_60;
      std::vector<float> SF_DL1dv00_FixedCutBEff_60;
      int is_DL1dv00_FixedCutBEff_70;
      std::vector<float> SF_DL1dv00_FixedCutBEff_70;
      int is_DL1dv00_FixedCutBEff_77;
      std::vector<float> SF_DL1dv00_FixedCutBEff_77;
      int is_DL1dv00_FixedCutBEff_85;
      std::vector<float> SF_DL1dv00_FixedCutBEff_85;
      int is_DL1dv01_FixedCutBEff_60;
      std::vector<float> SF_DL1dv01_FixedCutBEff_60;
      int is_DL1dv01_FixedCutBEff_70;
      std::vector<float> SF_DL1dv01_FixedCutBEff_70;
      int is_DL1dv01_FixedCutBEff_77;
      std::vector<float> SF_DL1dv01_FixedCutBEff_77;
      int is_DL1dv01_FixedCutBEff_85;
      std::vector<float> SF_DL1dv01_FixedCutBEff_85;
      int is_GN120220509_FixedCutBEff_60;
      std::vector<float> SF_GN120220509_FixedCutBEff_60;
      int is_GN120220509_FixedCutBEff_70;
      std::vector<float> SF_GN120220509_FixedCutBEff_70;
      int is_GN120220509_FixedCutBEff_77;
      std::vector<float> SF_GN120220509_FixedCutBEff_77;
      int is_GN120220509_FixedCutBEff_85;
      std::vector<float> SF_GN120220509_FixedCutBEff_85;
      int is_GN2v00LegacyWP_FixedCutBEff_60;
      std::vector<float> SF_GN2v00LegacyWP_FixedCutBEff_60;
      int is_GN2v00LegacyWP_FixedCutBEff_70;
      std::vector<float> SF_GN2v00LegacyWP_FixedCutBEff_70;
      int is_GN2v00LegacyWP_FixedCutBEff_77;
      std::vector<float> SF_GN2v00LegacyWP_FixedCutBEff_77;
      int is_GN2v00LegacyWP_FixedCutBEff_85;
      std::vector<float> SF_GN2v00LegacyWP_FixedCutBEff_85;
      int is_GN2v00NewAliasWP_FixedCutBEff_60;
      std::vector<float> SF_GN2v00NewAliasWP_FixedCutBEff_60;
      int is_GN2v00NewAliasWP_FixedCutBEff_70;
      std::vector<float> SF_GN2v00NewAliasWP_FixedCutBEff_70;
      int is_GN2v00NewAliasWP_FixedCutBEff_77;
      std::vector<float> SF_GN2v00NewAliasWP_FixedCutBEff_77;
      int is_GN2v00NewAliasWP_FixedCutBEff_85;
      std::vector<float> SF_GN2v00NewAliasWP_FixedCutBEff_85;
      int is_GN2v01_FixedCutBEff_65;
      std::vector<float> SF_GN2v01_FixedCutBEff_65;
      int is_GN2v01_FixedCutBEff_70;
      std::vector<float> SF_GN2v01_FixedCutBEff_70;
      int is_GN2v01_FixedCutBEff_77;
      std::vector<float> SF_GN2v01_FixedCutBEff_77;
      int is_GN2v01_FixedCutBEff_85;
      std::vector<float> SF_GN2v01_FixedCutBEff_85;
      int is_GN2v01_FixedCutBEff_90;
      std::vector<float> SF_GN2v01_FixedCutBEff_90;

      // Continuous
      int is_DL1r_Continuous;
      std::vector<float> SF_DL1r_Continuous;
      std::vector<float> inEffSF_DL1r_Continuous;
      int is_DL1dv00_Continuous;
      std::vector<float> SF_DL1dv00_Continuous;
      std::vector<float> inEffSF_DL1dv00_Continuous;
      int is_DL1dv01_Continuous;
      std::vector<float> SF_DL1dv01_Continuous;
      std::vector<float> inEffSF_DL1dv01_Continuous;
      int is_GN120220509_Continuous;
      std::vector<float> SF_GN120220509_Continuous;
      std::vector<float> inEffSF_GN120220509_Continuous;
      int is_GN2v00LegacyWP_Continuous;
      std::vector<float> SF_GN2v00LegacyWP_Continuous;
      std::vector<float> inEffSF_GN2v00LegacyWP_Continuous;
      int is_GN2v00NewAliasWP_Continuous;
      std::vector<float> SF_GN2v00NewAliasWP_Continuous;
      std::vector<float> inEffSF_GN2v00NewAliasWP_Continuous;
      int is_GN2v01_Continuous;
      std::vector<float> SF_GN2v01_Continuous;
      std::vector<float> inEffSF_GN2v01_Continuous;

      // truth
      int   ConeTruthLabelID;
      int   TruthCount;
      float TruthLabelDeltaR_B;
      float TruthLabelDeltaR_C;
      float TruthLabelDeltaR_T;
      int   PartonTruthLabelID;
      float GhostTruthAssociationFraction;
      TLorentzVector truth_p4;

      // charge
      double charge;

      // passSel
      char passSel;

      // passOR
      char passOR;

      const Muon* matchedMuon =nullptr;
      const Jet * matchedJet  =nullptr;

    public:
      int is_btag(BTaggerOP op) const;
      const std::vector<float>& SF_btag(BTaggerOP op) const;

      void muonInJetCorrection(const xAH::MuonContainer* muons);

    };

}//xAH
#endif // xAODAnaHelpers_Particle_H