| Report problems to ATLAS LXR Team (with time and IP address indicated) |
|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
||||
|
||||||
001 #ifndef ANALYSIS_SKELETON_H 002 #define ANALYSIS_SKELETON_H 003 ///////////////////////////////////////////////////////////////////////////////////////////////////// 004 /// Name : AnalysisSkeleton.h 005 /// Package : offline/PhysicsAnalysis/AnalysisCommon/UserAnalysis 006 /// Author : Ketevi A. Assamagan 007 /// Created : July 2004 008 /// 009 /// DESCRIPTION: 010 /// 011 /// This class is an analysis skeleton - The user can implement his analysis here 012 /// This class is also used for the demonstration of the distributed analysis 013 /// Some electron histograms are used for the distributed case. The user may 014 /// remove the histograms and the electron stuff if not needed. 015 /// Note: the single algorithm structure as an analysis code does not scale 016 /// For detailed analysis examples, look in CVS: PhysicsAnalysis/AnalysisCommon/AnalysisExamples/ 017 /// Ketevi A. Assamagan on June 9, 2004 018 /// 019 /////////////////////////////////////////////////////////////////////////////////////////////////////// 020 021 #include "GaudiKernel/ToolHandle.h" 022 #include "GaudiKernel/Algorithm.h" 023 #include "GaudiKernel/ObjectVector.h" 024 #include "CLHEP/Units/SystemOfUnits.h" 025 #include "StoreGate/StoreGateSvc.h" 026 #include "GaudiKernel/ITHistSvc.h" 027 028 #include "AnalysisTools/AnalysisTools.h" 029 030 #include "UserAnalysisUtils/UserAnalysisSelectionTool.h" 031 #include "UserAnalysisUtils/UserAnalysisPreparationTool.h" 032 #include "UserAnalysisUtils/UserAnalysisOverlapCheckingTool.h" 033 #include "UserAnalysisUtils/UserAnalysisOverlapRemovalTool.h" 034 035 #include "TrigDecision/TrigDecisionTool.h" 036 037 //#include "TLorentzVector.h" 038 //#include "CLHEP/Vector/LorentzVector.h" 039 040 #include "CBNT_Utils/CBNT_AthenaAwareBase.h" 041 042 #include <string> 043 044 #include "TH1.h" 045 046 class JetCollection; 047 048 class AnalysisSkeleton : public CBNT_AthenaAwareBase { 049 050 public: 051 052 AnalysisSkeleton(const std::string& name, ISvcLocator* pSvcLocator); 053 ~AnalysisSkeleton(); 054 055 virtual StatusCode CBNT_initializeBeforeEventLoop(); 056 virtual StatusCode CBNT_initialize(); 057 virtual StatusCode CBNT_finalize(); 058 virtual StatusCode CBNT_execute(); 059 virtual StatusCode CBNT_clear(); 060 061 private: 062 063 /** methods called by CBNT_execute() */ 064 StatusCode electronSkeleton(); 065 StatusCode triggerSkeleton(); 066 067 /** an example of pre-selection, overlap-checking and overlap removal */ 068 StatusCode analysisPreparation(); 069 070 /** look at b-jet tagging information */ 071 StatusCode bjetInfo(); 072 073 /** get quark flavour of jets */ 074 int getQuarkJetFlavour(JetCollection::const_iterator jetItr); 075 076 /** get missing ET information */ 077 StatusCode getMissingET(); 078 079 /** make plots for SUSY studies */ 080 StatusCode SusyStudies(); 081 082 /** get pT of top quarks */ 083 StatusCode getTopQpT(int &, double&, double&); 084 085 private: 086 087 /** get a handle to the tool helper */ 088 ToolHandle<AnalysisTools> m_analysisTools; 089 090 /** get a handle on the user tool for pre-selection and overlap removal */ 091 ToolHandle<UserAnalysisSelectionTool> m_analysisSelectionTool; 092 ToolHandle<UserAnalysisPreparationTool> m_analysisPreparationTool; 093 ToolHandle<UserAnalysisOverlapCheckingTool> m_analysisOverlapCheckingTool; 094 ToolHandle<UserAnalysisOverlapRemovalTool> m_analysisOverlapRemovalTool; 095 096 /** tool to access the trigger decision */ 097 ToolHandle<TrigDec::TrigDecisionTool> m_trigDec; 098 099 /** a handle on the Hist/TTree registration service */ 100 ITHistSvc * m_thistSvc; 101 102 /** a handle on Store Gate for access to the Event Store */ 103 StoreGateSvc* m_storeGate; 104 105 /** the key of the Electron Container to retrieve from the AOD */ 106 std::string m_electronContainerName; 107 108 /** name of the AOD truth particle container to retrieve from StoreGate */ 109 std::string m_truthParticleContainerName; 110 111 /** key to get missing ET information */ 112 std::string m_missingETObjectName; 113 114 /// The missing ET object 115 const MissingET * m_pMissing; 116 double m_pxMiss; 117 double m_pyMiss; 118 double m_ptMiss; 119 120 /** additional user cuts after pre-selections */ 121 122 double m_deltaRMatchCut; 123 double m_maxDeltaR; 124 125 /** electron specific cuts */ 126 double m_etElecCut; 127 double m_elecCone; 128 double m_etaElecCut; 129 130 /** bjet specific cuts */ 131 double m_bjetWt_ip3dsv1Cut; 132 double m_bjet_etaCut; 133 double m_bjet_etCut; 134 135 /** missing ET cuts */ 136 double m_missingETCut; 137 138 /** Atlfast data? */ 139 bool m_isAtlFastData; 140 141 /** min Jet ET cut for SUSY studies */ 142 double m_SusyJetMinEt; 143 144 /** Histograms */ 145 TH1F* m_h_elecpt; 146 TH1F* m_h_eleceta; 147 TH1F* m_h_elec_deltaRMatch; 148 149 TH1F* m_h_jet_eta_beforeOR; 150 TH1F* m_h_jet_et_beforeOR; 151 TH1F* m_h_jet_ip3dsv1Wt_beforeOR; 152 TH1F* m_h_jet_label_beforeOR; 153 TH1F* m_h_jet_ip3dsv1Wt_bjet_beforeOR; 154 TH1F* m_h_jet_ip3dsv1Wt_ujet_beforeOR; 155 156 TH1F* m_h_jet_eta_afterOR; 157 TH1F* m_h_jet_et_afterOR; 158 TH1F* m_h_jet_ip3dsv1Wt_afterOR; 159 TH1F* m_h_jet_label_afterOR; 160 TH1F* m_h_jet_ip3dsv1Wt_bjet_afterOR; 161 TH1F* m_h_jet_ip3dsv1Wt_ujet_afterOR; 162 163 TH1F* m_pxMis; 164 TH1F* m_pyMis; 165 TH1F* m_ptMis; 166 167 /** Athena-Aware Ntuple (AAN) variables - branches of the AAN TTree */ 168 169 /** Simple variables by Ketevi */ 170 int m_aan_size; 171 std::vector<double> * m_aan_eta; 172 std::vector<double> * m_aan_pt; 173 std::vector<double> * m_aan_elecetres; 174 175 /** Variables by VJ */ 176 double m_aan_ptMiss; 177 int m_aan_njets; 178 int m_aan_njets_etaLT25; 179 int m_aan_njets_SusyETCut; 180 double m_aan_effmass; 181 double m_aan_ht; 182 double m_aan_maxJetET; 183 int m_aan_nbjets; 184 185 std::vector<double>* m_aan_JetEta; 186 std::vector<double>* m_aan_JetEt; 187 std::vector<double>* m_aan_JetBTagWt; 188 189 /** Look at final electrons/muons */ 190 int m_aan_NFinalEl; 191 int m_aan_NFinalMu; 192 193 std::vector<double>* m_aan_FinalElEta; 194 std::vector<double>* m_aan_FinalElPt; 195 std::vector<double>* m_aan_FinalElEtCone20; 196 std::vector<double>* m_aan_FinalElPtrat; 197 198 std::vector<double>* m_aan_FinalMuEta; 199 std::vector<double>* m_aan_FinalMuPt; 200 std::vector<double>* m_aan_FinalMuEtCone20; 201 std::vector<int>* m_aan_FinalMuBestMat; 202 std::vector<double>* m_aan_FinalMuMatChi2; 203 204 double m_aan_FinalLepEtSum; 205 double m_aan_FinalElEtSum; 206 double m_aan_FinalMuEtSum; 207 208 /** number top quarks */ 209 210 int m_aan_NumTopQ; 211 double m_aan_pTtop1; 212 double m_aan_pTtop2; 213 214 bool m_doTrigger; 215 }; 216 217 #endif // ANALYSIS_SKELETON_H 218
| [ source navigation ] | [ diff markup ] | [ identifier search ] | [ general search ] |
| Due to the LXR bug, the updates fail sometimes to remove references to deleted files. The Saturday's full rebuilds fix these problems | |
| This page was automatically generated by the LXR engine. |
|