void dijet_analysis_mistag_prediction_fwlite(TH1D * parameterization, string sample = "ttbar", bool processAll = false, bool pseudoExp = true, bool useJEC = true, double Lum = 1.0, int njets = 2, double topMassCut1 = 100, double topMassCut2 = 250, double wMassCut1 = 0, double wMassCut2 = 99999.0, double minMassCut1 = 50.0, double minMassCut2 = 99999.0) { cout << "Processing sample = " << sample << endl; vector<string> files; int isample = -1; if ( sample == "qcd_230_v6_fixed" ) { isample = 0; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_230_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_300_v6_fixed" ) { isample = 1; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_13.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_300_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_380_v6_fixed" ) { isample = 2; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_380_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_470_v6_fixed" ) { isample = 3; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_470_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_600_v6_fixed" ) { isample = 4; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_600_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_800_v6_fixed" ) { isample = 5; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_800_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_1000_v6_fixed" ) { isample = 6; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1000_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_1400_v6_fixed" ) { isample = 7; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1400_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_1800_v6_fixed" ) { isample = 8; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_13.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_1800_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_2200_v6_fixed" ) { isample = 9; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2200_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_2600_v6_fixed" ) { isample = 10; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_2600_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_3000_v6_fixed" ) { isample = 11; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3000_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "qcd_3500_v6_fixed" ) { isample = 12; files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_10.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_11.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_12.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_1.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_2.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_3.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_4.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_5.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_6.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_7.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_8.root"); files.push_back("/uscms/home/rappocc/nobackup/TopTaggingV2/qcd_3500_v6_fixed/ca_pat_slim_223_9.root"); } else if ( sample == "wjets_inclusive_200_v6_fixed2" ) { isample = 14; files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_10.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_11.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_12.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_13.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_14.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_15.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_16.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_17.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_18.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_19.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_1.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_20.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_2.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_3.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_4.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_5.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_6.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_7.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_8.root"); files.push_back("dcap:///pnfs/cms/WAX/11/store/user/rappocc/PYTHIA6_Winclusive_200_FastSim_PAT_v6_fixed/ca_pat_slim_fastsim_223_9.root"); } double weights[] = { 10623.2, 2634.94, 722.099, 240.983, 62.4923, 9.42062, 2.34357, 0.1568550, 0.013811, 0.00129608, 0.00011404, 0.0000084318, 0.00000018146, 3700.0, 74.68 }; int nevents[] = { 54000, 54000, 51840, 27648, 28620, 20880, 24640, 27744, 22848, 22560, 22800, 20880, 34320, 1287404, 100000 }; unsigned int seeds[] = { 282618, 947201, 231657, 484974, 957477, 744305, 540044, 739953, 759944, 658637, 315638, 804403, 519672, 168572, 592834 }; double weight = weights[isample]; int nevent = nevents[isample]; // Calculate the effective luminosity generated double lum_eff = (double)nevent / weight; // Note! For an ensemble test, need to reweight the distributions // to account for the luminosity discrepancy. // To do a proper statistical treatment, we need to "throw" // pseudo experiments via which to make a prediction. double pe_factor = Lum / lum_eff; double fillWeight = weight / (double)nevent * Lum; cout << "Fill weight 1 = " << fillWeight << endl; // Make sure the pseudoexperiments always choose the same seed // for reproducability. if ( pseudoExp ) { gRandom->SetSeed( seeds[isample] ); if ( fillWeight < 1.0 ) fillWeight = 1.0; cout << "Effective lum = " << lum_eff << endl; cout << "Desired lum = " << Lum << endl; cout << "Skipping every " << 1.0 / pe_factor << " events" << endl; } cout << "Fill weight 2 = " << fillWeight << endl; using namespace std; using namespace reco; using namespace edm; PredictedDistribution * total_pred = new PredictedDistribution( parameterization, "total", "Mistag Background, Total Rate", 2, 0, 2 ); PredictedDistribution * jet_pt_pred = new PredictedDistribution( parameterization, "jet_pt", "Mistag Background, Jet p_{T}", 50, 0, 5000 ); PredictedDistribution * jet_eta_pred = new PredictedDistribution( parameterization, "jet_eta", "Mistag Background, Jet Rapidity", 30, -3.0, 3.0 ); PredictedDistribution * jet_phi_pred = new PredictedDistribution( parameterization, "jet_phi", "Mistag Background, Jet #phi", 30, -3.14159, 3.14159 ); PredictedDistribution * dijetmass_pred = new PredictedDistribution( parameterization, "dijetmass", "Mistag Background, Dijet Mass", 50, 0, 5000); cout << "About to loop" << endl; fwlite::ChainEvent ev(files); // Loop over events int count = 0; for( ev.toBegin(); ! ev.atEnd(); ++ev, ++count) { if ( ev.getBranchDescriptions().size() <= 0 ) continue; // Select a subset of the events for a pseudoexperiment // based on the desired luminosity. if ( pseudoExp ) { double fi = gRandom->Uniform(); if ( fi >= pe_factor ) continue; } if ( count % 1000 == 0 ) cout << "Processing event " << count << endl; unsigned int eventNumber = ev.id().event(); // get the jets fwlite::Handle<std::vector<pat::Jet> > h_jet; // cout << "About to get handle" << endl; h_jet .getByLabel(ev,"selectedLayer1Jets"); // cout << "Done getting handle" << endl; if ( (eventNumber % 2 == 1) && !processAll ) continue; // Take even events, odd were used to make this matrix if ( !h_jet.isValid() ) continue; // Make sure we have a handle // cout << "Got handle, dereferencing" << endl; vector<pat::Jet> const & jets = *h_jet; // require dijet events if ( jets.size() == 2 && njets == 2 ) { // cout << "Have 2 jets" << endl; pat::Jet const & jet1 = jets[0]; pat::Jet const & jet2 = jets[1]; const reco::CATopJetTagInfo * catopTag1 = dynamic_cast<CATopJetTagInfo const *> (jet1.tagInfo("CATopJetTagger")); const reco::CATopJetTagInfo * catopTag2 = dynamic_cast<CATopJetTagInfo const *> (jet2.tagInfo("CATopJetTagger")); double topMass1 = catopTag1->properties().topMass; double wMass1 = catopTag1->properties().wMass; double minMass1 = catopTag1->properties().minMass; double topMass2 = catopTag2->properties().topMass; double wMass2 = catopTag2->properties().wMass; double minMass2 = catopTag2->properties().minMass; double corrF1 = 1.0; double corrF2 = 1.0; if ( !useJEC ) { corrF1 = jet1.corrFactor( jet1.corrStep() ); corrF2 = jet2.corrFactor( jet1.corrStep() ); } TLorentzVector v1(jet1.px()/corrF1, jet1.py()/corrF1, jet1.pz()/corrF1, jet1.energy()/corrF1 ); TLorentzVector v2(jet2.px()/corrF2, jet2.py()/corrF2, jet2.pz()/corrF2, jet2.energy()/corrF2 ); double jet1pt = jet1.pt() / corrF1; double jet2pt = jet2.pt() / corrF2; TLorentzVector v = v1 + v2; // get the tag quantities bool tagged1 = (topMass1 >= topMassCut1 && topMass1 <= topMassCut2) && (wMass1 >= wMassCut1 && wMass1 <= wMassCut2 ) && (minMass1 >= minMassCut1 && minMass1 <= minMassCut2); bool tagged2 = (topMass2 >= topMassCut1 && topMass2 <= topMassCut2) && (wMass2 >= wMassCut1 && wMass2 <= wMassCut2 ) && (minMass2 >= minMassCut1 && minMass2 <= minMassCut2); // if ( true ) { // int bin1 = parameterization->FindBin(jet1.pt() ); // int bin2 = parameterization->FindBin(jet2.pt() ); // cout << "v.Mag() = " << v.Mag() << endl; // cout << "jet1.p4 = " << v1 << endl; // cout << "bin1 = " << bin1 << endl; // cout << "rate1 = " << parameterization->GetBinContent(bin1) << " +- " << parameterization->GetBinError(bin1) << endl; // cout << "jet2.p4 = " << v2 << endl; // cout << "bin2 = " << bin2 << endl; // cout << "rate2 = " << parameterization->GetBinContent(bin2) << " +- " << parameterization->GetBinError(bin2) << endl; // } if ( tagged1 ) { total_pred->Accumulate( 1.0, jet2pt, tagged2, fillWeight ); jet_pt_pred->Accumulate( jet2pt, jet2pt, tagged2 , fillWeight ); jet_eta_pred->Accumulate( jet2.eta(), jet2pt, tagged2 , fillWeight ); jet_phi_pred->Accumulate( jet2.phi(), jet2pt, tagged2 , fillWeight ); dijetmass_pred->Accumulate( v.Mag(), jet2pt, tagged2 , fillWeight ); } if ( tagged2 ) { total_pred->Accumulate( 1.0, jet1pt, tagged1 , fillWeight); jet_pt_pred->Accumulate( jet1pt, jet1pt, tagged1 , fillWeight); jet_eta_pred->Accumulate( jet1.eta(), jet1pt, tagged1 , fillWeight); jet_phi_pred->Accumulate( jet1.phi(), jet1pt, tagged1 , fillWeight); dijetmass_pred->Accumulate( v.Mag(), jet1pt, tagged1 , fillWeight); } } // else if ( jets.size() == 1 && njets == 1 ) { // // cout << "Have 1 jet" << endl; // pat::Jet const & jet1 = jets[0]; // const reco::CATopJetTagInfo * catopTag1 = dynamic_cast<CATopJetTagInfo const *> (jet1.tagInfo("CATopJetTagger")); // double topMass1 = catopTag1->properties().topMass; // double wMass1 = catopTag1->properties().wMass; // double minMass1 = catopTag1->properties().minMass; // TLorentzVector v1(jet1.px(), jet1.py(), jet1.pz(), jet1.energy() ); // // get the tag quantities // bool tagged1 = // (topMass1 >= topMassCut1 && topMass1 <= topMassCut2) && // (wMass1 >= wMassCut1 && wMass1 <= wMassCut2 ) && // (minMass1 >= minMassCut1 && minMass1 <= minMassCut2); // total_pred->Accumulate( 1.0, jet1.et(), tagged1 ); // jet_et_pred->Accumulate( jet1.et(), jet1.et(), tagged1 ); // jet_eta_pred->Accumulate( jet1.eta(), jet1.et(), tagged1 ); // jet_phi_pred->Accumulate( jet1.phi(), jet1.et(), tagged1 ); // } } cout << "Done with the loop" << endl; total_pred->SetCalculatedErrors(); // total_pred->Normalize(); jet_pt_pred->SetCalculatedErrors(); // jet_et_pred->Normalize(); jet_eta_pred->SetCalculatedErrors(); // jet_eta_pred->Normalize(); jet_phi_pred->SetCalculatedErrors(); // jet_phi_pred->Normalize(); dijetmass_pred->SetCalculatedErrors(); // dijetmass_pred->Normalize(); cout << "About to draw" << endl; TString fname ("mistag_background_"); fname += sample; if ( !useJEC ) fname += "_uncorr"; fname += ".root"; TFile * f = new TFile(fname.Data(), "RECREATE"); f->cd(); total_pred->GetPredictedHist()->Write(); total_pred->GetObservedHist()->Write(); total_pred->GetTaggableHist()->Write(); jet_pt_pred->GetPredictedHist()->Write(); jet_pt_pred->GetObservedHist()->Write(); jet_pt_pred->GetTaggableHist()->Write(); jet_eta_pred->GetPredictedHist()->Write(); jet_eta_pred->GetObservedHist()->Write(); jet_eta_pred->GetTaggableHist()->Write(); jet_phi_pred->GetPredictedHist()->Write(); jet_phi_pred->GetObservedHist()->Write(); jet_phi_pred->GetTaggableHist()->Write(); dijetmass_pred->GetPredictedHist()->Write(); dijetmass_pred->GetObservedHist()->Write(); dijetmass_pred->GetTaggableHist()->Write(); f->Close(); delete total_pred; delete jet_pt_pred; delete jet_eta_pred; delete jet_phi_pred; delete dijetmass_pred; delete f; }
//---------------------------------------------------------------------------// //Main Method //---------------------------------------------------------------------------// int main(int argc, char** argv) { TApplication *App = new TApplication("Application",(Int_t*)&argc, argv); TCanvas *Canvas = new TCanvas("canvas", "Canvas", 640, 640); // Set up ROOT as we require. SetupROOT(); // Get list of files to run over. TString fileName("/storage/epp2/phseaj/exercise/basket_2010b.list"); std::ifstream inputFile(fileName.Data(), ios::in); // Declare a TChain for the TGlobalPID module TChain *gRecon = new TChain("ReconDir/Global"); TChain *gGenVtx = new TChain("TruthDir/Vertices"); // Check if the file exists. if (!inputFile.is_open()){ std::cout << "ERROR: File prod4 files not found!" << std::endl; std::cout << " - This file should contain a list of all data files to be processed." << std::endl; return 0; } else{ std::string curFileName; // Add the input files to the TChains. //only doing 10 of the basket files, revert to while to do whole run // while(getline(inputFile,curFileName)){ for(int l = 0; l<10; l++){ if(getline(inputFile,curFileName)){ gRecon->Add(curFileName.c_str()); gGenVtx->Add(curFileName.c_str()); } } } std::cout << "Got input file(s)." << std::endl; //Setup access to the Recon tree int NPIDs(0); // This variable counts the number of particles per event int NVtxFGD1(0), NVtxFGD2(0); // Declare a TClonesArray to hold objects of type TGlobalPID TClonesArray *globalPIDs = new TClonesArray("ND::TGlobalReconModule::TGlobalPID",50); TClonesArray *VtxFGD1 = new TClonesArray("ND::TTruthVerticesModule::TTruthVertex",50); TClonesArray *VtxFGD2 = new TClonesArray("ND::TTruthVerticesModule::TTruthVertex",50); // Associate the right branch in the TTree to the right local variable gRecon->SetBranchAddress("NPIDs",&NPIDs); gRecon->SetBranchAddress("PIDs",&globalPIDs); gGenVtx->SetBranchAddress("VtxFGD1", &VtxFGD1); gGenVtx->SetBranchAddress("NVtxFGD1", &NVtxFGD1); gGenVtx->SetBranchAddress("VtxFGD2", &VtxFGD2); gGenVtx->SetBranchAddress("NVtxFGD2", &NVtxFGD2); //check that truthdir and recon have the same number of entries if(gRecon->GetEntries() != gGenVtx->GetEntries()) cout<<"not equal entries, probably wrong"<<endl; // Loop over the entries in the TChain. //======================================================== // Declare Graphs n stuff here //======================================================== //adding tclones arrays for use with detectors Int_t NTPCs; TClonesArray *TPC; Int_t NFDGs; TClonesArray *FDG; Int_t NECALs; TClonesArray *ECAL; Int_t NPODs; TClonesArray *POD; Int_t NSMRDs; TClonesArray *SMRD; //adding a 2d graph general purpose, change titles each time! TH1D *graph1 = new TH1D("graph1","Histogram of Neutrino momentum in FGD", 100, -1.5 , 1.5); //======================================================== // end Declare Graphs n stuff here //======================================================== // Loop over the entries in the TChain. (only 1/1000 of whole entries atm) for(unsigned int i = 0; i < gRecon->GetEntries()*0.1; ++i) { if((i+1)%10000 == 0) std::cout << "Processing event: " << (i+1) << std::endl; //display status every 10,000 th entry // Get an entry for the Recon tree gRecon->GetEntry(i); gGenVtx->GetEntry(i); ND::TGlobalReconModule::TGlobalPID *gTrack = NULL; //added new loop for truth vertex gGenVtx->GetEntry(i); for (int j=0; j<NPIDs; j++) { // Get a specific track from the TClonesArray gTrack = (ND::TGlobalReconModule::TGlobalPID*)globalPIDs->At(j); //get truevertex (in example, also gets trueparticle, can add in later) ND::TTrueVertex vtx = gTrack->TrueParticle.Vertex; //get position lorrentz vector TLorentzVector vec = vtx.Position; TLorentzVector momvec = vtx.Momentum; if(vtx.ReactionCode.find("Weak[NC],QES;",0)!=-1){ if(ABS(vec.X())<832.2 && ABS(vec.Y()-55)<832.2 && ((vec.Z()>123.45&&vec.Z()<446.95)||(vec.Z()>1481.45&&vec.Z()<1807.95))){ //is it in one of the FGDs? //graph1->Fill(vec.X(),vec.Y()); graph1->Fill(momvec.Mag()); } } TClonesArray *TPCObjects = new TClonesArray("ND::TGlobalReconModule::TTPCObject",gTrack->NTPCs); ND::TGlobalReconModule::TObject *tpcTrack = NULL; for ( int k = 0 ; k < gTrack->NTPCs; k++) { tpcTrack = (ND::TGlobalReconModule::TObject*) TPCObjects->At(k); //now we can access variables through tpcTrack->PullEle for example } } } // End loop over events cout << "done loop!" << endl; //plotting bits at the end :D graph1->GetXaxis()->SetTitle("Momentum"); graph1->GetYaxis()->SetTitle("Number"); graph1->Draw(); App->Run(); return 0; }