Program Listing for File Muon.h¶
↰ Return to documentation for file (xAODAnaHelpers/Muon.h
)
#ifndef xAODAnaHelpers_Muon_H
#define xAODAnaHelpers_Muon_H
#include "xAODAnaHelpers/Particle.h"
namespace xAH {
class Muon : public Particle
{
public:
//Muon() {};
//virtual ~Muon() { };
// kinematics
float charge;
// trigger
int isTrigMatched;
std::vector<int> isTrigMatchedToChain;
std::vector<std::string> listTrigChains;
// isolation
std::map< std::string, int > isIsolated;
float ptcone20;
float ptcone30;
float ptcone40;
float ptvarcone20;
float ptvarcone30;
float ptvarcone40;
float topoetcone20;
float topoetcone30;
float topoetcone40;
float neflowisol20;
float ptcone20_Nonprompt_All_MaxWeightTTVA_pt500;
float ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000;
float ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500;
float ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000;
float topoetcone20_CloseByCorr ;
float neflowisol20_CloseByCorr ;
float ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr ;
float ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr;
// quality
std::map< std::string, int > quality;
// scale factors w/ sys
// per object
std::map< std::string, std::vector< float > > RecoEff_SF;
std::map< std::string, std::vector< float > > IsoEff_SF;
std::map< std::string, std::vector< float > > TrigEff_SF;
std::map< std::string, std::vector< float > > TrigMCEff;
std::vector< float > TTVAEff_SF;
// track parameters
float trkd0;
float trkd0sig;
float trkz0;
float trkz0sintheta;
float trkphi0;
float trktheta;
float trkcharge;
float trkqOverP;
// track hit content
int trknSiHits;
int trknPixHits;
int trknPixHoles;
int trknSCTHits;
int trknSCTHoles;
int trknTRTHits;
int trknTRTHoles;
int trknBLayerHits;
int trknInnermostPixLayHits; // not available in DC14
float trkPixdEdX; // not available in DC14
float EnergyLoss;
float EnergyLossSigma;
unsigned char energyLossType;
float MeasEnergyLoss;
float MeasEnergyLossSigma;
float ParamEnergyLoss;
float ParamEnergyLossSigmaMinus;
float ParamEnergyLossSigmaPlus;
TLorentzVector vec_eLoss() const{
float theta_muon = p4.Theta();
float phi_muon = p4.Phi();
float elossX = EnergyLoss/1000 * sin(theta_muon) * cos(phi_muon);
float elossY = EnergyLoss/1000 * sin(theta_muon) * sin(phi_muon);
float elossZ = EnergyLoss/1000 * cos(theta_muon);
TLorentzVector muonELoss(elossX,elossY,elossZ,EnergyLoss/1000);
return muonELoss;
}
// prompt lepton
float PromptLeptonInput_DL1mu;
float PromptLeptonInput_DRlj;
float PromptLeptonInput_LepJetPtFrac;
float PromptLeptonInput_PtFrac;
float PromptLeptonInput_PtRel;
int PromptLeptonInput_TrackJetNTrack;
float PromptLeptonInput_ip2;
float PromptLeptonInput_ip3;
float PromptLeptonInput_rnnip;
int PromptLeptonInput_sv1_jf_ntrkv;
float PromptLeptonIso;
float PromptLeptonVeto;
char isLRT;
char passIDcuts;
// passSel
char passSel;
// passOR
char passOR;
};
}//xAH
#endif // xAODAnaHelpers_Particle_H