AtlfastB.h

Go to the documentation of this file.
00001 // ================================================
00002 // AtlfastB class description
00003 // ================================================
00004 //
00005 // Namespace Atlfast::
00006 //
00007 // class: AtlfastB
00008 //
00009 // It is based upon atlfastb.f by E.Richter-Was
00010 //
00011 //  Author    : Mireia Dosil
00012 //
00013 //
00014 // Description: 
00015 //
00016 // The original jet flavour labels from JetMaker are rearranged here to 
00017 // simulate the overall efficiencies measured in full simulation.
00018 // Correction factors are also computed to match different tagging hypotheses.
00019 // 
00020 //
00021 // ................................................................
00022 //
00023 
00024 #ifndef ATLFAST_B
00025 #define ATLFAST_B
00026 
00027 // STL
00028 #ifndef STD_VECTOR_H
00029 #include <vector>
00030 #define STD_VECTOR_H
00031 #endif
00032 
00033 #ifndef STD_STRING_H
00034 #include <string>
00035 #define STD_STRING_H
00036 #endif
00037 
00038 // Gaudi 
00039 #ifndef GAUDIKERNEL_ALGORITHM_H
00040 #include "GaudiKernel/Algorithm.h"
00041 #define GAUDIKERNEL_ALGORITHM_H
00042 #endif
00043 
00044 #include "CLHEP/Random/RandomEngine.h"
00045 #include "CLHEP/Random/RandFlat.h"
00046 
00047 #include "AtlfastEvent/Interpolator.h"
00048 #include "AtlfastEvent/CollectionDefs.h"
00049 
00050 class MsgStream;
00051 class ISvcLocator;
00052 
00053 namespace Atlfast {
00054 
00055 
00056   class TesIO;
00057   class Jet;
00058 
00059   using std::string;
00060 
00070   class AtlfastB : public Algorithm
00071 {
00072 
00073  private:
00074   
00103   int m_atlfBNSet;  
00104   
00105   double m_epsib;   
00106   double m_epsic;   
00107   double m_epsij;   
00108   double m_epsitau; 
00109 
00110   double m_epsitau1P; 
00111   double m_epsitau3P; 
00112 
00113   string m_Tau1P3Pcorrfile;  
00114 
00115   double m_corr1P3P[20];        
00116   double m_corr_prob1P[6][20];  
00117   double m_corr_prob3P[6][20];  
00118 
00119   //input files for jet correction factors
00120 
00121   string m_corrjfile;  
00122   string m_corrcfile;  
00123 
00124   bool   m_useTDRBParam;         
00125   bool   m_interpolateBTagging;  
00126 
00127   double m_epsilonBjet;          
00128 
00134   double m_correctionFactor;
00135 
00136   Interpolator* m_beff_interpolator;     
00137   Interpolator* m_brejpu_interpolator;   
00138   Interpolator* m_brejnpu_interpolator;  
00139   Interpolator* m_brejtau_interpolator;  
00140   Interpolator* m_brejc_interpolator;    
00141 
00142   //jet correction factors
00143   double m_corrj[5][15];  
00144   double m_corrc[5][15];  
00145 
00146   int m_indtauveto;  
00147   
00148 
00149 
00150   //switches for the different methods
00151   bool m_AtlfBJetSwitch;     
00152   bool m_AtlfCalSwitch;      
00153   bool m_AtlfTauSwitch;      
00154   bool m_AtlfTauVetoSwitch;  
00155   bool m_AtlfTrigMuoSwitch;  
00156   bool m_AtlfTau1P3PSwitch;  
00157   
00158   bool m_corrtaumom;         
00159 
00160   
00161   TesIO* m_tesIO;     
00162 
00163   HepRandomEngine* m_pRandomEngine;  
00164   RandFlat* m_pRandFlatGenerator;    
00165   
00166   const JetCollection* m_Jets;         
00167   JetCollection::const_iterator m_it;  
00168 
00169   Interpolator* m_taueff_interpolator;  
00170   Interpolator* m_taurej_interpolator;  
00171 
00172   
00173   std::string m_inputLocation;    
00174 
00175   std::string m_mcLocation; 
00176 
00177 
00178 
00179  public:
00180 
00182   AtlfastB( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00183   /* Default destructor */
00184   virtual ~AtlfastB();
00185 
00186 
00187   StatusCode atlfBje_TDR();           
00188   StatusCode atlfBje();               
00189   StatusCode atlfCal();               
00190   StatusCode atlfTau(double epsitau); 
00191   StatusCode atlfTau1P3P();           
00192   StatusCode atlfTauVeto(int ind);    
00193   StatusCode atlfTrigMuo();           
00194 
00199   StatusCode tautag(double pt, double eta, double efftau, double &rjet, int &iflag);
00200 
00201 
00208   StatusCode tauveto(double pt, int ind, double &efftau, double &effjet);  
00209 
00211   void       makeInterpolator(Interpolator* &intptr, string intname, bool contbounds);
00212   
00213   
00214   double fitcoreb(double pt); 
00215   double fitcoreu(double pt); 
00216 
00217 
00219   StatusCode initialize();
00221   StatusCode execute();
00223   StatusCode finalize();
00224   
00225 };
00226 
00227   
00228 }  //end of namespace bracket
00229 
00230 #endif

Generated on Mon Sep 24 14:19:09 2007 for AtlfastAlgs by  doxygen 1.5.1