Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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.");
	}
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
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;
}
Exemplo n.º 6
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;
}
Exemplo n.º 7
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");
}