00001
00002
00003 #include "NueAna/Extrapolation/Background.h"
00004 #include "NueAna/NueAnaTools/NueConvention.h"
00005 #include "TString.h"
00006
00007
00008 const Char_t* Background::AsString(Background_t background)
00009 {
00010 switch (background) {
00011 case kNueCC: return "NueCC"; break;
00012 case kNC: return "NC"; break;
00013 case kNuMuCC: return "NuMuCC"; break;
00014 case kBNueCC: return "BNueCC"; break;
00015 case kNuTauCC: return "NuTauCC"; break;
00016 case kPiBNueCC: return "PiBNueCC"; break;
00017 case kKaBNueCC: return "KaBNueCC"; break;
00018 case kSelCC: return "SelCC"; break;
00019 case kUnknown: return "Unknown"; break;
00020 default: return "?Unknown?"; break;
00021 }
00022 }
00023
00024
00025 Background::Background_t Background::StringToEnum(const Char_t* chars)
00026 {
00027 TString theString(chars);
00028 if(theString.Contains("NueCC")) return kNueCC;
00029 if(theString.Contains("NC")) return kNC;
00030 if(theString.Contains("NuMuCC")) return kNuMuCC;
00031 if(theString.Contains("BNueCC")) return kBNueCC;
00032 if(theString.Contains("NuTauCC")) return kNuTauCC;
00033 if(theString.Contains("PiBNueCC")) return kPiBNueCC;
00034 if(theString.Contains("KaBNueCC")) return kKaBNueCC;
00035 if(theString.Contains("SelCC")) return kSelCC;
00036
00037 return kUnknown;
00038 }
00039
00040 Background::Background_t Background::TranslateFromMC(Int_t iaction,Int_t inu,
00041 Int_t inunoosc,Int_t parentid)
00042 {
00043 if(iaction==0) return Background::kNC;
00044 if(iaction==1) {
00045 if(TMath::Abs(inu)==12) {
00046 if(TMath::Abs(inunoosc)==12) {
00047 if(parentid==0) return Background::kBNueCC;
00048 else if(TMath::Abs(parentid)==211) return Background::kPiBNueCC;
00049 else if(TMath::Abs(parentid)==130 ||
00050 TMath::Abs(parentid)==321 ||
00051 TMath::Abs(parentid)==310) return Background::kKaBNueCC;
00052 }
00053 else if(TMath::Abs(inunoosc)==14) {
00054 return Background::kNueCC;
00055 }
00056 }
00057 else if(TMath::Abs(inu)==14) return Background::kNuMuCC;
00058 else if(TMath::Abs(inu)==16) return Background::kNuTauCC;
00059 }
00060 return Background::kUnknown;
00061 }
00062
00063 Background::Background_t Background::TranslateFromNueClass(Int_t nueClass)
00064 {
00065 if(nueClass == ClassType::NC) return Background::kNC;
00066 if(nueClass == ClassType::numu) return Background::kNuMuCC;
00067 if(nueClass == ClassType::nue) return Background::kNueCC;
00068 if(nueClass == ClassType::nutau) return Background::kNuTauCC;
00069 if(nueClass == ClassType::bnue) return Background::kBNueCC;
00070
00071 return Background::kUnknown;
00072 }
00073