#ifndef ATLAS_AtlHistFactorySystModelPair
#include <AtlHistFactorySystModelPair.h>
#endif
#include <TFile.h>
#include <HepDataMCPlot.h>
#include <iostream>
using namespace std;
#ifndef __CINT__
ClassImp(AtlHistFactorySystModelPair);
#endif
AtlHistFactorySystModelPair::AtlHistFactorySystModelPair() {
}
AtlHistFactorySystModelPair::AtlHistFactorySystModelPair(
const char* systname,
const char *systtitle,
AtlTopLevelAnalysis::ESystematic SystUp,
AtlTopLevelAnalysis::ESystematic SystDown,
Bool_t useShape) :
AtlHistFactorySystPair(systname, systtitle,
SystUp, SystDown, useShape) {
fPlotterFileNom = 0;
fPlotterFileSystNom = 0;
fHistsNom = 0;
fHistsSystNom = 0;
fNominal = AtlTopLevelAnalysis::kNOMINAL;
fSystNom = AtlTopLevelAnalysis::kNOMINAL;
}
AtlHistFactorySystModelPair::~AtlHistFactorySystModelPair() {
if ( fPlotterFileNom != 0 ) delete fPlotterFileNom;
if ( fPlotterFileSystNom != 0 ) delete fPlotterFileSystNom;
if ( fHistsNom != 0 ) {
delete fHistsNom;
}
if ( fHistsSystNom != 0 ) {
delete fHistsSystNom;
}
}
void AtlHistFactorySystModelPair::Initialize(const char* BaseDir,
const char* scheme) {
if ( fPlotterFileNom != 0 ) delete fPlotterFileNom;
fPlotterFileNom = TFile::Open(Form("%s/%s/%s/MCPlotter.root",
BaseDir,
AtlTopLevelAnalysis::fgSystematicNames[fNominal],
scheme));
if ( fPlotterFileNom == 0 ) {
Error("Initialize",
"Could not find nominal MCPlotter file. Abort!");
gSystem->Abort();
}
if ( fNominal != fSystNom ) {
if ( fPlotterFileSystNom != 0 ) delete fPlotterFileSystNom;
fPlotterFileSystNom = TFile::Open(Form("%s/%s/%s/MCPlotter.root",
BaseDir,
AtlTopLevelAnalysis::fgSystematicNames[fSystNom],
scheme));
if ( fPlotterFileSystNom == 0 ) {
Error("Initialize",
"Could not find MCPlotter files. Abort!");
gSystem->Abort();
}
}
if ( fDiscriminant == 0 ) {
Error("Initialize",
"Discriminant not set. Please use SetDiscriminant(..). Abort!");
gSystem->Abort();
}
HepDataMCPlot *HepNom = (HepDataMCPlot*) fPlotterFileNom->Get(fDiscriminant->Data());
if ( HepNom == 0 ) {
Error("Initialize",
"Could not find discriminant '%s' in file.",
fDiscriminant->Data());
Error("Initialize", "File is:\n%s",
fPlotterFileNom->GetName());
gSystem->Abort();
}
HepDataMCPlot *HepSystNom = 0;
if ( fSystNom != fNominal ) {
HepSystNom = (HepDataMCPlot*) fPlotterFileSystNom->Get(fDiscriminant->Data());
if ( HepSystNom == 0 ) {
Error("Initialize",
"Could not find discriminant '%s' in file.",
fDiscriminant->Data());
Error("Initialize", "File is:\n%s",
fPlotterFileSystNom->GetName());
gSystem->Abort();
}
fHistsSystNom = HepSystNom->GetListOfMCTemplates(AtlTopLevelAnalysis::fgSystematicNames[fSystNom]);
}
fHistsNom = HepNom->GetListOfMCTemplates(AtlTopLevelAnalysis::fgSystematicNames[fNominal]);
AtlHistFactorySystPair::Initialize(BaseDir, scheme);
}
void AtlHistFactorySystModelPair::ComputeUpDownVariation(const char* process) {
AtlHistFactorySystPair::ComputeUpDownVariation(process);
TH1 *h_nom = (TH1*) fHistsNom->FindObject(Form("%s_%s",
process,
AtlTopLevelAnalysis::fgSystematicNames[fNominal]));
TH1 *h_systnom = 0;
if ( fSystNom != fNominal ) {
h_systnom = (TH1*) fHistsSystNom->FindObject(Form("%s_%s",
process,
AtlTopLevelAnalysis::fgSystematicNames[fSystNom]));
}
TH1 *h_up = fHistUp;
TH1 *h_down = fHistDown;
if ( fSystNom != fNominal ) {
fHistUp = (TH1*) h_nom->Clone(Form("%s_%s_up",
process,
GetName() ));
fHistUp->Add(h_up, +1.);
fHistUp->Add(h_systnom, -1.);
fHistDown = (TH1*) h_nom->Clone(Form("%s_%s_down",
process,
GetName() ));
fHistDown->Add(h_down, +1.);
fHistDown->Add(h_systnom, -1.);
} else {
fHistUp = (TH1*) h_nom->Clone(Form("%s_%s_up",
process,
GetName() ));
fHistUp->Add(h_up, +0.5);
fHistUp->Add(h_down, -0.5);
fHistDown = (TH1*) h_nom->Clone(Form("%s_%s_down",
process,
GetName() ));
fHistDown->Add(h_up, -0.5);
fHistDown->Add(h_down, +0.5);
}
}
void AtlHistFactorySystModelPair::Clear(Option_t *option) {
if ( fPlotterFileNom != 0 ) {
fPlotterFileNom->Close();
delete fPlotterFileNom;
fPlotterFileNom = 0;
}
if ( fHistsNom != 0 ) {
delete fHistsNom;
fHistsNom = 0;
}
if ( fSystNom != fNominal ) {
if ( fPlotterFileSystNom != 0 ) {
fPlotterFileSystNom->Close();
delete fPlotterFileSystNom;
fPlotterFileSystNom = 0;
}
if ( fHistsSystNom != 0 ) {
delete fHistsSystNom;
fHistsSystNom = 0;
}
}
AtlHistFactorySystPair::Clear();
}
void AtlHistFactorySystModelPair::GetHistsFromFile(const char* process) {
fHistUp = (TH1*) fTemplateFile->Get(Form("%s_%s_up",
process,
GetName() ));
fHistDown = (TH1*) fTemplateFile->Get(Form("%s_%s_down",
process,
GetName() ));
if ( fHistUp == 0 ) {
Error("GetHistsFromFile",
"Could not find up histogram for systematic '%s'",
GetName());
}
if ( fHistDown == 0 ) {
Error("GetHistsFromFile",
"Could not find down histogram for systematic '%s'",
GetName());
}
}
AtlHistFactorySystModelPair.cxx:1 AtlHistFactorySystModelPair.cxx:2 AtlHistFactorySystModelPair.cxx:3 AtlHistFactorySystModelPair.cxx:4 AtlHistFactorySystModelPair.cxx:5 AtlHistFactorySystModelPair.cxx:6 AtlHistFactorySystModelPair.cxx:7 AtlHistFactorySystModelPair.cxx:8 AtlHistFactorySystModelPair.cxx:9 AtlHistFactorySystModelPair.cxx:10 AtlHistFactorySystModelPair.cxx:11 AtlHistFactorySystModelPair.cxx:12 AtlHistFactorySystModelPair.cxx:13 AtlHistFactorySystModelPair.cxx:14 AtlHistFactorySystModelPair.cxx:15 AtlHistFactorySystModelPair.cxx:16 AtlHistFactorySystModelPair.cxx:17 AtlHistFactorySystModelPair.cxx:18 AtlHistFactorySystModelPair.cxx:19 AtlHistFactorySystModelPair.cxx:20 AtlHistFactorySystModelPair.cxx:21 AtlHistFactorySystModelPair.cxx:22 AtlHistFactorySystModelPair.cxx:23 AtlHistFactorySystModelPair.cxx:24 AtlHistFactorySystModelPair.cxx:25 AtlHistFactorySystModelPair.cxx:26 AtlHistFactorySystModelPair.cxx:27 AtlHistFactorySystModelPair.cxx:28 AtlHistFactorySystModelPair.cxx:29 AtlHistFactorySystModelPair.cxx:30 AtlHistFactorySystModelPair.cxx:31 AtlHistFactorySystModelPair.cxx:32 AtlHistFactorySystModelPair.cxx:33 AtlHistFactorySystModelPair.cxx:34 AtlHistFactorySystModelPair.cxx:35 AtlHistFactorySystModelPair.cxx:36 AtlHistFactorySystModelPair.cxx:37 AtlHistFactorySystModelPair.cxx:38 AtlHistFactorySystModelPair.cxx:39 AtlHistFactorySystModelPair.cxx:40 AtlHistFactorySystModelPair.cxx:41 AtlHistFactorySystModelPair.cxx:42 AtlHistFactorySystModelPair.cxx:43 AtlHistFactorySystModelPair.cxx:44 AtlHistFactorySystModelPair.cxx:45 AtlHistFactorySystModelPair.cxx:46 AtlHistFactorySystModelPair.cxx:47 AtlHistFactorySystModelPair.cxx:48 AtlHistFactorySystModelPair.cxx:49 AtlHistFactorySystModelPair.cxx:50 AtlHistFactorySystModelPair.cxx:51 AtlHistFactorySystModelPair.cxx:52 AtlHistFactorySystModelPair.cxx:53 AtlHistFactorySystModelPair.cxx:54 AtlHistFactorySystModelPair.cxx:55 AtlHistFactorySystModelPair.cxx:56 AtlHistFactorySystModelPair.cxx:57 AtlHistFactorySystModelPair.cxx:58 AtlHistFactorySystModelPair.cxx:59 AtlHistFactorySystModelPair.cxx:60 AtlHistFactorySystModelPair.cxx:61 AtlHistFactorySystModelPair.cxx:62 AtlHistFactorySystModelPair.cxx:63 AtlHistFactorySystModelPair.cxx:64 AtlHistFactorySystModelPair.cxx:65 AtlHistFactorySystModelPair.cxx:66 AtlHistFactorySystModelPair.cxx:67 AtlHistFactorySystModelPair.cxx:68 AtlHistFactorySystModelPair.cxx:69 AtlHistFactorySystModelPair.cxx:70 AtlHistFactorySystModelPair.cxx:71 AtlHistFactorySystModelPair.cxx:72 AtlHistFactorySystModelPair.cxx:73 AtlHistFactorySystModelPair.cxx:74 AtlHistFactorySystModelPair.cxx:75 AtlHistFactorySystModelPair.cxx:76 AtlHistFactorySystModelPair.cxx:77 AtlHistFactorySystModelPair.cxx:78 AtlHistFactorySystModelPair.cxx:79 AtlHistFactorySystModelPair.cxx:80 AtlHistFactorySystModelPair.cxx:81 AtlHistFactorySystModelPair.cxx:82 AtlHistFactorySystModelPair.cxx:83 AtlHistFactorySystModelPair.cxx:84 AtlHistFactorySystModelPair.cxx:85 AtlHistFactorySystModelPair.cxx:86 AtlHistFactorySystModelPair.cxx:87 AtlHistFactorySystModelPair.cxx:88 AtlHistFactorySystModelPair.cxx:89 AtlHistFactorySystModelPair.cxx:90 AtlHistFactorySystModelPair.cxx:91 AtlHistFactorySystModelPair.cxx:92 AtlHistFactorySystModelPair.cxx:93 AtlHistFactorySystModelPair.cxx:94 AtlHistFactorySystModelPair.cxx:95 AtlHistFactorySystModelPair.cxx:96 AtlHistFactorySystModelPair.cxx:97 AtlHistFactorySystModelPair.cxx:98 AtlHistFactorySystModelPair.cxx:99 AtlHistFactorySystModelPair.cxx:100 AtlHistFactorySystModelPair.cxx:101 AtlHistFactorySystModelPair.cxx:102 AtlHistFactorySystModelPair.cxx:103 AtlHistFactorySystModelPair.cxx:104 AtlHistFactorySystModelPair.cxx:105 AtlHistFactorySystModelPair.cxx:106 AtlHistFactorySystModelPair.cxx:107 AtlHistFactorySystModelPair.cxx:108 AtlHistFactorySystModelPair.cxx:109 AtlHistFactorySystModelPair.cxx:110 AtlHistFactorySystModelPair.cxx:111 AtlHistFactorySystModelPair.cxx:112 AtlHistFactorySystModelPair.cxx:113 AtlHistFactorySystModelPair.cxx:114 AtlHistFactorySystModelPair.cxx:115 AtlHistFactorySystModelPair.cxx:116 AtlHistFactorySystModelPair.cxx:117 AtlHistFactorySystModelPair.cxx:118 AtlHistFactorySystModelPair.cxx:119 AtlHistFactorySystModelPair.cxx:120 AtlHistFactorySystModelPair.cxx:121 AtlHistFactorySystModelPair.cxx:122 AtlHistFactorySystModelPair.cxx:123 AtlHistFactorySystModelPair.cxx:124 AtlHistFactorySystModelPair.cxx:125 AtlHistFactorySystModelPair.cxx:126 AtlHistFactorySystModelPair.cxx:127 AtlHistFactorySystModelPair.cxx:128 AtlHistFactorySystModelPair.cxx:129 AtlHistFactorySystModelPair.cxx:130 AtlHistFactorySystModelPair.cxx:131 AtlHistFactorySystModelPair.cxx:132 AtlHistFactorySystModelPair.cxx:133 AtlHistFactorySystModelPair.cxx:134 AtlHistFactorySystModelPair.cxx:135 AtlHistFactorySystModelPair.cxx:136 AtlHistFactorySystModelPair.cxx:137 AtlHistFactorySystModelPair.cxx:138 AtlHistFactorySystModelPair.cxx:139 AtlHistFactorySystModelPair.cxx:140 AtlHistFactorySystModelPair.cxx:141 AtlHistFactorySystModelPair.cxx:142 AtlHistFactorySystModelPair.cxx:143 AtlHistFactorySystModelPair.cxx:144 AtlHistFactorySystModelPair.cxx:145 AtlHistFactorySystModelPair.cxx:146 AtlHistFactorySystModelPair.cxx:147 AtlHistFactorySystModelPair.cxx:148 AtlHistFactorySystModelPair.cxx:149 AtlHistFactorySystModelPair.cxx:150 AtlHistFactorySystModelPair.cxx:151 AtlHistFactorySystModelPair.cxx:152 AtlHistFactorySystModelPair.cxx:153 AtlHistFactorySystModelPair.cxx:154 AtlHistFactorySystModelPair.cxx:155 AtlHistFactorySystModelPair.cxx:156 AtlHistFactorySystModelPair.cxx:157 AtlHistFactorySystModelPair.cxx:158 AtlHistFactorySystModelPair.cxx:159 AtlHistFactorySystModelPair.cxx:160 AtlHistFactorySystModelPair.cxx:161 AtlHistFactorySystModelPair.cxx:162 AtlHistFactorySystModelPair.cxx:163 AtlHistFactorySystModelPair.cxx:164 AtlHistFactorySystModelPair.cxx:165 AtlHistFactorySystModelPair.cxx:166 AtlHistFactorySystModelPair.cxx:167 AtlHistFactorySystModelPair.cxx:168 AtlHistFactorySystModelPair.cxx:169 AtlHistFactorySystModelPair.cxx:170 AtlHistFactorySystModelPair.cxx:171 AtlHistFactorySystModelPair.cxx:172 AtlHistFactorySystModelPair.cxx:173 AtlHistFactorySystModelPair.cxx:174 AtlHistFactorySystModelPair.cxx:175 AtlHistFactorySystModelPair.cxx:176 AtlHistFactorySystModelPair.cxx:177 AtlHistFactorySystModelPair.cxx:178 AtlHistFactorySystModelPair.cxx:179 AtlHistFactorySystModelPair.cxx:180 AtlHistFactorySystModelPair.cxx:181 AtlHistFactorySystModelPair.cxx:182 AtlHistFactorySystModelPair.cxx:183 AtlHistFactorySystModelPair.cxx:184 AtlHistFactorySystModelPair.cxx:185 AtlHistFactorySystModelPair.cxx:186 AtlHistFactorySystModelPair.cxx:187 AtlHistFactorySystModelPair.cxx:188 AtlHistFactorySystModelPair.cxx:189 AtlHistFactorySystModelPair.cxx:190 AtlHistFactorySystModelPair.cxx:191 AtlHistFactorySystModelPair.cxx:192 AtlHistFactorySystModelPair.cxx:193 AtlHistFactorySystModelPair.cxx:194 AtlHistFactorySystModelPair.cxx:195 AtlHistFactorySystModelPair.cxx:196 AtlHistFactorySystModelPair.cxx:197 AtlHistFactorySystModelPair.cxx:198 AtlHistFactorySystModelPair.cxx:199 AtlHistFactorySystModelPair.cxx:200 AtlHistFactorySystModelPair.cxx:201 AtlHistFactorySystModelPair.cxx:202 AtlHistFactorySystModelPair.cxx:203 AtlHistFactorySystModelPair.cxx:204 AtlHistFactorySystModelPair.cxx:205 AtlHistFactorySystModelPair.cxx:206 AtlHistFactorySystModelPair.cxx:207 AtlHistFactorySystModelPair.cxx:208 AtlHistFactorySystModelPair.cxx:209 AtlHistFactorySystModelPair.cxx:210 AtlHistFactorySystModelPair.cxx:211 AtlHistFactorySystModelPair.cxx:212 AtlHistFactorySystModelPair.cxx:213 AtlHistFactorySystModelPair.cxx:214 AtlHistFactorySystModelPair.cxx:215 AtlHistFactorySystModelPair.cxx:216 AtlHistFactorySystModelPair.cxx:217 AtlHistFactorySystModelPair.cxx:218 AtlHistFactorySystModelPair.cxx:219 AtlHistFactorySystModelPair.cxx:220 AtlHistFactorySystModelPair.cxx:221 AtlHistFactorySystModelPair.cxx:222 AtlHistFactorySystModelPair.cxx:223 AtlHistFactorySystModelPair.cxx:224 AtlHistFactorySystModelPair.cxx:225 AtlHistFactorySystModelPair.cxx:226 AtlHistFactorySystModelPair.cxx:227 AtlHistFactorySystModelPair.cxx:228 AtlHistFactorySystModelPair.cxx:229 AtlHistFactorySystModelPair.cxx:230 AtlHistFactorySystModelPair.cxx:231 AtlHistFactorySystModelPair.cxx:232 AtlHistFactorySystModelPair.cxx:233 AtlHistFactorySystModelPair.cxx:234 AtlHistFactorySystModelPair.cxx:235 AtlHistFactorySystModelPair.cxx:236 AtlHistFactorySystModelPair.cxx:237 AtlHistFactorySystModelPair.cxx:238 AtlHistFactorySystModelPair.cxx:239 AtlHistFactorySystModelPair.cxx:240 AtlHistFactorySystModelPair.cxx:241 AtlHistFactorySystModelPair.cxx:242 AtlHistFactorySystModelPair.cxx:243 AtlHistFactorySystModelPair.cxx:244 AtlHistFactorySystModelPair.cxx:245 AtlHistFactorySystModelPair.cxx:246 AtlHistFactorySystModelPair.cxx:247 AtlHistFactorySystModelPair.cxx:248 AtlHistFactorySystModelPair.cxx:249 AtlHistFactorySystModelPair.cxx:250 AtlHistFactorySystModelPair.cxx:251 AtlHistFactorySystModelPair.cxx:252 AtlHistFactorySystModelPair.cxx:253 AtlHistFactorySystModelPair.cxx:254 AtlHistFactorySystModelPair.cxx:255 AtlHistFactorySystModelPair.cxx:256 AtlHistFactorySystModelPair.cxx:257 AtlHistFactorySystModelPair.cxx:258 AtlHistFactorySystModelPair.cxx:259 AtlHistFactorySystModelPair.cxx:260 AtlHistFactorySystModelPair.cxx:261 AtlHistFactorySystModelPair.cxx:262 AtlHistFactorySystModelPair.cxx:263 AtlHistFactorySystModelPair.cxx:264 AtlHistFactorySystModelPair.cxx:265 AtlHistFactorySystModelPair.cxx:266 AtlHistFactorySystModelPair.cxx:267 AtlHistFactorySystModelPair.cxx:268 AtlHistFactorySystModelPair.cxx:269 AtlHistFactorySystModelPair.cxx:270 AtlHistFactorySystModelPair.cxx:271 AtlHistFactorySystModelPair.cxx:272 AtlHistFactorySystModelPair.cxx:273 AtlHistFactorySystModelPair.cxx:274 AtlHistFactorySystModelPair.cxx:275 AtlHistFactorySystModelPair.cxx:276 AtlHistFactorySystModelPair.cxx:277 AtlHistFactorySystModelPair.cxx:278 AtlHistFactorySystModelPair.cxx:279 AtlHistFactorySystModelPair.cxx:280 AtlHistFactorySystModelPair.cxx:281 AtlHistFactorySystModelPair.cxx:282 AtlHistFactorySystModelPair.cxx:283 AtlHistFactorySystModelPair.cxx:284 AtlHistFactorySystModelPair.cxx:285 AtlHistFactorySystModelPair.cxx:286 AtlHistFactorySystModelPair.cxx:287 AtlHistFactorySystModelPair.cxx:288 AtlHistFactorySystModelPair.cxx:289