Program Listing for File MuonContainer.h¶
↰ Return to documentation for file (xAODAnaHelpers/MuonContainer.h
)
#ifndef xAODAnaHelpers_MuonContainer_H
#define xAODAnaHelpers_MuonContainer_H
#include <TTree.h>
#include <TLorentzVector.h>
#include <vector>
#include <string>
#include <xAODMuon/MuonContainer.h>
#include <xAODAnaHelpers/HelperClasses.h>
#include <xAODAnaHelpers/Muon.h>
#include <xAODAnaHelpers/ParticleContainer.h>
namespace xAH {
class MuonContainer : public ParticleContainer<Muon,HelperClasses::MuonInfoSwitch>
{
public:
MuonContainer(const std::string& name = "muon", const std::string& detailStr="", float units = 1e3, bool mc = false, bool storeSystSFs = true);
virtual ~MuonContainer();
virtual void setTree(TTree *tree);
virtual void setBranches(TTree *tree);
virtual void clear();
virtual void FillMuon( const xAOD::Muon* muon, const xAOD::Vertex* primaryVertex );
virtual void FillMuon( const xAOD::IParticle* particle, const xAOD::Vertex* primaryVertex );
using ParticleContainer::setTree; // make other overloaded version of execute() to show up in subclass
protected:
virtual void updateParticle(uint idx, Muon& muon);
private:
// kinematic
std::vector<float> *m_charge;
// trigger
std::vector<int> *m_isTrigMatched;
std::vector<std::vector<int> > *m_isTrigMatchedToChain;
std::vector<std::vector<std::string> > *m_listTrigChains;
// isolation
std::map< std::string, std::vector< int >* >* m_isIsolated;
std::vector<float> *m_ptcone20;
std::vector<float> *m_ptcone30;
std::vector<float> *m_ptcone40;
std::vector<float> *m_ptvarcone20;
std::vector<float> *m_ptvarcone30;
std::vector<float> *m_ptvarcone40;
std::vector<float> *m_topoetcone20;
std::vector<float> *m_topoetcone30;
std::vector<float> *m_topoetcone40;
std::vector<float> *m_neflowisol20;
std::vector<float> *m_ptcone20_Nonprompt_All_MaxWeightTTVA_pt500;
std::vector<float> *m_ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000;
std::vector<float> *m_ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500;
std::vector<float> *m_ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000;
std::vector<float> *m_topoetcone20_CloseByCorr ;
std::vector<float> *m_neflowisol20_CloseByCorr ;
std::vector<float> *m_ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr ;
std::vector<float> *m_ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr;
// quality
std::map< std::string, std::vector< int >* >* m_quality;
// scale factors w/ sys
// per object
std::vector< std::vector< float > > *m_TTVAEff_SF;
std::map< std::string, std::vector< std::vector< float > >* >* m_RecoEff_SF;
std::map< std::string, std::vector< std::vector< float > >* >* m_IsoEff_SF;
std::map< std::string, std::vector< std::vector< float > >* >* m_TrigEff_SF;
std::map< std::string, std::vector< std::vector< float > >* >* m_TrigMCEff;
// track parameters
std::vector<float> *m_trkd0;
std::vector<float> *m_trkd0sig;
std::vector<float> *m_trkz0;
std::vector<float> *m_trkz0sintheta;
std::vector<float> *m_trkphi0;
std::vector<float> *m_trktheta;
std::vector<float> *m_trkcharge;
std::vector<float> *m_trkqOverP;
// track hit content
std::vector<int> *m_trknSiHits;
std::vector<int> *m_trknPixHits;
std::vector<int> *m_trknPixHoles;
std::vector<int> *m_trknSCTHits;
std::vector<int> *m_trknSCTHoles;
std::vector<int> *m_trknTRTHits;
std::vector<int> *m_trknTRTHoles;
std::vector<int> *m_trknBLayerHits;
std::vector<int> *m_trknInnermostPixLayHits; // not available in DC14
std::vector<float> *m_trkPixdEdX; // not available in DC14
std::vector<float> *m_EnergyLoss;
std::vector<float> *m_EnergyLossSigma;
std::vector<unsigned char> *m_energyLossType;
std::vector<float> *m_MeasEnergyLoss;
std::vector<float> *m_MeasEnergyLossSigma;
std::vector<float> *m_ParamEnergyLoss;
std::vector<float> *m_ParamEnergyLossSigmaMinus;
std::vector<float> *m_ParamEnergyLossSigmaPlus;
// prompt lepton
std::vector<float>* m_PromptLeptonInput_DL1mu;
std::vector<float>* m_PromptLeptonInput_DRlj;
std::vector<float>* m_PromptLeptonInput_LepJetPtFrac;
std::vector<float>* m_PromptLeptonInput_PtFrac;
std::vector<float>* m_PromptLeptonInput_PtRel;
std::vector<int>* m_PromptLeptonInput_TrackJetNTrack;
std::vector<float>* m_PromptLeptonInput_ip2;
std::vector<float>* m_PromptLeptonInput_ip3;
std::vector<float>* m_PromptLeptonInput_rnnip;
std::vector<int>* m_PromptLeptonInput_sv1_jf_ntrkv;
std::vector<float>* m_PromptLeptonIso;
std::vector<float>* m_PromptLeptonVeto;
std::vector<char>* m_isLRT;
std::vector<char>* m_passIDcuts;
// passSel
std::vector<char>* m_passSel;
// passOR
std::vector<char>* m_passOR;
};
}
#endif // xAODAnaHelpers_MuonContainer_H