TH1F* get_pid_count_hist(const TString filename, const TString histname, const int counter) { // counter 5, look at the numbers at the beam pipe // const int counter = 5; // TString filename = "../../output/final_900M/final_st_Copper_0.5mm_deg_Air_5mm.root"; TH1F* hist = make_hist(histname); TFile* file = new TFile(filename, "READ"); TTree* tree = (TTree*) file->Get("t"); in_branch branch; set_addresses(tree, branch); const int n_entries = tree->GetEntries(); // const int n_entries = 100; for (int entry = 0; entry < n_entries; ++entry) { // Loop over all the entries tree->GetEntry(entry); for (int hit = 0; hit < branch.n_hits; ++hit) { // Loop over the hits and fill the histograms // Skip anything that's not at the correct counter or the first step if ( branch.counter[hit] != counter) continue; if (!branch.first_step) continue; // don't double count // Translate the PDG id into a bin number (needs cast) const int bin_num = get_bin_number((pdg_id) branch.pdgid[hit]); // get_bin_number returns -1 if not a charged particle if (bin_num == BIN_ERROR) continue; hist->Fill(bin_num); } } file->Close(); return hist; }
node hist_eq(node tree) { int hr[256] = {0,}; int hb[256] = {0,}; int hg[256] = {0,}; int cr[256] = {0,}; int cb[256] = {0,}; int cg[256] = {0,}; int i; make_hist(tree,hr,hg,hb); // smooth histogram (optional) { hr[0] = (hr[0]+hr[1])/2; hr[255] = (hr[254]+hr[255])/2; for(i=1;i<255;++i) hr[i] = (hr[i-1]+hr[i]+hr[i+1])/3; hg[0] = (hg[0]+hg[1])/2; hg[255] = (hg[254]+hg[255])/2; for(i=1;i<255;++i) hg[i] = (hg[i-1]+hg[i]+hg[i+1])/3; hb[0] = (hb[0]+hb[1])/2; hb[255] = (hb[254]+hb[255])/2; for(i=1;i<255;++i) hb[i] = (hb[i-1]+hb[i]+hb[i+1])/3; } cr[0] = hr[0]; cg[0] = hg[0]; cb[0] = hb[0]; for(i=1;i<256;++i) { cr[i] += cr[i-1]+hr[i]; cg[i] += cg[i-1]+hg[i]; cb[i] += cb[i-1]+hb[i]; } for(i=0;i<256;++i) { cr[i] *= 256; cr[i] /= tree.w*tree.h; cg[i] *= 256; cg[i] /= (tree.w*tree.h); cb[i] *= 256; cb[i] /= (tree.w*tree.h); if(cr[i]<0) cr[i] = 0; if(cr[i]>255) cr[i] = 255; if(cg[i]<0) cg[i] = 0; if(cg[i]>255) cg[i] = 255; if(cb[i]<0) cb[i] = 0; if(cb[i]>255) cb[i] = 255; } tree = rgb_relation(tree,cr,cg,cb); return tree; }
void make_hist(node tree, int hr[256], int hg[256], int hb[256]) { switch(tree.stat) { case NO_NODE: hr[tree.u.color.r] += tree.w*tree.h; hg[tree.u.color.g] += tree.w*tree.h; hb[tree.u.color.b] += tree.w*tree.h; break; case ALL_NODE: for(int i=0;i<4;++i) make_hist(tree.u.child[i],hr,hg,hb); break; case LR_NODE: case UD_NODE: for(int i=0;i<2;++i) make_hist(tree.u.child[i],hr,hg,hb); break; default: puts("Error caught in make_hist."); } }
TH1F* get_in_pid_hist(const TString filename, const TString histname) { // Get numbers for each particle from G4BL (i.e. using in_PDGid) TH1F* hist = make_hist(histname); TFile* file = new TFile(filename, "READ"); TTree* tree = (TTree*) file->Get("t"); for(int bin = 1; bin <= 7; ++bin) { TString search = TString("in_PDGid=="); search += ((int)get_pdg_id((particle_bin)bin)); hist->SetBinContent(bin, tree->GetEntries(search)); } file->Close(); return hist; }
int main(void){ int counts[31]; for(int i = 0; i < 31; i++){ counts[i] = 0; } int len; int month; int day; int year; char filename[STR_LEN]; char analysis[5]; LIST *data = list_create(); printf("Please enter file name containing data to analyze: \n"); scanf("%s", filename); FILE *data_file = fopen(filename, "r"); if(data_file == NULL){ fprintf(stderr, "There was an error opening the file. Make sure it exists.\n"); exit(0); } printf("How would you like the data to be analyzed?\n Enter \"day\" to analyze the rides per hour in a given day.\n Enter \"month\" to analyze the rides per day in a given month.\n Enter \"year\" to analyze the rides per month in a given year.\n"); scanf("%s", analysis); if(!(strcmp(analysis, "month")==0)){ if(!(strcmp(analysis, "day")==0)){ if(!(strcmp(analysis, "year")==0)){ fprintf(stderr, "Invalid Entry\n"); exit(0); } } } if(!strcmp(analysis, "day")){ len = 24; printf("Please enter the month (i.e. 02 for February), day (i.e. 15), and year (i.e. 2013) below\n"); printf("Please enter the month:\n"); scanf("%i", &month); if(month < 0 || month > 12){ fprintf(stderr, "Invalid Entry\n"); exit(0); } printf("Please enter the day:\n"); scanf("%i", &day); if(day < 0 || day > 31){ fprintf(stderr, "Invalid Entry\n"); exit(0); } printf("Please enter the year:\n"); scanf("%i", &year); if(year < 0 || year > 2099){ fprintf(stderr, "Invalid Entry\n"); exit(0); } read_by_day(data_file, data, month, day, year); count_nodes(data, counts, len); make_hist(counts, len, month, day, year); } if(!strcmp(analysis, "month")){ printf("Please enter the month (i.e. 02 for February), day (i.e. 15), and year (i.e. 2013) below\n"); printf("Please enter the month:\n"); scanf("%i", &month); if(month < 0 || month > 12){ fprintf(stderr, "Invalid Entry\n"); exit(0); } printf("Please enter the year:\n"); scanf("%i", &year); if(year < 0 || year > 2099){ fprintf(stderr, "Invalid Entry\n"); exit(0); } //setting value for months with 31 days if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ len = 31; } //setting value for months with 30 days else if (month == 4 || month == 6 || month == 9 || month == 11){ len = 30; } //setting value for February in a leap year else if (month == 2 && year%4 == 0){ len = 29; } //setting value for non-leap year February else{ len = 28; } read_by_month(data_file, data, month, year); count_nodes(data, counts, len); make_hist(counts, len, month, day, year); } if(!strcmp(analysis, "year")){ len = 12; printf("Please enter the year:\n"); scanf("%i", &year); if(year < 0 || year > 2099){ fprintf(stderr, "Invalid Entry\n"); exit(0); } read_by_year(data_file, data, year); count_nodes(data, counts, len); make_hist(counts, len, month, day, year); } list_free(data); return 0; }
int main(int argc, char **argv) { int modes = 0; int collective = GETENVINT("COW_HDF5_COLLECTIVE", 0); int chunk = GETENVINT("COW_HDF5_CHUNK", 1); modes |= GETENVINT("COW_NOREOPEN_STDOUT", 0) ? COW_NOREOPEN_STDOUT : 0; modes |= GETENVINT("COW_DISABLE_MPI", 0) ? COW_DISABLE_MPI : 0; cow_init(argc, argv, modes); if (argc == 3) { printf("running on input file %s\n", argv[1]); } else { printf("usage: $> mhdstats infile.h5 outfile.h5\n"); cow_finalize(); return 0; } printf("COW_HDF5_COLLECTIVE: %d\n", collective); char *finp = argv[1]; char *fout = argv[2]; int derivfields = 0; int energies = 1; cow_domain *domain = cow_domain_new(); cow_domain_readsize(domain, finp, "prim/vx"); cow_domain_setguard(domain, 2); cow_domain_commit(domain); cow_domain_setchunk(domain, chunk); cow_domain_setcollective(domain, collective); cow_domain_setalign(domain, 4*KILOBYTES, 4*MEGABYTES); cow_dfield *vel = cow_dfield_new2(domain, "prim"); cow_dfield *mag = cow_dfield_new2(domain, "prim"); cow_dfield *rho = cow_dfield_new2(domain, "prim"); cow_dfield *pre = cow_dfield_new2(domain, "prim"); cow_dfield_addmember(vel, "vx"); cow_dfield_addmember(vel, "vy"); cow_dfield_addmember(vel, "vz"); cow_dfield_addmember(mag, "Bx"); cow_dfield_addmember(mag, "By"); cow_dfield_addmember(mag, "Bz"); cow_dfield_addmember(rho, "rho"); cow_dfield_addmember(pre, "pre"); // really the internal energy here cow_dfield_commit(vel); cow_dfield_commit(mag); cow_dfield_commit(rho); cow_dfield_commit(pre); cow_dfield_read(vel, finp); cow_dfield_read(mag, finp); cow_dfield_read(rho, finp); cow_dfield_read(pre, finp); if (derivfields) { cow_dfield *divB = cow_scalarfield(domain, "divB"); cow_dfield *divV = cow_scalarfield(domain, "divV"); cow_dfield *curlB = cow_vectorfield(domain, "curlB"); cow_dfield *curlV = cow_vectorfield(domain, "curlV"); cow_dfield *vcrossB = cow_vectorfield(domain, "vcrossB"); cow_dfield *curlBdotvcrossB = cow_scalarfield(domain, "curlBdotvcrossB"); cow_dfield *curlBdotB = cow_scalarfield(domain, "curlBdotB"); cow_dfield *vcrossBcrossB = cow_vectorfield(domain, "vcrossBcrossB"); cow_dfield *divvcrossBcrossB = cow_scalarfield(domain, "divvcrossBcrossB"); cow_dfield_transform(divB, &mag, 1, divcorner, NULL); cow_dfield_transform(divV, &vel, 1, div5, NULL); cow_dfield_transform(curlB, &mag, 1, curl, NULL); cow_dfield_transform(curlV, &vel, 1, curl, NULL); struct cow_dfield *vcrossBargs[2] = { vel, mag }; struct cow_dfield *vcrossBcrossBargs[2] = { vel, vcrossB }; struct cow_dfield *curlBdotBargs[2] = { curlB, mag }; struct cow_dfield *curlBdotvcrossBargs[2] = { curlB, vcrossB }; cow_dfield_transform(vcrossB, vcrossBargs, 2, crossprod, NULL); cow_dfield_transform(vcrossBcrossB, vcrossBcrossBargs, 2, crossprod, NULL); cow_dfield_transform(curlBdotvcrossB, curlBdotvcrossBargs, 2, dotprod, NULL); cow_dfield_transform(curlBdotB, curlBdotBargs, 2, dotprod, NULL); cow_dfield_transform(divvcrossBcrossB, &vcrossBcrossB, 1, div5, NULL); make_hist(divB, take_elem0, fout, NULL); make_hist(divV, take_elem0, fout, NULL); make_hist(mag, take_sqr3, fout, "B2"); make_hist(curlB, take_mag3, fout, NULL); make_hist(curlV, take_mag3, fout, NULL); make_hist(curlBdotvcrossB, take_elem0, fout, NULL); make_hist(curlBdotB, take_elem0, fout, NULL); make_hist(divvcrossBcrossB, take_elem0, fout, NULL); cow_dfield_del(divB); cow_dfield_del(divV); cow_dfield_del(curlB); cow_dfield_del(curlV); cow_dfield_del(vcrossB); cow_dfield_del(curlBdotvcrossB); cow_dfield_del(curlBdotB); cow_dfield_del(vcrossBcrossB); cow_dfield_del(divvcrossBcrossB); } if (energies) { cow_dfield *kinE = cow_scalarfield(domain, "kinE"); cow_dfield *magE = cow_scalarfield(domain, "magE"); cow_dfield *intE = cow_scalarfield(domain, "intE"); struct cow_dfield *kinEargs[2] = { rho, vel }; cow_dfield_transform(kinE, kinEargs, 2, kinEtrans, NULL); cow_dfield_transform(magE, &mag, 1, magEtrans, NULL); cow_dfield_transform(intE, &pre, 1, take_elem0, NULL); make_hist(kinE, take_elem0, fout, NULL); make_hist(magE, take_elem0, fout, NULL); make_hist(intE, take_elem0, fout, NULL); cow_dfield_del(kinE); cow_dfield_del(magE); cow_dfield_del(intE); } cow_dfield_del(rho); cow_dfield_del(pre); cow_dfield_del(vel); cow_dfield_del(mag); cow_domain_del(domain); cow_finalize(); return 0; }
Histogrammer::Histogrammer(std::string titleIn){ title = titleIn; // 2d histograms make_hist2d("photon1_Sigma_ChIso","photon1 SigmaIetaIeta vs ChIso",160,0,0.04,300,-10,20); make_hist2d("photon1_Sigma_ChSCRIso","photon1 SigmaIetaIeta vs ChSCRIso",160,0,0.04,300,-10,20); make_hist2d("photon1_Sigma_PhoIso","photon1 SigmaIetaIeta vs PhoIso",160,0,0.04,300,-10,20); make_hist2d("photon1_Sigma_PhoSCRIso","photon1 SigmaIetaIeta vs PhoSCRIso",160,0,0.04,300,-10,20); make_hist2d("photon1_25_35_Sigma_ChSCRIso","photon1 Et 25 to 35 SigmaIetaIeta vs ChSCRIso",160,0,0.04,300,-10,20); make_hist2d("photon1_35_45_Sigma_ChSCRIso","photon1 Et 35 to 45 SigmaIetaIeta vs ChSCRIso",160,0,0.04,300,-10,20); make_hist2d("photon1_45_60_Sigma_ChSCRIso","photon1 Et 45 to 60 SigmaIetaIeta vs ChSCRIso",160,0,0.04,300,-10,20); make_hist2d("photon1_60_up_Sigma_ChSCRIso","photon1 Et 60 up SigmaIetaIeta vs ChSCRIso",160,0,0.04,300,-10,20); make_hist2d("MTW_M3","W trans mass v.s. M3",60,0,300,60,0,600); make_hist2d("photon1_Sigma_Et","photon1 SigmaIetaIeta vs Et",160,0,0.04,40,0,200); // creating histograms // muons make_hist("mu1Pt","muon 1 Pt",30,0,300,"Muon p_{T} (GeV)","Events / 10 GeV"); make_hist("mu1Eta","muon 1 Eta",26,-2.6,2.6,"Muon #eta","Events / 0.2"); make_hist("mu1RelIso","muon 1 relative isolation",120,0,1.2,"Muon RelIso","Events / 0.01"); // electrons make_hist("ele1Pt","electron 1 Pt",30,0,300,"Electron p_{T} (GeV)","Events / 10 GeV"); make_hist("ele1Eta","electron 1 Eta",26,-2.6,2.6,"Electron #eta","Events / 0.2"); make_hist("ele1RelIso","electron 1 relative isolation",120,0,1.2,"Electron RelIso","Events / 0.01"); //make_hist("ele1RelIso","electron 1 relative isolation",12,0,0.12,"Electron RelIso","Events / 0.01"); make_hist("ele1MVA","electron 1 MVA",220,-1.1,1.1,"Electron MVA Trig","Events / 0.01"); //make_hist("ele1MVA","electron 1 MVA",80,0.5,1.3,"Electron MVA Trig","Events / 0.01"); make_hist("ele1D0","electron 1 Dxy_PV",80,-0.2,0.2,"Electron Dxy_PV (cm)","Events / 0.005 cm"); make_hist("ele1Dz","electron 1 Dz",75,-0.15,0.15,"Electron D_{Z} (cm)","Events / 0.004 cm"); make_hist("ele1EoverP","electron 1 EoverP",25,0,5,"Electron E/P","Events / 0.2"); make_hist("ele1sigmaIetaIeta","electron 1 sigmaIetaIeta",80,0,0.04,"Electron #sigma_{i#etai#eta}","Events / 0.0005"); make_hist("ele1MissHits","electron 1 missing hits",10,-0.5,9.5,"Electron missing hits","Events"); make_hist("ele1DrJet","dR electron 1 to closest jet",60,0,6,"Electron #DeltaR(e,jet)","Events / 0.1"); make_hist("ele1MotherID","electron 1 mother PDG ID",35,-0.5,34.5,"Electron mother PID","Events"); make_hist("ele1GMotherID","electron 1 Gmother PDG ID",35,-0.5,34.5,"Electron Gmother PID","Events"); make_hist("ele2Pt","electron 2 Pt",30,0,300,"p_{T} (GeV)","Events / 10 GeV"); make_hist("ele2RelIso","electron 2 relative isolation",10,0,0.5,"RelIso","Events / 0.05"); // photons make_hist("photon1Et","photon 1 Et",20,0,200,"Photon E_{T} (GeV)","Events / 10 GeV"); make_hist("photon1Eta","photon 1 Eta",26,-2.6,2.6,"Photon #eta","Events / 0.2"); make_hist("photon1IsConv","photon 1 IsConv",2,-0.5,1.5,"",""); make_hist("photon1HoverE","photon 1 HoverE",100,0,0.1,"Photon H/E","Events / 0.001"); make_hist("photon1SigmaIEtaIEta","photon 1 sigmaIetaIeta",80,0,0.04,"Photon #sigma_{i#etai#eta}","Events / 0.0005"); make_hist("photon1ChHadIso","photon 1 Charged Had Isolation",60,-2.0,10,"Photon ChHadIso","Events / 0.2 GeV"); make_hist("photon1ChHadSCRIso","photon 1 Charged Had SCR Isolation",60,-2.0,10,"Photon ChHadSCRIso","Events / 0.2 GeV"); make_hist("photon1ChHadRandIso","photon 1 Charged Had Rand Isolation",110,-2.0,20,"Photon ChHadRandIso","Events / 0.2 GeV"); make_hist("photon1_25_35_ChHadRandIso","photon 1 Et 25 to 35 Charged Had Rand Isolation",110,-2.0,20,"Photon ChHadRandIso","Events / 0.2 GeV"); make_hist("photon1_35_45_ChHadRandIso","photon 1 Et 35 to 45 Charged Had Rand Isolation",110,-2.0,20,"Photon ChHadRandIso","Events / 0.2 GeV"); make_hist("photon1_45_60_ChHadRandIso","photon 1 Et 45 to 60 Charged Had Rand Isolation",110,-2.0,20,"Photon ChHadRandIso","Events / 0.2 GeV"); make_hist("photon1_60_up_ChHadRandIso","photon 1 Et 60 up Charged Had Rand Isolation",110,-2.0,20,"Photon ChHadRandIso","Events / 0.2 GeV"); make_hist("photon1NeuHadIso","photon 1 Neutral Had Isolation",75,-5,10,"Photon NeuHadIso","Events / 0.2 GeV"); make_hist("photon1PhoIso","photon 1 Photon Isolation",75,-5,10,"Photon PhoIso","Events / 0.2 GeV"); make_hist("photon1PhoSCRIso","photon 1 Photon SCR Isolation",75,-5,10,"Photon PhoSCRIso","Events / 0.2 GeV"); make_hist("photon1PhoRandIso","photon 1 Photon Rand Isolation",125,-5,20,"Photon PhoRandIso","Events / 0.2 GeV"); make_hist("photon1DrElectron","dR photon 1 to closest electron",60,0,6,"#DeltaR(#gamma,e)","Events / 0.1"); make_hist("photon1DrJet","dR photon 1 to closest jet",60,0,6,"#DeltaR(#gamma,jet)","Events / 0.1"); make_hist("photon1MotherID","photon 1 mother PDG ID",35,-0.5,34.5,"Photon mother PID","Events"); make_hist("photon1GMotherID","photon 1 Gmother PDG ID",35,-0.5,34.5,"Photon Gmother PID","Events"); make_hist("photon1DrMCbquark","dR photon 1 to gen level b",40,0,2,"#DeltaR(#gamma,b_{MC})","Events / 0.05"); make_hist("GenPhotonEt","Et of matched Gen Photon",20,0,200,"Gen Photon E_{T} (GeV)","Events / 10 GeV"); make_hist("nPhotons","number of photons",15,-0.5,14.5,"N_{#gamma}","Events"); // jets make_hist("jet1Pt","jet 1 pt",50,0,500,"p_{T} (GeV)","Events / 10 GeV"); make_hist("jet1Eta","jet 1 Eta",26,-2.6,2.6,"#eta","Events / 0.2"); make_hist("jet2Pt","jet 2 pt",30,0,300,"p_{T} (GeV)","Events / 10 GeV"); make_hist("jet2Eta","jet 2 Eta",26,-2.6,2.6,"#eta","Events / 0.2"); make_hist("jet3Pt","jet 3 pt",30,0,300,"p_{T} (GeV)","Events / 10 GeV"); make_hist("jet3Eta","jet 3 Eta",26,-2.6,2.6,"#eta","Events / 0.2"); make_hist("jet4Pt","jet 4 pt",15,0,150,"p_{T} (GeV)","Events / 10 GeV"); make_hist("jet4Eta","jet 4 Eta",26,-2.6,2.6,"#eta","Events / 0.2"); // event make_hist("looseEleDrGenPho","dR loose electron to Gen Photon",60,0,6,"#DeltaR(e_{loose},#gamma_{MC})","Events / 0.1"); make_hist("WtransMass","W transverse mass",20,0,200,"M(W_{T})(GeV)","Events / 10 GeV"); make_hist("ele1pho1Mass","electron + photon mass",20,0,200,"M(e,#gamma)(GeV)","Events / 10 GeV"); make_hist("ele1ele2Mass","Di-electron mass",40,0,200,"M(e,e)(GeV)","Events / 5 GeV"); make_hist("Ht","Ht",30,0,1500,"H_{T} (GeV)","Events / 50 GeV"); make_hist("MET","Missing Transverse Momentum",30,0,300,"MET (GeV)","Events / 10 GeV"); make_hist("nVtx","Number of Primary Vertices",50,0.5,50.5,"N_{PV}","Events"); make_hist("nJets","number of jets",15,-0.5,14.5,"N_{jets}","Events"); make_hist("PUweight","Event weight",30,0,3,"EventWeight","Events / 10"); make_hist("M3first","Mass of 3 highest Pt jets",100,0,1000,"highest pt M3 (Gev)","Events / 10 GeV"); make_hist("minM3","Minimal Mass of 3 jets",60,0,600,"min M3 (Gev)","Events / 10 GeV"); make_hist("M3minPt","Mass of 3 jets with smallest total Pt",60,0,600,"M3 min Pt (Gev)","Events / 10 GeV"); make_hist("M3","Mass of 3 jets with highest total Pt",60,0,1000,"M3 (Gev)","Events / 10 GeV"); make_hist("M3pho","Mass of 3 jets + photon with highest total Pt",40,0,400,"M(3jets+#gamma) (Gev)","Events / 10 GeV"); make_hist("M3phoMulti","Mass of all combinations 3 jets + photon",40,0,400,"M(all 3jets+#gamma) (Gev)","Events / 10 GeV"); make_hist("ele1D0","electron 1 Dxy_PV",80,-0.2,0.2,"Electron Dxy_PV (cm)","Events / 0.005 cm"); make_hist("dRpho3j","dR photon to 3 jets",65,0.0,6.5,"#DeltaR(#gamma,3jets)","Events / 0.1"); make_hist("M3_0_30","Mass of 3 jets with highest total Pt",100,0,1000,"M3 (Gev)","Events / 10 GeV"); make_hist("M3_30_100","Mass of 3 jets with highest total Pt",100,0,1000,"M3 (Gev)","Events / 10 GeV"); make_hist("M3_100_200","Mass of 3 jets with highest total Pt",100,0,1000,"M3 (Gev)","Events / 10 GeV"); make_hist("M3_200_300","Mass of 3 jets with highest total Pt",100,0,1000,"M3 (Gev)","Events / 10 GeV"); make_hist("M3_300_up","Mass of 3 jets with highest total Pt",100,0,1000,"M3 (Gev)","Events / 10 GeV"); make_hist("MCcategory","MC category",11,0.5,11.5,"category","Events"); hists["MCcategory"]->GetXaxis()->SetBinLabel(1,"Total"); hists["MCcategory"]->GetXaxis()->SetBinLabel(2,"AllHad"); hists["MCcategory"]->GetXaxis()->SetBinLabel(3,"1 lepton"); hists["MCcategory"]->GetXaxis()->SetBinLabel(4,"2 leptons"); hists["MCcategory"]->GetXaxis()->SetBinLabel(5,""); hists["MCcategory"]->GetXaxis()->SetBinLabel(6,"1 e"); hists["MCcategory"]->GetXaxis()->SetBinLabel(7,"2 e"); hists["MCcategory"]->GetXaxis()->SetBinLabel(8,"1 #mu"); hists["MCcategory"]->GetXaxis()->SetBinLabel(9,"2 #mu"); hists["MCcategory"]->GetXaxis()->SetBinLabel(10,"1 #tau"); hists["MCcategory"]->GetXaxis()->SetBinLabel(11,"2 #tau"); }