00001
00002
00003
00004
00005
00006
00007
00008
00010 #ifndef __TMARSYST
00011 #define __TMARSYST
00012
00013 #include <iostream>
00014 #include <fstream>
00015 #include <cstdio>
00016 #include <string>
00017 #include <map>
00018 #include <list>
00019 #include <vector>
00020 #include <TTree.h>
00021 #include "Marana/TMarBody.h"
00022 #include "H1Pointers/H1FloatPtr.h"
00023
00024 #define MYR2D 180.0/3.14159265359
00025
00026 using namespace std;
00027
00028 class TMarSyst
00029 {
00030
00031 public:
00033 int Type;
00034
00036 int Sign;
00037
00039 string Name;
00040
00042 list<string>::iterator Scale_now;
00043
00045 map< string, int, less<string> > MapPossibleScales;
00046
00048 list<string> ScalesToBeDone;
00049
00050
00051 TMarSyst();
00052 ~TMarSyst();
00053
00055 Int_t Next();
00056
00058 void ScaleEnergyPartEm(vector<TMarBody>& PartList,const Double_t& Zvtx
00059 ,const Int_t RunYear,const Int_t Correlation=0);
00060 void ScaleThetaPartEm(vector<TMarBody>& PartList,const Int_t RunYear);
00061
00063 void ScaleEnergyPartJet(vector<TMarBody>& PartList,TLorentzVector& HadJetVec
00064 ,TLorentzVector& HadNoJetVec,const Int_t RunYear
00065 ,const Int_t Correlation=0);
00066 void ScaleThetaPartJet(vector<TMarBody>& PartList,TLorentzVector& HadJetVec);
00067
00069 void ScalePtPartMuon(vector<TMarBody>& PartList);
00070 void ScaleThetaPartMuon(vector<TMarBody>& PartList,const Int_t RunYear);
00071
00072
00073 void ScaleNoiseHFS(TLorentzVector& HadNoJetVec);
00074
00075
00076 friend istream& operator>>(istream& in, TMarSyst& CutMC);
00077 friend ostream& operator<<(ostream& out, TMarSyst& CutMC);
00078
00079 TMarSyst& operator= (const TMarSyst& other);
00080
00081
00082 };
00083 #endif