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 
00050 
00051 //*************************************
00052 //Default parameters private to this algorithm
00053 //*************************************
00054 
00055 #define DEFAULT_AtlfBjetSwitch     1
00056 #define DEFAULT_AtlfCalSwitch      1
00057 #define DEFAULT_AtlfTauSwitch      1
00058 #define DEFAULT_AtlfTauVetoSwitch  0
00059 #define DEFAULT_AtlfTrigMuoSwitch  0
00060 #define DEFAULT_AtlfBNSet          1  //Choose the set of efficiencies and pt dependent factors
00061 #define DEFAULT_TauEff             0.5 //Tau jet tagging efficiency
00062 #define DEFAULT_TauVetoOption      1  //For the atlfTauVeto(int ind) method 
00063 #define DEFAULT_JetCorrFile        "ptcorrectionjet.dat"
00064 #define DEFAULT_CJetCorrFile        "ptcorrectioncjet.dat"
00065 #define DEFAULT_RandomSeed        1234567
00066 
00067 //*****************************************
00068 // Default paths in the Transient event store to get/put entities
00069 //
00070 //******************************************
00071 
00072 #define DEFAULT_inputLocation           "/Event/AtlfastJets" 
00073 #define DEFAULT_outputLocation          "/Event/AtlfastCalJets" 
00074 
00075 //***************************************************************
00076 // AtlfastB class declaration
00077 //
00078 // A "Gaudi algorithm" is something which gets scheduled and controlled
00079 // by the framework. In its simplest definition it is something which
00080 //  - gets clled for each event 
00081 //  - can get anything it wants out of the Transient Event Store"
00082 //  - can put anything it makes into the store.
00083 
00084 //
00085 //****************************************************************
00086 class MsgStream;
00087 class ISvcLocator;
00088 
00089 //using HepMC::GenEvent;
00090 
00091 class RandFlat;
00092 class HepRandomEngine;
00093 
00094 namespace Atlfast {
00101   class TesIO;
00102   class Jet;
00103 
00104   class AtlfastB : public Algorithm
00105 {
00106 
00107  private:
00108   
00109   
00110   //--------------------------------
00111   // Parameters of this algorithm
00112   // (descriptions above)
00113   //--------------------------------
00114 
00115   
00116   // Parameters for the different atlfastB methods
00117   // parametrization prepared by E. Ros, updated November'99, low luminosity
00118   // apply randomized b-tagging with efficiencies specified
00119   // by one of given sets, pT dependent correction factors included
00120   // m_atlfBNSet=1  --> m_epsib=0.5
00121   // m_atlfBNSet=2  --> m_epsib=0.6
00122   // m_atlfBNSet=3  --> m_epsib=0.7
00123   //                                          
00124   // canonical for low luminosity performance,no pT dependence
00125   // m_atlfBNSet=5 --> m_epsib=0.60 epsi_c=0.10, R=100
00126   //                                          
00127   // Inner Detector TDR, April'97, low luminosity, pT dependent correction
00128   // factors included, parametrization prepared by E. Ros
00129   // m_atlfBNSet=11 --> m_epsib=0.33
00130   // m_atlfBNSet=12 --> m_epsib=0.43
00131   // m_atlfBNSet=13 --> m_epsib=0.53
00132   // m_atlfBNSet=14 --> m_epsib=0.624
00133   //                                          
00134 
00135 
00136   int m_atlfBNSet;
00137   
00138   //Jet tagging efficiencies
00139   float m_epsib;
00140   float m_epsic;
00141   float m_epsij;
00142   float m_epsitau;
00143 
00144   //input files for jet correction factors
00145 
00146   string m_corrjfile;
00147   string m_corrcfile;
00148 
00149   //jet correction factors
00150   float m_corrj[5][15];
00151   float m_corrc[5][15];
00152 
00153   //
00154   int m_indtauveto;  
00155   
00156   // for an analysis where you want to reject taus use atlfVeto      
00157   // apply veto for tau-jet 
00158   // (m_indtauveto=1): tau-background fixed to 5%, atlfVeto gives the corresponding jet-efficiency
00159   // (m_indtauveto=2): jet-efficiency fixed at 90%, atlfVeto gives the corresponding tau-background
00160 
00161 
00162 //switch for the different methods
00163   int m_iAtlfBje;
00164   int m_iAtlfCal;
00165   int m_iAtlfTau;
00166   int m_iAtlfTauVeto;
00167   int m_iAtlfTrigMuo;
00168   
00169   //other variables
00170   
00171   bool m_notInit;
00172   TesIO* m_tesIO;
00173   int m_randomSeed;
00174   HepRandomEngine* m_pRandomEngine;
00175   RandFlat* m_pRandFlatGenerator;
00176   
00177   std::vector<Jet*>  m_Jets;
00178   std::vector<Jet*>::iterator m_it;
00179 
00180 
00181 
00182   
00183   //--------------------------------------------------
00184   // Paths in the Transient Event store to get/put things
00185   // These are currently set in member variables so that
00186   // they can be overwritten by the job options service
00187   //--------------------------------------------------
00188 
00189   std::string m_inputLocation ;
00190   std::string m_outputLocation ;
00191 
00192  public:
00193 
00194   //-------------------------
00195   // Constructors/Destructors
00196   //
00197   // Gaudi requires that the constructor takes certain arguments
00198   // (and passes them directly to the constructor of the base class)
00199   //-------------------------
00200 
00201   AtlfastB( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00202    virtual ~AtlfastB();
00203 
00204 
00205 
00206 
00207   //-------------------------------
00208   // helper
00209   //-------------------------------
00210 
00211   
00212 
00213   StatusCode atlfBje(int nset);
00214   StatusCode atlfCal();
00215   StatusCode atlfTau(float epsitau);
00216   StatusCode tautag(double pt, double eta, double efftau, double &rjet);
00217   StatusCode atlfTauVeto(int ind);
00218   StatusCode tauveto(double pt, int ind, double &efftau, double &effjet);  
00219   StatusCode atlfTrigMuo();
00220   
00221   
00222   double fitcoreb(double pt);
00223   double fitcoreu(double pt);
00224 
00225   //------------------------------------------------------
00226   // Methods used by Gaudi to run the algorithm
00227   //------------------------------------------------------
00228 
00229    StatusCode initialize() ;
00230    StatusCode execute() ;
00231    StatusCode finalize() ;
00232 
00233 };
00234 
00235   
00236 }  //end of namespace bracket
00237 
00238 #endif
00239 
00240 
00241 
00242 
00243 
00244 
00245 
00246 
00247 
00248 
00249 
00250 
00251 
00252 
00253 
00254 

Generated on Thu Feb 21 14:30:45 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001