Report problems to ATLAS LXR Team (with time and IP address indicated)

The LXR Cross Referencer

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Architecture: linux ]
Version: head ] [ nightly ] [ GaudiDev ]
  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. Valid HTML 4.01!