Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

AtlfastB.h

Go to the documentation of this file.
00001 // ================================================
00002 // AtlfastB class description
00003 // ================================================
00004 //
00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT
00006 //
00007 //
00008 // This version....
00009 //
00010 //
00011 // Namespace Atlfast::
00012 //
00013 // class: AtlfastB
00014 //
00015 //It is based upon atlfastb.f by E.Richter-Was
00016 //
00017 //  Author    : Mireia Dosil
00018 //
00019 //
00020 // Description: 
00021 //
00022 //  Algorithm for jet tagging and jet tagging efficiencies computation
00023 //  Translated into c++ athena from the fortran code atlfastb.f
00024 // 
00025 //
00026 // ................................................................
00027 //
00028 
00029 #ifndef ATLFAST_B
00030 #define ATLFAST__B
00031 
00032 // STL
00033 #ifndef STD_VECTOR_H
00034 #include <vector>
00035 #define STD_VECTOR_H
00036 #endif
00037 
00038 #ifndef STD_STRING_H
00039 #include <string>
00040 #define STD_STRING_H
00041 #endif
00042 
00043 // Gaudi 
00044 #ifndef GAUDIKERNEL_ALGORITHM_H
00045 #include "GaudiKernel/Algorithm.h"
00046 #define GAUDIKERNEL_ALGORITHM_H
00047 #endif
00048 //***************************************************************
00049 // AtlfastB class declaration
00050 //
00051 // A "Gaudi algorithm" is something which gets scheduled and controlled
00052 // by the framework. In its simplest definition it is something which
00053 //  - gets clled for each event 
00054 //  - can get anything it wants out of the Transient Event Store"
00055 //  - can put anything it makes into the store.
00056 
00057 //
00058 //****************************************************************
00059 class MsgStream;
00060 class ISvcLocator;
00061 
00062 
00063 
00064 class RandFlat;
00065 class HepRandomEngine;
00066 
00067 namespace Atlfast {
00074   class TesIO;
00075   class Jet;
00076 
00077   using std::string;
00078   class AtlfastB : public Algorithm
00079 {
00080 
00081  private:
00082   
00083   
00084   //--------------------------------
00085   // Parameters of this algorithm
00086   // (descriptions above)
00087   //--------------------------------
00088 
00089   
00090   // Parameters for the different atlfastB methods
00091   // parametrization prepared by E. Ros, updated November'99, low luminosity
00092   // apply randomized b-tagging with efficiencies specified
00093   // by one of given sets, pT dependent correction factors included
00094   // m_atlfBNSet=1  --> m_epsib=0.5
00095   // m_atlfBNSet=2  --> m_epsib=0.6
00096   // m_atlfBNSet=3  --> m_epsib=0.7
00097   //                                          
00098   // canonical for low luminosity performance,no pT dependence
00099   // m_atlfBNSet=5 --> m_epsib=0.60 epsi_c=0.10, R=100
00100   //                                          
00101   // Inner Detector TDR, April'97, low luminosity, pT dependent correction
00102   // factors included, parametrization prepared by E. Ros
00103   // m_atlfBNSet=11 --> m_epsib=0.33
00104   // m_atlfBNSet=12 --> m_epsib=0.43
00105   // m_atlfBNSet=13 --> m_epsib=0.53
00106   // m_atlfBNSet=14 --> m_epsib=0.624
00107   //                                          
00108 
00109 
00110   int m_atlfBNSet;
00111   
00112   //Jet tagging efficiencies
00113   double m_epsib;
00114   double m_epsic;
00115   double m_epsij;
00116   double m_epsitau;
00117 
00118   //input files for jet correction factors
00119 
00120   string m_corrjfile;
00121   string m_corrcfile;
00122 
00123   //jet correction factors
00124   double m_corrj[5][15];
00125   double m_corrc[5][15];
00126 
00127   //
00128   int m_indtauveto;  
00129   
00130   // for an analysis where you want to reject taus use atlfVeto      
00131   // apply veto for tau-jet 
00132   // (m_indtauveto=1): tau-background fixed to 5%, atlfVeto gives the corresponding jet-efficiency
00133   // (m_indtauveto=2): jet-efficiency fixed at 90%, atlfVeto gives the corresponding tau-background
00134 
00135 
00136 //switch for the different methods
00137   bool m_AtlfBJetSwitch;
00138   bool m_AtlfCalSwitch;
00139   bool m_AtlfTauSwitch;
00140   bool m_AtlfTauVetoSwitch;
00141   bool m_AtlfTrigMuoSwitch;
00142   
00143   //other variables
00144   
00145   bool m_notInit;
00146   TesIO* m_tesIO;
00147 
00148   HepRandomEngine* m_pRandomEngine;
00149   RandFlat* m_pRandFlatGenerator;
00150   
00151   std::vector<Jet*>  m_Jets;
00152   std::vector<Jet*>::const_iterator m_it;
00153 
00154 
00155 
00156   
00157   //--------------------------------------------------
00158   // Paths in the Transient Event store to get/put things
00159   // These are currently set in member variables so that
00160   // they can be overwritten by the job options service
00161   //--------------------------------------------------
00162 
00163   std::string m_inputLocation ;
00164   std::string m_outputLocation ;
00165 
00166  public:
00167 
00168   //-------------------------
00169   // Constructors/Destructors
00170   //
00171   // Gaudi requires that the constructor takes certain arguments
00172   // (and passes them directly to the constructor of the base class)
00173   //-------------------------
00174 
00175   AtlfastB( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00176   virtual ~AtlfastB();
00177 
00178 
00179 
00180 
00181   //-------------------------------
00182   // helper
00183   //-------------------------------
00184 
00185   
00186 
00187   StatusCode atlfBje(int nset);
00188   StatusCode atlfCal();
00189   StatusCode atlfTau(double epsitau);
00190   StatusCode tautag(double pt, double eta, double efftau, double &rjet, int &iflag);
00191   StatusCode atlfTauVeto(int ind);
00192   StatusCode tauveto(double pt, int ind, double &efftau, double &effjet);  
00193   StatusCode atlfTrigMuo();
00194   
00195   
00196   double fitcoreb(double pt);
00197   double fitcoreu(double pt);
00198 
00199   //------------------------------------------------------
00200   // Methods used by Gaudi to run the algorithm
00201   //------------------------------------------------------
00202 
00203    StatusCode initialize() ;
00204    StatusCode execute() ;
00205    StatusCode finalize() ;
00206 
00207 };
00208 
00209   
00210 }  //end of namespace bracket
00211 
00212 #endif

Generated on Tue Mar 18 11:18:22 2003 for AtlfastAlgs by doxygen1.3-rc1