| Report problems to ATLAS LXR Team (with time and IP address indicated) |
|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
||||
|
||||||
| Links to LXR source navigation pages for stable releases | [ 12.*.* ] [ 13.*.* ] [ 14.*.* ] [ 15.*.* ] | |||||
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 "TrigDecisionTool/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 using namespace Trig; 049 namespace Trig { 050 class ChainGroup; 051 } 052 053 class AnalysisSkeleton : public CBNT_AthenaAwareBase { 054 055 public: 056 057 AnalysisSkeleton(const std::string& name, ISvcLocator* pSvcLocator); 058 ~AnalysisSkeleton(); 059 060 virtual StatusCode CBNT_initializeBeforeEventLoop(); 061 virtual StatusCode CBNT_initialize(); 062 virtual StatusCode CBNT_finalize(); 063 virtual StatusCode CBNT_execute(); 064 virtual StatusCode CBNT_clear(); 065 066 private: 067 068 /** methods called by CBNT_execute() */ 069 StatusCode electronSkeleton(); 070 StatusCode triggerSkeleton(); 071 072 /** an example of pre-selection, overlap-checking and overlap removal */ 073 StatusCode analysisPreparation(); 074 075 /** look at b-jet tagging information */ 076 StatusCode bjetInfo(); 077 078 /** get quark flavour of jets */ 079 int getQuarkJetFlavour(JetCollection::const_iterator jetItr); 080 081 /** get missing ET information */ 082 StatusCode getMissingET(); 083 084 /** make plots for SUSY studies */ 085 StatusCode SusyStudies(); 086 087 /** get pT of top quarks */ 088 StatusCode getTopQpT(int &, double&, double&); 089 090 private: 091 092 /** get a handle to the tool helper */ 093 ToolHandle<AnalysisTools> m_analysisTools; 094 095 /** get a handle on the user tool for pre-selection and overlap removal */ 096 ToolHandle<UserAnalysisSelectionTool> m_analysisSelectionTool; 097 ToolHandle<UserAnalysisPreparationTool> m_analysisPreparationTool; 098 ToolHandle<UserAnalysisOverlapCheckingTool> m_analysisOverlapCheckingTool; 099 ToolHandle<UserAnalysisOverlapRemovalTool> m_analysisOverlapRemovalTool; 100 101 /** tool to access the trigger decision */ 102 ToolHandle<Trig::TrigDecisionTool> m_trigDec; 103 104 /** a handle on the Hist/TTree registration service */ 105 ITHistSvc * m_thistSvc; 106 107 /** a handle on Store Gate for access to the Event Store */ 108 StoreGateSvc* m_storeGate; 109 110 /** the key of the Electron Container to retrieve from the AOD */ 111 std::string m_electronContainerName; 112 113 /** name of the AOD truth particle container to retrieve from StoreGate */ 114 std::string m_truthParticleContainerName; 115 116 /** key to get missing ET information */ 117 std::string m_missingETObjectName; 118 119 /// The missing ET object 120 const MissingET * m_pMissing; 121 double m_pxMiss; 122 double m_pyMiss; 123 double m_ptMiss; 124 125 /** additional user cuts after pre-selections */ 126 127 double m_deltaRMatchCut; 128 double m_maxDeltaR; 129 130 /** electron specific cuts */ 131 double m_etElecCut; 132 double m_elecCone; 133 double m_etaElecCut; 134 135 /** bjet specific cuts */ 136 double m_bjetWt_ip3dsv1Cut; 137 double m_bjet_etaCut; 138 double m_bjet_etCut; 139 140 /** missing ET cuts */ 141 double m_missingETCut; 142 143 /** Atlfast data? */ 144 bool m_isAtlFastData; 145 146 /** min Jet ET cut for SUSY studies */ 147 double m_SusyJetMinEt; 148 149 /** Histograms */ 150 TH1F* m_h_elecpt; 151 TH1F* m_h_eleceta; 152 TH1F* m_h_elec_deltaRMatch; 153 154 TH1F* m_h_jet_eta_beforeOR; 155 TH1F* m_h_jet_et_beforeOR; 156 TH1F* m_h_jet_ip3dsv1Wt_beforeOR; 157 TH1F* m_h_jet_label_beforeOR; 158 TH1F* m_h_jet_ip3dsv1Wt_bjet_beforeOR; 159 TH1F* m_h_jet_ip3dsv1Wt_ujet_beforeOR; 160 161 TH1F* m_h_jet_eta_afterOR; 162 TH1F* m_h_jet_et_afterOR; 163 TH1F* m_h_jet_ip3dsv1Wt_afterOR; 164 TH1F* m_h_jet_label_afterOR; 165 TH1F* m_h_jet_ip3dsv1Wt_bjet_afterOR; 166 TH1F* m_h_jet_ip3dsv1Wt_ujet_afterOR; 167 168 TH1F* m_pxMis; 169 TH1F* m_pyMis; 170 TH1F* m_ptMis; 171 172 TH1F* m_triggerAccepts; 173 174 /** Athena-Aware Ntuple (AAN) variables - branches of the AAN TTree */ 175 176 /** Simple variables by Ketevi */ 177 int m_aan_size; 178 std::vector<double> * m_aan_eta; 179 std::vector<double> * m_aan_pt; 180 std::vector<double> * m_aan_elecetres; 181 182 /** Variables by VJ */ 183 double m_aan_ptMiss; 184 int m_aan_njets; 185 int m_aan_njets_etaLT25; 186 int m_aan_njets_SusyETCut; 187 double m_aan_effmass; 188 double m_aan_ht; 189 double m_aan_maxJetET; 190 int m_aan_nbjets; 191 192 std::vector<double>* m_aan_JetEta; 193 std::vector<double>* m_aan_JetEt; 194 std::vector<double>* m_aan_JetBTagWt; 195 196 /** Look at final electrons/muons */ 197 int m_aan_NFinalEl; 198 int m_aan_NFinalMu; 199 200 std::vector<double>* m_aan_FinalElEta; 201 std::vector<double>* m_aan_FinalElPt; 202 std::vector<double>* m_aan_FinalElEtCone20; 203 std::vector<double>* m_aan_FinalElPtrat; 204 205 std::vector<double>* m_aan_FinalMuEta; 206 std::vector<double>* m_aan_FinalMuPt; 207 std::vector<double>* m_aan_FinalMuEtCone20; 208 std::vector<int>* m_aan_FinalMuBestMat; 209 std::vector<double>* m_aan_FinalMuMatChi2; 210 211 double m_aan_FinalLepEtSum; 212 double m_aan_FinalElEtSum; 213 double m_aan_FinalMuEtSum; 214 215 /** number top quarks */ 216 217 int m_aan_NumTopQ; 218 double m_aan_pTtop1; 219 double m_aan_pTtop2; 220 221 /** trigger branches */ 222 float m_aan_Trig_efJet_et ; 223 float m_aan_Trig_efJet_eta ; 224 float m_aan_Trig_efJet_phi ; 225 float m_aan_Trig_l2Jet_et ; 226 float m_aan_Trig_l2Jet_eta ; 227 float m_aan_Trig_l2Jet_phi ; 228 float m_aan_Trig_l1Jet_et88; 229 float m_aan_Trig_l1Jet_eta ; 230 float m_aan_Trig_l1Jet_phi ; 231 232 bool m_doTrigger; 233 std::string m_investigateChain; 234 std::vector<std::string> m_triggerChains; 235 std::map<std::string,int> m_triggersPassed; 236 237 unsigned int m_eventNr; 238 const ChainGroup* m_all; 239 const ChainGroup* m_allL1; 240 const ChainGroup* m_allL2; 241 const ChainGroup* m_allEF; 242 std::vector<std::string> m_chain_names; 243 244 }; 245 246 #endif // ANALYSIS_SKELETON_H 247
| [ 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. |
|