00001 #ifndef MySystematicsH
00002 #define MySystematicsH
00003
00004
00005
00006
00007
00017
00018
00019
00020
00021
00022
00023 #include <iostream>
00024 #include <vector>
00025
00026
00027 #include <TRandom.h>
00028 #include "TLorentzVector.h"
00029
00030
00031 #include "MyParticle.h"
00032 #include "MyMissingEt.h"
00033 #include "MyTools.h"
00034 #include "NtupleReader/MyDatasetInfo.h"
00035
00036
00037
00038 class MySystematics {
00039
00040 public:
00041
00043 MySystematics( unsigned int seed ){
00044 init(seed);
00045 };
00046
00048 ~MySystematics(void){
00049 destruct();
00050 }
00051 ;
00052
00053 public:
00054
00059 Double_t egamma_resolution( const Double_t et );
00060
00065 Double_t muon_resolution( const Double_t pt );
00066
00072 Double_t jet_resolution( const Double_t e, const Double_t eta );
00073
00078 Double_t taujet_resolution( const Double_t e );
00079
00081 Double_t energy_scale ( const Double_t pT, const Double_t f );
00082
00088 Bool_t is_detected( const Double_t f );
00089
00093 Bool_t is_bjet( const Double_t f_minus );
00094
00100 Double_t metCorrection_x(const Double_t aodPx, const Double_t correctedPx);
00101 Double_t metCorrection_y(const Double_t aodPy, Double_t correctedPy);
00102 Double_t metCorrection_sum(const Double_t aodSum, Double_t correctedsum);
00103 Double_t metScale ( const Double_t aodM, const Double_t correctedM, Double_t factor=1.0);
00104
00105 void apply_syst( std::vector<MyParticle*> * vp_syst, MyMissingEt * met_syst, int f_reso, int f_eScale_minus, int f_eScale_plus, int f_effi, int f_btag);
00107
00108 private:
00109
00110
00111 MyDatasetInfo *m_dataset_info;
00112
00113
00114 MyTools m_tools;
00115
00116
00118 TRandom * m_random;
00119
00120 void init(unsigned int seed);
00121
00122
00123 void destruct(void);
00124
00125
00126
00127 };
00128
00129
00130
00131
00132
00133 #include "MySystematics.ixx"
00134
00135 #endif
00136