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 ]

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. Valid HTML 4.01!