#include <SysFileGen.h>
Inheritance diagram for SysFileGen:
Public Member Functions | |
SysFileGen () | |
virtual | ~SysFileGen () |
void | Reset () |
void | Initialize () |
void | AddSystematic (string sys) |
void | PrepareExtrapHistograms (Selection::Selection_t) |
TH1 * | GetPrediction (Background::Background_t bg) |
void | RunSystematicStudy (Selection::Selection_t sel) |
void | SetOutputFile (string name) |
void | WriteToFile (Selection::Selection_t sel) |
void | SetNearPOT (double pot) |
void | SetFarPOT (double pot) |
void | SetNueRecoBins (int, double, double) |
void | SetNueRecoBins (int, double *) |
void | SetTrueBins (int, double, double) |
void | SetTrueBins (int, double *) |
void | InitializeSysHists (SysHists *one) |
void | SetDataFileName (string name) |
void | SetOscParams (Double_t theta12, Double_t theta23, Double_t theta13, Double_t deltam12, Double_t deltam23, Double_t deltaCP, Int_t massH) |
Private Member Functions | |
void | ResetHistograms () |
void | InitializeHistograms () |
void | PrepareHistograms (Selection::Selection_t sel) |
void | FillSysHistograms () |
Private Attributes | |
vector< string > | fSystematics |
string | fCurrentSys |
std::map< Background::Background_t, SysHists * > | fHistMap |
std::string | outFileName |
double | fTargetPOT |
Double_t | fTheta12 |
Double_t | fTheta23 |
Double_t | fTheta13 |
Double_t | fDeltaMSq23 |
Double_t | fDeltaMSq12 |
Double_t | fDeltaCP |
Double_t | fMassHierarchy |
|
Definition at line 13 of file SysFileGen.cxx. References fTargetPOT, and outFileName.
00014 { 00015 outFileName = "DefaultOut.root"; 00016 fTargetPOT = 3.25e20; 00017 fNearPOT = 0.0; 00018 fFarPOT = 0.0; 00019 } |
|
Definition at line 15 of file SysFileGen.h.
00015 {}; |
|
Definition at line 20 of file SysFileGen.h. References fSystematics.
00020 { fSystematics.push_back(sys);}; |
|
Definition at line 82 of file SysFileGen.cxx. References fHistMap. Referenced by RunSystematicStudy().
00083 { 00084 std::map<Background::Background_t,SysHists*>::iterator mapBeg = fHistMap.begin(); 00085 std::map<Background::Background_t,SysHists*>::iterator mapEnd = fHistMap.end(); 00086 00087 //Now looping over each background assign in the appropriate histograms 00088 00089 while(mapBeg != mapEnd){ 00090 // SysHists* local = mapBeg->second; 00091 00092 // Now here is one of the tricky parts 00093 // If you are going to overwrite local make sure you are using the same bins 00094 //************************************************* 00095 00096 00097 // Do whatever you have to do 00098 00099 00100 //*************************************************** 00101 00102 00103 mapBeg++; 00104 } 00105 } |
|
|
|
Definition at line 37 of file SysFileGen.cxx. References NueExtrapHelper::Init().
00038 { 00039 this->Init(); 00040 } |
|
Definition at line 165 of file SysFileGen.cxx. References fHistMap, and InitializeSysHists(). Referenced by ResetHistograms().
00166 { 00167 00168 vector<Background::Background_t> bgs; 00169 bgs.push_back(Background::kNC); 00170 bgs.push_back(Background::kNuMuCC); 00171 bgs.push_back(Background::kNuTauCC); 00172 bgs.push_back(Background::kNueCC); 00173 bgs.push_back(Background::kBNueCC); 00174 bgs.push_back(Background::kSelCC); 00175 00176 for(unsigned int i = 0; i < bgs.size(); i++){ 00177 gDirectory->cd("/"); 00178 string fnh_name = string(Background::AsString(bgs[i])); 00179 SysHists *fnh = new SysHists(fnh_name.c_str()); 00180 00181 InitializeSysHists(fnh); 00182 00183 (fHistMap)[bgs[i]] = fnh; 00184 } 00185 } |
|
Definition at line 188 of file SysFileGen.cxx. References SysHists::fDirectory, SysHists::fFD_RecoEnergy, SysHists::fFD_RecoVsTrue, SysHists::fND_RecoEnergy, and SysHists::fND_RecoVsTrue. Referenced by InitializeHistograms().
00189 { 00190 gDirectory->cd("/"); 00191 00192 int nRecoBins = fNXBins; 00193 Double_t* RecoBins = fXBins; 00194 00195 one->fDirectory->cd(); 00196 one->fND_RecoEnergy = new TH1D("ND_RecoEnergy","ND Reco Energy",nRecoBins, RecoBins); 00197 one->fND_RecoEnergy->Sumw2(); 00198 one->fFD_RecoEnergy = new TH1D("FD_RecoEnergy","FD Reco Energy",nRecoBins, RecoBins); 00199 one->fFD_RecoEnergy->Sumw2(); 00200 00201 one->fND_RecoVsTrue = new TH2D("ND_RecoVsTrue", "ND Reco v True E", nRecoBins, RecoBins, 00202 fNYBins, fYBins); 00203 one->fND_RecoVsTrue->Sumw2(); 00204 00205 one->fFD_RecoVsTrue = new TH2D("FD_RecoVsTrue", "FD Reco v True E", nRecoBins, RecoBins, 00206 fNYBins, fYBins); 00207 one->fFD_RecoVsTrue->Sumw2(); 00208 } |
|
|
|
Definition at line 72 of file SysFileGen.cxx. References Selection::Selection_t. Referenced by RunSystematicStudy().
00073 { 00074 //This is a function entirely up the the systematic so you need to fill this yourself 00075 // build whatever histograms you're heart desires - 00076 // should not impact any of the default data structures 00077 00078 00079 return; 00080 } |
|
Definition at line 17 of file SysFileGen.h.
00017 {}; |
|
Definition at line 211 of file SysFileGen.cxx. References SysHists::fDirectory, SysHists::fFD_RecoEnergy, SysHists::fFD_RecoVsTrue, fHistMap, SysHists::fND_RecoEnergy, SysHists::fND_RecoVsTrue, and InitializeHistograms(). Referenced by RunSystematicStudy().
00212 { 00213 00214 if(fHistMap.size() == 0) InitializeHistograms(); 00215 00216 //Really I should change this to iterate over the fHistMap 00217 00218 std::map<Background::Background_t, SysHists*>::iterator first = fHistMap.begin(); 00219 std::map<Background::Background_t, SysHists*>::iterator last = fHistMap.end(); 00220 00221 while(first != last) 00222 { 00223 //Background::Background_t bg = first->first; 00224 SysHists* fnh = first->second; 00225 00226 fnh->fDirectory->cd(); 00227 fnh->fND_RecoEnergy->Reset("ICE"); 00228 fnh->fFD_RecoEnergy->Reset("ICE"); 00229 fnh->fND_RecoVsTrue->Reset("ICE"); 00230 fnh->fFD_RecoVsTrue->Reset("ICE"); 00231 00232 first++; 00233 } 00234 } |
|
Definition at line 51 of file SysFileGen.cxx. References fCurrentSys, FillSysHistograms(), fSystematics, PrepareHistograms(), ResetHistograms(), Selection::Selection_t, and WriteToFile().
00052 { 00053 //For a given selection (Presel, ANN, MCNN) 00054 // there will be a set of "systematics" 00055 // normal, parameter + 1 sigma, par - 1 sigma 00056 // For each of these build the necessary histograms then write 00057 // them to file 00058 00059 //Because this is much more arbitrary fSystematics is a vector of strings 00060 // These strings should describe the systematic under consideration 00061 00062 for(unsigned int j = 0; j < fSystematics.size(); j++){ 00063 std::cout<<"systematic "<<j<<endl; 00064 fCurrentSys = fSystematics[j]; 00065 PrepareHistograms(sel); 00066 ResetHistograms(); //Clear out whatever happened last time 00067 FillSysHistograms(); 00068 WriteToFile(sel); 00069 } 00070 } |
|
|
|
Definition at line 30 of file SysFileGen.h.
00030 { fFarPOT = pot;}; |
|
Definition at line 29 of file SysFileGen.h.
00029 { fNearPOT = pot;}; |
|
|
|
|
|
Definition at line 42 of file SysFileGen.cxx. References fDeltaCP, fDeltaMSq12, fDeltaMSq23, fMassHierarchy, fTheta12, fTheta13, and fTheta23.
00045 { 00046 fTheta12 = theta12; fTheta23 = theta23; fTheta13 = theta13; 00047 fDeltaMSq12 = deltam12; fDeltaMSq23 = deltam23; 00048 fDeltaCP = deltaCP; fMassHierarchy = massH; 00049 } |
|
Definition at line 107 of file SysFileGen.cxx. References outFileName.
00108 { 00109 outFileName = name; 00110 } |
|
|
|
|
|
Definition at line 113 of file SysFileGen.cxx. References fCurrentSys, fDeltaCP, fDeltaMSq12, fDeltaMSq23, fHistMap, fMassHierarchy, fSystematics, fTheta12, outFileName, and Selection::Selection_t. Referenced by RunSystematicStudy().
00114 { 00115 static TFile* file = 0; 00116 static TTree* tree = 0; 00117 static char selection[256]; 00118 static char sysname[256]; 00119 00120 if(file == 0){ 00121 file = new TFile(outFileName.c_str(),"RECREATE"); 00122 tree = new TTree("energytree","energytree"); 00123 tree->Branch("Selection",selection,"Selection/C"); 00124 tree->Branch("nearPOT",&fNearPOT,"nearPOT/D"); 00125 tree->Branch("farPOT",&fFarPOT,"farPOT/D"); 00126 tree->Branch("SysName", sysname,"SysName/C"); 00127 tree->Branch("Theta12",&fTheta12,"Theta12/D"); 00128 tree->Branch("Theta13",&fTheta12,"Theta13/D"); 00129 tree->Branch("Theta23",&fTheta12,"Theta23/D"); 00130 tree->Branch("DeltaMSq23",&fDeltaMSq23,"DeltaMSq23/D"); 00131 tree->Branch("DeltaMSq12",&fDeltaMSq12,"DeltaMSq12/D"); 00132 tree->Branch("DeltaCP",&fDeltaCP,"DeltaCP/D"); 00133 tree->Branch("MassHierarchy",&fMassHierarchy,"MassHierarchy/I"); 00134 } 00135 file->cd(); 00136 00137 sprintf(selection,"%s",Selection::AsString(sel)); 00138 sprintf(sysname, "%s", fCurrentSys.c_str()); 00139 00140 std::map<Background::Background_t,SysHists*>::iterator FNbeg = fHistMap.begin(); 00141 std::map<Background::Background_t,SysHists*>::iterator FNend = fHistMap.end(); 00142 00143 while(FNbeg!=FNend) { 00144 string fnh_name = FNbeg->second->fDirectory->GetName(); 00145 fnh_name += "_" + fCurrentSys + "_" + string(Selection::AsString(sel)); 00146 00147 TDirectory *filedir = file->mkdir(fnh_name.c_str()); 00148 filedir->cd(); 00149 TList *list = FNbeg->second->fDirectory->GetList(); 00150 TIter iter(list->MakeIterator()); 00151 TObject *ob = 0; 00152 while((ob = iter())) ob->Write(); 00153 file->cd(); 00154 FNbeg++; 00155 } 00156 00157 file->cd(); 00158 00159 tree->Fill(); 00160 00161 if(fCurrentSys == fSystematics[fSystematics.size()-1]) 00162 tree->Write(); 00163 } |
|
Definition at line 51 of file SysFileGen.h. Referenced by RunSystematicStudy(), and WriteToFile(). |
|
Definition at line 63 of file SysFileGen.h. Referenced by SetOscParams(), and WriteToFile(). |
|
Definition at line 62 of file SysFileGen.h. Referenced by SetOscParams(), and WriteToFile(). |
|
Definition at line 61 of file SysFileGen.h. Referenced by SetOscParams(), and WriteToFile(). |
|
Definition at line 53 of file SysFileGen.h. Referenced by FillSysHistograms(), InitializeHistograms(), ResetHistograms(), and WriteToFile(). |
|
Definition at line 64 of file SysFileGen.h. Referenced by SetOscParams(), and WriteToFile(). |
|
Definition at line 50 of file SysFileGen.h. Referenced by AddSystematic(), RunSystematicStudy(), and WriteToFile(). |
|
Definition at line 56 of file SysFileGen.h. Referenced by SysFileGen(). |
|
Definition at line 58 of file SysFileGen.h. Referenced by SetOscParams(), and WriteToFile(). |
|
Definition at line 60 of file SysFileGen.h. Referenced by SetOscParams(). |
|
Definition at line 59 of file SysFileGen.h. Referenced by SetOscParams(). |
|
Definition at line 55 of file SysFileGen.h. Referenced by SetOutputFile(), SysFileGen(), and WriteToFile(). |