Program Listing for File JetContainer.h¶
↰ Return to documentation for file (xAODAnaHelpers/JetContainer.h
)
#ifndef xAODAnaHelpers_JetContainer_H
#define xAODAnaHelpers_JetContainer_H
#include <TTree.h>
#include <TLorentzVector.h>
#include <vector>
#include <string>
#include "xAODJet/JetContainer.h"
#include <xAODAnaHelpers/HelperClasses.h>
#include <xAODAnaHelpers/HelperFunctions.h>
#include <xAODAnaHelpers/Jet.h>
#include <xAODAnaHelpers/ParticleContainer.h>
#include "InDetTrackSelectionTool/InDetTrackSelectionTool.h"
namespace xAH {
class JetContainer : public ParticleContainer<Jet,HelperClasses::JetInfoSwitch>
{
public:
JetContainer(const std::string& name = "jet", const std::string& detailStr="", float units = 1e3, bool mc = false);
virtual ~JetContainer();
virtual void setTree (TTree *tree);
virtual void setBranches(TTree *tree);
virtual void clear();
virtual void FillJet( const xAOD::Jet* jet, const xAOD::Vertex* pv, int pvLocation );
virtual void FillJet( const xAOD::IParticle* particle, const xAOD::Vertex* pv, int pvLocation );
virtual void updateParticle(uint idx, Jet& jet);
//template<typename T>
// void setBranch(TTree* tree, std::string varName, std::vector<T>* localVectorPtr);
private:
InDet::InDetTrackSelectionTool * m_trkSelTool;
//
// Vector branches
// rapidity
std::vector<float> *m_rapidity;
// trigger
std::vector<int> *m_isTrigMatched;
std::vector<std::vector<int> > *m_isTrigMatchedToChain;
std::vector<std::string> *m_listTrigChains;
// clean
std::vector<float> *m_Timing;
std::vector<float> *m_LArQuality;
std::vector<float> *m_HECQuality;
std::vector<float> *m_NegativeE;
std::vector<float> *m_AverageLArQF;
std::vector<float> *m_BchCorrCell;
std::vector<float> *m_N90Constituents;
std::vector<float> *m_LArBadHVEnergyFrac;
std::vector<int> *m_LArBadHVNCell;
std::vector<float> *m_ChargedFraction;
std::vector<float> *m_OotFracClusters5;
std::vector<float> *m_OotFracClusters10;
std::vector<float> *m_LeadingClusterPt;
std::vector<float> *m_LeadingClusterSecondLambda;
std::vector<float> *m_LeadingClusterCenterLambda;
std::vector<float> *m_LeadingClusterSecondR;
std::vector<int> *m_clean_passLooseBad;
std::vector<int> *m_clean_passLooseBadLLP;
std::vector<int> *m_clean_passLooseBadUgly;
std::vector<int> *m_clean_passLooseBadTrigger;
std::vector<int> *m_clean_passLooseBadTriggerUgly;
std::vector<int> *m_clean_passTightBad;
std::vector<int> *m_clean_passTightBadUgly;
// energy
std::vector<float> *m_HECFrac;
std::vector<float> *m_EMFrac;
std::vector<float> *m_CentroidR;
std::vector<float> *m_FracSamplingMax;
std::vector<float> *m_FracSamplingMaxIndex;
std::vector<float> *m_LowEtConstituentsFrac;
std::vector<float> *m_GhostMuonSegmentCount;
std::vector<float> *m_Width;
// scales
std::vector<float> *m_emScalePt;
std::vector<float> *m_constScalePt;
std::vector<float> *m_pileupScalePt;
std::vector<float> *m_originConstitScalePt;
std::vector<float> *m_etaJESScalePt;
std::vector<float> *m_gscScalePt;
std::vector<float> *m_jmsScalePt;
std::vector<float> *m_insituScalePt;
std::vector<float> *m_emScaleM;
std::vector<float> *m_constScaleM;
std::vector<float> *m_pileupScaleM;
std::vector<float> *m_originConstitScaleM;
std::vector<float> *m_etaJESScaleM;
std::vector<float> *m_gscScaleM;
std::vector<float> *m_jmsScaleM;
std::vector<float> *m_insituScaleM;
// constScale Eta
std::vector<float> *m_constScaleEta;
// detector Eta
std::vector<float> *m_detectorEta;
// layer
std::vector< std::vector<float> > *m_EnergyPerSampling;
// tracksAll
std::vector< std::vector<int> > *m_NumTrkPt1000;
std::vector< std::vector<float> > *m_SumPtTrkPt1000;
std::vector< std::vector<float> > *m_TrackWidthPt1000;
std::vector< std::vector<int> > *m_NumTrkPt500;
std::vector< std::vector<float> > *m_SumPtTrkPt500;
std::vector< std::vector<float> > *m_TrackWidthPt500;
std::vector< std::vector<float> > *m_JVF;
// trackPV
std::vector<float> *m_NumTrkPt1000PV;
std::vector<float> *m_SumPtTrkPt1000PV;
std::vector<float> *m_TrackWidthPt1000PV;
std::vector<float> *m_NumTrkPt500PV;
std::vector<float> *m_SumPtTrkPt500PV;
std::vector<float> *m_TrackWidthPt500PV;
std::vector<float> *m_JVFPV;
// trackAll or trackPV
std::vector<float> *m_Jvt;
std::vector<int> *m_JvtPass_Loose;
std::vector< std::vector<float> > *m_JvtEff_SF_Loose;
std::vector<int> *m_JvtPass_Medium;
std::vector< std::vector<float> > *m_JvtEff_SF_Medium;
std::vector<int> *m_JvtPass_Tight;
std::vector< std::vector<float> > *m_JvtEff_SF_Tight;
std::vector<float> *m_JvtJvfcorr;
std::vector<float> *m_JvtRpt;
std::vector<float> *m_fJvt;
std::vector<int> *m_fJvtPass_Loose;
std::vector< std::vector<float> > *m_fJvtEff_SF_Loose;
std::vector<int> *m_fJvtPass_Medium;
std::vector< std::vector<float> > *m_fJvtEff_SF_Medium;
std::vector<int> *m_fJvtPass_Tight;
std::vector< std::vector<float> > *m_fJvtEff_SF_Tight;
// NNJvt
std::vector<float> *m_NNJvt;
std::vector<bool> *m_NNJvtPass;
std::vector<int> *m_JvtPass_FixedEffPt;
std::vector< std::vector<float> > *m_JvtEff_SF_FixedEffPt;
std::vector<int> *m_JvtPass_TightFwd;
std::vector< std::vector<float> > *m_JvtEff_SF_TightFwd;
// chargedPFOPV
std::vector<float> *m_SumPtChargedPFOPt500PV;
std::vector<float> *m_fCharged;
// allTrack
std::vector<int> *m_GhostTrackCount;
std::vector<float> *m_GhostTrackPt;
std::vector< std::vector<float> > *m_GhostTrack_pt;
std::vector< std::vector<float> > *m_GhostTrack_qOverP;
std::vector< std::vector<float> > *m_GhostTrack_eta;
std::vector< std::vector<float> > *m_GhostTrack_phi;
std::vector< std::vector<float> > *m_GhostTrack_e;
std::vector< std::vector<float> > *m_GhostTrack_d0;
std::vector< std::vector<float> > *m_GhostTrack_z0;
// allTrackDetail
std::vector< std::vector<int> > *m_GhostTrack_nPixelHits;
std::vector< std::vector<int> > *m_GhostTrack_nSCTHits;
std::vector< std::vector<int> > *m_GhostTrack_nTRTHits;
std::vector< std::vector<int> > *m_GhostTrack_nPixelSharedHits;
std::vector< std::vector<int> > *m_GhostTrack_nPixelSplitHits;
std::vector< std::vector<int> > *m_GhostTrack_nInnermostPixelLayerHits;
std::vector< std::vector<int> > *m_GhostTrack_nInnermostPixelLayerSharedHits;
std::vector< std::vector<int> > *m_GhostTrack_nInnermostPixelLayerSplitHits;
std::vector< std::vector<int> > *m_GhostTrack_nNextToInnermostPixelLayerHits;
std::vector< std::vector<int> > *m_GhostTrack_nNextToInnermostPixelLayerSharedHits;
std::vector< std::vector<int> > *m_GhostTrack_nNextToInnermostPixelLayerSplitHits;
// constituent
std::vector< int > *m_numConstituents;
std::vector< std::vector<float> > *m_constituentWeights;
std::vector< std::vector<float> > *m_constituent_pt;
std::vector< std::vector<float> > *m_constituent_eta;
std::vector< std::vector<float> > *m_constituent_phi;
std::vector< std::vector<float> > *m_constituent_e;
// flavTag
std::vector<int> *m_HadronConeExclTruthLabelID;
std::vector<int> *m_HadronConeExclExtendedTruthLabelID;
std::vector<float> *m_DL1r;
std::vector<float> *m_DL1r_pu;
std::vector<float> *m_DL1r_pc;
std::vector<float> *m_DL1r_pb;
std::vector<float> *m_DL1dv00;
std::vector<float> *m_DL1dv00_pu;
std::vector<float> *m_DL1dv00_pc;
std::vector<float> *m_DL1dv00_pb;
std::vector<float> *m_DL1dv01;
std::vector<float> *m_DL1dv01_pu;
std::vector<float> *m_DL1dv01_pc;
std::vector<float> *m_DL1dv01_pb;
std::vector<float> *m_fastDIPS;
std::vector<float> *m_fastDIPS_pu;
std::vector<float> *m_fastDIPS_pb;
std::vector<float> *m_fastDIPS_pc;
std::vector<float> *m_GN1;
std::vector<float> *m_GN1_pu;
std::vector<float> *m_GN1_pc;
std::vector<float> *m_GN1_pb;
std::vector<float> *m_GN2v00LegacyWP;
std::vector<float> *m_GN2v00LegacyWP_pu;
std::vector<float> *m_GN2v00LegacyWP_pc;
std::vector<float> *m_GN2v00LegacyWP_pb;
std::vector<float> *m_GN2v00NewAliasWP;
std::vector<float> *m_GN2v00NewAliasWP_pu;
std::vector<float> *m_GN2v00NewAliasWP_pc;
std::vector<float> *m_GN2v00NewAliasWP_pb;
std::vector<float> *m_GN2v01;
std::vector<float> *m_GN2v01_pu;
std::vector<float> *m_GN2v01_pc;
std::vector<float> *m_GN2v01_pb;
std::vector<float> *m_GN2v01_ptau;
// Jet Fitter
std::vector<float> *m_JetFitter_nVTX ;
std::vector<float> *m_JetFitter_nSingleTracks ;
std::vector<float> *m_JetFitter_nTracksAtVtx ;
std::vector<float> *m_JetFitter_mass ;
std::vector<float> *m_JetFitter_energyFraction ;
std::vector<float> *m_JetFitter_significance3d ;
std::vector<float> *m_JetFitter_deltaeta ;
std::vector<float> *m_JetFitter_deltaphi ;
std::vector<float> *m_JetFitter_N2Tpar ;
// SV Details
std::vector<float> *m_SV0;
std::vector<float> *m_sv0_NGTinSvx ;
std::vector<float> *m_sv0_N2Tpair ;
std::vector<float> *m_sv0_massvx ;
std::vector<float> *m_sv0_efracsvx ;
std::vector<float> *m_sv0_normdist ;
std::vector<float> *m_SV1;
std::vector<float> *m_SV1IP3D;
std::vector<float> *m_COMBx;
std::vector<float> *m_sv1_pu ;
std::vector<float> *m_sv1_pb ;
std::vector<float> *m_sv1_pc ;
std::vector<float> *m_sv1_c ;
std::vector<float> *m_sv1_cu ;
std::vector<float> *m_sv1_NGTinSvx ;
std::vector<float> *m_sv1_N2Tpair ;
std::vector<float> *m_sv1_massvx ;
std::vector<float> *m_sv1_efracsvx ;
std::vector<float> *m_sv1_normdist ;
std::vector<float> *m_sv1_Lxy ;
std::vector<float> *m_sv1_sig3d ;
std::vector<float> *m_sv1_L3d ;
std::vector<float> *m_sv1_distmatlay;
std::vector<float> *m_sv1_dR ;
// IP3D
std::vector<float> *m_IP2D_pu ;
std::vector<float> *m_IP2D_pb ;
std::vector<float> *m_IP2D_pc ;
std::vector<float> *m_IP2D ;
std::vector<float> *m_IP2D_c ;
std::vector<float> *m_IP2D_cu ;
std::vector<float> *m_nIP2DTracks ;
std::vector<std::vector<float> > *m_IP2D_gradeOfTracks ;
std::vector<std::vector<float> > *m_IP2D_flagFromV0ofTracks ;
std::vector<std::vector<float> > *m_IP2D_valD0wrtPVofTracks ;
std::vector<std::vector<float> > *m_IP2D_sigD0wrtPVofTracks ;
std::vector<std::vector<float> > *m_IP2D_weightBofTracks ;
std::vector<std::vector<float> > *m_IP2D_weightCofTracks ;
std::vector<std::vector<float> > *m_IP2D_weightUofTracks ;
std::vector<float> *m_IP3D_pu ;
std::vector<float> *m_IP3D_pb ;
std::vector<float> *m_IP3D_pc ;
std::vector<float> *m_IP3D ;
std::vector<float> *m_IP3D_c ;
std::vector<float> *m_IP3D_cu ;
std::vector<float> *m_nIP3DTracks ;
std::vector<std::vector<float> > *m_IP3D_gradeOfTracks ;
std::vector<std::vector<float> > *m_IP3D_flagFromV0ofTracks ;
std::vector<std::vector<float> > *m_IP3D_valD0wrtPVofTracks ;
std::vector<std::vector<float> > *m_IP3D_sigD0wrtPVofTracks ;
std::vector<std::vector<float> > *m_IP3D_valZ0wrtPVofTracks ;
std::vector<std::vector<float> > *m_IP3D_sigZ0wrtPVofTracks ;
std::vector<std::vector<float> > *m_IP3D_weightBofTracks ;
std::vector<std::vector<float> > *m_IP3D_weightCofTracks ;
std::vector<std::vector<float> > *m_IP3D_weightUofTracks ;
std::vector<float> *m_vtxOnlineValid;
std::vector<float> *m_vtxHadDummy;
std::vector<float> *m_bs_online_vx;
std::vector<float> *m_bs_online_vy;
std::vector<float> *m_bs_online_vz;
std::vector<float> *m_vtx_offline_x0;
std::vector<float> *m_vtx_offline_y0;
std::vector<float> *m_vtx_offline_z0;
std::vector<float> *m_vtx_online_x0;
std::vector<float> *m_vtx_online_y0;
std::vector<float> *m_vtx_online_z0;
std::vector<float> *m_vtx_online_bkg_x0;
std::vector<float> *m_vtx_online_bkg_y0;
std::vector<float> *m_vtx_online_bkg_z0;
struct btagOpPoint {
bool m_mc;
std::string m_accessorName;
Jet::BTaggerOP m_op = Jet::BTaggerOP::None;
bool m_isContinuous;
// branches
std::vector<int>* m_isTag;
std::vector< std::vector<float> >* m_sf;
std::vector< std::vector<float> >* m_ineffSf; // for continuous
btagOpPoint(bool mc, const std::string& tagger, const std::string& wp)
: m_mc(mc), m_accessorName(tagger+"_"+wp)
{
m_isTag = new std::vector<int>();
m_sf = new std::vector< std::vector<float> >();
m_isContinuous = (wp == "Continuous");
if(m_isContinuous)
m_ineffSf = new std::vector< std::vector<float> >();
else if(m_accessorName=="DL1r_FixedCutBEff_60")
m_op=Jet::BTaggerOP::DL1r_FixedCutBEff_60;
else if(m_accessorName=="DL1r_FixedCutBEff_70")
m_op=Jet::BTaggerOP::DL1r_FixedCutBEff_70;
else if(m_accessorName=="DL1r_FixedCutBEff_77")
m_op=Jet::BTaggerOP::DL1r_FixedCutBEff_77;
else if(m_accessorName=="DL1r_FixedCutBEff_85")
m_op=Jet::BTaggerOP::DL1r_FixedCutBEff_85;
else if(m_accessorName=="DL1dv00_FixedCutBEff_60")
m_op=Jet::BTaggerOP::DL1dv00_FixedCutBEff_60;
else if(m_accessorName=="DL1dv00_FixedCutBEff_70")
m_op=Jet::BTaggerOP::DL1dv00_FixedCutBEff_70;
else if(m_accessorName=="DL1dv00_FixedCutBEff_77")
m_op=Jet::BTaggerOP::DL1dv00_FixedCutBEff_77;
else if(m_accessorName=="DL1dv00_FixedCutBEff_85")
m_op=Jet::BTaggerOP::DL1dv00_FixedCutBEff_85;
else if(m_accessorName=="DL1dv01_FixedCutBEff_60")
m_op=Jet::BTaggerOP::DL1dv01_FixedCutBEff_60;
else if(m_accessorName=="DL1dv01_FixedCutBEff_70")
m_op=Jet::BTaggerOP::DL1dv01_FixedCutBEff_70;
else if(m_accessorName=="DL1dv01_FixedCutBEff_77")
m_op=Jet::BTaggerOP::DL1dv01_FixedCutBEff_77;
else if(m_accessorName=="DL1dv01_FixedCutBEff_85")
m_op=Jet::BTaggerOP::DL1dv01_FixedCutBEff_85;
else if(m_accessorName=="GN120220509_FixedCutBEff_60")
m_op=Jet::BTaggerOP::GN120220509_FixedCutBEff_60;
else if(m_accessorName=="GN120220509_FixedCutBEff_70")
m_op=Jet::BTaggerOP::GN120220509_FixedCutBEff_70;
else if(m_accessorName=="GN120220509_FixedCutBEff_77")
m_op=Jet::BTaggerOP::GN120220509_FixedCutBEff_77;
else if(m_accessorName=="GN120220509_FixedCutBEff_85")
m_op=Jet::BTaggerOP::GN120220509_FixedCutBEff_85;
else if(m_accessorName=="GN2v00LegacyWP_FixedCutBEff_60")
m_op=Jet::BTaggerOP::GN2v00LegacyWP_FixedCutBEff_60;
else if(m_accessorName=="GN2v00LegacyWP_FixedCutBEff_70")
m_op=Jet::BTaggerOP::GN2v00LegacyWP_FixedCutBEff_70;
else if(m_accessorName=="GN2v00LegacyWP_FixedCutBEff_77")
m_op=Jet::BTaggerOP::GN2v00LegacyWP_FixedCutBEff_77;
else if(m_accessorName=="GN2v00LegacyWP_FixedCutBEff_85")
m_op=Jet::BTaggerOP::GN2v00LegacyWP_FixedCutBEff_85;
else if(m_accessorName=="GN2v00NewAliasWP_FixedCutBEff_60")
m_op=Jet::BTaggerOP::GN2v00NewAliasWP_FixedCutBEff_60;
else if(m_accessorName=="GN2v00NewAliasWP_FixedCutBEff_70")
m_op=Jet::BTaggerOP::GN2v00NewAliasWP_FixedCutBEff_70;
else if(m_accessorName=="GN2v00NewAliasWP_FixedCutBEff_77")
m_op=Jet::BTaggerOP::GN2v00NewAliasWP_FixedCutBEff_77;
else if(m_accessorName=="GN2v00NewAliasWP_FixedCutBEff_85")
m_op=Jet::BTaggerOP::GN2v00NewAliasWP_FixedCutBEff_85;
else if(m_accessorName=="GN2v01_FixedCutBEff_65")
m_op=Jet::BTaggerOP::GN2v01_FixedCutBEff_65;
else if(m_accessorName=="GN2v01_FixedCutBEff_70")
m_op=Jet::BTaggerOP::GN2v01_FixedCutBEff_70;
else if(m_accessorName=="GN2v01_FixedCutBEff_77")
m_op=Jet::BTaggerOP::GN2v01_FixedCutBEff_77;
else if(m_accessorName=="GN2v01_FixedCutBEff_85")
m_op=Jet::BTaggerOP::GN2v01_FixedCutBEff_85;
else if(m_accessorName=="GN2v01_FixedCutBEff_90")
m_op=Jet::BTaggerOP::GN2v01_FixedCutBEff_90;
}
~btagOpPoint()
{
delete m_isTag;
delete m_sf;
if(m_isContinuous)
delete m_ineffSf;
}
void setTree(TTree *tree, const std::string& jetName)
{
std::string branch = m_isContinuous ? "Quantile_"+m_accessorName : "is_"+m_accessorName;
HelperFunctions::connectBranch<int> (jetName, tree, branch, &m_isTag);
if(m_mc)
{
HelperFunctions::connectBranch<std::vector<float> >(jetName, tree,"SF_"+m_accessorName, &m_sf);
if(m_isContinuous)
HelperFunctions::connectBranch<std::vector<float>>(jetName, tree, "InefficiencySF_"+m_accessorName, &m_ineffSf);
}
}
void setBranch(TTree *tree, const std::string& jetName)
{
std::string id = m_isContinuous ? "_Quantile_" : "_is_";
tree->Branch((jetName+id+m_accessorName).c_str(), &m_isTag);
if ( m_mc )
{
tree->Branch((jetName+"_SF_"+m_accessorName).c_str() , &m_sf);
if(m_isContinuous)
tree->Branch((jetName+"_InefficiencySF_"+m_accessorName).c_str(), &m_ineffSf);
}
}
void clear()
{
m_isTag->clear();
m_sf->clear();
if(m_isContinuous)
m_ineffSf->clear();
}
void Fill( const xAOD::Jet* jet )
{
static const std::vector<float> junk(1,-999);
if( m_isContinuous )
{
SG::AuxElement::ConstAccessor< int > quantile("BTag_Quantile_"+m_accessorName);
m_isTag->push_back( quantile.isAvailable(*jet) ? quantile(*jet) : -1 );
if(m_mc)
{
SG::AuxElement::ConstAccessor< std::vector<float> > sf( "BTag_SF_" +m_accessorName);
SG::AuxElement::ConstAccessor< std::vector<float> > ineffSf("BTag_InefficiencySF_"+m_accessorName);
m_sf ->push_back( sf.isAvailable( *jet ) ? sf( *jet ) : junk);
m_ineffSf->push_back( ineffSf.isAvailable( *jet ) ? ineffSf( *jet ) : junk);
}
}
else
{
SG::AuxElement::ConstAccessor< char > isTag("BTag_"+m_accessorName);
m_isTag->push_back( isTag.isAvailable(*jet) ? isTag(*jet) : -1 );
if(m_mc)
{
SG::AuxElement::ConstAccessor< std::vector<float> > sf("BTag_SF_"+m_accessorName);
m_sf->push_back( sf.isAvailable( *jet ) ? sf( *jet ) : junk);
}
}
} // Fill
};
std::vector<btagOpPoint*> m_btags;
// JVC
std::vector<double> *m_JetVertexCharge_discriminant;
// area
std::vector<float> *m_GhostArea;
std::vector<float> *m_ActiveArea;
std::vector<float> *m_VoronoiArea;
std::vector<float> *m_ActiveArea4vec_pt;
std::vector<float> *m_ActiveArea4vec_eta;
std::vector<float> *m_ActiveArea4vec_phi;
std::vector<float> *m_ActiveArea4vec_m;
// truth
std::vector<int> *m_ConeTruthLabelID;
std::vector<int> *m_TruthCount;
std::vector<float> *m_TruthLabelDeltaR_B;
std::vector<float> *m_TruthLabelDeltaR_C;
std::vector<float> *m_TruthLabelDeltaR_T;
std::vector<int> *m_PartonTruthLabelID;
std::vector<float> *m_GhostTruthAssociationFraction;
std::vector<float> *m_truth_E;
std::vector<float> *m_truth_pt;
std::vector<float> *m_truth_phi;
std::vector<float> *m_truth_eta;
// truth detail
std::vector<int> *m_GhostBHadronsFinalCount;
std::vector<int> *m_GhostBHadronsInitialCount;
std::vector<int> *m_GhostBQuarksFinalCount;
std::vector<float> *m_GhostBHadronsFinalPt;
std::vector<float> *m_GhostBHadronsInitialPt;
std::vector<float> *m_GhostBQuarksFinalPt;
std::vector<int> *m_GhostCHadronsFinalCount;
std::vector<int> *m_GhostCHadronsInitialCount;
std::vector<int> *m_GhostCQuarksFinalCount;
std::vector<float> *m_GhostCHadronsFinalPt;
std::vector<float> *m_GhostCHadronsInitialPt;
std::vector<float> *m_GhostCQuarksFinalPt;
std::vector<int> *m_GhostTausFinalCount;
std::vector<float> *m_GhostTausFinalPt;
std::vector<int> *m_truth_pdgId;
std::vector<float> *m_truth_partonPt;
std::vector<float> *m_truth_partonDR;
// charge
std::vector<double> *m_charge;
// passSel
std::vector<char> *m_passSel;
// passOR
std::vector<char> *m_passOR;
};
}
#endif // xAODAnaHelpers_JetContainer_H