Bool_t ThreePiParent::Process(Long64_t entry) { THSOutput::HSProcessStart(entry); //this selector has been configured to use a parent selector //get the branch with something like fParent.b_beam->GetEntry(entry) //then use the object like fParent.beam->P4().E(); // The Process() function is called for each entry in the tree (or possibly // keyed object in the case of PROOF) to be processed. The entry argument // specifies which entry in the currently loaded tree is to be processed. // It can be passed to either ThreePiParent::GetEntry() or TBranch::GetEntry() // to read either all or the required parts of the data. When processing // keyed objects with PROOF, the object is already loaded and is available // via the fObject pointer. // // This function should contain the "body" of the analysis. It can contain // simple or elaborate selection criteria, run algorithms on the data // of the event and typically fill histograms. // // The processing can be stopped by calling Abort(). // // Use fStatus to set the return value of TTree::Process(). // // The return value is currently not used. GetEntry(entry); //lazy and slow, you can speed the code up by getting the branches you need to use instead fParent.GetEntry(GetParentEntry(entry)); //lazy and slow, optimise your own analysis by only getting the branches you need //Ready to do some analysis here, before the Fill //Int_t kinBin=GetKinBin();//if fHisbins is defined need to give this meaningful arguments FillHistograms("NoCut",0); if(fParent.beam->P4().E()>3) FillHistograms("Eg_gt_3",0); THSOutput::HSProcessFill(); return kTRUE; }
//------------------------------------------------------------------------------ // FillLevelHistograms //------------------------------------------------------------------------------ void AnalysisControl::FillLevelHistograms(int icut, bool pass) { if (!pass) return; FillHistograms(_channel, icut, _jetbin); FillHistograms(_channel, icut, njetbin); }
void FillHistogramsAll() { FillHistograms("JetHT"); FillHistograms("TT"); /* FillHistograms("QCD_HT200to300"); FillHistograms("QCD_HT300to500"); FillHistograms("QCD_HT500to700"); FillHistograms("QCD_HT700to1000"); FillHistograms("QCD_HT1000to1500"); FillHistograms("QCD_HT1500to2000"); FillHistograms("QCD_HT2000toInf"); */ }
Bool_t sWeighter::Process(Long64_t entry) { THSOutput::HSProcessStart(entry); // The Process() function is called for each entry in the tree (or possibly // keyed object in the case of PROOF) to be processed. The entry argument // specifies which entry in the currently loaded tree is to be processed. // It can be passed to either sWeighter::GetEntry() or TBranch::GetEntry() // to read either all or the required parts of the data. When processing // keyed objects with PROOF, the object is already loaded and is available // via the fObject pointer. // // This function should contain the "body" of the analysis. It can contain // simple or elaborate selection criteria, run algorithms on the data // of the event and typically fill histograms. // // The processing can be stopped by calling Abort(). // // Use fStatus to set the return value of TTree::Process(). // // The return value is currently not used. GetEntry(entry); //lazy and slow, you can speed the code up by getting the branches you need to use instead //Ready to do some analysis here, before the Fill if(!GetsWeight()) return kTRUE; //check if this event is in the sPlot //Int_t kinBin=GetKinBin();//if fHisbins is defined need to give this meaningful arguments //FillHistograms("Cut1",kinBin); FillHistograms("Cut1",0); //EnterKinBinList(kinBin,entry);//save evente in kinematic bins entry lists THSOutput::HSProcessFill(); return kTRUE; }
void FillHistogramsAll() { TString FILENAME[12] = { "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_data_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_QCD-HT100_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_QCD-HT250_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_QCD-HT500_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_QCD-HT1000_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_ZJets_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_TTJets_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_T_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_Tbar_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_VBF-Powheg125_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_GluGlu-Powheg125_preselect_hard_tmva", "/afs/cern.ch/work/k/kkousour/private/data/vbfhbb/flatTree_GluGlu-Madgraph125_preselect_hard_tmva" }; bool ApplyTriggerSel[12] = {true,true,true,true,true,true,true,true,true,true,true,true}; bool isMC[12] = {false,true,true,true,true,true,true,true,true,true,true,true}; for(int i=0;i<12;i++) { FillHistograms(FILENAME[i],ApplyTriggerSel[i],isMC[i]); } }
//------------------------------------------------------------------------------ // MakeGenHistoScript //------------------------------------------------------------------------------ void MakeGenHistoScript(TString theSample) { TH1::SetDefaultSumw2(); TString path = Form("rootfiles/%s/", theSample.Data()); gSystem->mkdir(path, kTRUE); TFile* output = new TFile(path + theSample + ".root", "recreate"); // Histograms //---------------------------------------------------------------------------- for (UInt_t i=0; i<nLevels; i++) { h1genMet [i] = new TH1F("h1genMet" + sLevel[i], "", 50, 0, 120); h1pfType1Met [i] = new TH1F("h1pfType1Met" + sLevel[i], "", 50, 0, 120); h1pfRawMet [i] = new TH1F("h1pfRawMet" + sLevel[i], "", 50, 0, 120); h1puppiMet [i] = new TH1F("h1puppiMet" + sLevel[i], "", 50, 0, 120); h1trkMet [i] = new TH1F("h1trkMet" + sLevel[i], "", 50, 0, 120); h1ppfType1Met [i] = new TH1F("h1ppfType1Met" + sLevel[i], "", 50, 0, 120); h1pfType1Metdn [i] = new TH1F("h1pfType1Metdn" + sLevel[i], "", 50, 0, 120); h1pfType1Metup [i] = new TH1F("h1pfType1Metup" + sLevel[i], "", 50, 0, 120); h2pfType1MetResol [i] = new TH2F("h2pfType1MetResol" + sLevel[i], "", 50, 0, 120, -10, 20); h2pfRawMetResol [i] = new TH2F("h2pfRawMetResol" + sLevel[i], "", 50, 0, 120, -10, 20); h2puppiMetResol [i] = new TH2F("h2puppiMetResol" + sLevel[i], "", 50, 0, 120, -10, 20); h2trkMetResol [i] = new TH2F("h2trkMetResol" + sLevel[i], "", 50, 0, 120, -10, 20); h2ppfType1MetResol [i] = new TH2F("h2ppfType1MetResol" + sLevel[i], "", 50, 0, 120, -10, 20); } // Data-driven methods: Top //---------------------------------------------------------------------------- //TH1F* hTopTaggedEvents = new TH1F("hTopTaggedEvents", "", 3, 0, 3); //---------------------------------------------------------------------------- // Input files //---------------------------------------------------------------------------- TString filesPath = "/d3/scratch/khakim/RunII/LatinosTrees/"; //TString filesPath = "/d3/scratch/khakim/RunII/LatinosTrees/"; TChain* tree = new TChain("latino", "latino"); if(theSample == "ggWWto2L"){ //tree->Add(filesPath + "ggHww_PU20bx25_V2/latino_stepB_MC_ggHww_1.root"); //tree->Add(filesPath + "ggHww_PU20bx25_V2/latino_stepB_MC_ggHww_2.root"); //tree->Add(filesPath + "ggHww_PU20bx25_V2/latino_stepB_MC_ggHww_3.root"); //tree->Add(filesPath + "ggHww_PU20bx25_V2/latino_stepB_MC_ggHww_4.root"); tree->Add("/u/user/khakim/HWWwidth/RunII/CMSSW_7_4_4/src/LatinoTrees/AnalysisStep/test/latino_stepB_MC_numEvent10.root"); } else if(theSample == "WWTo2L2Nu"){ tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_1.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_10.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_11.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_12.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_14.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_15.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_17.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_18.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_19.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_20.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_7.root"); tree->Add(filesPath + "WW_PU20bx25_V2/latino_stepB_MC_WW_9.root"); } else if(theSample == "WWTo2L2Nu50ns"){ tree->Add("/u/user/salee/Latino/CMSSW_7_4_4/src/LatinoTrees/AnalysisStep/test/latino_stepB_latinosYieldSkim_MC_WWTo2L2Nu50ns_wPUPPI_numEvent200.root"); } else{ return; } // Declaration of leaf types //---------------------------------------------------------------------------- tree->SetBranchAddress("channel", &channel); tree->SetBranchAddress("ch1", &ch1); tree->SetBranchAddress("ch2", &ch2); tree->SetBranchAddress("njet", &njet); tree->SetBranchAddress("mll", &mll); tree->SetBranchAddress("pt1", &pt1); tree->SetBranchAddress("pt2", &pt2); tree->SetBranchAddress("metGenpt", &metGenpt); tree->SetBranchAddress("pfType1Met", &pfType1Met); tree->SetBranchAddress("pfType1Metdn", &pfType1Metdn); tree->SetBranchAddress("pfType1Metup", &pfType1Metup); tree->SetBranchAddress("pfRawMet", &pfRawMet); tree->SetBranchAddress("pupMet", &pupMet); tree->SetBranchAddress("trkMet", &trkMet); tree->SetBranchAddress("ppfMet", &ppfMet); tree->SetBranchAddress("neutrinoGenpid1", &neutrinoGenpid1); tree->SetBranchAddress("neutrinoGenpid2", &neutrinoGenpid2); tree->SetBranchAddress("neutrinoGenpid3", &neutrinoGenpid3); tree->SetBranchAddress("event", &event); tree->SetBranchAddress("v_jet1", &v_jet1); // jet1 4-vector tree->SetBranchAddress("std_vector_leptonGen_pid", &std_vector_leptonGen_pid); tree->SetBranchAddress("std_vector_leptonGen_status", &std_vector_leptonGen_status); tree->SetBranchAddress("std_vector_leptonGen_pt", &std_vector_leptonGen_pt); tree->SetBranchAddress("std_vector_leptonGen_mpid", &std_vector_leptonGen_mpid); tree->SetBranchAddress("std_vector_leptonGen_mstatus",&std_vector_leptonGen_mstatus); //---------------------------------------------------------------------------- // Loop //---------------------------------------------------------------------------- //for (int ievent=0; ievent<tree->GetEntries(); ievent++) for (int ievent=0; ievent<3; ievent++) { tree->GetEntry(ievent); printf("Jet1(vector), pt=%.1f\n",v_jet1->Pt()); printf("=============== Event %d ===============\n",event); printf("Index\tPID\tStatus\t\tmPID\tmStatus\tpT\n"); printf("==========================================\n"); for (UInt_t igen=0; igen<std_vector_leptonGen_pt->size(); igen++){ printf("%d\t%.f\t%.f\t\t%.f\t%.f\t%.3f\n", igen, (*std_vector_leptonGen_pid)[igen],(*std_vector_leptonGen_status)[igen], (*std_vector_leptonGen_mpid)[igen],(*std_vector_leptonGen_mstatus)[igen], (*std_vector_leptonGen_pt)[igen]); } evtWeight = 1.0; if (theSample.Contains("ggWWto2L")) { evtWeight = 1.0; } else if (theSample.Contains("WWTo2L2Nu")) { evtWeight = 1.0; } // Help variables //-------------------------------------------------------------------------- Int_t fidCut = ((ch1*ch2 ==-1.) && (mll>12.) && (pt1>20 && pt2>10)); Float_t jetbin = njet; if(njet >= 2) jetbin = 2; if(!fidCut) continue; // Set the channel (decay, jet and channel) Int_t tauDecay = 0; for (UInt_t igen=0; igen<std_vector_leptonGen_mpid->size(); igen++){ //printf("GenLvlInfo:\t%d\t%.f\t%.f\n", igen,(*std_vector_leptonGen_pid)[igen],(*std_vector_leptonGen_status)[igen]); if(fabs((*std_vector_leptonGen_mpid)[igen]) == 15) tauDecay = 1; } //printf("Mother Info:\t%d\t%d\n", ievent,tauDecay); Int_t tauDecay_0jet = (tauDecay && jetbin == 0); Int_t tauDecay_1jet = (tauDecay && jetbin == 1); Int_t tauDecay_2jet = (tauDecay && jetbin == 2); Int_t emuDecay_0jet = (!tauDecay && jetbin == 0); Int_t emuDecay_1jet = (!tauDecay && jetbin == 1); Int_t emuDecay_2jet = (!tauDecay && jetbin == 2); Int_t emuDecay_SF = (!tauDecay && (channel == 0 || channel == 1)); Int_t emuDecay_0jet_SF = (!tauDecay && jetbin == 0 && (channel == 0 || channel == 1)); Int_t emuDecay_1jet_SF = (!tauDecay && jetbin == 1 && (channel == 0 || channel == 1)); Int_t emuDecay_2jet_SF = (!tauDecay && jetbin == 2 && (channel == 0 || channel == 1)); Int_t emuDecay_OF = (!tauDecay && (channel == 2 || channel == 3)); Int_t emuDecay_0jet_OF = (!tauDecay && jetbin == 0 && (channel == 2 || channel == 3)); Int_t emuDecay_1jet_OF = (!tauDecay && jetbin == 1 && (channel == 2 || channel == 3)); Int_t emuDecay_2jet_OF = (!tauDecay && jetbin == 2 && (channel == 2 || channel == 3)); //-------------------------------------------------------------------------- //printf("\n%d\t\t%.0f\t%.0f\t%.0f\t%f\t%d\n", ievent,pt1,pt2,mll,channel,fidCut); for (UInt_t ilevel=0; ilevel<nLevels; ilevel++){ if(ilevel == Level_InclJet) FillHistograms(Level_InclJet, jetbin); if(ilevel == Level_InclJet_emu && !tauDecay) FillHistograms(Level_InclJet_emu, jetbin); if(ilevel == Level_InclJet_emu_SF && emuDecay_SF) FillHistograms(Level_InclJet_emu_SF, jetbin); if(ilevel == Level_InclJet_emu_OF && emuDecay_OF) FillHistograms(Level_InclJet_emu_OF, jetbin); if(ilevel == Level_InclJet_tau && tauDecay) FillHistograms(Level_InclJet_tau, jetbin); if(ilevel == Level_0Jet && jetbin == 0) FillHistograms(Level_0Jet, jetbin); if(ilevel == Level_0Jet_emu && emuDecay_0jet) FillHistograms(Level_0Jet_emu, jetbin); if(ilevel == Level_0Jet_emu_SF && emuDecay_0jet_SF) FillHistograms(Level_0Jet_emu_SF, jetbin); if(ilevel == Level_0Jet_emu_OF && emuDecay_0jet_OF) FillHistograms(Level_0Jet_emu_OF, jetbin); if(ilevel == Level_0Jet_tau && tauDecay_0jet) FillHistograms(Level_0Jet_tau, jetbin); if(ilevel == Level_1Jet && jetbin == 1) FillHistograms(Level_1Jet, jetbin); if(ilevel == Level_1Jet_emu && emuDecay_1jet) FillHistograms(Level_1Jet_emu, jetbin); if(ilevel == Level_1Jet_emu_SF && emuDecay_1jet_SF) FillHistograms(Level_1Jet_emu_SF, jetbin); if(ilevel == Level_1Jet_emu_OF && emuDecay_1jet_OF) FillHistograms(Level_1Jet_emu_OF, jetbin); if(ilevel == Level_1Jet_tau && tauDecay_1jet) FillHistograms(Level_1Jet_tau, jetbin); if(ilevel == Level_2Jet && jetbin == 2) FillHistograms(Level_2Jet, jetbin); if(ilevel == Level_2Jet_emu && emuDecay_2jet) FillHistograms(Level_2Jet_emu, jetbin); if(ilevel == Level_2Jet_emu_SF && emuDecay_2jet_SF) FillHistograms(Level_2Jet_emu_SF, jetbin); if(ilevel == Level_2Jet_emu_OF && emuDecay_2jet_OF) FillHistograms(Level_2Jet_emu_OF, jetbin); if(ilevel == Level_2Jet_tau && tauDecay_2jet) FillHistograms(Level_2Jet_tau, jetbin); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } // Save the histograms //---------------------------------------------------------------------------- output->cd(); output->Write("", TObject::kOverwrite); output->Close(); }
//---------------------------------------------------------------------- void AliITSDigitPlot(Int_t istart=0,Int_t iend=-1, const char *filename="galice.root"){ // Macro to plot digits from many events // Inputs: // Int_t istart Starting event number // Int_t iend Last event number, =-1 all // Outputs: // none. // Return: // none. if (gClassTable->GetID("AliRun") < 0) { gROOT->ProcessLine(".x $(ALICE_ROOT)/macros/loadlibs.C"); } if(gAlice){ delete AliRunLoader::Instance(); delete gAlice; gAlice=0; } // end if gAlice Int_t nevents=0,nmodules=0,retval=0; Int_t i,j,module,dig,ndig,row,column,signal,det; AliITS *its = 0; AliITSgeom *gm = 0; AliRunLoader *rl = 0; AliITSLoader *ld = 0; TTree *treeD = 0; TBranch *br = 0; TClonesArray *digits = 0; AliITSdigit *d = 0; TObjArray *digDet = 0; Char_t *branchname[3] = {"ITSDigitsSPD","ITSDigitsSDD","ITSDigitsSSD"}; // rl = AliRunLoader::Open(filename); if(!rl){ cerr<<"Error, can not open file "<<filename<<endl; return; } // end if !rl retval = rl->LoadgAlice(); if (retval){ cerr<<"Error, LoadgAlice returned error"<<endl; return; } gAlice = rl->GetAliRun(); retval = rl->LoadHeader(); if (retval){ cerr<<"Error, LoadHeader returned error"<<endl; return; } // end if ld = (AliITSLoader*) rl->GetLoader("ITSLoader"); if(!ld){ cerr<<"Error, ITS loader not found"<<endl; return; } // end if its = (AliITS*) gAlice->GetModule("ITS"); if(!its){ cerr <<"Error, No AliDetector ITS found on file"<<endl; return; } // end if gm = its->GetITSgeom(); if(!gm){ cerr <<"Error, AliITSgeom not initilized in module ITS"<<endl; return; } // end if nevents = rl->GetNumberOfEvents(); if(iend>nevents) iend = nevents; if(iend<0) iend = nevents; if(iend<=istart){delete rl; return;} nmodules = gm->GetIndexMax(); ld->GetDigitsDataLoader()->Load("read"); treeD = ld->TreeD(); if(!treeD){ cerr <<"Error, could not get TreeD="<<treeD << endl; return; } // end if !treeD digDet = new TObjArray(3); its->SetDefaults(); for(det=0;det<3;det++){ digDet->AddAt(new TClonesArray(its->GetDetTypeSim()-> GetDigitClassName(det),1000),det); br = treeD->GetBranch(branchname[det]); br->SetAddress(&((*digDet)[det])); } // end for det // SetUPHistograms(); // for(i=istart;i<iend;i++){ rl->GetEvent(i); treeD = ld->TreeD(); for(det=0;det<3;det++){ ((TClonesArray*)(digDet->At(det)))->Clear(); br = treeD->GetBranch(branchname[det]); br->SetAddress(&((*digDet)[det])); } // end for det for(module=0;module<nmodules;module++){ for(j=0;j<3;j++) ((TClonesArray*)(digDet->At(j)))->Clear(); treeD->GetEvent(module); digits = (TClonesArray*) (digDet->At(0)); // SPD only. ndig = digits->GetEntriesFast(); for(dig=0;dig<ndig;dig++){ d = (AliITSdigit*) digits->At(dig); row = d->GetCoord1(); column = d->GetCoord1(); signal = d->GetSignal(); //cout <<"event="<<i<< " ndig="<< ndig<< " mod=" //<<module<<" row="<<row<<" col="<<column<< " sig=" //<<signal<<endl; FillHistograms(module,row,column,signal); } // end for mod } // end for module } // end for i DisplayHistograms(); delete digits; return; }
void FillHistogramsAll() { FillHistograms("TT_TuneCUETP8M1_13TeV-powheg-pythia8",true,true,true); FillHistograms("QCD_HT300to500_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",true,false,false); FillHistograms("QCD_HT500to700_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",true,false,false); FillHistograms("QCD_HT700to1000_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",true,false,false); FillHistograms("QCD_HT1000to1500_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",true,false,false); FillHistograms("QCD_HT1500to2000_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",true,false,false); FillHistograms("QCD_HT2000toInf_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",true,false,false); FillHistograms("JetHT",false,false,false); FillHistograms("DYJetsToQQ_HT180_13TeV-madgraphMLM-pythia8",true,false,false); FillHistograms("WJetsToQQ_HT180_13TeV-madgraphMLM-pythia8",true,false,false); FillHistograms("ST_t-channel_top_4f_inclusiveDecays_13TeV-powhegV2-madspin-pythia8_TuneCUETP8M1",true,false,false); FillHistograms("ST_t-channel_antitop_4f_inclusiveDecays_13TeV-powhegV2-madspin-pythia8_TuneCUETP8M1",true,false,false); FillHistograms("ST_tW_antitop_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M1",true,false,false); FillHistograms("ST_tW_top_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M1",true,false,false); /* FillHistograms("TTJets_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8",true,false); FillHistograms("TTJets_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1_13TeV-powheg-scaledown-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1_13TeV-powheg-scaleup-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1_mtop1665_13TeV-powheg-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1_mtop1695_13TeV-powheg-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1_mtop1715_13TeV-powheg-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1_mtop1735_13TeV-powheg-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1_mtop1755_13TeV-powheg-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1_mtop1785_13TeV-powheg-pythia8",true,false); FillHistograms("TT_TuneCUETP8M1mpiOFF_13TeV-powheg-pythia8",true,false); FillHistograms("TT_TuneEE5C_13TeV-powheg-herwigpp",true,false); //FillHistograms("QCD_HT200to300_TuneCUETP8M1_13TeV-madgraphMLM-pythia8",true,false); */ }