Program Listing for File TauContainer.h

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

#ifndef xAODAnaHelpers_TauContainer_H
#define xAODAnaHelpers_TauContainer_H

#include <TTree.h>
#include <TLorentzVector.h>

#include <vector>
#include <string>

#include <xAODTau/TauJetContainer.h>

#include <xAODAnaHelpers/HelperClasses.h>

#include <xAODAnaHelpers/Tau.h>
#include <xAODAnaHelpers/ParticleContainer.h>

namespace xAH {

  class TauContainer : public ParticleContainer<Tau,HelperClasses::TauInfoSwitch>
    {
    public:
      TauContainer(const std::string& name = "tau", const std::string& detailStr="", float units = 1e3, bool mc = false, bool storeSystSFs = true);
      virtual ~TauContainer();

      virtual void setTree(TTree *tree);
      virtual void setBranches(TTree *tree);
      virtual void clear();
      virtual void FillTau( const xAOD::TauJet* tau          );
      virtual void FillTau( const xAOD::IParticle* particle  );
      using ParticleContainer::setTree; // make other overloaded version of execute() to show up in subclass

    protected:
      virtual void updateParticle(uint idx, Tau& tau);

    private:

      // trigger
      std::vector<int>               *m_isTrigMatched;
      std::vector<std::vector<int> > *m_isTrigMatchedToChain;
      std::vector<std::string>       *m_listTrigChains;

      std::vector<int>   *m_ntrk;
      std::vector<float> *m_charge;

      // scale factors w/ sys
      // per object
      std::map< std::string, std::vector< std::vector< float > > >* m_TauEff_SF;
      std::map< std::string, std::vector< std::vector< float > > >* m_TauTrigEff_SF;

      // might need to delete these
      std::vector<int>   *m_isJetRNNSigVeryLoose;
      std::vector<int>   *m_isJetRNNSigLoose;
      std::vector<int>   *m_isJetRNNSigMedium;
      std::vector<int>   *m_isJetRNNSigTight;

      std::vector<float>   *m_JetRNNScore;
      std::vector<float>   *m_JetRNNScoreSigTrans;

      std::vector<int>   *m_isEleRNNLoose;
      std::vector<int>   *m_isEleRNNMedium;
      std::vector<int>   *m_isEleRNNTight;

      std::vector<float>   *m_EleRNNScore;

      std::vector<int>   *m_passEleOLR;

      std::vector< float > *m_tau_matchedJetWidth;
      std::vector< float > *m_tau_matchedJetJvt;

      std::vector< std::vector< float > > *m_tau_tracks_pt;
      std::vector< std::vector< float > > *m_tau_tracks_eta;
      std::vector< std::vector< float > > *m_tau_tracks_phi;

      std::vector< std::vector< int > > *m_tau_tracks_isCore;
      std::vector< std::vector< int > > *m_tau_tracks_isWide;
      std::vector< std::vector< int > > *m_tau_tracks_failTrackFilter;
      std::vector< std::vector< int > > *m_tau_tracks_passTrkSel;
      std::vector< std::vector< int > > *m_tau_tracks_isClCharged;
      std::vector< std::vector< int > > *m_tau_tracks_isClIso;
      std::vector< std::vector< int > > *m_tau_tracks_isClConv;
      std::vector< std::vector< int > > *m_tau_tracks_isClFake;

    };
}
#endif // xAODAnaHelpers_TauContainer_H