#ifndef SINGLETOP_AtlSgTop_sChannelAnalysis
#define SINGLETOP_AtlSgTop_sChannelAnalysis
#ifndef ATLAS_AtlSelector
#include <AtlSelector.h>
#endif
#ifndef ATLAS_AtlObjectsToolD3PDSgTop
#include <AtlObjectsToolD3PDSgTop.h>
#endif
#ifndef ATLAS_AtlObjRecoScaleFactorTool
#include <AtlObjRecoScaleFactorTool.h>
#endif
#ifndef ATLAS_AtlCutFlowTool
#include <AtlCutFlowTool.h>
#endif
#ifndef ATLAS_AtlPdfReweightingTool
#include <AtlPdfReweightingTool.h>
#endif
#ifndef ATLAS_HistogramTool
#include <AtlHistogramTool.h>
#endif
class HepTopDecay;
class AtlWDecayLNu;
class TH2F;
class AtlSgTop_sChannelAnalysis : public AtlSelector {
public:
enum ETtbarDecayMode {
kElEl = 1,
kMuMu,
kTauTau,
kElMu,
kElTau,
kMuTau,
kElQQ,
kMuQQ,
kTauQQ,
kHadronic,
kUnknown };
ETtbarDecayMode fTtbarDecayMode;
Float_t fMET_min;
Float_t fMET_max;
Float_t fMtW_minPre;
Float_t fMtW_maxPre;
Float_t fMtW_min;
Float_t fMtW_max;
Float_t fPt_Jet_min;
Float_t fPt_Jet_max;
Float_t fPt_LeadingJet_min;
Float_t fPt_LeadingJet_max;
Int_t fNBTags_min;
Int_t fNBTags_max;
Bool_t fLeadingJetIsBTagged;
Float_t fPt_BJetTop_min;
AtlBTag::ETagger fVetoBTagger;
Float_t fVetoBTagWeight_min;
Bool_t fAdditionalJetVeto;
Bool_t fDoReconstructTop;
Bool_t fApplyDileptonVeto;
Bool_t fApplyTtbar4JetVeto;
Bool_t fMCTruthStudy;
HepMCParticle *fMCbQuark;
HepMCParticle *fMCAntibQuark;
HepMCParticle *fMCLeptonPlus ;
HepMCParticle *fMCLeptonMinus;
HepMCParticle *fMCTightLepton;
HepMCParticle *fMCLooseLepton;
private:
HepParticle *fLepton;
TList *fLeptons;
TList *fLooseLeptons;
TList *fElectrons;
TList *fMuons;
TList *fLooseTaus;
TList *fJets;
TList *fBJets;
Bool_t fQCDMMToolIsOn;
Float_t fMET;
Float_t fMtW;
Float_t fPtLep;
Float_t fDeltaPhiTopBJet2_BJet1;
Float_t fDeltaPhiTopBJet1_BJet2;
Float_t fSumEtLep_MET;
Float_t fSumEtLep_MET_BJets;
Float_t fSumPt;
Float_t fDeltaEtaLep_BJet1;
Float_t fDeltaEtaLep_BJet2;
Float_t fDeltaEtaTopBJet2_BJet1;
Float_t fDeltaPhiBJet1_BJet2;
Float_t fDeltaPhiLep_MET;
Float_t fCosLepW_WTopBJet1;
Float_t fCosLepTopBJet1_TopBJet1CMS;
Float_t fCosLepTopBJet2_TopBJet2CMS;
Float_t fPt_BJetTop;
Float_t fDeltaEtaNu_BJetNonTop;
Float_t fSumPtBJet1_BJet2;
Float_t fCosMET_BJet2;
Float_t fMLep_BJet2;
AtlObjectsToolD3PDSgTop *fObjTool;
AtlObjRecoScaleFactorTool *fSFTool;
AtlCutFlowTool *fCutFlowTool;
AtlPdfReweightingTool *fPdfTool;
AtlHistogramTool *fHistsPretag;
AtlHistogramTool *fHistsBTag;
AtlHistogramTool *fHistsBTagElectron;
AtlHistogramTool *fHistsBTagMuon;
TH1F *fHist_BDT_MET;
TH1F *fHist_BDT_MtW;
TH1F *fHist_BDT_Lep_Pt;
TH1F *fHist_BDT_SumEtLep_MET;
TH1F *fHist_BDT_SumEtLep_MET_BJets;
TH1F *fHist_BDT_SumPt;
TH1F *fHist_BDT_DeltaPhiTopBJet2_BJet1;
TH1F *fHist_BDT_DeltaPhiTopBJet1_BJet2;
TH1F *fHist_BDT_DeltaEtaLep_BJet1;
TH1F *fHist_BDT_DeltaEtaLep_BJet2;
TH1F *fHist_BDT_DeltaEtaTopBJet2_BJet1;
TH1F *fHist_BDT_DeltaPhiBJet1_BJet2;
TH1F *fHist_BDT_DeltaPhiLep_MET;
TH1F *fHist_BDT_CosLepW_WTopBJet1;
TH1F *fHist_BDT_CosLepTopBJet1_TopBJet1CMS;
TH1F *fHist_BDT_CosLepTopBJet2_TopBJet2CMS;
TH1F *fHist_BDT_PtBJet_Top;
TH1F *fHist_BDT_DeltaEtaNu_BJetNonTop;
TH1F *fHist_BDT_SumPtBJet1_BJet2;
TH1F *fHist_BDT_CosMET_BJet2;
TH1F *fHist_BDT_MLep_BJet2;
TH1F *fHist_mc_DecayChannels;
TH1F *fHist_mc_DecayChannels_Veto;
TH1F *fHist_mc_DecayChannels_TauVeto;
TH1F *fHist_mc_DecayChannels_AllVeto;
TH2F *fHist_mc_TriggerMatch;
TH1F *fHist_mc_jet_truth_label;
TH2F *fHist_mc_MET;
TH2F *fHist_mc_MET_nonVeto;
TH2F *fHist_mc_RecoEff;
TH2F *fHist_mc_DeltaR_tight_lepton;
TH2F *fHist_mc_DeltaR_loose_lepton;
TH2F *fHist_mc_DeltaR_LeadLepton_bQuarkOS;
TH2F *fHist_mc_DeltaR_LeadLepton_bQuarkSS;
TH2F *fHist_mc_DeltaR_2ndLeadLepton_bQuarkOS;
TH2F *fHist_mc_DeltaR_2ndLeadLepton_bQuarkSS;
TH2F *fHist_mc_DeltaR_LeadLepton_2ndLeadLepton;
TH2F *fHist_mc_truth_LeadLepton_Pt;
TH2F *fHist_mc_truth_2ndLeadLepton_Pt;
TH2F *fHist_mc_truth_2ndLeadLepton_Pt_matched;
TH2F *fHist_mc_truth_2ndLeadLepton_Pt_unmatched;
TH2F *fHist_mc_reco_LeadLepton_Pt;
TH2F *fHist_mc_reco_2ndLeadLepton_Pt;
TH2F *fHist_mc_reco_LeadLepton_Pt_res;
TH2F *fHist_mc_reco_2ndLeadLepton_Pt_res;
TH2F *fHist_mc_DeltaR_unmatchedMCLepton_truthjet;
TH2F *fHist_mc_unmatchedMCLepton_truthjet_pt;
public:
AtlSgTop_sChannelAnalysis(const char* OutputFilename);
virtual ~AtlSgTop_sChannelAnalysis();
virtual void SetBranchStatus();
virtual void Clear( Option_t *option = "");
virtual void Begin(TTree *tree);
virtual void BookHistograms();
virtual void FillHistograms();
virtual Bool_t ProcessPreCut();
virtual Bool_t DiLeptonVeto();
virtual Bool_t ProcessCut();
virtual void SetCutDefaults();
virtual void Print(Option_t *option) const;
virtual void Terminate();
inline AtlJet* GetBJet1st() const {
return (AtlJet*)fBJets->At(0);
}
inline AtlJet* GetBJet2nd() const {
return (AtlJet*)fBJets->At(1);
}
inline HepTopDecay* GetTopDecayBest() const {
return (HepTopDecay*)fEvent->GetTopDecays()
->At(fEvent->GetN_TopDecays()-1);
}
inline HepTopDecay* GetTopDecay2ndBest() const {
return (HepTopDecay*)fEvent->GetTopDecays()
->At(fEvent->GetN_TopDecays()-2);
}
inline HepTopDecay* GetTopDecayWith1stBJet() const {
HepTopDecay *top = 0;
for ( Int_t i = 0; i < fEvent->GetN_TopDecays(); i++ ) {
top = (HepTopDecay*)fEvent->GetTopDecays()->At(i);
if ( top->GetBJetOrig() == GetBJet1st() )
return top;
}
return 0;
}
inline HepTopDecay* GetTopDecayWith2ndBJet() const {
HepTopDecay *top = 0;
for ( Int_t i = 0; i < fEvent->GetN_TopDecays(); i++ ) {
top = (HepTopDecay*)fEvent->GetTopDecays()->At(i);
if ( top->GetBJetOrig() == GetBJet2nd() )
return top;
}
return 0;
}
protected:
void BookHistogramsPretag(AtlHistogramTool *htool);
void BookHistogramsPreSel(AtlHistogramTool *htool);
void BookHistogramsSel(AtlHistogramTool *htool);
void BookHistogramsBDT();
void BookHistogramsMCTruthStudy();
void FillHistogramsPretag(AtlHistogramTool *htool, Double_t W);
void FillHistogramsPreSel(AtlHistogramTool *htool, Double_t W);
void FillHistogramsSel(AtlHistogramTool *htool, Double_t W);
void FillHistogramsBDT();
void FillHistogramsMCTruthStudy();
void FillHistogramsLeptons(AtlHistogramTool *htool, Double_t W);
void FillHistogramsElectrons( AtlHistogramTool *htool, Double_t W);
void FillHistogramsMuons( AtlHistogramTool *htool, Double_t W);
void InitEvent();
private:
Bool_t ReconstructNeutrino();
void ReconstructWDecay();
void ReconstructTopDecays();
void ComputeBDTVariables();
void SetBDTVariables();
void DoTruthMatching();
ClassDef(AtlSgTop_sChannelAnalysis,0)
};
#endif
AtlSgTop_sChannelAnalysis.h:1 AtlSgTop_sChannelAnalysis.h:2 AtlSgTop_sChannelAnalysis.h:3 AtlSgTop_sChannelAnalysis.h:4 AtlSgTop_sChannelAnalysis.h:5 AtlSgTop_sChannelAnalysis.h:6 AtlSgTop_sChannelAnalysis.h:7 AtlSgTop_sChannelAnalysis.h:8 AtlSgTop_sChannelAnalysis.h:9 AtlSgTop_sChannelAnalysis.h:10 AtlSgTop_sChannelAnalysis.h:11 AtlSgTop_sChannelAnalysis.h:12 AtlSgTop_sChannelAnalysis.h:13 AtlSgTop_sChannelAnalysis.h:14 AtlSgTop_sChannelAnalysis.h:15 AtlSgTop_sChannelAnalysis.h:16 AtlSgTop_sChannelAnalysis.h:17 AtlSgTop_sChannelAnalysis.h:18 AtlSgTop_sChannelAnalysis.h:19 AtlSgTop_sChannelAnalysis.h:20 AtlSgTop_sChannelAnalysis.h:21 AtlSgTop_sChannelAnalysis.h:22 AtlSgTop_sChannelAnalysis.h:23 AtlSgTop_sChannelAnalysis.h:24 AtlSgTop_sChannelAnalysis.h:25 AtlSgTop_sChannelAnalysis.h:26 AtlSgTop_sChannelAnalysis.h:27 AtlSgTop_sChannelAnalysis.h:28 AtlSgTop_sChannelAnalysis.h:29 AtlSgTop_sChannelAnalysis.h:30 AtlSgTop_sChannelAnalysis.h:31 AtlSgTop_sChannelAnalysis.h:32 AtlSgTop_sChannelAnalysis.h:33 AtlSgTop_sChannelAnalysis.h:34 AtlSgTop_sChannelAnalysis.h:35 AtlSgTop_sChannelAnalysis.h:36 AtlSgTop_sChannelAnalysis.h:37 AtlSgTop_sChannelAnalysis.h:38 AtlSgTop_sChannelAnalysis.h:39 AtlSgTop_sChannelAnalysis.h:40 AtlSgTop_sChannelAnalysis.h:41 AtlSgTop_sChannelAnalysis.h:42 AtlSgTop_sChannelAnalysis.h:43 AtlSgTop_sChannelAnalysis.h:44 AtlSgTop_sChannelAnalysis.h:45 AtlSgTop_sChannelAnalysis.h:46 AtlSgTop_sChannelAnalysis.h:47 AtlSgTop_sChannelAnalysis.h:48 AtlSgTop_sChannelAnalysis.h:49 AtlSgTop_sChannelAnalysis.h:50 AtlSgTop_sChannelAnalysis.h:51 AtlSgTop_sChannelAnalysis.h:52 AtlSgTop_sChannelAnalysis.h:53 AtlSgTop_sChannelAnalysis.h:54 AtlSgTop_sChannelAnalysis.h:55 AtlSgTop_sChannelAnalysis.h:56 AtlSgTop_sChannelAnalysis.h:57 AtlSgTop_sChannelAnalysis.h:58 AtlSgTop_sChannelAnalysis.h:59 AtlSgTop_sChannelAnalysis.h:60 AtlSgTop_sChannelAnalysis.h:61 AtlSgTop_sChannelAnalysis.h:62 AtlSgTop_sChannelAnalysis.h:63 AtlSgTop_sChannelAnalysis.h:64 AtlSgTop_sChannelAnalysis.h:65 AtlSgTop_sChannelAnalysis.h:66 AtlSgTop_sChannelAnalysis.h:67 AtlSgTop_sChannelAnalysis.h:68 AtlSgTop_sChannelAnalysis.h:69 AtlSgTop_sChannelAnalysis.h:70 AtlSgTop_sChannelAnalysis.h:71 AtlSgTop_sChannelAnalysis.h:72 AtlSgTop_sChannelAnalysis.h:73 AtlSgTop_sChannelAnalysis.h:74 AtlSgTop_sChannelAnalysis.h:75 AtlSgTop_sChannelAnalysis.h:76 AtlSgTop_sChannelAnalysis.h:77 AtlSgTop_sChannelAnalysis.h:78 AtlSgTop_sChannelAnalysis.h:79 AtlSgTop_sChannelAnalysis.h:80 AtlSgTop_sChannelAnalysis.h:81 AtlSgTop_sChannelAnalysis.h:82 AtlSgTop_sChannelAnalysis.h:83 AtlSgTop_sChannelAnalysis.h:84 AtlSgTop_sChannelAnalysis.h:85 AtlSgTop_sChannelAnalysis.h:86 AtlSgTop_sChannelAnalysis.h:87 AtlSgTop_sChannelAnalysis.h:88 AtlSgTop_sChannelAnalysis.h:89 AtlSgTop_sChannelAnalysis.h:90 AtlSgTop_sChannelAnalysis.h:91 AtlSgTop_sChannelAnalysis.h:92 AtlSgTop_sChannelAnalysis.h:93 AtlSgTop_sChannelAnalysis.h:94 AtlSgTop_sChannelAnalysis.h:95 AtlSgTop_sChannelAnalysis.h:96 AtlSgTop_sChannelAnalysis.h:97 AtlSgTop_sChannelAnalysis.h:98 AtlSgTop_sChannelAnalysis.h:99 AtlSgTop_sChannelAnalysis.h:100 AtlSgTop_sChannelAnalysis.h:101 AtlSgTop_sChannelAnalysis.h:102 AtlSgTop_sChannelAnalysis.h:103 AtlSgTop_sChannelAnalysis.h:104 AtlSgTop_sChannelAnalysis.h:105 AtlSgTop_sChannelAnalysis.h:106 AtlSgTop_sChannelAnalysis.h:107 AtlSgTop_sChannelAnalysis.h:108 AtlSgTop_sChannelAnalysis.h:109 AtlSgTop_sChannelAnalysis.h:110 AtlSgTop_sChannelAnalysis.h:111 AtlSgTop_sChannelAnalysis.h:112 AtlSgTop_sChannelAnalysis.h:113 AtlSgTop_sChannelAnalysis.h:114 AtlSgTop_sChannelAnalysis.h:115 AtlSgTop_sChannelAnalysis.h:116 AtlSgTop_sChannelAnalysis.h:117 AtlSgTop_sChannelAnalysis.h:118 AtlSgTop_sChannelAnalysis.h:119 AtlSgTop_sChannelAnalysis.h:120 AtlSgTop_sChannelAnalysis.h:121 AtlSgTop_sChannelAnalysis.h:122 AtlSgTop_sChannelAnalysis.h:123 AtlSgTop_sChannelAnalysis.h:124 AtlSgTop_sChannelAnalysis.h:125 AtlSgTop_sChannelAnalysis.h:126 AtlSgTop_sChannelAnalysis.h:127 AtlSgTop_sChannelAnalysis.h:128 AtlSgTop_sChannelAnalysis.h:129 AtlSgTop_sChannelAnalysis.h:130 AtlSgTop_sChannelAnalysis.h:131 AtlSgTop_sChannelAnalysis.h:132 AtlSgTop_sChannelAnalysis.h:133 AtlSgTop_sChannelAnalysis.h:134 AtlSgTop_sChannelAnalysis.h:135 AtlSgTop_sChannelAnalysis.h:136 AtlSgTop_sChannelAnalysis.h:137 AtlSgTop_sChannelAnalysis.h:138 AtlSgTop_sChannelAnalysis.h:139 AtlSgTop_sChannelAnalysis.h:140 AtlSgTop_sChannelAnalysis.h:141 AtlSgTop_sChannelAnalysis.h:142 AtlSgTop_sChannelAnalysis.h:143 AtlSgTop_sChannelAnalysis.h:144 AtlSgTop_sChannelAnalysis.h:145 AtlSgTop_sChannelAnalysis.h:146 AtlSgTop_sChannelAnalysis.h:147 AtlSgTop_sChannelAnalysis.h:148 AtlSgTop_sChannelAnalysis.h:149 AtlSgTop_sChannelAnalysis.h:150 AtlSgTop_sChannelAnalysis.h:151 AtlSgTop_sChannelAnalysis.h:152 AtlSgTop_sChannelAnalysis.h:153 AtlSgTop_sChannelAnalysis.h:154 AtlSgTop_sChannelAnalysis.h:155 AtlSgTop_sChannelAnalysis.h:156 AtlSgTop_sChannelAnalysis.h:157 AtlSgTop_sChannelAnalysis.h:158 AtlSgTop_sChannelAnalysis.h:159 AtlSgTop_sChannelAnalysis.h:160 AtlSgTop_sChannelAnalysis.h:161 AtlSgTop_sChannelAnalysis.h:162 AtlSgTop_sChannelAnalysis.h:163 AtlSgTop_sChannelAnalysis.h:164 AtlSgTop_sChannelAnalysis.h:165 AtlSgTop_sChannelAnalysis.h:166 AtlSgTop_sChannelAnalysis.h:167 AtlSgTop_sChannelAnalysis.h:168 AtlSgTop_sChannelAnalysis.h:169 AtlSgTop_sChannelAnalysis.h:170 AtlSgTop_sChannelAnalysis.h:171 AtlSgTop_sChannelAnalysis.h:172 AtlSgTop_sChannelAnalysis.h:173 AtlSgTop_sChannelAnalysis.h:174 AtlSgTop_sChannelAnalysis.h:175 AtlSgTop_sChannelAnalysis.h:176 AtlSgTop_sChannelAnalysis.h:177 AtlSgTop_sChannelAnalysis.h:178 AtlSgTop_sChannelAnalysis.h:179 AtlSgTop_sChannelAnalysis.h:180 AtlSgTop_sChannelAnalysis.h:181 AtlSgTop_sChannelAnalysis.h:182 AtlSgTop_sChannelAnalysis.h:183 AtlSgTop_sChannelAnalysis.h:184 AtlSgTop_sChannelAnalysis.h:185 AtlSgTop_sChannelAnalysis.h:186 AtlSgTop_sChannelAnalysis.h:187 AtlSgTop_sChannelAnalysis.h:188 AtlSgTop_sChannelAnalysis.h:189 AtlSgTop_sChannelAnalysis.h:190 AtlSgTop_sChannelAnalysis.h:191 AtlSgTop_sChannelAnalysis.h:192 AtlSgTop_sChannelAnalysis.h:193 AtlSgTop_sChannelAnalysis.h:194 AtlSgTop_sChannelAnalysis.h:195 AtlSgTop_sChannelAnalysis.h:196 AtlSgTop_sChannelAnalysis.h:197 AtlSgTop_sChannelAnalysis.h:198 AtlSgTop_sChannelAnalysis.h:199 AtlSgTop_sChannelAnalysis.h:200 AtlSgTop_sChannelAnalysis.h:201 AtlSgTop_sChannelAnalysis.h:202 AtlSgTop_sChannelAnalysis.h:203 AtlSgTop_sChannelAnalysis.h:204 AtlSgTop_sChannelAnalysis.h:205 AtlSgTop_sChannelAnalysis.h:206 AtlSgTop_sChannelAnalysis.h:207 AtlSgTop_sChannelAnalysis.h:208 AtlSgTop_sChannelAnalysis.h:209 AtlSgTop_sChannelAnalysis.h:210 AtlSgTop_sChannelAnalysis.h:211 AtlSgTop_sChannelAnalysis.h:212 AtlSgTop_sChannelAnalysis.h:213 AtlSgTop_sChannelAnalysis.h:214 AtlSgTop_sChannelAnalysis.h:215 AtlSgTop_sChannelAnalysis.h:216 AtlSgTop_sChannelAnalysis.h:217 AtlSgTop_sChannelAnalysis.h:218 AtlSgTop_sChannelAnalysis.h:219 AtlSgTop_sChannelAnalysis.h:220 AtlSgTop_sChannelAnalysis.h:221 AtlSgTop_sChannelAnalysis.h:222 AtlSgTop_sChannelAnalysis.h:223 AtlSgTop_sChannelAnalysis.h:224 AtlSgTop_sChannelAnalysis.h:225 AtlSgTop_sChannelAnalysis.h:226 AtlSgTop_sChannelAnalysis.h:227 AtlSgTop_sChannelAnalysis.h:228 AtlSgTop_sChannelAnalysis.h:229 AtlSgTop_sChannelAnalysis.h:230 AtlSgTop_sChannelAnalysis.h:231 AtlSgTop_sChannelAnalysis.h:232 AtlSgTop_sChannelAnalysis.h:233 AtlSgTop_sChannelAnalysis.h:234 AtlSgTop_sChannelAnalysis.h:235 AtlSgTop_sChannelAnalysis.h:236 AtlSgTop_sChannelAnalysis.h:237 AtlSgTop_sChannelAnalysis.h:238 AtlSgTop_sChannelAnalysis.h:239 AtlSgTop_sChannelAnalysis.h:240 AtlSgTop_sChannelAnalysis.h:241 AtlSgTop_sChannelAnalysis.h:242 AtlSgTop_sChannelAnalysis.h:243 AtlSgTop_sChannelAnalysis.h:244 AtlSgTop_sChannelAnalysis.h:245 AtlSgTop_sChannelAnalysis.h:246 AtlSgTop_sChannelAnalysis.h:247 AtlSgTop_sChannelAnalysis.h:248 AtlSgTop_sChannelAnalysis.h:249 AtlSgTop_sChannelAnalysis.h:250 AtlSgTop_sChannelAnalysis.h:251 AtlSgTop_sChannelAnalysis.h:252 AtlSgTop_sChannelAnalysis.h:253 AtlSgTop_sChannelAnalysis.h:254 AtlSgTop_sChannelAnalysis.h:255 AtlSgTop_sChannelAnalysis.h:256 AtlSgTop_sChannelAnalysis.h:257 AtlSgTop_sChannelAnalysis.h:258 AtlSgTop_sChannelAnalysis.h:259 AtlSgTop_sChannelAnalysis.h:260 AtlSgTop_sChannelAnalysis.h:261 AtlSgTop_sChannelAnalysis.h:262 AtlSgTop_sChannelAnalysis.h:263 AtlSgTop_sChannelAnalysis.h:264 AtlSgTop_sChannelAnalysis.h:265 AtlSgTop_sChannelAnalysis.h:266 AtlSgTop_sChannelAnalysis.h:267 AtlSgTop_sChannelAnalysis.h:268 AtlSgTop_sChannelAnalysis.h:269 AtlSgTop_sChannelAnalysis.h:270 AtlSgTop_sChannelAnalysis.h:271