diff --git a/MIP_fitter/README.txt b/MIP_fitter/README.txt deleted file mode 100644 index 6f7b65f..0000000 --- a/MIP_fitter/README.txt +++ /dev/null @@ -1,59 +0,0 @@ -How to run the code: - -Download v10 muon files from following path: -/afs/cern.ch/work/s/spandey/public/hgcal/samples/v10/muon_v10.root - - -cmsrel CMSSW_8_0_1 -cd CMSSW_8_0_1/src -cmsenv -git clone git@github.com:spandeyehep/HGCAL_analysis_code.git -cd HGCAL_analysis_code/MIP_fitter/ - -> update the file path in the mipFitterTree.C - -> To run the fit on a single channel: - -root -l -.L mipFitterTree.C+ -Loop(0,0,0) - - -### Loop(unsigned int layer,unsigned int skiroc,unsigned int channel) -layer : 0 to 27 -skiroc : 0 to 3 -channel : 0 to 62 - - -> To run on one skiroc chip: -root -l -.L mipFitterTree.C+ -runAllChannel(0, 0) - - -### runAllChannel(unsigned int layer,unsigned int skiroc) -layer : 0 to 27 -skiroc : 0 to 3 - - -> To run on one layer: -root -l -.L mipFitterTree.C+ -runAllSkiROC(0) - - -### runAllSkiROC(unsigned int layer) -layer : 0 to 27 - - - -> To run on ENTIRE layers: -root -l -.L mipFitterTree.C+ -runAllLayers(0,27) - -### runAllLayers(unsigned int layer_start, unsigned int layer_end) -layer : 0 to 27 - - - diff --git a/MIP_fitter/mipFitterTree.C b/MIP_fitter/mipFitterTree.C index 7cb1879..34a8b1e 100644 --- a/MIP_fitter/mipFitterTree.C +++ b/MIP_fitter/mipFitterTree.C @@ -129,8 +129,11 @@ void Loop(unsigned int layer,unsigned int skiroc,unsigned int channel) RooRealVar sl0("SigmaL","Landau sigma",5,0.,30) ; RooLandau landau1("l1","Single MIP distribution",x,ml0,sl0) ; + // If X~Landau(µ1, c1) and Y~Landau(µ2, c2), then X+Y~Landau(µ1+µ2, c1+c2) + // https://en.wikipedia.org/wiki/Landau_distribution#Properties RooFormulaVar ml1("MPV1","Laudau MPV for 2-MIP peak","2*@0",ml0) ; - RooLandau landau2("l2","Two-MIP distribution",x,ml1,sl0) ; + RooFormulaVar sl1("SigmaL1","Laudau sigma for 2-MIP peak","2*@0",sl0) ; + RooLandau landau2("l2","Two-MIP distribution",x,ml1,sl1) ; RooFFTConvPdf l1xg("l1xg","landau1 (X) gauss",x,landau1,mipG0) ; RooFFTConvPdf l2xg("l2xg","landau2 (X) gauss",x,landau2,mipG0) ; diff --git a/README.md b/README.md new file mode 100644 index 0000000..0af46e6 --- /dev/null +++ b/README.md @@ -0,0 +1,79 @@ +# HGCAL_analysis_code + +CMSSW version: CMSSW_9_3_0_pre3 (do `cmsenv`). + +### Downlaod scripts
+`git clone -b OctTB_MIP_analysis git@github.com:spandeyehep/HGCAL_analysis_code.git .`
+ + +## MIP analysis code + + + +### How to run the script:
+ +`cd tracking_inclusion`
+`make`
+
+`./analyzeHGCOctTB outFileName.root data alpha`
+ + +`` : contains muon runs to be analyzed (see for example: `Data_muon_config1_v9.txt`)
+ +Example:
+`./analyzeHGCOctTB Data_muon_config1_v9.txt out.root data alpha` + +### Descrition of scripts:
+`AnalyzeHGCOctTB.cc` : Main analysis code
+`AnalyzeHGCOctTB.h` : Initialize histos here
+`HGCNtupleVariables.h`: Tree variable initialization
+
+ +## MIP fitting and value extraction
+ +`cd MIP_fitter`
+use output file from previous step as input by specifying the path in `mipFitterTree.C`
+
+> To run the fit on a single channel:
+
+`root -l`
+`.L mipFitterTree.C+`
+`Loop(0,0,0)`
+
+
+### Loop(unsigned int layer,unsigned int skiroc,unsigned int channel)
+layer : 0 to 27
+skiroc : 0 to 3
+channel : 0 to 62
+
+
+ +> To run on one skiroc chip:
+ +`root -l`
+`.L mipFitterTree.C+`
+`runAllChannel(0, 0)`
+
+
+### runAllChannel(unsigned int layer,unsigned int skiroc)
+layer : 0 to 27
+skiroc : 0 to 3
+
+
+> To run on one layer:
+`root -l`
+`.L mipFitterTree.C+`
+`runAllSkiROC(0)`
+
+
+### runAllSkiROC(unsigned int layer)
+layer : 0 to 27
+
+
+> To run on ENTIRE layers:
+`root -l`
+`.L mipFitterTree.C+`
+`runAllLayers(0,27)`
+
+### runAllLayers(unsigned int layer_start, unsigned int layer_end)
+layer : 0 to 27
diff --git a/config_maps/moduleMAP_config1.txt b/config_maps/moduleMAP_config1.txt new file mode 100644 index 0000000..8929d1c --- /dev/null +++ b/config_maps/moduleMAP_config1.txt @@ -0,0 +1,94 @@ +78 0 1 0 +90 0 2 0 +89 0 3 0 +88 0 4 0 +77 0 5 0 +85 0 6 0 +84 0 7 0 +32 0 8 0 +69 0 9 0 +79 0 10 0 +76 0 11 0 +83 0 12 0 +70 0 13 0 +73 0 14 0 +86 0 15 0 +87 0 16 0 +82 0 17 0 +72 0 18 0 +67 0 19 0 +65 0 20 0 +35 0 21 0 +36 0 22 0 +44 0 23 0 +51 0 24 0 +142 0 25 0 +143 0 26 0 +145 0 27 0 +144 0 28 0 +115 1 1 1 +40 1 1 2 +101 1 1 3 +96 1 1 4 +98 1 1 5 +95 1 1 6 +105 1 1 7 +122 1 2 1 +104 1 2 2 +100 1 2 3 +106 1 2 4 +123 1 2 5 +34 1 2 6 +113 1 2 7 +99 1 3 1 +121 1 3 2 +114 1 3 3 +94 1 3 4 +97 1 3 5 +111 1 3 6 +37 1 3 7 +124 1 4 1 +108 1 4 2 +109 1 4 3 +102 1 4 4 +118 1 4 5 +107 1 4 6 +120 1 4 7 +141 1 5 1 +147 1 5 2 +137 1 5 3 +139 1 5 4 +136 1 5 5 +140 1 5 6 +138 1 5 7 +91 1 6 1 +130 1 6 2 +133 1 6 3 +131 1 6 4 +134 1 6 5 +132 1 6 6 +146 1 6 7 +125 1 7 1 +129 1 7 2 +128 1 7 3 +119 1 7 4 +127 1 7 5 +126 1 7 6 +135 1 7 7 +38 1 8 1 +39 1 8 2 +42 1 8 3 +45 1 8 4 +53 1 8 5 +46 1 8 6 +48 1 8 7 +75 1 9 1 +59 1 9 2 +71 1 9 3 +64 1 9 4 +55 1 9 5 +63 1 9 6 +66 1 9 7 +62 1 10 4 +54 1 11 4 +43 1 12 4 diff --git a/config_maps/moduleMAP_config2.txt b/config_maps/moduleMAP_config2.txt new file mode 100644 index 0000000..ccc49de --- /dev/null +++ b/config_maps/moduleMAP_config2.txt @@ -0,0 +1,93 @@ +78 0 1 0 +90 0 2 0 +89 0 3 0 +88 0 4 0 +77 0 5 0 +85 0 6 0 +84 0 7 0 +32 0 8 0 +69 0 9 0 +79 0 10 0 +76 0 11 0 +83 0 12 0 +70 0 13 0 +73 0 14 0 +86 0 15 0 +87 0 16 0 +82 0 17 0 +72 0 18 0 +67 0 19 0 +65 0 20 0 +35 0 21 0 +36 0 22 0 +44 0 23 0 +51 0 24 0 +142 0 25 0 +143 0 26 0 +145 0 27 0 +144 0 28 0 +62 1 1 4 +54 1 2 4 +38 1 3 1 +39 1 3 2 +43 1 3 3 +45 1 3 4 +53 1 3 5 +46 1 3 6 +48 1 3 7 +141 1 4 1 +147 1 4 2 +137 1 4 3 +139 1 4 4 +136 1 4 5 +140 1 4 6 +138 1 4 7 +91 1 5 1 +130 1 5 2 +133 1 5 3 +131 1 5 4 +134 1 5 5 +132 1 5 6 +146 1 5 7 +125 1 6 1 +129 1 6 2 +128 1 6 3 +119 1 6 4 +127 1 6 5 +126 1 6 6 +135 1 6 7 +115 1 7 1 +40 1 7 2 +101 1 7 3 +96 1 7 4 +98 1 7 5 +95 1 7 6 +105 1 7 7 +75 1 8 1 +59 1 8 4 +71 1 8 3 +64 1 8 2 +55 1 8 5 +63 1 8 6 +66 1 8 7 +122 1 9 1 +104 1 9 2 +100 1 9 3 +106 1 9 4 +123 1 9 5 +34 1 9 6 +113 1 9 7 +99 1 10 1 +121 1 10 2 +114 1 10 3 +94 1 10 4 +97 1 10 5 +111 1 10 6 +37 1 10 7 +124 1 11 1 +108 1 11 2 +109 1 11 3 +102 1 11 4 +118 1 11 5 +107 1 11 6 +120 1 11 7 diff --git a/config_maps/moduleMAP_config3.txt b/config_maps/moduleMAP_config3.txt new file mode 100644 index 0000000..01d9a7d --- /dev/null +++ b/config_maps/moduleMAP_config3.txt @@ -0,0 +1,92 @@ +62 0 1 0 +144 0 2 0 +145 0 3 0 +51 0 4 0 +143 0 5 0 +142 0 6 0 +76 0 7 0 +70 0 8 0 +72 1 1 1 +69 1 1 2 +86 1 1 3 +44 1 1 4 +79 1 1 5 +87 1 1 6 +82 1 1 7 +84 1 2 1 +78 1 2 2 +67 1 2 3 +54 1 2 4 +85 1 2 5 +77 1 2 6 +90 1 2 7 +88 1 3 1 +73 1 3 2 +83 1 3 3 +35 1 3 4 +89 1 3 5 +65 1 3 6 +32 1 3 7 +38 1 4 1 +39 1 4 2 +43 1 4 3 +45 1 4 4 +53 1 4 5 +46 1 4 6 +48 1 4 7 +141 1 5 1 +147 1 5 2 +137 1 5 3 +139 1 5 4 +136 1 5 5 +140 1 5 6 +138 1 5 7 +91 1 6 1 +130 1 6 2 +133 1 6 3 +131 1 6 4 +134 1 6 5 +132 1 6 6 +146 1 6 7 +125 1 7 1 +129 1 7 2 +128 1 7 3 +119 1 7 4 +127 1 7 5 +126 1 7 6 +135 1 7 7 +115 1 8 1 +40 1 8 2 +101 1 8 3 +96 1 8 4 +98 1 8 5 +95 1 8 6 +105 1 8 7 +75 1 9 1 +59 1 9 4 +71 1 9 3 +64 1 9 2 +55 1 9 5 +63 1 9 6 +66 1 9 7 +122 1 10 1 +104 1 10 2 +100 1 10 3 +106 1 10 4 +123 1 10 5 +34 1 10 6 +113 1 10 7 +99 1 11 1 +121 1 11 2 +114 1 11 3 +94 1 11 4 +97 1 11 5 +111 1 11 6 +37 1 11 7 +124 1 12 1 +108 1 12 2 +109 1 12 3 +102 1 12 4 +118 1 12 5 +107 1 12 6 +120 1 12 7 diff --git a/inverted_tracking_cut/AnalyzeHGCOctTB.cc b/inverted_tracking_cut/AnalyzeHGCOctTB.cc new file mode 100644 index 0000000..545d59e --- /dev/null +++ b/inverted_tracking_cut/AnalyzeHGCOctTB.cc @@ -0,0 +1,547 @@ +#define AnalyzeHGCOctTB_cxx + +#include +#include +#include +#include "AnalyzeHGCOctTB.h" + +using namespace std; + + + +// chip 3022,44,3028 + + + + +int main(int argc, char* argv[]) +{ + + if (argc < 3) { + cerr << "Please give 4 arguments " << "runList " << " " << "outputFileName" << " " << "dataset" <<" " << "configuration" << endl; + return -1; + } + const char *inputFileList = argv[1]; + const char *outFileName = argv[2]; + const char *data = argv[3]; + const char *config = argv[4]; + + AnalyzeHGCOctTB hgcOctTB(inputFileList, outFileName, data, config); + cout << "dataset " << data << " " << endl; + cout << "congiguration " << config << " " << endl; + + hgcOctTB.EventLoop(data); + return 0; +} + +void AnalyzeHGCOctTB::EventLoop(const char *data) { + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + cout << "nentries " << nentries << endl; + cout << "Analyzing dataset " << data << " " << endl; + + Long64_t nbytes = 0, nb = 0; + Long64_t nbytes2 = 0, nb2 = 0; + int decade = 0; + + float rechit_cut[28] = {0.02,0.039,0.019,0.02,0.037,0.076,0.10, + 0.14,0.18,0.24,0.28,0.33,0.48,0.52, + 0.56,0.6,0.64,0.70,0.74,0.78,0.82, + 0.86,0.90,0.92,0.94,0.95,0.98,1.0}; + + bool DEBUG = false; + Long64_t cut_count[28]; + Long64_t nEvents = 0; + Long64_t MIP_pions = 0; + int TOTAL_ACTIVE_LAYER = -1; + int EE_LAYER = -1; + int FH_LAYER = -1; + if(!strcmp(conf_,"alpha") || !strcmp(conf_,"config1")) { + TOTAL_ACTIVE_LAYER = 40; + EE_LAYER = 28; + FH_LAYER = 12; + } + else if(!strcmp(conf_,"bravo") || !strcmp(conf_,"config2")){ + TOTAL_ACTIVE_LAYER = 39; + EE_LAYER = 28; + FH_LAYER = 11; + } + else if(!strcmp(conf_,"charlie") || !strcmp(conf_,"config3")) { + TOTAL_ACTIVE_LAYER = 20; + EE_LAYER = 8; + FH_LAYER = 12; + } + else { + cout<<"ERROR: Unknown configuration!!!!"< decade) + cout << 10 * k << " %" << endl; + decade = k; + + // ===============read this entry == == == == == == == == == == == + + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) { break; cout<<"Breaking"<GetEntry(jentry); nbytes += nb; + nb2 = fChain2->GetEntry(jentry); nbytes2 += nb2; + + if(NRechits == 0) continue; + // if(NRechits > 50 || NRechits < 20) continue; + h_nTracks->Fill(ntracks); + if(ntracks != 1) continue; + if(dwcReferenceType != 15) continue; + Float_t track_x[40]; + Float_t track_y[40]; + + track_x[0] = impactX_HGCal_layer_1; + track_y[0] = impactY_HGCal_layer_1; + track_x[1] = impactX_HGCal_layer_2; + track_y[1] = impactY_HGCal_layer_2; + track_x[2] = impactX_HGCal_layer_3; + track_y[2] = impactY_HGCal_layer_3; + track_x[3] = impactX_HGCal_layer_4; + track_y[3] = impactY_HGCal_layer_4; + track_x[4] = impactX_HGCal_layer_5; + track_y[4] = impactY_HGCal_layer_5; + track_x[5] = impactX_HGCal_layer_6; + track_y[5] = impactY_HGCal_layer_6; + track_x[6] = impactX_HGCal_layer_7; + track_y[6] = impactY_HGCal_layer_7; + track_x[7] = impactX_HGCal_layer_8; + track_y[7] = impactY_HGCal_layer_8; + track_x[8] = impactX_HGCal_layer_9; + track_y[8] = impactY_HGCal_layer_9; + track_x[9] = impactX_HGCal_layer_10; + track_y[9] = impactY_HGCal_layer_10; + track_x[10] = impactX_HGCal_layer_11; + track_y[10] = impactY_HGCal_layer_11; + track_x[11] = impactX_HGCal_layer_12; + track_y[11] = impactY_HGCal_layer_12; + track_x[12] = impactX_HGCal_layer_13; + track_y[12] = impactY_HGCal_layer_13; + track_x[13] = impactX_HGCal_layer_14; + track_y[13] = impactY_HGCal_layer_14; + track_x[14] = impactX_HGCal_layer_15; + track_y[14] = impactY_HGCal_layer_15; + track_x[15] = impactX_HGCal_layer_16; + track_y[15] = impactY_HGCal_layer_16; + track_x[16] = impactX_HGCal_layer_17; + track_y[16] = impactY_HGCal_layer_17; + track_x[17] = impactX_HGCal_layer_18; + track_y[17] = impactY_HGCal_layer_18; + track_x[18] = impactX_HGCal_layer_19; + track_y[18] = impactY_HGCal_layer_19; + track_x[19] = impactX_HGCal_layer_20; + track_y[19] = impactY_HGCal_layer_20; + track_x[20] = impactX_HGCal_layer_21; + track_y[20] = impactY_HGCal_layer_21; + track_x[21] = impactX_HGCal_layer_22; + track_y[21] = impactY_HGCal_layer_22; + track_x[22] = impactX_HGCal_layer_23; + track_y[22] = impactY_HGCal_layer_23; + track_x[23] = impactX_HGCal_layer_24; + track_y[23] = impactY_HGCal_layer_24; + track_x[24] = impactX_HGCal_layer_25; + track_y[24] = impactY_HGCal_layer_25; + track_x[25] = impactX_HGCal_layer_26; + track_y[25] = impactY_HGCal_layer_26; + track_x[26] = impactX_HGCal_layer_27; + track_y[26] = impactY_HGCal_layer_27; + track_x[27] = impactX_HGCal_layer_28; + track_y[27] = impactY_HGCal_layer_28; + track_x[28] = impactX_HGCal_layer_29; + track_y[28] = impactY_HGCal_layer_29; + track_x[29] = impactX_HGCal_layer_30; + track_y[29] = impactY_HGCal_layer_30; + track_x[30] = impactX_HGCal_layer_31; + track_y[30] = impactY_HGCal_layer_31; + track_x[31] = impactX_HGCal_layer_32; + track_y[31] = impactY_HGCal_layer_32; + track_x[32] = impactX_HGCal_layer_33; + track_y[32] = impactY_HGCal_layer_33; + track_x[33] = impactX_HGCal_layer_34; + track_y[33] = impactY_HGCal_layer_34; + track_x[34] = impactX_HGCal_layer_35; + track_y[34] = impactY_HGCal_layer_35; + track_x[35] = impactX_HGCal_layer_36; + track_y[35] = impactY_HGCal_layer_36; + track_x[36] = impactX_HGCal_layer_37; + track_y[36] = impactY_HGCal_layer_37; + track_x[37] = impactX_HGCal_layer_38; + track_y[37] = impactY_HGCal_layer_38; + track_x[38] = impactX_HGCal_layer_39; + track_y[38] = impactY_HGCal_layer_39; + track_x[39] = impactX_HGCal_layer_40; + track_y[39] = impactY_HGCal_layer_40; + + + Double_t rechitEnergySum = 0.0; + Double_t rechitEnergySum_EE = 0.0; + Double_t rechitEnergySum_FH = 0.0; + Double_t un_cali = 0.0; + Long_t Nrechit_layer[40]; + Long_t NRechits_EE[28]; + Long_t NRechits_FH[12][7]; + // long Nrechit_layer[40]; + // long NRechits_EE[28]; + // long NRechits_FH[12][7]; + + int module_part_ = -1; + int module_layer_ = -1; + int module_position_ = -1; + vector dR[40]; + double dr_min_index[40]; + double dr_min[40]; + + for(int ii=0;ii<40;ii++){ + if(ii<28) { + NRechits_EE[ii]=0; + // dR[ii].clear(); + // dr_min_index[ii] = -1.0; + // dr_min[ii] = 1.e10; + } + Nrechit_layer[ii]=0; + dR[ii].clear(); + dr_min_index[ii] = -1.0; + dr_min[ii] = 1.e10; + + } + for(int ii=0;ii<12;ii++){ + for(int jj=0;jj<7;jj++){ + NRechits_FH[ii][jj]=0; + } + } + + + // cout<<"BEFORE!!!"< temp_moduleID; + for(int i = 0 ; i < NRechits; i++){ + temp_moduleID.clear(); + int temp_layer = rechit_layer->at(i); + int temp_chip = rechit_chip->at(i); + int temp_channel = rechit_channel->at(i); + int en_chan = temp_chip*1000+temp_channel; + if(en_chan == 3022 || en_chan == 3028 || en_chan == 44) continue; + // if(rechit_amplitudeHigh->at(i) < 20) continue; + Nrechit_layer[temp_layer-1]++; + + temp_moduleID = getModuleLocation(rechit_module->at(i)); + if(!temp_moduleID.size() || temp_moduleID.size()<3) { + cout<<"ERROR: Could NOT locate MODULE location for module "<at(i)<Fill(rechit_x->at(i),track_x[temp_layer-1]); + // h_rechitY_vs_trackY_layer[temp_layer-1]->Fill(rechit_y->at(i),track_y[temp_layer-1]); + double recx = rechit_x->at(i); + double recy = rechit_y->at(i); + double trackx = track_x[temp_layer-1]; + double tracky = track_y[temp_layer-1]; + double temp = deltaR(recx,recy,-1*trackx,-1*tracky); + double dX = recx - (-1*trackx); + double dY = recy - (-1*tracky); + // cout<<"point A"<Fill(recx,recy); + h_trackX_vs_trackY_layer[temp_layer-1]->Fill(-1*trackx,-1*tracky); + h_rechitX_vs_trackX_layer[temp_layer-1]->Fill(recx,-1*trackx); + h_rechitY_vs_trackY_layer[temp_layer-1]->Fill(recy,-1*tracky); + h_dX_dY_layer[temp_layer-1]->Fill(dX,dY); + h_dR[temp_layer-1]->Fill(abs(temp)); + } + else if(module_position_ == 4) { + h_rechitX_vs_rechitY_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(recx,recy); + h_trackX_vs_trackY_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(-1*trackx,-1*tracky); + h_rechitX_vs_trackX_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(recx,-1*trackx); + h_rechitY_vs_trackY_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(recy,-1*tracky); + h_dX_dY_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(dX,dY); + h_dR_FH[temp_layer-EE_LAYER-1][module_position_-1]->Fill(abs(temp)); + } + else { + cout<<"ERROR: Something went wrong at Point Romeo Hotel!!!"<Fill(module_part_); + + if(module_part_ == 0) { + rechitEnergySum_EE+=rechit_energy->at(i); + NRechits_EE[module_layer_-1]++; + h_adcHG_EE[module_layer_-1][channel_bin]->Fill(rechit_amplitudeHigh->at(i)); + h_TS3_EE[module_layer_-1][channel_bin]->Fill(rechit_TS3High->at(i)); + } + if(module_part_ == 1) { + rechitEnergySum_FH+=rechit_energy->at(i); + // cout<<"BEFORE ====="<at(i)<Fill(rechit_amplitudeHigh->at(i)); + } + rechitEnergySum+=rechit_energy->at(i); + + } + + + + // cout<<"AFTER!!!"< 50) return; + + if(DEBUG) cout<<"DEBUG: Values Assigned!!!"< 9 ) continue; + Nrechit_FH+=NRechits_FH[iL-EE_LAYER][j]; + h_NRechits_FH[iL-EE_LAYER][j]->Fill(NRechits_FH[iL-EE_LAYER][j]); + // cout<<"LOOK HERE FH = "<Fill(10); + else if(!strcmp(conf_,"bravo")) h_configuration->Fill(20); + else if(!strcmp(conf_,"charlie")) h_configuration->Fill(30); + else { + cout<<"ERROR: Unknown configuration!!!!"< 28) + // cout<<"NRechits_FH["<at(dr_min_index[i]); + int temp_channel = rechit_channel->at(dr_min_index[i]); + int channel_bin = getBIN(temp_chip,temp_channel); + if (channel_bin < 0) { cout<<"INVALID CHANNEL!!!"<at(dr_min_index[i])); + if(!temp_moduleID.size() || temp_moduleID.size()<3) { + cout<<"ERROR: Could NOT locate MODULE location for module "<at(i)<at(i); + int temp_chip = rechit_chip->at(i); + int temp_channel = rechit_channel->at(i); + int channel_bin = getBIN(temp_chip,temp_channel); + if(!(temp_layer == 1 || temp_layer == 14)) continue; //For layer 1 and layer 14 + temp_moduleID.clear(); + module_position_ = -1; + module_layer_ = -1; + module_position_ = -1; + + // if((i == dr_min_index[0] && temp_layer == 1) || (i == dr_min_index[13] && temp_layer == 14)) continue; + if((i == dr_min_index[0]) || (i == dr_min_index[13])) continue; + // if(i == dr_min_index[13] && temp_layer == 14) continue; + if(dr_min[temp_layer-1] < 1.0) continue; + // cout<<"Passed!!"<at(i)); + if(!temp_moduleID.size() || temp_moduleID.size()<3) { + cout<<"ERROR: Could NOT locate MODULE location for module "<at(i)<Fill(pdgID); + h_beamEnergy->Fill(beamEnergy); + h_runNumber->Fill(run); + h_rechit_energy_all->Fill(rechitEnergySum); + h_rechit_energy_EE_only->Fill(rechitEnergySum_EE); + h_rechit_energy_FH_only->Fill(rechitEnergySum_FH); + h_rechit_energy_EE_vs_FH->Fill(rechitEnergySum_EE,rechitEnergySum_FH); + h_rechit_En_NRechits->Fill(NRechits,rechitEnergySum); + // h_Nrechit_EE_vs_FH->Fill(Nrechit_EE,Nrechit_FH); + // h_Nrechit_EE->Fill(Nrechit_EE); + // h_Nrechit_FH->Fill(Nrechit_FH); + + if(DEBUG) cout<<"DEBUG: End of Event = "<GetXaxis()->SetTitle("energy in EE(MIPs)"); + h_rechit_energy_EE_vs_FH->GetYaxis()->SetTitle("energy in FH(MIPs)"); + + h_Nrechit_EE = new TH1F("h_Nrechit_EE","NRechits in EE",500,0.0,1000.0); + h_Nrechit_FH = new TH1F("h_Nrechit_FH","NRechits in FH",500,0.0,1000.0); + h_Nrechit_EE_vs_FH = new TH2F("h_Nrechit_EE_vs_FH","NRechits EE vs FH",500,0.0,1000.0,500,0.0,1000.0); + h_Nrechit_EE_vs_FH->GetXaxis()->SetTitle("NRechits in EE"); + h_Nrechit_EE_vs_FH->GetYaxis()->SetTitle("NRechits in FH"); + + + + h_rechit_En_NRechits = new TH2F("h_rechit_En_NRechits","h_rechit_En_NRechits",100,0,1000,500,0.0,20000.0); + + d_adcHG = oFile->mkdir("ADC_distributions"); + d_adcHG->cd(); + for(int i = 0; i < 28; i++) { + if((!strcmp(conf,"charlie") || !strcmp(conf,"config3")) && (i+1 > 8)) break; + sprintf(dir_name,"EE_%d",i+1); + d_EE[i] = d_adcHG->mkdir(dir_name); + d_EE[i]->cd(); + sprintf(hname,"h_Nrechits_EE_L%d",i+1); + h_NRechits_EE[i] = new TH1F(hname, hname, 50, 0, 50); + sprintf(hname,"h_dR_layer_%d",i+1); + h_dR[i] = new TH1F(hname,hname,21.0,-1.0,20.0); + + sprintf(hname,"h_rechitX_rechitY_layer_%d",i+1); + h_rechitX_vs_rechitY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_trackX_trackY_layer_%d",i+1); + h_trackX_vs_trackY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + sprintf(hname,"h_rechitX_trackX_layer_%d",i+1); + h_rechitX_vs_trackX_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_rechitY_trackY_layer_%d",i+1); + h_rechitY_vs_trackY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + + sprintf(hname,"h_dX_dY_layer_%d",i+1); + h_dX_dY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + int chan = 0; + for(int chip = 0; chip < 4; chip++) { + for(int cc = 0; cc < 64; cc+=2,chan++) { + sprintf(hname,"h_adcHG_EE_L%d_P0_chip%d_chan%d",i+1,chip,cc); + h_adcHG_EE[i][chan] = new TH1F(hname, hname, 100, 0, 400); + sprintf(hname,"h_adcHG_EE_L%d_P0_chip%d_chan%d_inv_track",i+1,chip,cc); + h_adcHG_EE_inv_track[i][chan] = new TH1F(hname, hname, 100, 0, 400); + + } + } + } + for(int i = 0; i < 12; i++){ + for(int j = 0; j < 7; j++) { + /* if(!strcmp(conf,"alpha") && (i+1)>9 ) { */ + /* if((j+1) != 4) continue; */ + /* } */ + + sprintf(dir_name,"FH_L%d_P%d",i+1,j+1); + d_FH[i][j] = d_adcHG->mkdir(dir_name); + d_FH[i][j]->cd(); + + sprintf(hname,"h_Nrechits_FH_L%d_P%d",i+1,j+1); + h_NRechits_FH[i][j] = new TH1F(hname, hname, 50, 0, 50); + + sprintf(hname,"h_dR_FH_layer_L%d_P%d",i+1,j+1); + h_dR_FH[i][j] = new TH1F(hname,hname,21.0,-1.0,20.0); + + sprintf(hname,"h_rechitX_rechitY_FH_layer_L%d_P%d",i+1,j+1); + h_rechitX_vs_rechitY_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_trackX_trackY_FH_layer_L%d_P%d",i+1,j+1); + h_trackX_vs_trackY_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + sprintf(hname,"h_rechitX_trackX_FH_layer_L%d_P%d",i+1,j+1); + h_rechitX_vs_trackX_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_rechitY_trackY_FH_layer_L%d_P%d",i+1,j+1); + h_rechitY_vs_trackY_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + + sprintf(hname,"h_dX_dY_FH_layer_L%d_P%d",i+1,j+1); + h_dX_dY_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + + int chan = 0; + for(int chip = 0; chip < 4; chip++) { + for(int cc = 0; cc < 64; cc+=2,chan++) { + sprintf(hname,"h_adcHG_FH_L%d_P%d_chip%d_chan%d",i+1,j+1,chip,cc); + h_adcHG_FH[i][j][chan] = new TH1F(hname, hname, 100, 0, 400); + sprintf(hname,"h_adcHG_FH_L%d_P%d_chip%d_chan%d_track",i+1,j+1,chip,cc); + h_adcHG_FH_inv_track[i][j][chan] = new TH1F(hname, hname, 100, 0, 400); + + + } + } + } + } + + + d_TS3 = oFile->mkdir("TS3_distributions"); + d_TS3->cd(); + for(int i = 0; i < 28; i++) { + if((!strcmp(conf,"charlie") || !strcmp(conf,"config3")) && (i+1 > 8)) break; + sprintf(dir_name,"EE_%d",i+1); + d_EE[i] = d_TS3->mkdir(dir_name); + d_EE[i]->cd(); + int chan = 0; + for(int chip = 0; chip < 4; chip++) { + for(int cc = 0; cc < 64; cc+=2,chan++) { + sprintf(hname,"h_TS3_EE_L%d_P0_chip%d_chan%d",i+1,chip,cc); + h_TS3_EE[i][chan] = new TH1F(hname, hname, 100, 0, 400); + sprintf(hname,"h_TS3_EE_L%d_P0_chip%d_chan%d_inv_track",i+1,chip,cc); + h_TS3_EE_inv_track[i][chan] = new TH1F(hname, hname, 100, 0, 400); + + } + } + } + + // sprintf(hname,"h_rechit_E_full_official"); + // h_ERechits_full_official_calib = new TH1F(hname,hname,375.0,0.0,25000.0); + + // sprintf(hname,"h_rechit_E_full_my"); + // h_ERechits_full_my_calib = new TH1F(hname,hname,375.0,0.0,25000.0); + + + // d_Nrechit_layer = oFile->mkdir("Nrechit_layer"); + // d_Nrechit_layer->cd(); + + // for (int i=0;i<28;i++) { + // sprintf(hname,"h_rechit_layer_%d",i+1); + // h_nRechits_layer[i] = new TH1F(hname,hname,3000,0.0,3000.0); + // } + + + + // d_rechit_en_layer = oFile->mkdir("rechit_energys"); + // d_rechit_en_layer->cd(); + + + // for (int i=0;i<28;i++) { + // sprintf(hname,"h_rechit_E_layer_%d",i); + // h_ERechits_layer[i] = new TH1F(hname,hname,250.0,0.0,5000.0); + // } + + + +} + + +void AnalyzeHGCOctTB::moduleMap_init(const char* config) { + char *f_name = new char[200]; + + if(strcmp(config,"alpha")==0 || strcmp(config,"config1")==0) { + sprintf(f_name,"../config_maps/moduleMAP_config1.txt"); + cout<<"\n\nINFO: Mapping module configuration ALPHA (oct10-oct17) "<>layer_>>module_>>chip_>>channel_>>adc_){ +// en_chan = chip_*1000+channel_; +// std::pair temp; +// temp = std::make_pair(layer_,en_chan); +// std::pair, float> temp1; +// temp1 = std::make_pair(temp, adc_); +// offical_calib_map.insert(temp1); +// } +// } + +// void AnalyzeHGCOctTB::my_calib_init() { +// char *f_name = new char[200]; +// sprintf(f_name,"/home/shubham/work/HGCAL/CERNTB/CERN_5_oct_2018/txt_files/ADC_MIP_v11.txt"); +// std::ifstream in(f_name); +// if(!in){ +// cout<<"Could not find "<>layer_>>chip_>>channel_>>adc_>>chi2>>mip_err>>entry){ +// en_chan = chip_*1000+channel_; +// std::pair temp; +// temp = std::make_pair(layer_+1,en_chan); +// std::pair, float> temp1; +// temp1 = std::make_pair(temp, adc_); +// my_calib_map.insert(temp1); +// } +// } + +AnalyzeHGCOctTB::AnalyzeHGCOctTB(const TString &inputFileList, const char *outFileName, const char* dataset, const char* config) { + + TChain *tree = new TChain("rechitntupler/hits"); + TChain *tree2 = new TChain("trackimpactntupler/impactPoints"); + + if( ! FillChain(tree, tree2, inputFileList) ) { + std::cerr << "Cannot get the tree " << std::endl; + } else { + std::cout << "Initiating analysis of dataset " << dataset << std::endl; + } + + /* if( ! FillChain(tree, inputFileList) ) { */ + /* std::cerr << "Cannot get the tree " << std::endl; */ + /* } else { */ + /* std::cout << "Initiating analysis of dataset " << dataset << std::endl; */ + /* } */ + + HGCNtupleVariables::Init(tree, tree2); + /* HGCNtupleVariables::Init(tree); */ + + BookHistogram(outFileName, config); + moduleMap_init(config); + // offical_calib_init(); + // my_calib_init(); + +} + +Bool_t AnalyzeHGCOctTB::FillChain(TChain *chain, TChain *chain2, const TString &inputFileList) { +/* Bool_t AnalyzeHGCOctTB::FillChain(TChain *chain, const TString &inputFileList) { */ + + ifstream infile(inputFileList, ifstream::in); + std::string buffer; + + if(!infile.is_open()) { + std::cerr << "** ERROR: Can't open '" << inputFileList << "' for input" << std::endl; + return kFALSE; + } + + std::cout << "TreeUtilities : FillChain " << std::endl; + while(1) { + infile >> buffer; + if(!infile.good()) break; + //std::cout << "Adding tree from " << buffer.c_str() << std::endl; + chain->Add(buffer.c_str()); + chain2->Add(buffer.c_str()); + } + std::cout << "No. of Entries in chain : " << chain->GetEntries() << std::endl; + std::cout << "No. of Entries in chain2 : " << chain2->GetEntries() << std::endl; + return kTRUE; +} + +Long64_t AnalyzeHGCOctTB::LoadTree(Long64_t entry) { + // Set the environment to read one entry + if (!fChain) return -5; + Long64_t centry = fChain->LoadTree(entry); + if (centry < 0) return centry; + if (!fChain->InheritsFrom(TChain::Class())) return centry; + TChain *chain = (TChain*)fChain; + if (chain->GetTreeNumber() != fCurrent) { + fCurrent = chain->GetTreeNumber(); + // Notify(); + } + + if (!fChain2) return -5; + Long64_t centry2 = fChain2->LoadTree(entry); + if (centry2 < 0) return centry2; + if (!fChain2->InheritsFrom(TChain::Class())) return centry2; + TChain *chain2 = (TChain*)fChain2; + if (chain2->GetTreeNumber() != fCurrent) { + fCurrent = chain->GetTreeNumber(); + // Notify(); + } + + + //if (centry==centry2) + return centry; + // cout<<"centry = "<0) + // return centry; + // else return -1; +} + +AnalyzeHGCOctTB::~AnalyzeHGCOctTB() { + + // if (!fChain || !fChain2) return; + // delete fChain->GetCurrentFile(); + // delete fChain2->GetCurrentFile(); + // oFile->cd(); + // oFile->Write(); + // oFile->Close(); + + + if (!fChain) return; + delete fChain->GetCurrentFile(); + oFile->cd(); + oFile->Write(); + oFile->Close(); + +} + +#endif diff --git a/inverted_tracking_cut/Data_muon_config1_one_File.txt b/inverted_tracking_cut/Data_muon_config1_one_File.txt new file mode 100644 index 0000000..ead5cb8 --- /dev/null +++ b/inverted_tracking_cut/Data_muon_config1_one_File.txt @@ -0,0 +1 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_697.root diff --git a/inverted_tracking_cut/Data_muon_config1_one_File_v7.txt b/inverted_tracking_cut/Data_muon_config1_one_File_v7.txt new file mode 100644 index 0000000..7ef597b --- /dev/null +++ b/inverted_tracking_cut/Data_muon_config1_one_File_v7.txt @@ -0,0 +1 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_697.root diff --git a/inverted_tracking_cut/Data_muon_config1_v1.txt b/inverted_tracking_cut/Data_muon_config1_v1.txt new file mode 100644 index 0000000..6d4b60f --- /dev/null +++ b/inverted_tracking_cut/Data_muon_config1_v1.txt @@ -0,0 +1,20 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_697.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_722.root diff --git a/inverted_tracking_cut/Data_muon_config1_v2.txt b/inverted_tracking_cut/Data_muon_config1_v2.txt new file mode 100644 index 0000000..e1c8a90 --- /dev/null +++ b/inverted_tracking_cut/Data_muon_config1_v2.txt @@ -0,0 +1,20 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_697.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_722.root diff --git a/inverted_tracking_cut/Data_muon_config1_v7.txt b/inverted_tracking_cut/Data_muon_config1_v7.txt new file mode 100644 index 0000000..834a3f8 --- /dev/null +++ b/inverted_tracking_cut/Data_muon_config1_v7.txt @@ -0,0 +1,20 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_697.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_722.root diff --git a/inverted_tracking_cut/Data_muon_config1_v7_no_697.txt b/inverted_tracking_cut/Data_muon_config1_v7_no_697.txt new file mode 100644 index 0000000..42dadfe --- /dev/null +++ b/inverted_tracking_cut/Data_muon_config1_v7_no_697.txt @@ -0,0 +1,19 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_722.root diff --git a/inverted_tracking_cut/Data_muon_config1_v7_no_697_698_699_700.txt b/inverted_tracking_cut/Data_muon_config1_v7_no_697_698_699_700.txt new file mode 100644 index 0000000..00adba3 --- /dev/null +++ b/inverted_tracking_cut/Data_muon_config1_v7_no_697_698_699_700.txt @@ -0,0 +1,16 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_722.root diff --git a/inverted_tracking_cut/HGCNtupleVariables.cc b/inverted_tracking_cut/HGCNtupleVariables.cc new file mode 100644 index 0000000..cf7cd2f --- /dev/null +++ b/inverted_tracking_cut/HGCNtupleVariables.cc @@ -0,0 +1,73 @@ +#define HGCNtupleVariables_cxx +#include "HGCNtupleVariables.h" +#include +#include +#include +//#include + + + + +float HGCNtupleVariables::deltaR(float x1, float y1, float x2, float y2) { + float deltaR_ = sqrt(pow((x2-x1),2) + pow((y2-y1),2)); + return deltaR_; +} + + +int HGCNtupleVariables::getBIN(unsigned int skiroc,unsigned int channel) { + if (channel%2 != 0 || channel > 62 || skiroc > 3) return -1; + else return (skiroc*32 + (channel/2)); +} + + +std::vector HGCNtupleVariables::getModuleLocation(int moduleID) { + std::map>::iterator it = module_map.find(moduleID); + if(it != module_map.end()){ + return it->second; + } + else { + return std::vector(); + } +} + + + +//double HGCNtupleVariables::shower_comparisons(TProfile* shower, TH1F* hist) { +// TH1F* HGCNtupleVariables::shower_comparisons(TProfile* shower, TH1F* hist) { +// // TFile* file0 = TFile::Open("/home/shubham/work/HGCAL/CERNTB/niramay/niramay_github/forked_repo/E_Pi_Comparison/functions/Template_150_GeV.root"); +// // TH1F* ref_hist = (TH1F*)file0->Get("hist_ref_template"); +// //TH1F* hist = new TH1F("hist","hist",30,0,30); +// for(int i = 1; i <= shower->GetNbinsX(); i++){ +// hist->SetBinContent(i,shower->GetBinContent(i)); +// } +// return hist; +// //return (hist->Chi2Test(ref_h,"CHI2/NDF")); +// } + + +// float HGCNtupleVariables::find_official_calib(int layer, int en_chan){ +// std::pair temp_find; +// temp_find = std::make_pair(layer,en_chan); +// std::map, float >::iterator it = offical_calib_map.find(temp_find); +// if(it != offical_calib_map.end()){ +// return it->second; +// } +// else { +// return -1.0; +// } +// } + + +// float HGCNtupleVariables::find_my_calib(int layer, int en_chan){ +// std::pair temp_find; +// temp_find = std::make_pair(layer,en_chan); +// std::map, float >::iterator it = my_calib_map.find(temp_find); +// if(it != my_calib_map.end()){ +// return it->second; +// } +// else { +// return -1.0; +// } +// } + + diff --git a/inverted_tracking_cut/HGCNtupleVariables.h b/inverted_tracking_cut/HGCNtupleVariables.h new file mode 100644 index 0000000..2ad02fa --- /dev/null +++ b/inverted_tracking_cut/HGCNtupleVariables.h @@ -0,0 +1,511 @@ +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Thu Aug 16 18:22:34 2018 by ROOT version 6.06/01 +// from TTree hits/HGC rechits +// found on file: muon_v10.root +////////////////////////////////////////////////////////// + +#ifndef HGCNtupleVariables_h +#define HGCNtupleVariables_h + +#include +#include +#include +#include + +// Header file for the classes stored in the TTree if any. +#include "vector" + +using namespace std; + +class HGCNtupleVariables { +public : + + HGCNtupleVariables(TTree * /*tree*/ =0) : fChain(0) { } + ~HGCNtupleVariables() { } + /* void Init(TTree *tree); */ + void Init(TTree *tree, TTree *tree2); + Bool_t Notify(); + Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; } + std::vector getModuleLocation(int moduleID); + int getBIN(unsigned int skiroc,unsigned int channel); + float deltaR(float x1, float y1, float x2, float y2); + //double shower_comparisons(TProfile* shower, TH1F* hist); + //double shower_comparisons(TProfile* shower, TH1F* ref_h); + // TH1F* shower_comparisons(TProfile* shower, TH1F* hist); + // float find_my_calib(int layer, int en_chan); + // float find_official_calib(int layer, int en_chan); + std::map> module_map; + // std::map, float> offical_calib_map; + // std::map, float> my_calib_map; + + TTree *fChain; //!pointer to the analyzed TTree or TChain + TTree *fChain2; //!pointer to the analyzed TTree or TChain + Int_t fCurrent; //!current Tree number in a TChain + Int_t fCurrent2; //!current Tree number in a TChain + + // Fixed size dimensions of array or collections stored in the TTree if any. + + // Declaration of leaf types + UInt_t event; + UInt_t run; + Int_t pdgID; + Float_t beamEnergy; + Float_t trueBeamEnergy; + Int_t NRechits; + vector *rechit_detid; + vector *rechit_module; + vector *rechit_layer; + vector *rechit_chip; + vector *rechit_channel; + vector *rechit_type; + vector *rechit_x; + vector *rechit_y; + vector *rechit_z; + vector *rechit_iu; + vector *rechit_iv; + vector *rechit_energy; + vector *rechit_energy_noHG; + vector *rechit_amplitudeHigh; + vector *rechit_amplitudeLow; + vector *rechit_hg_goodFit; + vector *rechit_lg_goodFit; + vector *rechit_hg_saturated; + vector *rechit_lg_saturated; + vector *rechit_fully_calibrated; + vector *rechit_TS2High; + vector *rechit_TS2Low; + vector *rechit_TS3High; + vector *rechit_TS3Low; + vector *rechit_Tot; + vector *rechit_time; + vector *rechit_timeMaxHG; + vector *rechit_timeMaxLG; + vector *rechit_toaRise; + vector *rechit_toaFall; + + // List of branches + TBranch *b_event; //! + TBranch *b_run; //! + TBranch *b_pdgID; //! + TBranch *b_beamEnergy; //! + TBranch *b_trueBeamEnergy; //! + TBranch *b_NRechits; //! + TBranch *b_rechit_detid; //! + TBranch *b_rechit_module; //! + TBranch *b_rechit_layer; //! + TBranch *b_rechit_chip; //! + TBranch *b_rechit_channel; //! + TBranch *b_rechit_type; //! + TBranch *b_rechit_x; //! + TBranch *b_rechit_y; //! + TBranch *b_rechit_z; //! + TBranch *b_rechit_iu; //! + TBranch *b_rechit_iv; //! + TBranch *b_rechit_energy; //! + TBranch *b_rechit_energy_noHG; //! + TBranch *b_rechit_amplitudeHigh; //! + TBranch *b_rechit_amplitudeLow; //! + TBranch *b_rechit_hg_goodFit; //! + TBranch *b_rechit_lg_goodFit; //! + TBranch *b_rechit_hg_saturated; //! + TBranch *b_rechit_lg_saturated; //! + TBranch *b_rechit_fully_calibrated; //! + TBranch *b_rechit_TS2High; //! + TBranch *b_rechit_TS2Low; //! + TBranch *b_rechit_TS3High; //! + TBranch *b_rechit_TS3Low; //! + TBranch *b_rechit_Tot; //! + TBranch *b_rechit_time; //! + TBranch *b_rechit_timeMaxHG; //! + TBranch *b_rechit_timeMaxLG; //! + TBranch *b_rechit_toaRise; //! + TBranch *b_rechit_toaFall; //! + + // second tree + Int_t ntracks; + Float_t impactX_HGCal_layer_1; + Float_t impactY_HGCal_layer_1; + Float_t impactX_HGCal_layer_2; + Float_t impactY_HGCal_layer_2; + Float_t impactX_HGCal_layer_3; + Float_t impactY_HGCal_layer_3; + Float_t impactX_HGCal_layer_4; + Float_t impactY_HGCal_layer_4; + Float_t impactX_HGCal_layer_5; + Float_t impactY_HGCal_layer_5; + Float_t impactX_HGCal_layer_6; + Float_t impactY_HGCal_layer_6; + Float_t impactX_HGCal_layer_7; + Float_t impactY_HGCal_layer_7; + Float_t impactX_HGCal_layer_8; + Float_t impactY_HGCal_layer_8; + Float_t impactX_HGCal_layer_9; + Float_t impactY_HGCal_layer_9; + Float_t impactX_HGCal_layer_10; + Float_t impactY_HGCal_layer_10; + Float_t impactX_HGCal_layer_11; + Float_t impactY_HGCal_layer_11; + Float_t impactX_HGCal_layer_12; + Float_t impactY_HGCal_layer_12; + Float_t impactX_HGCal_layer_13; + Float_t impactY_HGCal_layer_13; + Float_t impactX_HGCal_layer_14; + Float_t impactY_HGCal_layer_14; + Float_t impactX_HGCal_layer_15; + Float_t impactY_HGCal_layer_15; + Float_t impactX_HGCal_layer_16; + Float_t impactY_HGCal_layer_16; + Float_t impactX_HGCal_layer_17; + Float_t impactY_HGCal_layer_17; + Float_t impactX_HGCal_layer_18; + Float_t impactY_HGCal_layer_18; + Float_t impactX_HGCal_layer_19; + Float_t impactY_HGCal_layer_19; + Float_t impactX_HGCal_layer_20; + Float_t impactY_HGCal_layer_20; + Float_t impactX_HGCal_layer_21; + Float_t impactY_HGCal_layer_21; + Float_t impactX_HGCal_layer_22; + Float_t impactY_HGCal_layer_22; + Float_t impactX_HGCal_layer_23; + Float_t impactY_HGCal_layer_23; + Float_t impactX_HGCal_layer_24; + Float_t impactY_HGCal_layer_24; + Float_t impactX_HGCal_layer_25; + Float_t impactY_HGCal_layer_25; + Float_t impactX_HGCal_layer_26; + Float_t impactY_HGCal_layer_26; + Float_t impactX_HGCal_layer_27; + Float_t impactY_HGCal_layer_27; + Float_t impactX_HGCal_layer_28; + Float_t impactY_HGCal_layer_28; + Float_t impactX_HGCal_layer_29; + Float_t impactY_HGCal_layer_29; + Float_t impactX_HGCal_layer_30; + Float_t impactY_HGCal_layer_30; + Float_t impactX_HGCal_layer_31; + Float_t impactY_HGCal_layer_31; + Float_t impactX_HGCal_layer_32; + Float_t impactY_HGCal_layer_32; + Float_t impactX_HGCal_layer_33; + Float_t impactY_HGCal_layer_33; + Float_t impactX_HGCal_layer_34; + Float_t impactY_HGCal_layer_34; + Float_t impactX_HGCal_layer_35; + Float_t impactY_HGCal_layer_35; + Float_t impactX_HGCal_layer_36; + Float_t impactY_HGCal_layer_36; + Float_t impactX_HGCal_layer_37; + Float_t impactY_HGCal_layer_37; + Float_t impactX_HGCal_layer_38; + Float_t impactY_HGCal_layer_38; + Float_t impactX_HGCal_layer_39; + Float_t impactY_HGCal_layer_39; + Float_t impactX_HGCal_layer_40; + Float_t impactY_HGCal_layer_40; + + + Float_t trackChi2_X; + Float_t trackChi2_Y; + Int_t dwcReferenceType; + Double_t m_x; + Double_t m_y; + Double_t b_x; + Double_t b_y; + + // List of branches + TBranch *b_ntracks; //! + TBranch *b_impactX_HGCal_layer_1; //! + TBranch *b_impactY_HGCal_layer_1; //! + TBranch *b_impactX_HGCal_layer_2; //! + TBranch *b_impactY_HGCal_layer_2; //! + TBranch *b_impactX_HGCal_layer_3; //! + TBranch *b_impactY_HGCal_layer_3; //! + TBranch *b_impactX_HGCal_layer_4; //! + TBranch *b_impactY_HGCal_layer_4; //! + TBranch *b_impactX_HGCal_layer_5; //! + TBranch *b_impactY_HGCal_layer_5; //! + TBranch *b_impactX_HGCal_layer_6; //! + TBranch *b_impactY_HGCal_layer_6; //! + TBranch *b_impactX_HGCal_layer_7; //! + TBranch *b_impactY_HGCal_layer_7; //! + TBranch *b_impactX_HGCal_layer_8; //! + TBranch *b_impactY_HGCal_layer_8; //! + TBranch *b_impactX_HGCal_layer_9; //! + TBranch *b_impactY_HGCal_layer_9; //! + TBranch *b_impactX_HGCal_layer_10; //! + TBranch *b_impactY_HGCal_layer_10; //! + TBranch *b_impactX_HGCal_layer_11; //! + TBranch *b_impactY_HGCal_layer_11; //! + TBranch *b_impactX_HGCal_layer_12; //! + TBranch *b_impactY_HGCal_layer_12; //! + TBranch *b_impactX_HGCal_layer_13; //! + TBranch *b_impactY_HGCal_layer_13; //! + TBranch *b_impactX_HGCal_layer_14; //! + TBranch *b_impactY_HGCal_layer_14; //! + TBranch *b_impactX_HGCal_layer_15; //! + TBranch *b_impactY_HGCal_layer_15; //! + TBranch *b_impactX_HGCal_layer_16; //! + TBranch *b_impactY_HGCal_layer_16; //! + TBranch *b_impactX_HGCal_layer_17; //! + TBranch *b_impactY_HGCal_layer_17; //! + TBranch *b_impactX_HGCal_layer_18; //! + TBranch *b_impactY_HGCal_layer_18; //! + TBranch *b_impactX_HGCal_layer_19; //! + TBranch *b_impactY_HGCal_layer_19; //! + TBranch *b_impactX_HGCal_layer_20; //! + TBranch *b_impactY_HGCal_layer_20; //! + TBranch *b_impactX_HGCal_layer_21; //! + TBranch *b_impactY_HGCal_layer_21; //! + TBranch *b_impactX_HGCal_layer_22; //! + TBranch *b_impactY_HGCal_layer_22; //! + TBranch *b_impactX_HGCal_layer_23; //! + TBranch *b_impactY_HGCal_layer_23; //! + TBranch *b_impactX_HGCal_layer_24; //! + TBranch *b_impactY_HGCal_layer_24; //! + TBranch *b_impactX_HGCal_layer_25; //! + TBranch *b_impactY_HGCal_layer_25; //! + TBranch *b_impactX_HGCal_layer_26; //! + TBranch *b_impactY_HGCal_layer_26; //! + TBranch *b_impactX_HGCal_layer_27; //! + TBranch *b_impactY_HGCal_layer_27; //! + TBranch *b_impactX_HGCal_layer_28; //! + TBranch *b_impactY_HGCal_layer_28; //! + TBranch *b_impactX_HGCal_layer_29; + TBranch *b_impactY_HGCal_layer_29; + TBranch *b_impactX_HGCal_layer_30; + TBranch *b_impactY_HGCal_layer_30; + TBranch *b_impactX_HGCal_layer_31; + TBranch *b_impactY_HGCal_layer_31; + TBranch *b_impactX_HGCal_layer_32; + TBranch *b_impactY_HGCal_layer_32; + TBranch *b_impactX_HGCal_layer_33; + TBranch *b_impactY_HGCal_layer_33; + TBranch *b_impactX_HGCal_layer_34; + TBranch *b_impactY_HGCal_layer_34; + TBranch *b_impactX_HGCal_layer_35; + TBranch *b_impactY_HGCal_layer_35; + TBranch *b_impactX_HGCal_layer_36; + TBranch *b_impactY_HGCal_layer_36; + TBranch *b_impactX_HGCal_layer_37; + TBranch *b_impactY_HGCal_layer_37; + TBranch *b_impactX_HGCal_layer_38; + TBranch *b_impactY_HGCal_layer_38; + TBranch *b_impactX_HGCal_layer_39; + TBranch *b_impactY_HGCal_layer_39; + TBranch *b_impactX_HGCal_layer_40; + TBranch *b_impactY_HGCal_layer_40; + + TBranch *b_trackChi2_X; //! + TBranch *b_trackChi2_Y; //! + TBranch *b_dwcReferenceType; //! + TBranch *b_m_x; //! + TBranch *b_m_y; //! + TBranch *b_b_x; //! + TBranch *b_b_y; //! + + + +}; + +#endif + +#ifdef HGCNtupleVariables_cxx + +void HGCNtupleVariables::Init(TTree *tree, TTree *tree2) +/* void HGCNtupleVariables::Init(TTree *tree) */ +{ + // The Init() function is called when the selector needs to initialize + // a new tree or chain. Typically here the branch addresses and branch + // pointers of the tree will be set. + // It is normally not necessary to make changes to the generated + // code, but the routine can be extended by the user if needed. + // Init() will be called many times when running on PROOF + // (once per file to be processed). + + // Set object pointer + rechit_detid = 0; + rechit_module = 0; + rechit_layer = 0; + rechit_chip = 0; + rechit_channel = 0; + rechit_type = 0; + rechit_x = 0; + rechit_y = 0; + rechit_z = 0; + rechit_iu = 0; + rechit_iv = 0; + rechit_energy = 0; + rechit_energy_noHG = 0; + rechit_amplitudeHigh = 0; + rechit_amplitudeLow = 0; + rechit_hg_goodFit = 0; + rechit_lg_goodFit = 0; + rechit_hg_saturated = 0; + rechit_lg_saturated = 0; + rechit_fully_calibrated = 0; + rechit_TS2High = 0; + rechit_TS2Low = 0; + rechit_TS3High = 0; + rechit_TS3Low = 0; + rechit_Tot = 0; + rechit_time = 0; + rechit_timeMaxHG = 0; + rechit_timeMaxLG = 0; + rechit_toaRise = 0; + rechit_toaFall = 0; + // Set branch addresses and branch pointers + if (!tree) return; + fChain = tree; + fCurrent = -1; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("event", &event, &b_event); + fChain->SetBranchAddress("run", &run, &b_run); + fChain->SetBranchAddress("pdgID", &pdgID, &b_pdgID); + fChain->SetBranchAddress("beamEnergy", &beamEnergy, &b_beamEnergy); + fChain->SetBranchAddress("trueBeamEnergy", &trueBeamEnergy, &b_trueBeamEnergy); + fChain->SetBranchAddress("NRechits", &NRechits, &b_NRechits); + fChain->SetBranchAddress("rechit_detid", &rechit_detid, &b_rechit_detid); + fChain->SetBranchAddress("rechit_module", &rechit_module, &b_rechit_module); + fChain->SetBranchAddress("rechit_layer", &rechit_layer, &b_rechit_layer); + fChain->SetBranchAddress("rechit_chip", &rechit_chip, &b_rechit_chip); + fChain->SetBranchAddress("rechit_channel", &rechit_channel, &b_rechit_channel); + fChain->SetBranchAddress("rechit_type", &rechit_type, &b_rechit_type); + fChain->SetBranchAddress("rechit_x", &rechit_x, &b_rechit_x); + fChain->SetBranchAddress("rechit_y", &rechit_y, &b_rechit_y); + fChain->SetBranchAddress("rechit_z", &rechit_z, &b_rechit_z); + fChain->SetBranchAddress("rechit_iu", &rechit_iu, &b_rechit_iu); + fChain->SetBranchAddress("rechit_iv", &rechit_iv, &b_rechit_iv); + fChain->SetBranchAddress("rechit_energy", &rechit_energy, &b_rechit_energy); + fChain->SetBranchAddress("rechit_energy_noHG", &rechit_energy_noHG, &b_rechit_energy_noHG); + fChain->SetBranchAddress("rechit_amplitudeHigh", &rechit_amplitudeHigh, &b_rechit_amplitudeHigh); + fChain->SetBranchAddress("rechit_amplitudeLow", &rechit_amplitudeLow, &b_rechit_amplitudeLow); + fChain->SetBranchAddress("rechit_hg_goodFit", &rechit_hg_goodFit, &b_rechit_hg_goodFit); + fChain->SetBranchAddress("rechit_lg_goodFit", &rechit_lg_goodFit, &b_rechit_lg_goodFit); + fChain->SetBranchAddress("rechit_hg_saturated", &rechit_hg_saturated, &b_rechit_hg_saturated); + fChain->SetBranchAddress("rechit_lg_saturated", &rechit_lg_saturated, &b_rechit_lg_saturated); + fChain->SetBranchAddress("rechit_fully_calibrated", &rechit_fully_calibrated, &b_rechit_fully_calibrated); + fChain->SetBranchAddress("rechit_TS2High", &rechit_TS2High, &b_rechit_TS2High); + fChain->SetBranchAddress("rechit_TS2Low", &rechit_TS2Low, &b_rechit_TS2Low); + fChain->SetBranchAddress("rechit_TS3High", &rechit_TS3High, &b_rechit_TS3High); + fChain->SetBranchAddress("rechit_TS3Low", &rechit_TS3Low, &b_rechit_TS3Low); + fChain->SetBranchAddress("rechit_Tot", &rechit_Tot, &b_rechit_Tot); + fChain->SetBranchAddress("rechit_time", &rechit_time, &b_rechit_time); + fChain->SetBranchAddress("rechit_timeMaxHG", &rechit_timeMaxHG, &b_rechit_timeMaxHG); + fChain->SetBranchAddress("rechit_timeMaxLG", &rechit_timeMaxLG, &b_rechit_timeMaxLG); + fChain->SetBranchAddress("rechit_toaRise", &rechit_toaRise, &b_rechit_toaRise); + fChain->SetBranchAddress("rechit_toaFall", &rechit_toaFall, &b_rechit_toaFall); + + // Set branch addresses and branch pointers + if (!tree2) return; + fChain2 = tree2; + fCurrent2 = -1; + fChain2->SetMakeClass(1); + + fChain2->SetBranchAddress("ntracks", &ntracks, &b_ntracks); + fChain2->SetBranchAddress("impactX_HGCal_layer_1", &impactX_HGCal_layer_1, &b_impactX_HGCal_layer_1); + fChain2->SetBranchAddress("impactY_HGCal_layer_1", &impactY_HGCal_layer_1, &b_impactY_HGCal_layer_1); + fChain2->SetBranchAddress("impactX_HGCal_layer_2", &impactX_HGCal_layer_2, &b_impactX_HGCal_layer_2); + fChain2->SetBranchAddress("impactY_HGCal_layer_2", &impactY_HGCal_layer_2, &b_impactY_HGCal_layer_2); + fChain2->SetBranchAddress("impactX_HGCal_layer_3", &impactX_HGCal_layer_3, &b_impactX_HGCal_layer_3); + fChain2->SetBranchAddress("impactY_HGCal_layer_3", &impactY_HGCal_layer_3, &b_impactY_HGCal_layer_3); + fChain2->SetBranchAddress("impactX_HGCal_layer_4", &impactX_HGCal_layer_4, &b_impactX_HGCal_layer_4); + fChain2->SetBranchAddress("impactY_HGCal_layer_4", &impactY_HGCal_layer_4, &b_impactY_HGCal_layer_4); + fChain2->SetBranchAddress("impactX_HGCal_layer_5", &impactX_HGCal_layer_5, &b_impactX_HGCal_layer_5); + fChain2->SetBranchAddress("impactY_HGCal_layer_5", &impactY_HGCal_layer_5, &b_impactY_HGCal_layer_5); + fChain2->SetBranchAddress("impactX_HGCal_layer_6", &impactX_HGCal_layer_6, &b_impactX_HGCal_layer_6); + fChain2->SetBranchAddress("impactY_HGCal_layer_6", &impactY_HGCal_layer_6, &b_impactY_HGCal_layer_6); + fChain2->SetBranchAddress("impactX_HGCal_layer_7", &impactX_HGCal_layer_7, &b_impactX_HGCal_layer_7); + fChain2->SetBranchAddress("impactY_HGCal_layer_7", &impactY_HGCal_layer_7, &b_impactY_HGCal_layer_7); + fChain2->SetBranchAddress("impactX_HGCal_layer_8", &impactX_HGCal_layer_8, &b_impactX_HGCal_layer_8); + fChain2->SetBranchAddress("impactY_HGCal_layer_8", &impactY_HGCal_layer_8, &b_impactY_HGCal_layer_8); + fChain2->SetBranchAddress("impactX_HGCal_layer_9", &impactX_HGCal_layer_9, &b_impactX_HGCal_layer_9); + fChain2->SetBranchAddress("impactY_HGCal_layer_9", &impactY_HGCal_layer_9, &b_impactY_HGCal_layer_9); + fChain2->SetBranchAddress("impactX_HGCal_layer_10", &impactX_HGCal_layer_10, &b_impactX_HGCal_layer_10); + fChain2->SetBranchAddress("impactY_HGCal_layer_10", &impactY_HGCal_layer_10, &b_impactY_HGCal_layer_10); + fChain2->SetBranchAddress("impactX_HGCal_layer_11", &impactX_HGCal_layer_11, &b_impactX_HGCal_layer_11); + fChain2->SetBranchAddress("impactY_HGCal_layer_11", &impactY_HGCal_layer_11, &b_impactY_HGCal_layer_11); + fChain2->SetBranchAddress("impactX_HGCal_layer_12", &impactX_HGCal_layer_12, &b_impactX_HGCal_layer_12); + fChain2->SetBranchAddress("impactY_HGCal_layer_12", &impactY_HGCal_layer_12, &b_impactY_HGCal_layer_12); + fChain2->SetBranchAddress("impactX_HGCal_layer_13", &impactX_HGCal_layer_13, &b_impactX_HGCal_layer_13); + fChain2->SetBranchAddress("impactY_HGCal_layer_13", &impactY_HGCal_layer_13, &b_impactY_HGCal_layer_13); + fChain2->SetBranchAddress("impactX_HGCal_layer_14", &impactX_HGCal_layer_14, &b_impactX_HGCal_layer_14); + fChain2->SetBranchAddress("impactY_HGCal_layer_14", &impactY_HGCal_layer_14, &b_impactY_HGCal_layer_14); + fChain2->SetBranchAddress("impactX_HGCal_layer_15", &impactX_HGCal_layer_15, &b_impactX_HGCal_layer_15); + fChain2->SetBranchAddress("impactY_HGCal_layer_15", &impactY_HGCal_layer_15, &b_impactY_HGCal_layer_15); + fChain2->SetBranchAddress("impactX_HGCal_layer_16", &impactX_HGCal_layer_16, &b_impactX_HGCal_layer_16); + fChain2->SetBranchAddress("impactY_HGCal_layer_16", &impactY_HGCal_layer_16, &b_impactY_HGCal_layer_16); + fChain2->SetBranchAddress("impactX_HGCal_layer_17", &impactX_HGCal_layer_17, &b_impactX_HGCal_layer_17); + fChain2->SetBranchAddress("impactY_HGCal_layer_17", &impactY_HGCal_layer_17, &b_impactY_HGCal_layer_17); + fChain2->SetBranchAddress("impactX_HGCal_layer_18", &impactX_HGCal_layer_18, &b_impactX_HGCal_layer_18); + fChain2->SetBranchAddress("impactY_HGCal_layer_18", &impactY_HGCal_layer_18, &b_impactY_HGCal_layer_18); + fChain2->SetBranchAddress("impactX_HGCal_layer_19", &impactX_HGCal_layer_19, &b_impactX_HGCal_layer_19); + fChain2->SetBranchAddress("impactY_HGCal_layer_19", &impactY_HGCal_layer_19, &b_impactY_HGCal_layer_19); + fChain2->SetBranchAddress("impactX_HGCal_layer_20", &impactX_HGCal_layer_20, &b_impactX_HGCal_layer_20); + fChain2->SetBranchAddress("impactY_HGCal_layer_20", &impactY_HGCal_layer_20, &b_impactY_HGCal_layer_20); + fChain2->SetBranchAddress("impactX_HGCal_layer_21", &impactX_HGCal_layer_21, &b_impactX_HGCal_layer_21); + fChain2->SetBranchAddress("impactY_HGCal_layer_21", &impactY_HGCal_layer_21, &b_impactY_HGCal_layer_21); + fChain2->SetBranchAddress("impactX_HGCal_layer_22", &impactX_HGCal_layer_22, &b_impactX_HGCal_layer_22); + fChain2->SetBranchAddress("impactY_HGCal_layer_22", &impactY_HGCal_layer_22, &b_impactY_HGCal_layer_22); + fChain2->SetBranchAddress("impactX_HGCal_layer_23", &impactX_HGCal_layer_23, &b_impactX_HGCal_layer_23); + fChain2->SetBranchAddress("impactY_HGCal_layer_23", &impactY_HGCal_layer_23, &b_impactY_HGCal_layer_23); + fChain2->SetBranchAddress("impactX_HGCal_layer_24", &impactX_HGCal_layer_24, &b_impactX_HGCal_layer_24); + fChain2->SetBranchAddress("impactY_HGCal_layer_24", &impactY_HGCal_layer_24, &b_impactY_HGCal_layer_24); + fChain2->SetBranchAddress("impactX_HGCal_layer_25", &impactX_HGCal_layer_25, &b_impactX_HGCal_layer_25); + fChain2->SetBranchAddress("impactY_HGCal_layer_25", &impactY_HGCal_layer_25, &b_impactY_HGCal_layer_25); + fChain2->SetBranchAddress("impactX_HGCal_layer_26", &impactX_HGCal_layer_26, &b_impactX_HGCal_layer_26); + fChain2->SetBranchAddress("impactY_HGCal_layer_26", &impactY_HGCal_layer_26, &b_impactY_HGCal_layer_26); + fChain2->SetBranchAddress("impactX_HGCal_layer_27", &impactX_HGCal_layer_27, &b_impactX_HGCal_layer_27); + fChain2->SetBranchAddress("impactY_HGCal_layer_27", &impactY_HGCal_layer_27, &b_impactY_HGCal_layer_27); + fChain2->SetBranchAddress("impactX_HGCal_layer_28", &impactX_HGCal_layer_28, &b_impactX_HGCal_layer_28); + fChain2->SetBranchAddress("impactY_HGCal_layer_28", &impactY_HGCal_layer_28, &b_impactY_HGCal_layer_28); + fChain2->SetBranchAddress("impactX_HGCal_layer_29", &impactX_HGCal_layer_29, &b_impactX_HGCal_layer_29); + fChain2->SetBranchAddress("impactY_HGCal_layer_29", &impactY_HGCal_layer_29, &b_impactY_HGCal_layer_29); + fChain2->SetBranchAddress("impactX_HGCal_layer_30", &impactX_HGCal_layer_30, &b_impactX_HGCal_layer_30); + fChain2->SetBranchAddress("impactY_HGCal_layer_30", &impactY_HGCal_layer_30, &b_impactY_HGCal_layer_30); + fChain2->SetBranchAddress("impactX_HGCal_layer_31", &impactX_HGCal_layer_31, &b_impactX_HGCal_layer_31); + fChain2->SetBranchAddress("impactY_HGCal_layer_31", &impactY_HGCal_layer_31, &b_impactY_HGCal_layer_31); + fChain2->SetBranchAddress("impactX_HGCal_layer_32", &impactX_HGCal_layer_32, &b_impactX_HGCal_layer_32); + fChain2->SetBranchAddress("impactY_HGCal_layer_32", &impactY_HGCal_layer_32, &b_impactY_HGCal_layer_32); + fChain2->SetBranchAddress("impactX_HGCal_layer_33", &impactX_HGCal_layer_33, &b_impactX_HGCal_layer_33); + fChain2->SetBranchAddress("impactY_HGCal_layer_33", &impactY_HGCal_layer_33, &b_impactY_HGCal_layer_33); + fChain2->SetBranchAddress("impactX_HGCal_layer_34", &impactX_HGCal_layer_34, &b_impactX_HGCal_layer_34); + fChain2->SetBranchAddress("impactY_HGCal_layer_34", &impactY_HGCal_layer_34, &b_impactY_HGCal_layer_34); + fChain2->SetBranchAddress("impactX_HGCal_layer_35", &impactX_HGCal_layer_35, &b_impactX_HGCal_layer_35); + fChain2->SetBranchAddress("impactY_HGCal_layer_35", &impactY_HGCal_layer_35, &b_impactY_HGCal_layer_35); + fChain2->SetBranchAddress("impactX_HGCal_layer_36", &impactX_HGCal_layer_36, &b_impactX_HGCal_layer_36); + fChain2->SetBranchAddress("impactY_HGCal_layer_36", &impactY_HGCal_layer_36, &b_impactY_HGCal_layer_36); + fChain2->SetBranchAddress("impactX_HGCal_layer_37", &impactX_HGCal_layer_37, &b_impactX_HGCal_layer_37); + fChain2->SetBranchAddress("impactY_HGCal_layer_37", &impactY_HGCal_layer_37, &b_impactY_HGCal_layer_37); + fChain2->SetBranchAddress("impactX_HGCal_layer_38", &impactX_HGCal_layer_38, &b_impactX_HGCal_layer_38); + fChain2->SetBranchAddress("impactY_HGCal_layer_38", &impactY_HGCal_layer_38, &b_impactY_HGCal_layer_38); + fChain2->SetBranchAddress("impactX_HGCal_layer_39", &impactX_HGCal_layer_39, &b_impactX_HGCal_layer_39); + fChain2->SetBranchAddress("impactY_HGCal_layer_39", &impactY_HGCal_layer_39, &b_impactY_HGCal_layer_39); + fChain2->SetBranchAddress("impactX_HGCal_layer_40", &impactX_HGCal_layer_40, &b_impactX_HGCal_layer_40); + fChain2->SetBranchAddress("impactY_HGCal_layer_40", &impactY_HGCal_layer_40, &b_impactY_HGCal_layer_40); + + fChain2->SetBranchAddress("trackChi2_X", &trackChi2_X, &b_trackChi2_X); + fChain2->SetBranchAddress("trackChi2_Y", &trackChi2_Y, &b_trackChi2_Y); + fChain2->SetBranchAddress("dwcReferenceType", &dwcReferenceType, &b_dwcReferenceType); + fChain2->SetBranchAddress("m_x", &m_x, &b_m_x); + fChain2->SetBranchAddress("m_y", &m_y, &b_m_y); + fChain2->SetBranchAddress("b_x", &b_x, &b_b_x); + fChain2->SetBranchAddress("b_y", &b_y, &b_b_y); + + Notify(); +} + +Bool_t HGCNtupleVariables::Notify() +{ + // The Notify() function is called when a new file is opened. This + // can be either for a new TTree in a TChain or when when a new TTree + // is started when using PROOF. It is normally not necessary to make changes + // to the generated code, but the routine can be extended by the + // user if needed. The return value is currently not used. + + return kTRUE; +} + +#endif // #ifdef HGCNtupleVariables_cxx diff --git a/inverted_tracking_cut/Makefile b/inverted_tracking_cut/Makefile new file mode 100644 index 0000000..0e04de3 --- /dev/null +++ b/inverted_tracking_cut/Makefile @@ -0,0 +1,37 @@ +CXX = g++ + +CXXFLAGS= $(shell root-config --cflags) +LIBS = $(shell root-config --libs) + + +SOURCES = HGCNtupleVariables.cc AnalyzeHGCOctTB.cc +HEADERS = HGCNtupleVariables.h AnalyzeHGCOctTB.h +OBJECTS = $(SOURCES:.cc=.o) + +EXECUTABLE = analyzeHGCOctTB + +all: $(SOURCES) $(EXECUTABLE) + +%.o: %.cc + @echo Compiling $<... + $(CXX) $(CXXFLAGS) -c -o $@ $< + + +$(EXECUTABLE): $(OBJECTS) + @echo "Linking $(PROGRAM) ..." + @echo "@$(CXX) $(LIBS) $(OBJECTS) -o $@" + @$(CXX) -o $@ $^ $(LIBS) + @echo "done" + + +# Specifying the object files as intermediates deletes them automatically after the build process. +.INTERMEDIATE: $(OBJECTS) + +# The default target, which gives instructions, can be called regardless of whether or not files need to be updated. +.PHONY : clean +clean: + rm -f $(OBJECTS) $(EXECUTABLE) + +### +HGCNtupleVariables.o: HGCNtupleVariables.h +AnalyzeHGCOctTB.o:HGCNtupleVariables.h AnalyzeHGCOctTB.h diff --git a/inverted_tracking_cut/analyzeHGCOctTB b/inverted_tracking_cut/analyzeHGCOctTB new file mode 100755 index 0000000..530e8d3 Binary files /dev/null and b/inverted_tracking_cut/analyzeHGCOctTB differ diff --git a/tracking_inclusion/AnalyzeHGCOctTB.cc b/tracking_inclusion/AnalyzeHGCOctTB.cc new file mode 100644 index 0000000..136e784 --- /dev/null +++ b/tracking_inclusion/AnalyzeHGCOctTB.cc @@ -0,0 +1,492 @@ +#define AnalyzeHGCOctTB_cxx + +#include +#include +#include +#include "AnalyzeHGCOctTB.h" + +using namespace std; + + + +// chip 3022,44,3028 + + + + +int main(int argc, char* argv[]) +{ + + if (argc < 3) { + cerr << "Please give 4 arguments " << "runList " << " " << "outputFileName" << " " << "dataset" <<" " << "configuration" << endl; + return -1; + } + const char *inputFileList = argv[1]; + const char *outFileName = argv[2]; + const char *data = argv[3]; + const char *config = argv[4]; + + AnalyzeHGCOctTB hgcOctTB(inputFileList, outFileName, data, config); + cout << "dataset " << data << " " << endl; + cout << "congiguration " << config << " " << endl; + + hgcOctTB.EventLoop(data); + return 0; +} + +void AnalyzeHGCOctTB::EventLoop(const char *data) { + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + cout << "nentries " << nentries << endl; + cout << "Analyzing dataset " << data << " " << endl; + + Long64_t nbytes = 0, nb = 0; + Long64_t nbytes2 = 0, nb2 = 0; + int decade = 0; + + float rechit_cut[28] = {0.02,0.039,0.019,0.02,0.037,0.076,0.10, + 0.14,0.18,0.24,0.28,0.33,0.48,0.52, + 0.56,0.6,0.64,0.70,0.74,0.78,0.82, + 0.86,0.90,0.92,0.94,0.95,0.98,1.0}; + + bool DEBUG = false; + Long64_t cut_count[28]; + Long64_t nEvents = 0; + Long64_t MIP_pions = 0; + int TOTAL_ACTIVE_LAYER = -1; + int EE_LAYER = -1; + int FH_LAYER = -1; + if(!strcmp(conf_,"alpha") || !strcmp(conf_,"config1")) { + TOTAL_ACTIVE_LAYER = 40; + EE_LAYER = 28; + FH_LAYER = 12; + } + else if(!strcmp(conf_,"bravo") || !strcmp(conf_,"config2")){ + TOTAL_ACTIVE_LAYER = 39; + EE_LAYER = 28; + FH_LAYER = 11; + } + else if(!strcmp(conf_,"charlie") || !strcmp(conf_,"config3")) { + TOTAL_ACTIVE_LAYER = 20; + EE_LAYER = 8; + FH_LAYER = 12; + } + else { + cout<<"ERROR: Unknown configuration!!!!"< decade) + cout << 10 * k << " %" << endl; + decade = k; + + // ===============read this entry == == == == == == == == == == == + + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) { break; cout<<"Breaking"<GetEntry(jentry); nbytes += nb; + nb2 = fChain2->GetEntry(jentry); nbytes2 += nb2; + + if(NRechits == 0) continue; + // if(NRechits > 50 || NRechits < 20) continue; + h_nTracks->Fill(ntracks); + if(ntracks != 1) continue; + Float_t track_x[40]; + Float_t track_y[40]; + + track_x[0] = impactX_HGCal_layer_1; + track_y[0] = impactY_HGCal_layer_1; + track_x[1] = impactX_HGCal_layer_2; + track_y[1] = impactY_HGCal_layer_2; + track_x[2] = impactX_HGCal_layer_3; + track_y[2] = impactY_HGCal_layer_3; + track_x[3] = impactX_HGCal_layer_4; + track_y[3] = impactY_HGCal_layer_4; + track_x[4] = impactX_HGCal_layer_5; + track_y[4] = impactY_HGCal_layer_5; + track_x[5] = impactX_HGCal_layer_6; + track_y[5] = impactY_HGCal_layer_6; + track_x[6] = impactX_HGCal_layer_7; + track_y[6] = impactY_HGCal_layer_7; + track_x[7] = impactX_HGCal_layer_8; + track_y[7] = impactY_HGCal_layer_8; + track_x[8] = impactX_HGCal_layer_9; + track_y[8] = impactY_HGCal_layer_9; + track_x[9] = impactX_HGCal_layer_10; + track_y[9] = impactY_HGCal_layer_10; + track_x[10] = impactX_HGCal_layer_11; + track_y[10] = impactY_HGCal_layer_11; + track_x[11] = impactX_HGCal_layer_12; + track_y[11] = impactY_HGCal_layer_12; + track_x[12] = impactX_HGCal_layer_13; + track_y[12] = impactY_HGCal_layer_13; + track_x[13] = impactX_HGCal_layer_14; + track_y[13] = impactY_HGCal_layer_14; + track_x[14] = impactX_HGCal_layer_15; + track_y[14] = impactY_HGCal_layer_15; + track_x[15] = impactX_HGCal_layer_16; + track_y[15] = impactY_HGCal_layer_16; + track_x[16] = impactX_HGCal_layer_17; + track_y[16] = impactY_HGCal_layer_17; + track_x[17] = impactX_HGCal_layer_18; + track_y[17] = impactY_HGCal_layer_18; + track_x[18] = impactX_HGCal_layer_19; + track_y[18] = impactY_HGCal_layer_19; + track_x[19] = impactX_HGCal_layer_20; + track_y[19] = impactY_HGCal_layer_20; + track_x[20] = impactX_HGCal_layer_21; + track_y[20] = impactY_HGCal_layer_21; + track_x[21] = impactX_HGCal_layer_22; + track_y[21] = impactY_HGCal_layer_22; + track_x[22] = impactX_HGCal_layer_23; + track_y[22] = impactY_HGCal_layer_23; + track_x[23] = impactX_HGCal_layer_24; + track_y[23] = impactY_HGCal_layer_24; + track_x[24] = impactX_HGCal_layer_25; + track_y[24] = impactY_HGCal_layer_25; + track_x[25] = impactX_HGCal_layer_26; + track_y[25] = impactY_HGCal_layer_26; + track_x[26] = impactX_HGCal_layer_27; + track_y[26] = impactY_HGCal_layer_27; + track_x[27] = impactX_HGCal_layer_28; + track_y[27] = impactY_HGCal_layer_28; + track_x[28] = impactX_HGCal_layer_29; + track_y[28] = impactY_HGCal_layer_29; + track_x[29] = impactX_HGCal_layer_30; + track_y[29] = impactY_HGCal_layer_30; + track_x[30] = impactX_HGCal_layer_31; + track_y[30] = impactY_HGCal_layer_31; + track_x[31] = impactX_HGCal_layer_32; + track_y[31] = impactY_HGCal_layer_32; + track_x[32] = impactX_HGCal_layer_33; + track_y[32] = impactY_HGCal_layer_33; + track_x[33] = impactX_HGCal_layer_34; + track_y[33] = impactY_HGCal_layer_34; + track_x[34] = impactX_HGCal_layer_35; + track_y[34] = impactY_HGCal_layer_35; + track_x[35] = impactX_HGCal_layer_36; + track_y[35] = impactY_HGCal_layer_36; + track_x[36] = impactX_HGCal_layer_37; + track_y[36] = impactY_HGCal_layer_37; + track_x[37] = impactX_HGCal_layer_38; + track_y[37] = impactY_HGCal_layer_38; + track_x[38] = impactX_HGCal_layer_39; + track_y[38] = impactY_HGCal_layer_39; + track_x[39] = impactX_HGCal_layer_40; + track_y[39] = impactY_HGCal_layer_40; + + + Double_t rechitEnergySum = 0.0; + Double_t rechitEnergySum_EE = 0.0; + Double_t rechitEnergySum_FH = 0.0; + Double_t un_cali = 0.0; + Long_t Nrechit_layer[40]; + Long_t NRechits_EE[28]; + Long_t NRechits_FH[12][7]; + // long Nrechit_layer[40]; + // long NRechits_EE[28]; + // long NRechits_FH[12][7]; + + int module_part_ = -1; + int module_layer_ = -1; + int module_position_ = -1; + vector dR[40]; + double dr_min_index[40]; + double dr_min[40]; + + for(int ii=0;ii<40;ii++){ + if(ii<28) { + NRechits_EE[ii]=0; + // dR[ii].clear(); + // dr_min_index[ii] = -1.0; + // dr_min[ii] = 1.e10; + } + Nrechit_layer[ii]=0; + dR[ii].clear(); + dr_min_index[ii] = -1.0; + dr_min[ii] = 1.e10; + + } + for(int ii=0;ii<12;ii++){ + for(int jj=0;jj<7;jj++){ + NRechits_FH[ii][jj]=0; + } + } + + + // cout<<"BEFORE!!!"< temp_moduleID; + for(int i = 0 ; i < NRechits; i++){ + temp_moduleID.clear(); + int temp_layer = rechit_layer->at(i); + int temp_chip = rechit_chip->at(i); + int temp_channel = rechit_channel->at(i); + int en_chan = temp_chip*1000+temp_channel; + if(en_chan == 3022 || en_chan == 3028 || en_chan == 44) continue; + if(rechit_amplitudeHigh->at(i) < 20) continue; + Nrechit_layer[temp_layer-1]++; + + temp_moduleID = getModuleLocation(rechit_module->at(i)); + if(!temp_moduleID.size() || temp_moduleID.size()<3) { + cout<<"ERROR: Could NOT locate MODULE location for module "<at(i)<Fill(rechit_x->at(i),track_x[temp_layer-1]); + // h_rechitY_vs_trackY_layer[temp_layer-1]->Fill(rechit_y->at(i),track_y[temp_layer-1]); + double recx = rechit_x->at(i); + double recy = rechit_y->at(i); + double trackx = track_x[temp_layer-1]; + double tracky = track_y[temp_layer-1]; + double temp = deltaR(recx,recy,-1*trackx,-1*tracky); + double dX = recx - (-1*trackx); + double dY = recy - (-1*tracky); + // cout<<"point A"<Fill(recx,recy); + h_trackX_vs_trackY_layer[temp_layer-1]->Fill(-1*trackx,-1*tracky); + h_rechitX_vs_trackX_layer[temp_layer-1]->Fill(recx,-1*trackx); + h_rechitY_vs_trackY_layer[temp_layer-1]->Fill(recy,-1*tracky); + h_dX_dY_layer[temp_layer-1]->Fill(dX,dY); + h_dR[temp_layer-1]->Fill(abs(temp)); + } + else if(module_position_ == 4) { + h_rechitX_vs_rechitY_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(recx,recy); + h_trackX_vs_trackY_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(-1*trackx,-1*tracky); + h_rechitX_vs_trackX_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(recx,-1*trackx); + h_rechitY_vs_trackY_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(recy,-1*tracky); + h_dX_dY_FH_layer[temp_layer-EE_LAYER-1][module_position_-1]->Fill(dX,dY); + h_dR_FH[temp_layer-EE_LAYER-1][module_position_-1]->Fill(abs(temp)); + } + else { + cout<<"ERROR: Something went wrong at Point Romeo Hotel!!!"<Fill(module_part_); + + if(module_part_ == 0) { + rechitEnergySum_EE+=rechit_energy->at(i); + NRechits_EE[module_layer_-1]++; + h_adcHG_EE[module_layer_-1][channel_bin]->Fill(rechit_amplitudeHigh->at(i)); + } + if(module_part_ == 1) { + rechitEnergySum_FH+=rechit_energy->at(i); + // cout<<"BEFORE ====="<at(i)<Fill(rechit_amplitudeHigh->at(i)); + } + rechitEnergySum+=rechit_energy->at(i); + + } + + + + // cout<<"AFTER!!!"< 50) return; + + if(DEBUG) cout<<"DEBUG: Values Assigned!!!"< 9 ) continue; + Nrechit_FH+=NRechits_FH[iL-EE_LAYER][j]; + h_NRechits_FH[iL-EE_LAYER][j]->Fill(NRechits_FH[iL-EE_LAYER][j]); + // cout<<"LOOK HERE FH = "<Fill(10); + else if(!strcmp(conf_,"bravo")) h_configuration->Fill(20); + else if(!strcmp(conf_,"charlie")) h_configuration->Fill(30); + else { + cout<<"ERROR: Unknown configuration!!!!"< 28) + // cout<<"NRechits_FH["<at(dr_min_index[i]); + int temp_channel = rechit_channel->at(dr_min_index[i]); + int channel_bin = getBIN(temp_chip,temp_channel); + if (channel_bin < 0) { cout<<"INVALID CHANNEL!!!"<at(dr_min_index[i])); + if(!temp_moduleID.size() || temp_moduleID.size()<3) { + cout<<"ERROR: Could NOT locate MODULE location for module "<at(i)<Fill(pdgID); + h_beamEnergy->Fill(beamEnergy); + h_runNumber->Fill(run); + h_rechit_energy_all->Fill(rechitEnergySum); + h_rechit_energy_EE_only->Fill(rechitEnergySum_EE); + h_rechit_energy_FH_only->Fill(rechitEnergySum_FH); + h_rechit_energy_EE_vs_FH->Fill(rechitEnergySum_EE,rechitEnergySum_FH); + h_rechit_En_NRechits->Fill(NRechits,rechitEnergySum); + // h_Nrechit_EE_vs_FH->Fill(Nrechit_EE,Nrechit_FH); + // h_Nrechit_EE->Fill(Nrechit_EE); + // h_Nrechit_FH->Fill(Nrechit_FH); + + if(DEBUG) cout<<"DEBUG: End of Event = "<GetXaxis()->SetTitle("energy in EE(MIPs)"); + h_rechit_energy_EE_vs_FH->GetYaxis()->SetTitle("energy in FH(MIPs)"); + + h_Nrechit_EE = new TH1F("h_Nrechit_EE","NRechits in EE",500,0.0,1000.0); + h_Nrechit_FH = new TH1F("h_Nrechit_FH","NRechits in FH",500,0.0,1000.0); + h_Nrechit_EE_vs_FH = new TH2F("h_Nrechit_EE_vs_FH","NRechits EE vs FH",500,0.0,1000.0,500,0.0,1000.0); + h_Nrechit_EE_vs_FH->GetXaxis()->SetTitle("NRechits in EE"); + h_Nrechit_EE_vs_FH->GetYaxis()->SetTitle("NRechits in FH"); + + + + h_rechit_En_NRechits = new TH2F("h_rechit_En_NRechits","h_rechit_En_NRechits",100,0,1000,500,0.0,20000.0); + + d_adcHG = oFile->mkdir("ADC_distributions"); + d_adcHG->cd(); + for(int i = 0; i < 28; i++) { + if((!strcmp(conf,"charlie") || !strcmp(conf,"config3")) && (i+1 > 8)) break; + sprintf(dir_name,"EE_%d",i+1); + d_EE[i] = d_adcHG->mkdir(dir_name); + d_EE[i]->cd(); + sprintf(hname,"h_Nrechits_EE_L%d",i+1); + h_NRechits_EE[i] = new TH1F(hname, hname, 50, 0, 50); + sprintf(hname,"h_dR_layer_%d",i+1); + h_dR[i] = new TH1F(hname,hname,21.0,-1.0,20.0); + + sprintf(hname,"h_rechitX_rechitY_layer_%d",i+1); + h_rechitX_vs_rechitY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_trackX_trackY_layer_%d",i+1); + h_trackX_vs_trackY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + sprintf(hname,"h_rechitX_trackX_layer_%d",i+1); + h_rechitX_vs_trackX_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_rechitY_trackY_layer_%d",i+1); + h_rechitY_vs_trackY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + + sprintf(hname,"h_dX_dY_layer_%d",i+1); + h_dX_dY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + int chan = 0; + for(int chip = 0; chip < 4; chip++) { + for(int cc = 0; cc < 64; cc+=2,chan++) { + sprintf(hname,"h_adcHG_EE_L%d_P0_chip%d_chan%d",i+1,chip,cc); + h_adcHG_EE[i][chan] = new TH1F(hname, hname, 100, 0, 400); + sprintf(hname,"h_adcHG_EE_L%d_P0_chip%d_chan%d_track",i+1,chip,cc); + h_adcHG_EE_track[i][chan] = new TH1F(hname, hname, 100, 0, 400); + + } + } + } + for(int i = 0; i < 12; i++){ + for(int j = 0; j < 7; j++) { + /* if(!strcmp(conf,"alpha") && (i+1)>9 ) { */ + /* if((j+1) != 4) continue; */ + /* } */ + + sprintf(dir_name,"FH_L%d_P%d",i+1,j+1); + d_FH[i][j] = d_adcHG->mkdir(dir_name); + d_FH[i][j]->cd(); + + sprintf(hname,"h_Nrechits_FH_L%d_P%d",i+1,j+1); + h_NRechits_FH[i][j] = new TH1F(hname, hname, 50, 0, 50); + + sprintf(hname,"h_dR_FH_layer_L%d_P%d",i+1,j+1); + h_dR_FH[i][j] = new TH1F(hname,hname,21.0,-1.0,20.0); + + sprintf(hname,"h_rechitX_rechitY_FH_layer_L%d_P%d",i+1,j+1); + h_rechitX_vs_rechitY_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_trackX_trackY_FH_layer_L%d_P%d",i+1,j+1); + h_trackX_vs_trackY_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + sprintf(hname,"h_rechitX_trackX_FH_layer_L%d_P%d",i+1,j+1); + h_rechitX_vs_trackX_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_rechitY_trackY_FH_layer_L%d_P%d",i+1,j+1); + h_rechitY_vs_trackY_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + + sprintf(hname,"h_dX_dY_FH_layer_L%d_P%d",i+1,j+1); + h_dX_dY_FH_layer[i][j] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + + int chan = 0; + for(int chip = 0; chip < 4; chip++) { + for(int cc = 0; cc < 64; cc+=2,chan++) { + sprintf(hname,"h_adcHG_FH_L%d_P%d_chip%d_chan%d",i+1,j+1,chip,cc); + h_adcHG_FH[i][j][chan] = new TH1F(hname, hname, 100, 0, 400); + sprintf(hname,"h_adcHG_FH_L%d_P%d_chip%d_chan%d_track",i+1,j+1,chip,cc); + h_adcHG_FH_track[i][j][chan] = new TH1F(hname, hname, 100, 0, 400); + + + } + } + } + } + // sprintf(hname,"h_rechit_E_full_official"); + // h_ERechits_full_official_calib = new TH1F(hname,hname,375.0,0.0,25000.0); + + // sprintf(hname,"h_rechit_E_full_my"); + // h_ERechits_full_my_calib = new TH1F(hname,hname,375.0,0.0,25000.0); + + + // d_Nrechit_layer = oFile->mkdir("Nrechit_layer"); + // d_Nrechit_layer->cd(); + + // for (int i=0;i<28;i++) { + // sprintf(hname,"h_rechit_layer_%d",i+1); + // h_nRechits_layer[i] = new TH1F(hname,hname,3000,0.0,3000.0); + // } + + + + // d_rechit_en_layer = oFile->mkdir("rechit_energys"); + // d_rechit_en_layer->cd(); + + + // for (int i=0;i<28;i++) { + // sprintf(hname,"h_rechit_E_layer_%d",i); + // h_ERechits_layer[i] = new TH1F(hname,hname,250.0,0.0,5000.0); + // } + + + +} + + +void AnalyzeHGCOctTB::moduleMap_init(const char* config) { + char *f_name = new char[200]; + + if(strcmp(config,"alpha")==0 || strcmp(config,"config1")==0) { + sprintf(f_name,"../config_maps/moduleMAP_config1.txt"); + cout<<"\n\nINFO: Mapping module configuration ALPHA (oct10-oct17) "<>layer_>>module_>>chip_>>channel_>>adc_){ +// en_chan = chip_*1000+channel_; +// std::pair temp; +// temp = std::make_pair(layer_,en_chan); +// std::pair, float> temp1; +// temp1 = std::make_pair(temp, adc_); +// offical_calib_map.insert(temp1); +// } +// } + +// void AnalyzeHGCOctTB::my_calib_init() { +// char *f_name = new char[200]; +// sprintf(f_name,"/home/shubham/work/HGCAL/CERNTB/CERN_5_oct_2018/txt_files/ADC_MIP_v11.txt"); +// std::ifstream in(f_name); +// if(!in){ +// cout<<"Could not find "<>layer_>>chip_>>channel_>>adc_>>chi2>>mip_err>>entry){ +// en_chan = chip_*1000+channel_; +// std::pair temp; +// temp = std::make_pair(layer_+1,en_chan); +// std::pair, float> temp1; +// temp1 = std::make_pair(temp, adc_); +// my_calib_map.insert(temp1); +// } +// } + +AnalyzeHGCOctTB::AnalyzeHGCOctTB(const TString &inputFileList, const char *outFileName, const char* dataset, const char* config) { + + TChain *tree = new TChain("rechitntupler/hits"); + TChain *tree2 = new TChain("trackimpactntupler/impactPoints"); + + if( ! FillChain(tree, tree2, inputFileList) ) { + std::cerr << "Cannot get the tree " << std::endl; + } else { + std::cout << "Initiating analysis of dataset " << dataset << std::endl; + } + + /* if( ! FillChain(tree, inputFileList) ) { */ + /* std::cerr << "Cannot get the tree " << std::endl; */ + /* } else { */ + /* std::cout << "Initiating analysis of dataset " << dataset << std::endl; */ + /* } */ + + HGCNtupleVariables::Init(tree, tree2); + /* HGCNtupleVariables::Init(tree); */ + + BookHistogram(outFileName, config); + moduleMap_init(config); + // offical_calib_init(); + // my_calib_init(); + +} + +Bool_t AnalyzeHGCOctTB::FillChain(TChain *chain, TChain *chain2, const TString &inputFileList) { +/* Bool_t AnalyzeHGCOctTB::FillChain(TChain *chain, const TString &inputFileList) { */ + + ifstream infile(inputFileList, ifstream::in); + std::string buffer; + + if(!infile.is_open()) { + std::cerr << "** ERROR: Can't open '" << inputFileList << "' for input" << std::endl; + return kFALSE; + } + + std::cout << "TreeUtilities : FillChain " << std::endl; + while(1) { + infile >> buffer; + if(!infile.good()) break; + //std::cout << "Adding tree from " << buffer.c_str() << std::endl; + chain->Add(buffer.c_str()); + chain2->Add(buffer.c_str()); + } + std::cout << "No. of Entries in chain : " << chain->GetEntries() << std::endl; + std::cout << "No. of Entries in chain2 : " << chain2->GetEntries() << std::endl; + return kTRUE; +} + +Long64_t AnalyzeHGCOctTB::LoadTree(Long64_t entry) { + // Set the environment to read one entry + if (!fChain) return -5; + Long64_t centry = fChain->LoadTree(entry); + if (centry < 0) return centry; + if (!fChain->InheritsFrom(TChain::Class())) return centry; + TChain *chain = (TChain*)fChain; + if (chain->GetTreeNumber() != fCurrent) { + fCurrent = chain->GetTreeNumber(); + // Notify(); + } + + if (!fChain2) return -5; + Long64_t centry2 = fChain2->LoadTree(entry); + if (centry2 < 0) return centry2; + if (!fChain2->InheritsFrom(TChain::Class())) return centry2; + TChain *chain2 = (TChain*)fChain2; + if (chain2->GetTreeNumber() != fCurrent) { + fCurrent = chain->GetTreeNumber(); + // Notify(); + } + + + //if (centry==centry2) + return centry; + // cout<<"centry = "<0) + // return centry; + // else return -1; +} + +AnalyzeHGCOctTB::~AnalyzeHGCOctTB() { + + // if (!fChain || !fChain2) return; + // delete fChain->GetCurrentFile(); + // delete fChain2->GetCurrentFile(); + // oFile->cd(); + // oFile->Write(); + // oFile->Close(); + + + if (!fChain) return; + delete fChain->GetCurrentFile(); + oFile->cd(); + oFile->Write(); + oFile->Close(); + +} + +#endif diff --git a/tracking_inclusion/Data_719_noise_v9.txt b/tracking_inclusion/Data_719_noise_v9.txt new file mode 100644 index 0000000..ad3f1b0 --- /dev/null +++ b/tracking_inclusion/Data_719_noise_v9.txt @@ -0,0 +1 @@ +/afs/cern.ch/work/s/spandey/public/hgcal/2018_TB/OctoberTB/rereco/gitlab/CMSSW_9_3_0/src/HGCal/runConfigurationsCERNOctober2018/rereco_file/tree/ntuple_719_noise.root diff --git a/tracking_inclusion/Data_719_official_v9.txt b/tracking_inclusion/Data_719_official_v9.txt new file mode 100644 index 0000000..ae2a0b0 --- /dev/null +++ b/tracking_inclusion/Data_719_official_v9.txt @@ -0,0 +1 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_719.root diff --git a/tracking_inclusion/Data_muon_config1.txt b/tracking_inclusion/Data_muon_config1.txt new file mode 100644 index 0000000..e1c8a90 --- /dev/null +++ b/tracking_inclusion/Data_muon_config1.txt @@ -0,0 +1,20 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_697.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_722.root diff --git a/tracking_inclusion/Data_muon_config1_v7.txt b/tracking_inclusion/Data_muon_config1_v7.txt new file mode 100644 index 0000000..834a3f8 --- /dev/null +++ b/tracking_inclusion/Data_muon_config1_v7.txt @@ -0,0 +1,20 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_697.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_722.root diff --git a/tracking_inclusion/Data_muon_config1_v8.txt b/tracking_inclusion/Data_muon_config1_v8.txt new file mode 100644 index 0000000..03b2b55 --- /dev/null +++ b/tracking_inclusion/Data_muon_config1_v8.txt @@ -0,0 +1,19 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v8/ntuple_722.root diff --git a/tracking_inclusion/Data_muon_config1_v9.txt b/tracking_inclusion/Data_muon_config1_v9.txt new file mode 100644 index 0000000..29e6ca7 --- /dev/null +++ b/tracking_inclusion/Data_muon_config1_v9.txt @@ -0,0 +1,19 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v9/ntuple_722.root diff --git a/tracking_inclusion/Data_muon_config2_one_File.txt b/tracking_inclusion/Data_muon_config2_one_File.txt new file mode 100644 index 0000000..ead5cb8 --- /dev/null +++ b/tracking_inclusion/Data_muon_config2_one_File.txt @@ -0,0 +1 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v2/ntuple_697.root diff --git a/tracking_inclusion/Data_muon_config2_one_File_v7.txt b/tracking_inclusion/Data_muon_config2_one_File_v7.txt new file mode 100644 index 0000000..7ef597b --- /dev/null +++ b/tracking_inclusion/Data_muon_config2_one_File_v7.txt @@ -0,0 +1 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v7/ntuple_697.root diff --git a/tracking_inclusion/Data_muon_config2_v2.txt b/tracking_inclusion/Data_muon_config2_v2.txt new file mode 100644 index 0000000..6d4b60f --- /dev/null +++ b/tracking_inclusion/Data_muon_config2_v2.txt @@ -0,0 +1,20 @@ +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_697.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_698.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_699.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_700.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_701.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_702.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_704.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_705.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_708.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_709.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_710.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_712.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_713.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_714.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_715.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_717.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_718.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_719.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_721.root +/eos/cms/store/group/dpg_hgcal/tb_hgcal/2018/cern_h2_october/offline_analysis/ntuples/v1/ntuple_722.root diff --git a/tracking_inclusion/HGCNtupleVariables.cc b/tracking_inclusion/HGCNtupleVariables.cc new file mode 100644 index 0000000..cf7cd2f --- /dev/null +++ b/tracking_inclusion/HGCNtupleVariables.cc @@ -0,0 +1,73 @@ +#define HGCNtupleVariables_cxx +#include "HGCNtupleVariables.h" +#include +#include +#include +//#include + + + + +float HGCNtupleVariables::deltaR(float x1, float y1, float x2, float y2) { + float deltaR_ = sqrt(pow((x2-x1),2) + pow((y2-y1),2)); + return deltaR_; +} + + +int HGCNtupleVariables::getBIN(unsigned int skiroc,unsigned int channel) { + if (channel%2 != 0 || channel > 62 || skiroc > 3) return -1; + else return (skiroc*32 + (channel/2)); +} + + +std::vector HGCNtupleVariables::getModuleLocation(int moduleID) { + std::map>::iterator it = module_map.find(moduleID); + if(it != module_map.end()){ + return it->second; + } + else { + return std::vector(); + } +} + + + +//double HGCNtupleVariables::shower_comparisons(TProfile* shower, TH1F* hist) { +// TH1F* HGCNtupleVariables::shower_comparisons(TProfile* shower, TH1F* hist) { +// // TFile* file0 = TFile::Open("/home/shubham/work/HGCAL/CERNTB/niramay/niramay_github/forked_repo/E_Pi_Comparison/functions/Template_150_GeV.root"); +// // TH1F* ref_hist = (TH1F*)file0->Get("hist_ref_template"); +// //TH1F* hist = new TH1F("hist","hist",30,0,30); +// for(int i = 1; i <= shower->GetNbinsX(); i++){ +// hist->SetBinContent(i,shower->GetBinContent(i)); +// } +// return hist; +// //return (hist->Chi2Test(ref_h,"CHI2/NDF")); +// } + + +// float HGCNtupleVariables::find_official_calib(int layer, int en_chan){ +// std::pair temp_find; +// temp_find = std::make_pair(layer,en_chan); +// std::map, float >::iterator it = offical_calib_map.find(temp_find); +// if(it != offical_calib_map.end()){ +// return it->second; +// } +// else { +// return -1.0; +// } +// } + + +// float HGCNtupleVariables::find_my_calib(int layer, int en_chan){ +// std::pair temp_find; +// temp_find = std::make_pair(layer,en_chan); +// std::map, float >::iterator it = my_calib_map.find(temp_find); +// if(it != my_calib_map.end()){ +// return it->second; +// } +// else { +// return -1.0; +// } +// } + + diff --git a/tracking_inclusion/HGCNtupleVariables.h b/tracking_inclusion/HGCNtupleVariables.h new file mode 100644 index 0000000..2ad02fa --- /dev/null +++ b/tracking_inclusion/HGCNtupleVariables.h @@ -0,0 +1,511 @@ +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Thu Aug 16 18:22:34 2018 by ROOT version 6.06/01 +// from TTree hits/HGC rechits +// found on file: muon_v10.root +////////////////////////////////////////////////////////// + +#ifndef HGCNtupleVariables_h +#define HGCNtupleVariables_h + +#include +#include +#include +#include + +// Header file for the classes stored in the TTree if any. +#include "vector" + +using namespace std; + +class HGCNtupleVariables { +public : + + HGCNtupleVariables(TTree * /*tree*/ =0) : fChain(0) { } + ~HGCNtupleVariables() { } + /* void Init(TTree *tree); */ + void Init(TTree *tree, TTree *tree2); + Bool_t Notify(); + Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; } + std::vector getModuleLocation(int moduleID); + int getBIN(unsigned int skiroc,unsigned int channel); + float deltaR(float x1, float y1, float x2, float y2); + //double shower_comparisons(TProfile* shower, TH1F* hist); + //double shower_comparisons(TProfile* shower, TH1F* ref_h); + // TH1F* shower_comparisons(TProfile* shower, TH1F* hist); + // float find_my_calib(int layer, int en_chan); + // float find_official_calib(int layer, int en_chan); + std::map> module_map; + // std::map, float> offical_calib_map; + // std::map, float> my_calib_map; + + TTree *fChain; //!pointer to the analyzed TTree or TChain + TTree *fChain2; //!pointer to the analyzed TTree or TChain + Int_t fCurrent; //!current Tree number in a TChain + Int_t fCurrent2; //!current Tree number in a TChain + + // Fixed size dimensions of array or collections stored in the TTree if any. + + // Declaration of leaf types + UInt_t event; + UInt_t run; + Int_t pdgID; + Float_t beamEnergy; + Float_t trueBeamEnergy; + Int_t NRechits; + vector *rechit_detid; + vector *rechit_module; + vector *rechit_layer; + vector *rechit_chip; + vector *rechit_channel; + vector *rechit_type; + vector *rechit_x; + vector *rechit_y; + vector *rechit_z; + vector *rechit_iu; + vector *rechit_iv; + vector *rechit_energy; + vector *rechit_energy_noHG; + vector *rechit_amplitudeHigh; + vector *rechit_amplitudeLow; + vector *rechit_hg_goodFit; + vector *rechit_lg_goodFit; + vector *rechit_hg_saturated; + vector *rechit_lg_saturated; + vector *rechit_fully_calibrated; + vector *rechit_TS2High; + vector *rechit_TS2Low; + vector *rechit_TS3High; + vector *rechit_TS3Low; + vector *rechit_Tot; + vector *rechit_time; + vector *rechit_timeMaxHG; + vector *rechit_timeMaxLG; + vector *rechit_toaRise; + vector *rechit_toaFall; + + // List of branches + TBranch *b_event; //! + TBranch *b_run; //! + TBranch *b_pdgID; //! + TBranch *b_beamEnergy; //! + TBranch *b_trueBeamEnergy; //! + TBranch *b_NRechits; //! + TBranch *b_rechit_detid; //! + TBranch *b_rechit_module; //! + TBranch *b_rechit_layer; //! + TBranch *b_rechit_chip; //! + TBranch *b_rechit_channel; //! + TBranch *b_rechit_type; //! + TBranch *b_rechit_x; //! + TBranch *b_rechit_y; //! + TBranch *b_rechit_z; //! + TBranch *b_rechit_iu; //! + TBranch *b_rechit_iv; //! + TBranch *b_rechit_energy; //! + TBranch *b_rechit_energy_noHG; //! + TBranch *b_rechit_amplitudeHigh; //! + TBranch *b_rechit_amplitudeLow; //! + TBranch *b_rechit_hg_goodFit; //! + TBranch *b_rechit_lg_goodFit; //! + TBranch *b_rechit_hg_saturated; //! + TBranch *b_rechit_lg_saturated; //! + TBranch *b_rechit_fully_calibrated; //! + TBranch *b_rechit_TS2High; //! + TBranch *b_rechit_TS2Low; //! + TBranch *b_rechit_TS3High; //! + TBranch *b_rechit_TS3Low; //! + TBranch *b_rechit_Tot; //! + TBranch *b_rechit_time; //! + TBranch *b_rechit_timeMaxHG; //! + TBranch *b_rechit_timeMaxLG; //! + TBranch *b_rechit_toaRise; //! + TBranch *b_rechit_toaFall; //! + + // second tree + Int_t ntracks; + Float_t impactX_HGCal_layer_1; + Float_t impactY_HGCal_layer_1; + Float_t impactX_HGCal_layer_2; + Float_t impactY_HGCal_layer_2; + Float_t impactX_HGCal_layer_3; + Float_t impactY_HGCal_layer_3; + Float_t impactX_HGCal_layer_4; + Float_t impactY_HGCal_layer_4; + Float_t impactX_HGCal_layer_5; + Float_t impactY_HGCal_layer_5; + Float_t impactX_HGCal_layer_6; + Float_t impactY_HGCal_layer_6; + Float_t impactX_HGCal_layer_7; + Float_t impactY_HGCal_layer_7; + Float_t impactX_HGCal_layer_8; + Float_t impactY_HGCal_layer_8; + Float_t impactX_HGCal_layer_9; + Float_t impactY_HGCal_layer_9; + Float_t impactX_HGCal_layer_10; + Float_t impactY_HGCal_layer_10; + Float_t impactX_HGCal_layer_11; + Float_t impactY_HGCal_layer_11; + Float_t impactX_HGCal_layer_12; + Float_t impactY_HGCal_layer_12; + Float_t impactX_HGCal_layer_13; + Float_t impactY_HGCal_layer_13; + Float_t impactX_HGCal_layer_14; + Float_t impactY_HGCal_layer_14; + Float_t impactX_HGCal_layer_15; + Float_t impactY_HGCal_layer_15; + Float_t impactX_HGCal_layer_16; + Float_t impactY_HGCal_layer_16; + Float_t impactX_HGCal_layer_17; + Float_t impactY_HGCal_layer_17; + Float_t impactX_HGCal_layer_18; + Float_t impactY_HGCal_layer_18; + Float_t impactX_HGCal_layer_19; + Float_t impactY_HGCal_layer_19; + Float_t impactX_HGCal_layer_20; + Float_t impactY_HGCal_layer_20; + Float_t impactX_HGCal_layer_21; + Float_t impactY_HGCal_layer_21; + Float_t impactX_HGCal_layer_22; + Float_t impactY_HGCal_layer_22; + Float_t impactX_HGCal_layer_23; + Float_t impactY_HGCal_layer_23; + Float_t impactX_HGCal_layer_24; + Float_t impactY_HGCal_layer_24; + Float_t impactX_HGCal_layer_25; + Float_t impactY_HGCal_layer_25; + Float_t impactX_HGCal_layer_26; + Float_t impactY_HGCal_layer_26; + Float_t impactX_HGCal_layer_27; + Float_t impactY_HGCal_layer_27; + Float_t impactX_HGCal_layer_28; + Float_t impactY_HGCal_layer_28; + Float_t impactX_HGCal_layer_29; + Float_t impactY_HGCal_layer_29; + Float_t impactX_HGCal_layer_30; + Float_t impactY_HGCal_layer_30; + Float_t impactX_HGCal_layer_31; + Float_t impactY_HGCal_layer_31; + Float_t impactX_HGCal_layer_32; + Float_t impactY_HGCal_layer_32; + Float_t impactX_HGCal_layer_33; + Float_t impactY_HGCal_layer_33; + Float_t impactX_HGCal_layer_34; + Float_t impactY_HGCal_layer_34; + Float_t impactX_HGCal_layer_35; + Float_t impactY_HGCal_layer_35; + Float_t impactX_HGCal_layer_36; + Float_t impactY_HGCal_layer_36; + Float_t impactX_HGCal_layer_37; + Float_t impactY_HGCal_layer_37; + Float_t impactX_HGCal_layer_38; + Float_t impactY_HGCal_layer_38; + Float_t impactX_HGCal_layer_39; + Float_t impactY_HGCal_layer_39; + Float_t impactX_HGCal_layer_40; + Float_t impactY_HGCal_layer_40; + + + Float_t trackChi2_X; + Float_t trackChi2_Y; + Int_t dwcReferenceType; + Double_t m_x; + Double_t m_y; + Double_t b_x; + Double_t b_y; + + // List of branches + TBranch *b_ntracks; //! + TBranch *b_impactX_HGCal_layer_1; //! + TBranch *b_impactY_HGCal_layer_1; //! + TBranch *b_impactX_HGCal_layer_2; //! + TBranch *b_impactY_HGCal_layer_2; //! + TBranch *b_impactX_HGCal_layer_3; //! + TBranch *b_impactY_HGCal_layer_3; //! + TBranch *b_impactX_HGCal_layer_4; //! + TBranch *b_impactY_HGCal_layer_4; //! + TBranch *b_impactX_HGCal_layer_5; //! + TBranch *b_impactY_HGCal_layer_5; //! + TBranch *b_impactX_HGCal_layer_6; //! + TBranch *b_impactY_HGCal_layer_6; //! + TBranch *b_impactX_HGCal_layer_7; //! + TBranch *b_impactY_HGCal_layer_7; //! + TBranch *b_impactX_HGCal_layer_8; //! + TBranch *b_impactY_HGCal_layer_8; //! + TBranch *b_impactX_HGCal_layer_9; //! + TBranch *b_impactY_HGCal_layer_9; //! + TBranch *b_impactX_HGCal_layer_10; //! + TBranch *b_impactY_HGCal_layer_10; //! + TBranch *b_impactX_HGCal_layer_11; //! + TBranch *b_impactY_HGCal_layer_11; //! + TBranch *b_impactX_HGCal_layer_12; //! + TBranch *b_impactY_HGCal_layer_12; //! + TBranch *b_impactX_HGCal_layer_13; //! + TBranch *b_impactY_HGCal_layer_13; //! + TBranch *b_impactX_HGCal_layer_14; //! + TBranch *b_impactY_HGCal_layer_14; //! + TBranch *b_impactX_HGCal_layer_15; //! + TBranch *b_impactY_HGCal_layer_15; //! + TBranch *b_impactX_HGCal_layer_16; //! + TBranch *b_impactY_HGCal_layer_16; //! + TBranch *b_impactX_HGCal_layer_17; //! + TBranch *b_impactY_HGCal_layer_17; //! + TBranch *b_impactX_HGCal_layer_18; //! + TBranch *b_impactY_HGCal_layer_18; //! + TBranch *b_impactX_HGCal_layer_19; //! + TBranch *b_impactY_HGCal_layer_19; //! + TBranch *b_impactX_HGCal_layer_20; //! + TBranch *b_impactY_HGCal_layer_20; //! + TBranch *b_impactX_HGCal_layer_21; //! + TBranch *b_impactY_HGCal_layer_21; //! + TBranch *b_impactX_HGCal_layer_22; //! + TBranch *b_impactY_HGCal_layer_22; //! + TBranch *b_impactX_HGCal_layer_23; //! + TBranch *b_impactY_HGCal_layer_23; //! + TBranch *b_impactX_HGCal_layer_24; //! + TBranch *b_impactY_HGCal_layer_24; //! + TBranch *b_impactX_HGCal_layer_25; //! + TBranch *b_impactY_HGCal_layer_25; //! + TBranch *b_impactX_HGCal_layer_26; //! + TBranch *b_impactY_HGCal_layer_26; //! + TBranch *b_impactX_HGCal_layer_27; //! + TBranch *b_impactY_HGCal_layer_27; //! + TBranch *b_impactX_HGCal_layer_28; //! + TBranch *b_impactY_HGCal_layer_28; //! + TBranch *b_impactX_HGCal_layer_29; + TBranch *b_impactY_HGCal_layer_29; + TBranch *b_impactX_HGCal_layer_30; + TBranch *b_impactY_HGCal_layer_30; + TBranch *b_impactX_HGCal_layer_31; + TBranch *b_impactY_HGCal_layer_31; + TBranch *b_impactX_HGCal_layer_32; + TBranch *b_impactY_HGCal_layer_32; + TBranch *b_impactX_HGCal_layer_33; + TBranch *b_impactY_HGCal_layer_33; + TBranch *b_impactX_HGCal_layer_34; + TBranch *b_impactY_HGCal_layer_34; + TBranch *b_impactX_HGCal_layer_35; + TBranch *b_impactY_HGCal_layer_35; + TBranch *b_impactX_HGCal_layer_36; + TBranch *b_impactY_HGCal_layer_36; + TBranch *b_impactX_HGCal_layer_37; + TBranch *b_impactY_HGCal_layer_37; + TBranch *b_impactX_HGCal_layer_38; + TBranch *b_impactY_HGCal_layer_38; + TBranch *b_impactX_HGCal_layer_39; + TBranch *b_impactY_HGCal_layer_39; + TBranch *b_impactX_HGCal_layer_40; + TBranch *b_impactY_HGCal_layer_40; + + TBranch *b_trackChi2_X; //! + TBranch *b_trackChi2_Y; //! + TBranch *b_dwcReferenceType; //! + TBranch *b_m_x; //! + TBranch *b_m_y; //! + TBranch *b_b_x; //! + TBranch *b_b_y; //! + + + +}; + +#endif + +#ifdef HGCNtupleVariables_cxx + +void HGCNtupleVariables::Init(TTree *tree, TTree *tree2) +/* void HGCNtupleVariables::Init(TTree *tree) */ +{ + // The Init() function is called when the selector needs to initialize + // a new tree or chain. Typically here the branch addresses and branch + // pointers of the tree will be set. + // It is normally not necessary to make changes to the generated + // code, but the routine can be extended by the user if needed. + // Init() will be called many times when running on PROOF + // (once per file to be processed). + + // Set object pointer + rechit_detid = 0; + rechit_module = 0; + rechit_layer = 0; + rechit_chip = 0; + rechit_channel = 0; + rechit_type = 0; + rechit_x = 0; + rechit_y = 0; + rechit_z = 0; + rechit_iu = 0; + rechit_iv = 0; + rechit_energy = 0; + rechit_energy_noHG = 0; + rechit_amplitudeHigh = 0; + rechit_amplitudeLow = 0; + rechit_hg_goodFit = 0; + rechit_lg_goodFit = 0; + rechit_hg_saturated = 0; + rechit_lg_saturated = 0; + rechit_fully_calibrated = 0; + rechit_TS2High = 0; + rechit_TS2Low = 0; + rechit_TS3High = 0; + rechit_TS3Low = 0; + rechit_Tot = 0; + rechit_time = 0; + rechit_timeMaxHG = 0; + rechit_timeMaxLG = 0; + rechit_toaRise = 0; + rechit_toaFall = 0; + // Set branch addresses and branch pointers + if (!tree) return; + fChain = tree; + fCurrent = -1; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("event", &event, &b_event); + fChain->SetBranchAddress("run", &run, &b_run); + fChain->SetBranchAddress("pdgID", &pdgID, &b_pdgID); + fChain->SetBranchAddress("beamEnergy", &beamEnergy, &b_beamEnergy); + fChain->SetBranchAddress("trueBeamEnergy", &trueBeamEnergy, &b_trueBeamEnergy); + fChain->SetBranchAddress("NRechits", &NRechits, &b_NRechits); + fChain->SetBranchAddress("rechit_detid", &rechit_detid, &b_rechit_detid); + fChain->SetBranchAddress("rechit_module", &rechit_module, &b_rechit_module); + fChain->SetBranchAddress("rechit_layer", &rechit_layer, &b_rechit_layer); + fChain->SetBranchAddress("rechit_chip", &rechit_chip, &b_rechit_chip); + fChain->SetBranchAddress("rechit_channel", &rechit_channel, &b_rechit_channel); + fChain->SetBranchAddress("rechit_type", &rechit_type, &b_rechit_type); + fChain->SetBranchAddress("rechit_x", &rechit_x, &b_rechit_x); + fChain->SetBranchAddress("rechit_y", &rechit_y, &b_rechit_y); + fChain->SetBranchAddress("rechit_z", &rechit_z, &b_rechit_z); + fChain->SetBranchAddress("rechit_iu", &rechit_iu, &b_rechit_iu); + fChain->SetBranchAddress("rechit_iv", &rechit_iv, &b_rechit_iv); + fChain->SetBranchAddress("rechit_energy", &rechit_energy, &b_rechit_energy); + fChain->SetBranchAddress("rechit_energy_noHG", &rechit_energy_noHG, &b_rechit_energy_noHG); + fChain->SetBranchAddress("rechit_amplitudeHigh", &rechit_amplitudeHigh, &b_rechit_amplitudeHigh); + fChain->SetBranchAddress("rechit_amplitudeLow", &rechit_amplitudeLow, &b_rechit_amplitudeLow); + fChain->SetBranchAddress("rechit_hg_goodFit", &rechit_hg_goodFit, &b_rechit_hg_goodFit); + fChain->SetBranchAddress("rechit_lg_goodFit", &rechit_lg_goodFit, &b_rechit_lg_goodFit); + fChain->SetBranchAddress("rechit_hg_saturated", &rechit_hg_saturated, &b_rechit_hg_saturated); + fChain->SetBranchAddress("rechit_lg_saturated", &rechit_lg_saturated, &b_rechit_lg_saturated); + fChain->SetBranchAddress("rechit_fully_calibrated", &rechit_fully_calibrated, &b_rechit_fully_calibrated); + fChain->SetBranchAddress("rechit_TS2High", &rechit_TS2High, &b_rechit_TS2High); + fChain->SetBranchAddress("rechit_TS2Low", &rechit_TS2Low, &b_rechit_TS2Low); + fChain->SetBranchAddress("rechit_TS3High", &rechit_TS3High, &b_rechit_TS3High); + fChain->SetBranchAddress("rechit_TS3Low", &rechit_TS3Low, &b_rechit_TS3Low); + fChain->SetBranchAddress("rechit_Tot", &rechit_Tot, &b_rechit_Tot); + fChain->SetBranchAddress("rechit_time", &rechit_time, &b_rechit_time); + fChain->SetBranchAddress("rechit_timeMaxHG", &rechit_timeMaxHG, &b_rechit_timeMaxHG); + fChain->SetBranchAddress("rechit_timeMaxLG", &rechit_timeMaxLG, &b_rechit_timeMaxLG); + fChain->SetBranchAddress("rechit_toaRise", &rechit_toaRise, &b_rechit_toaRise); + fChain->SetBranchAddress("rechit_toaFall", &rechit_toaFall, &b_rechit_toaFall); + + // Set branch addresses and branch pointers + if (!tree2) return; + fChain2 = tree2; + fCurrent2 = -1; + fChain2->SetMakeClass(1); + + fChain2->SetBranchAddress("ntracks", &ntracks, &b_ntracks); + fChain2->SetBranchAddress("impactX_HGCal_layer_1", &impactX_HGCal_layer_1, &b_impactX_HGCal_layer_1); + fChain2->SetBranchAddress("impactY_HGCal_layer_1", &impactY_HGCal_layer_1, &b_impactY_HGCal_layer_1); + fChain2->SetBranchAddress("impactX_HGCal_layer_2", &impactX_HGCal_layer_2, &b_impactX_HGCal_layer_2); + fChain2->SetBranchAddress("impactY_HGCal_layer_2", &impactY_HGCal_layer_2, &b_impactY_HGCal_layer_2); + fChain2->SetBranchAddress("impactX_HGCal_layer_3", &impactX_HGCal_layer_3, &b_impactX_HGCal_layer_3); + fChain2->SetBranchAddress("impactY_HGCal_layer_3", &impactY_HGCal_layer_3, &b_impactY_HGCal_layer_3); + fChain2->SetBranchAddress("impactX_HGCal_layer_4", &impactX_HGCal_layer_4, &b_impactX_HGCal_layer_4); + fChain2->SetBranchAddress("impactY_HGCal_layer_4", &impactY_HGCal_layer_4, &b_impactY_HGCal_layer_4); + fChain2->SetBranchAddress("impactX_HGCal_layer_5", &impactX_HGCal_layer_5, &b_impactX_HGCal_layer_5); + fChain2->SetBranchAddress("impactY_HGCal_layer_5", &impactY_HGCal_layer_5, &b_impactY_HGCal_layer_5); + fChain2->SetBranchAddress("impactX_HGCal_layer_6", &impactX_HGCal_layer_6, &b_impactX_HGCal_layer_6); + fChain2->SetBranchAddress("impactY_HGCal_layer_6", &impactY_HGCal_layer_6, &b_impactY_HGCal_layer_6); + fChain2->SetBranchAddress("impactX_HGCal_layer_7", &impactX_HGCal_layer_7, &b_impactX_HGCal_layer_7); + fChain2->SetBranchAddress("impactY_HGCal_layer_7", &impactY_HGCal_layer_7, &b_impactY_HGCal_layer_7); + fChain2->SetBranchAddress("impactX_HGCal_layer_8", &impactX_HGCal_layer_8, &b_impactX_HGCal_layer_8); + fChain2->SetBranchAddress("impactY_HGCal_layer_8", &impactY_HGCal_layer_8, &b_impactY_HGCal_layer_8); + fChain2->SetBranchAddress("impactX_HGCal_layer_9", &impactX_HGCal_layer_9, &b_impactX_HGCal_layer_9); + fChain2->SetBranchAddress("impactY_HGCal_layer_9", &impactY_HGCal_layer_9, &b_impactY_HGCal_layer_9); + fChain2->SetBranchAddress("impactX_HGCal_layer_10", &impactX_HGCal_layer_10, &b_impactX_HGCal_layer_10); + fChain2->SetBranchAddress("impactY_HGCal_layer_10", &impactY_HGCal_layer_10, &b_impactY_HGCal_layer_10); + fChain2->SetBranchAddress("impactX_HGCal_layer_11", &impactX_HGCal_layer_11, &b_impactX_HGCal_layer_11); + fChain2->SetBranchAddress("impactY_HGCal_layer_11", &impactY_HGCal_layer_11, &b_impactY_HGCal_layer_11); + fChain2->SetBranchAddress("impactX_HGCal_layer_12", &impactX_HGCal_layer_12, &b_impactX_HGCal_layer_12); + fChain2->SetBranchAddress("impactY_HGCal_layer_12", &impactY_HGCal_layer_12, &b_impactY_HGCal_layer_12); + fChain2->SetBranchAddress("impactX_HGCal_layer_13", &impactX_HGCal_layer_13, &b_impactX_HGCal_layer_13); + fChain2->SetBranchAddress("impactY_HGCal_layer_13", &impactY_HGCal_layer_13, &b_impactY_HGCal_layer_13); + fChain2->SetBranchAddress("impactX_HGCal_layer_14", &impactX_HGCal_layer_14, &b_impactX_HGCal_layer_14); + fChain2->SetBranchAddress("impactY_HGCal_layer_14", &impactY_HGCal_layer_14, &b_impactY_HGCal_layer_14); + fChain2->SetBranchAddress("impactX_HGCal_layer_15", &impactX_HGCal_layer_15, &b_impactX_HGCal_layer_15); + fChain2->SetBranchAddress("impactY_HGCal_layer_15", &impactY_HGCal_layer_15, &b_impactY_HGCal_layer_15); + fChain2->SetBranchAddress("impactX_HGCal_layer_16", &impactX_HGCal_layer_16, &b_impactX_HGCal_layer_16); + fChain2->SetBranchAddress("impactY_HGCal_layer_16", &impactY_HGCal_layer_16, &b_impactY_HGCal_layer_16); + fChain2->SetBranchAddress("impactX_HGCal_layer_17", &impactX_HGCal_layer_17, &b_impactX_HGCal_layer_17); + fChain2->SetBranchAddress("impactY_HGCal_layer_17", &impactY_HGCal_layer_17, &b_impactY_HGCal_layer_17); + fChain2->SetBranchAddress("impactX_HGCal_layer_18", &impactX_HGCal_layer_18, &b_impactX_HGCal_layer_18); + fChain2->SetBranchAddress("impactY_HGCal_layer_18", &impactY_HGCal_layer_18, &b_impactY_HGCal_layer_18); + fChain2->SetBranchAddress("impactX_HGCal_layer_19", &impactX_HGCal_layer_19, &b_impactX_HGCal_layer_19); + fChain2->SetBranchAddress("impactY_HGCal_layer_19", &impactY_HGCal_layer_19, &b_impactY_HGCal_layer_19); + fChain2->SetBranchAddress("impactX_HGCal_layer_20", &impactX_HGCal_layer_20, &b_impactX_HGCal_layer_20); + fChain2->SetBranchAddress("impactY_HGCal_layer_20", &impactY_HGCal_layer_20, &b_impactY_HGCal_layer_20); + fChain2->SetBranchAddress("impactX_HGCal_layer_21", &impactX_HGCal_layer_21, &b_impactX_HGCal_layer_21); + fChain2->SetBranchAddress("impactY_HGCal_layer_21", &impactY_HGCal_layer_21, &b_impactY_HGCal_layer_21); + fChain2->SetBranchAddress("impactX_HGCal_layer_22", &impactX_HGCal_layer_22, &b_impactX_HGCal_layer_22); + fChain2->SetBranchAddress("impactY_HGCal_layer_22", &impactY_HGCal_layer_22, &b_impactY_HGCal_layer_22); + fChain2->SetBranchAddress("impactX_HGCal_layer_23", &impactX_HGCal_layer_23, &b_impactX_HGCal_layer_23); + fChain2->SetBranchAddress("impactY_HGCal_layer_23", &impactY_HGCal_layer_23, &b_impactY_HGCal_layer_23); + fChain2->SetBranchAddress("impactX_HGCal_layer_24", &impactX_HGCal_layer_24, &b_impactX_HGCal_layer_24); + fChain2->SetBranchAddress("impactY_HGCal_layer_24", &impactY_HGCal_layer_24, &b_impactY_HGCal_layer_24); + fChain2->SetBranchAddress("impactX_HGCal_layer_25", &impactX_HGCal_layer_25, &b_impactX_HGCal_layer_25); + fChain2->SetBranchAddress("impactY_HGCal_layer_25", &impactY_HGCal_layer_25, &b_impactY_HGCal_layer_25); + fChain2->SetBranchAddress("impactX_HGCal_layer_26", &impactX_HGCal_layer_26, &b_impactX_HGCal_layer_26); + fChain2->SetBranchAddress("impactY_HGCal_layer_26", &impactY_HGCal_layer_26, &b_impactY_HGCal_layer_26); + fChain2->SetBranchAddress("impactX_HGCal_layer_27", &impactX_HGCal_layer_27, &b_impactX_HGCal_layer_27); + fChain2->SetBranchAddress("impactY_HGCal_layer_27", &impactY_HGCal_layer_27, &b_impactY_HGCal_layer_27); + fChain2->SetBranchAddress("impactX_HGCal_layer_28", &impactX_HGCal_layer_28, &b_impactX_HGCal_layer_28); + fChain2->SetBranchAddress("impactY_HGCal_layer_28", &impactY_HGCal_layer_28, &b_impactY_HGCal_layer_28); + fChain2->SetBranchAddress("impactX_HGCal_layer_29", &impactX_HGCal_layer_29, &b_impactX_HGCal_layer_29); + fChain2->SetBranchAddress("impactY_HGCal_layer_29", &impactY_HGCal_layer_29, &b_impactY_HGCal_layer_29); + fChain2->SetBranchAddress("impactX_HGCal_layer_30", &impactX_HGCal_layer_30, &b_impactX_HGCal_layer_30); + fChain2->SetBranchAddress("impactY_HGCal_layer_30", &impactY_HGCal_layer_30, &b_impactY_HGCal_layer_30); + fChain2->SetBranchAddress("impactX_HGCal_layer_31", &impactX_HGCal_layer_31, &b_impactX_HGCal_layer_31); + fChain2->SetBranchAddress("impactY_HGCal_layer_31", &impactY_HGCal_layer_31, &b_impactY_HGCal_layer_31); + fChain2->SetBranchAddress("impactX_HGCal_layer_32", &impactX_HGCal_layer_32, &b_impactX_HGCal_layer_32); + fChain2->SetBranchAddress("impactY_HGCal_layer_32", &impactY_HGCal_layer_32, &b_impactY_HGCal_layer_32); + fChain2->SetBranchAddress("impactX_HGCal_layer_33", &impactX_HGCal_layer_33, &b_impactX_HGCal_layer_33); + fChain2->SetBranchAddress("impactY_HGCal_layer_33", &impactY_HGCal_layer_33, &b_impactY_HGCal_layer_33); + fChain2->SetBranchAddress("impactX_HGCal_layer_34", &impactX_HGCal_layer_34, &b_impactX_HGCal_layer_34); + fChain2->SetBranchAddress("impactY_HGCal_layer_34", &impactY_HGCal_layer_34, &b_impactY_HGCal_layer_34); + fChain2->SetBranchAddress("impactX_HGCal_layer_35", &impactX_HGCal_layer_35, &b_impactX_HGCal_layer_35); + fChain2->SetBranchAddress("impactY_HGCal_layer_35", &impactY_HGCal_layer_35, &b_impactY_HGCal_layer_35); + fChain2->SetBranchAddress("impactX_HGCal_layer_36", &impactX_HGCal_layer_36, &b_impactX_HGCal_layer_36); + fChain2->SetBranchAddress("impactY_HGCal_layer_36", &impactY_HGCal_layer_36, &b_impactY_HGCal_layer_36); + fChain2->SetBranchAddress("impactX_HGCal_layer_37", &impactX_HGCal_layer_37, &b_impactX_HGCal_layer_37); + fChain2->SetBranchAddress("impactY_HGCal_layer_37", &impactY_HGCal_layer_37, &b_impactY_HGCal_layer_37); + fChain2->SetBranchAddress("impactX_HGCal_layer_38", &impactX_HGCal_layer_38, &b_impactX_HGCal_layer_38); + fChain2->SetBranchAddress("impactY_HGCal_layer_38", &impactY_HGCal_layer_38, &b_impactY_HGCal_layer_38); + fChain2->SetBranchAddress("impactX_HGCal_layer_39", &impactX_HGCal_layer_39, &b_impactX_HGCal_layer_39); + fChain2->SetBranchAddress("impactY_HGCal_layer_39", &impactY_HGCal_layer_39, &b_impactY_HGCal_layer_39); + fChain2->SetBranchAddress("impactX_HGCal_layer_40", &impactX_HGCal_layer_40, &b_impactX_HGCal_layer_40); + fChain2->SetBranchAddress("impactY_HGCal_layer_40", &impactY_HGCal_layer_40, &b_impactY_HGCal_layer_40); + + fChain2->SetBranchAddress("trackChi2_X", &trackChi2_X, &b_trackChi2_X); + fChain2->SetBranchAddress("trackChi2_Y", &trackChi2_Y, &b_trackChi2_Y); + fChain2->SetBranchAddress("dwcReferenceType", &dwcReferenceType, &b_dwcReferenceType); + fChain2->SetBranchAddress("m_x", &m_x, &b_m_x); + fChain2->SetBranchAddress("m_y", &m_y, &b_m_y); + fChain2->SetBranchAddress("b_x", &b_x, &b_b_x); + fChain2->SetBranchAddress("b_y", &b_y, &b_b_y); + + Notify(); +} + +Bool_t HGCNtupleVariables::Notify() +{ + // The Notify() function is called when a new file is opened. This + // can be either for a new TTree in a TChain or when when a new TTree + // is started when using PROOF. It is normally not necessary to make changes + // to the generated code, but the routine can be extended by the + // user if needed. The return value is currently not used. + + return kTRUE; +} + +#endif // #ifdef HGCNtupleVariables_cxx diff --git a/tracking_inclusion/Makefile b/tracking_inclusion/Makefile new file mode 100644 index 0000000..0e04de3 --- /dev/null +++ b/tracking_inclusion/Makefile @@ -0,0 +1,37 @@ +CXX = g++ + +CXXFLAGS= $(shell root-config --cflags) +LIBS = $(shell root-config --libs) + + +SOURCES = HGCNtupleVariables.cc AnalyzeHGCOctTB.cc +HEADERS = HGCNtupleVariables.h AnalyzeHGCOctTB.h +OBJECTS = $(SOURCES:.cc=.o) + +EXECUTABLE = analyzeHGCOctTB + +all: $(SOURCES) $(EXECUTABLE) + +%.o: %.cc + @echo Compiling $<... + $(CXX) $(CXXFLAGS) -c -o $@ $< + + +$(EXECUTABLE): $(OBJECTS) + @echo "Linking $(PROGRAM) ..." + @echo "@$(CXX) $(LIBS) $(OBJECTS) -o $@" + @$(CXX) -o $@ $^ $(LIBS) + @echo "done" + + +# Specifying the object files as intermediates deletes them automatically after the build process. +.INTERMEDIATE: $(OBJECTS) + +# The default target, which gives instructions, can be called regardless of whether or not files need to be updated. +.PHONY : clean +clean: + rm -f $(OBJECTS) $(EXECUTABLE) + +### +HGCNtupleVariables.o: HGCNtupleVariables.h +AnalyzeHGCOctTB.o:HGCNtupleVariables.h AnalyzeHGCOctTB.h diff --git a/tracking_inclusion/analyzeHGCOctTB b/tracking_inclusion/analyzeHGCOctTB new file mode 100755 index 0000000..330f9ec Binary files /dev/null and b/tracking_inclusion/analyzeHGCOctTB differ diff --git a/tracking_inclusion/only_EE_layer_config2/AnalyzeHGCOctTB.cc b/tracking_inclusion/only_EE_layer_config2/AnalyzeHGCOctTB.cc new file mode 100644 index 0000000..51c681b --- /dev/null +++ b/tracking_inclusion/only_EE_layer_config2/AnalyzeHGCOctTB.cc @@ -0,0 +1,388 @@ +#define AnalyzeHGCOctTB_cxx + +#include +#include +#include +#include "AnalyzeHGCOctTB.h" + +using namespace std; + + + +// chip 3022,44,3028 + + + + +int main(int argc, char* argv[]) +{ + + if (argc < 3) { + cerr << "Please give 4 arguments " << "runList " << " " << "outputFileName" << " " << "dataset" <<" " << "configuration" << endl; + return -1; + } + const char *inputFileList = argv[1]; + const char *outFileName = argv[2]; + const char *data = argv[3]; + const char *config = argv[4]; + + AnalyzeHGCOctTB hgcOctTB(inputFileList, outFileName, data, config); + cout << "dataset " << data << " " << endl; + cout << "congiguration " << config << " " << endl; + + hgcOctTB.EventLoop(data); + return 0; +} + +void AnalyzeHGCOctTB::EventLoop(const char *data) { + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + cout << "nentries " << nentries << endl; + cout << "Analyzing dataset " << data << " " << endl; + + Long64_t nbytes = 0, nb = 0; + Long64_t nbytes2 = 0, nb2 = 0; + int decade = 0; + + float rechit_cut[28] = {0.02,0.039,0.019,0.02,0.037,0.076,0.10, + 0.14,0.18,0.24,0.28,0.33,0.48,0.52, + 0.56,0.6,0.64,0.70,0.74,0.78,0.82, + 0.86,0.90,0.92,0.94,0.95,0.98,1.0}; + + bool DEBUG = false; + Long64_t cut_count[28]; + Long64_t nEvents = 0; + Long64_t MIP_pions = 0; + int TOTAL_ACTIVE_LAYER = -1; + int EE_LAYER = -1; + int FH_LAYER = -1; + if(!strcmp(conf_,"alpha") || !strcmp(conf_,"config1")) { + TOTAL_ACTIVE_LAYER = 40; + EE_LAYER = 28; + FH_LAYER = 12; + } + else if(!strcmp(conf_,"bravo") || !strcmp(conf_,"config2")){ + TOTAL_ACTIVE_LAYER = 39; + EE_LAYER = 28; + FH_LAYER = 11; + } + else if(!strcmp(conf_,"charlie") || !strcmp(conf_,"config3")) { + TOTAL_ACTIVE_LAYER = 20; + EE_LAYER = 8; + FH_LAYER = 12; + } + else { + cout<<"ERROR: Unknown configuration!!!!"< decade) + cout << 10 * k << " %" << endl; + decade = k; + + // ===============read this entry == == == == == == == == == == == + + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) { break; cout<<"Breaking"<GetEntry(jentry); nbytes += nb; + nb2 = fChain2->GetEntry(jentry); nbytes2 += nb2; + + if(NRechits == 0) continue; + // if(NRechits > 50 || NRechits < 20) continue; + h_nTracks->Fill(ntracks); + if(ntracks != 1) continue; + Float_t track_x[28]; + Float_t track_y[28]; + + track_x[0] = impactX_HGCal_layer_1; + track_y[0] = impactY_HGCal_layer_1; + track_x[1] = impactX_HGCal_layer_2; + track_y[1] = impactY_HGCal_layer_2; + track_x[2] = impactX_HGCal_layer_3; + track_y[2] = impactY_HGCal_layer_3; + track_x[3] = impactX_HGCal_layer_4; + track_y[3] = impactY_HGCal_layer_4; + track_x[4] = impactX_HGCal_layer_5; + track_y[4] = impactY_HGCal_layer_5; + track_x[5] = impactX_HGCal_layer_6; + track_y[5] = impactY_HGCal_layer_6; + track_x[6] = impactX_HGCal_layer_7; + track_y[6] = impactY_HGCal_layer_7; + track_x[7] = impactX_HGCal_layer_8; + track_y[7] = impactY_HGCal_layer_8; + track_x[8] = impactX_HGCal_layer_9; + track_y[8] = impactY_HGCal_layer_9; + track_x[9] = impactX_HGCal_layer_10; + track_y[9] = impactY_HGCal_layer_10; + track_x[10] = impactX_HGCal_layer_11; + track_y[10] = impactY_HGCal_layer_11; + track_x[11] = impactX_HGCal_layer_12; + track_y[11] = impactY_HGCal_layer_12; + track_x[12] = impactX_HGCal_layer_13; + track_y[12] = impactY_HGCal_layer_13; + track_x[13] = impactX_HGCal_layer_14; + track_y[13] = impactY_HGCal_layer_14; + track_x[14] = impactX_HGCal_layer_15; + track_y[14] = impactY_HGCal_layer_15; + track_x[15] = impactX_HGCal_layer_16; + track_y[15] = impactY_HGCal_layer_16; + track_x[16] = impactX_HGCal_layer_17; + track_y[16] = impactY_HGCal_layer_17; + track_x[17] = impactX_HGCal_layer_18; + track_y[17] = impactY_HGCal_layer_18; + track_x[18] = impactX_HGCal_layer_19; + track_y[18] = impactY_HGCal_layer_19; + track_x[19] = impactX_HGCal_layer_20; + track_y[19] = impactY_HGCal_layer_20; + track_x[20] = impactX_HGCal_layer_21; + track_y[20] = impactY_HGCal_layer_21; + track_x[21] = impactX_HGCal_layer_22; + track_y[21] = impactY_HGCal_layer_22; + track_x[22] = impactX_HGCal_layer_23; + track_y[22] = impactY_HGCal_layer_23; + track_x[23] = impactX_HGCal_layer_24; + track_y[23] = impactY_HGCal_layer_24; + track_x[24] = impactX_HGCal_layer_25; + track_y[24] = impactY_HGCal_layer_25; + track_x[25] = impactX_HGCal_layer_26; + track_y[25] = impactY_HGCal_layer_26; + track_x[26] = impactX_HGCal_layer_27; + track_y[26] = impactY_HGCal_layer_27; + track_x[27] = impactX_HGCal_layer_28; + track_y[27] = impactY_HGCal_layer_28; + track_x[28] = impactX_HGCal_layer_29; + track_y[28] = impactY_HGCal_layer_29; + track_x[29] = impactX_HGCal_layer_30; + track_y[29] = impactY_HGCal_layer_30; + track_x[30] = impactX_HGCal_layer_31; + track_y[30] = impactY_HGCal_layer_31; + track_x[31] = impactX_HGCal_layer_32; + track_y[31] = impactY_HGCal_layer_32; + track_x[32] = impactX_HGCal_layer_33; + track_y[32] = impactY_HGCal_layer_33; + track_x[33] = impactX_HGCal_layer_34; + track_y[33] = impactY_HGCal_layer_34; + track_x[34] = impactX_HGCal_layer_35; + track_y[34] = impactY_HGCal_layer_35; + track_x[35] = impactX_HGCal_layer_36; + track_y[35] = impactY_HGCal_layer_36; + track_x[36] = impactX_HGCal_layer_37; + track_y[36] = impactY_HGCal_layer_37; + track_x[37] = impactX_HGCal_layer_38; + track_y[37] = impactY_HGCal_layer_38; + track_x[38] = impactX_HGCal_layer_39; + track_y[38] = impactY_HGCal_layer_39; + track_x[39] = impactX_HGCal_layer_40; + track_y[39] = impactY_HGCal_layer_40; + + + Double_t rechitEnergySum = 0.0; + Double_t rechitEnergySum_EE = 0.0; + Double_t rechitEnergySum_FH = 0.0; + Double_t un_cali = 0.0; + Long_t Nrechit_layer[40]; + Long_t NRechits_EE[28]; + Long_t NRechits_FH[12][7]; + int module_part_ = 0; + int module_layer_ = 0; + int module_position_ = 0; + vector dR[40]; + double dr_min_index[40]; + double dr_min[40]; + + for(int ii=0;ii<40;ii++){ + if(ii<28) { + NRechits_EE[ii]=0; + dR[ii].clear(); + dr_min_index[ii] = -1.0; + dr_min[ii] = 1.e10; + } + Nrechit_layer[ii]=0; + // dR[ii].clear(); + // dr_min_index[ii] = -1.0; + // dr_min[ii] = 1.e10; + + } + for(int ii=0;ii<12;ii++){ + for(int jj=0;jj<7;jj++){ + NRechits_FH[ii][jj]=0; + } + } + + if(DEBUG) cout<<"DEBUG: Start Analylizing RecHits!!"< temp_moduleID; + for(int i = 0 ; i < NRechits; i++){ + temp_moduleID.clear(); + int temp_layer = rechit_layer->at(i); + int temp_chip = rechit_chip->at(i); + int temp_channel = rechit_channel->at(i); + int en_chan = temp_chip*1000+temp_channel; + if(en_chan == 3022 || en_chan == 3028 || en_chan == 44) continue; + if(rechit_amplitudeHigh->at(i) < 20) continue; + Nrechit_layer[temp_layer-1]++; + + temp_moduleID = getModuleLocation(rechit_module->at(i)); + if(!temp_moduleID.size() || temp_moduleID.size()<3) { + cout<<"ERROR: Could NOT locate MODULE location for module "<at(i)<Fill(module_part_); + + if(module_part_ == 0) { + rechitEnergySum_EE+=rechit_energy->at(i); + NRechits_EE[module_layer_-1]++; + h_adcHG_EE[module_layer_-1][channel_bin]->Fill(rechit_amplitudeHigh->at(i)); + } + if(module_part_ == 1) { + rechitEnergySum_FH+=rechit_energy->at(i); + NRechits_FH[module_layer_-1][module_position_-1]++; + h_adcHG_FH[module_layer_-1][module_position_-1][channel_bin]->Fill(rechit_amplitudeHigh->at(i)); + } + rechitEnergySum+=rechit_energy->at(i); + + } + // cout<<"NEW EVENT "< 50) return; + + if(DEBUG) cout<<"DEBUG: Values Assigned!!!"< 9 ) continue; + Nrechit_FH+=NRechits_FH[iL-EE_LAYER][j]; + h_NRechits_FH[iL-EE_LAYER][j]->Fill(NRechits_FH[iL-EE_LAYER][j]); + + } + } + } + + if(DEBUG) cout<<"DEBUG: Assigned NRechits for each layer"<Fill(10); + else if(!strcmp(conf_,"bravo")) h_configuration->Fill(20); + else if(!strcmp(conf_,"charlie")) h_configuration->Fill(30); + else { + cout<<"ERROR: Unknown configuration!!!!"<at(dr_min_index[i]); + int temp_channel = rechit_channel->at(dr_min_index[i]); + int channel_bin = getBIN(temp_chip,temp_channel); + if (channel_bin < 0) { cout<<"INVALID CHANNEL!!!"<at(dr_min_index[i]); + h_adcHG_EE_track[i][channel_bin]->Fill(adcHG); + + } + + if(DEBUG) cout<<"DEBUG: Filling Histos!!!"<Fill(pdgID); + h_beamEnergy->Fill(beamEnergy); + h_runNumber->Fill(run); + h_rechit_energy_all->Fill(rechitEnergySum); + h_rechit_energy_EE_only->Fill(rechitEnergySum_EE); + h_rechit_energy_FH_only->Fill(rechitEnergySum_FH); + h_rechit_energy_EE_vs_FH->Fill(rechitEnergySum_EE,rechitEnergySum_FH); + h_rechit_En_NRechits->Fill(NRechits,rechitEnergySum); + // h_Nrechit_EE_vs_FH->Fill(Nrechit_EE,Nrechit_FH); + // h_Nrechit_EE->Fill(Nrechit_EE); + // h_Nrechit_FH->Fill(Nrechit_FH); + + if(DEBUG) cout<<"DEBUG: End of Event = "<GetXaxis()->SetTitle("energy in EE(MIPs)"); + h_rechit_energy_EE_vs_FH->GetYaxis()->SetTitle("energy in FH(MIPs)"); + + h_Nrechit_EE = new TH1F("h_Nrechit_EE","NRechits in EE",500,0.0,1000.0); + h_Nrechit_FH = new TH1F("h_Nrechit_FH","NRechits in FH",500,0.0,1000.0); + h_Nrechit_EE_vs_FH = new TH2F("h_Nrechit_EE_vs_FH","NRechits EE vs FH",500,0.0,1000.0,500,0.0,1000.0); + h_Nrechit_EE_vs_FH->GetXaxis()->SetTitle("NRechits in EE"); + h_Nrechit_EE_vs_FH->GetYaxis()->SetTitle("NRechits in FH"); + + + + h_rechit_En_NRechits = new TH2F("h_rechit_En_NRechits","h_rechit_En_NRechits",100,0,1000,500,0.0,20000.0); + + d_adcHG = oFile->mkdir("ADC_distributions"); + d_adcHG->cd(); + for(int i = 0; i < 28; i++) { + if((!strcmp(conf,"charlie") || !strcmp(conf,"config3")) && (i+1 > 8)) break; + sprintf(dir_name,"EE_%d",i+1); + d_EE[i] = d_adcHG->mkdir(dir_name); + d_EE[i]->cd(); + sprintf(hname,"h_Nrechits_EE_L%d",i+1); + h_NRechits_EE[i] = new TH1F(hname, hname, 50, 0, 50); + sprintf(hname,"h_dR_layer_%d",i+1); + h_dR[i] = new TH1F(hname,hname,21.0,-1.0,20.0); + + sprintf(hname,"h_rechitX_rechitY_layer_%d",i+1); + h_rechitX_vs_rechitY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_trackX_trackY_layer_%d",i+1); + h_trackX_vs_trackY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + sprintf(hname,"h_rechitX_trackX_layer_%d",i+1); + h_rechitX_vs_trackX_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + sprintf(hname,"h_rechitY_trackY_layer_%d",i+1); + h_rechitY_vs_trackY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + + sprintf(hname,"h_dX_dY_layer_%d",i+1); + h_dX_dY_layer[i] = new TH2F(hname,hname,16,-8.0,8.0,16,-8.0,8.0); + + int chan = 0; + for(int chip = 0; chip < 4; chip++) { + for(int cc = 0; cc < 64; cc+=2,chan++) { + sprintf(hname,"h_adcHG_EE_L%d_P0_chip%d_chan%d",i+1,chip,cc); + h_adcHG_EE[i][chan] = new TH1F(hname, hname, 100, 0, 400); + sprintf(hname,"h_adcHG_EE_L%d_P0_chip%d_chan%d_track",i+1,chip,cc); + h_adcHG_EE_track[i][chan] = new TH1F(hname, hname, 100, 0, 400); + + } + } + } + for(int i = 0; i < 12; i++){ + for(int j = 0; j < 7; j++) { + /* if(!strcmp(conf,"alpha") && (i+1)>9 ) { */ + /* if((j+1) != 4) continue; */ + /* } */ + + sprintf(dir_name,"FH_L%d_P%d",i+1,j+1); + d_FH[i][j] = d_adcHG->mkdir(dir_name); + d_FH[i][j]->cd(); + + sprintf(hname,"h_Nrechits_FH_L%d_P%d",i+1,j+1); + h_NRechits_FH[i][j] = new TH1F(hname, hname, 50, 0, 50); + + int chan = 0; + for(int chip = 0; chip < 4; chip++) { + for(int cc = 0; cc < 64; cc+=2,chan++) { + sprintf(hname,"h_adcHG_FH_L%d_P%d_chip%d_chan%d",i+1,j+1,chip,cc); + h_adcHG_FH[i][j][chan] = new TH1F(hname, hname, 100, 0, 400); + sprintf(hname,"h_adcHG_FH_L%d_P%d_chip%d_chan%d_track",i+1,j+1,chip,cc); + h_adcHG_FH_track[i][j][chan] = new TH1F(hname, hname, 100, 0, 400); + + + } + } + } + } + // sprintf(hname,"h_rechit_E_full_official"); + // h_ERechits_full_official_calib = new TH1F(hname,hname,375.0,0.0,25000.0); + + // sprintf(hname,"h_rechit_E_full_my"); + // h_ERechits_full_my_calib = new TH1F(hname,hname,375.0,0.0,25000.0); + + + // d_Nrechit_layer = oFile->mkdir("Nrechit_layer"); + // d_Nrechit_layer->cd(); + + // for (int i=0;i<28;i++) { + // sprintf(hname,"h_rechit_layer_%d",i+1); + // h_nRechits_layer[i] = new TH1F(hname,hname,3000,0.0,3000.0); + // } + + + + // d_rechit_en_layer = oFile->mkdir("rechit_energys"); + // d_rechit_en_layer->cd(); + + + // for (int i=0;i<28;i++) { + // sprintf(hname,"h_rechit_E_layer_%d",i); + // h_ERechits_layer[i] = new TH1F(hname,hname,250.0,0.0,5000.0); + // } + + + +} + + +void AnalyzeHGCOctTB::moduleMap_init(const char* config) { + char *f_name = new char[200]; + + if(strcmp(config,"alpha")==0 || strcmp(config,"config1")==0) { + sprintf(f_name,"../../config_maps/moduleMAP_config1.txt"); + cout<<"\n\nINFO: Mapping module configuration ALPHA (oct10-oct17) "<>layer_>>module_>>chip_>>channel_>>adc_){ +// en_chan = chip_*1000+channel_; +// std::pair temp; +// temp = std::make_pair(layer_,en_chan); +// std::pair, float> temp1; +// temp1 = std::make_pair(temp, adc_); +// offical_calib_map.insert(temp1); +// } +// } + +// void AnalyzeHGCOctTB::my_calib_init() { +// char *f_name = new char[200]; +// sprintf(f_name,"/home/shubham/work/HGCAL/CERNTB/CERN_5_oct_2018/txt_files/ADC_MIP_v11.txt"); +// std::ifstream in(f_name); +// if(!in){ +// cout<<"Could not find "<>layer_>>chip_>>channel_>>adc_>>chi2>>mip_err>>entry){ +// en_chan = chip_*1000+channel_; +// std::pair temp; +// temp = std::make_pair(layer_+1,en_chan); +// std::pair, float> temp1; +// temp1 = std::make_pair(temp, adc_); +// my_calib_map.insert(temp1); +// } +// } + +AnalyzeHGCOctTB::AnalyzeHGCOctTB(const TString &inputFileList, const char *outFileName, const char* dataset, const char* config) { + + TChain *tree = new TChain("rechitntupler/hits"); + TChain *tree2 = new TChain("trackimpactntupler/impactPoints"); + + if( ! FillChain(tree, tree2, inputFileList) ) { + std::cerr << "Cannot get the tree " << std::endl; + } else { + std::cout << "Initiating analysis of dataset " << dataset << std::endl; + } + + /* if( ! FillChain(tree, inputFileList) ) { */ + /* std::cerr << "Cannot get the tree " << std::endl; */ + /* } else { */ + /* std::cout << "Initiating analysis of dataset " << dataset << std::endl; */ + /* } */ + + HGCNtupleVariables::Init(tree, tree2); + /* HGCNtupleVariables::Init(tree); */ + + BookHistogram(outFileName, config); + moduleMap_init(config); + // offical_calib_init(); + // my_calib_init(); + +} + +Bool_t AnalyzeHGCOctTB::FillChain(TChain *chain, TChain *chain2, const TString &inputFileList) { +/* Bool_t AnalyzeHGCOctTB::FillChain(TChain *chain, const TString &inputFileList) { */ + + ifstream infile(inputFileList, ifstream::in); + std::string buffer; + + if(!infile.is_open()) { + std::cerr << "** ERROR: Can't open '" << inputFileList << "' for input" << std::endl; + return kFALSE; + } + + std::cout << "TreeUtilities : FillChain " << std::endl; + while(1) { + infile >> buffer; + if(!infile.good()) break; + //std::cout << "Adding tree from " << buffer.c_str() << std::endl; + chain->Add(buffer.c_str()); + chain2->Add(buffer.c_str()); + } + std::cout << "No. of Entries in chain : " << chain->GetEntries() << std::endl; + std::cout << "No. of Entries in chain2 : " << chain2->GetEntries() << std::endl; + return kTRUE; +} + +Long64_t AnalyzeHGCOctTB::LoadTree(Long64_t entry) { + // Set the environment to read one entry + if (!fChain) return -5; + Long64_t centry = fChain->LoadTree(entry); + if (centry < 0) return centry; + if (!fChain->InheritsFrom(TChain::Class())) return centry; + TChain *chain = (TChain*)fChain; + if (chain->GetTreeNumber() != fCurrent) { + fCurrent = chain->GetTreeNumber(); + // Notify(); + } + + if (!fChain2) return -5; + Long64_t centry2 = fChain2->LoadTree(entry); + if (centry2 < 0) return centry2; + if (!fChain2->InheritsFrom(TChain::Class())) return centry2; + TChain *chain2 = (TChain*)fChain2; + if (chain2->GetTreeNumber() != fCurrent) { + fCurrent = chain->GetTreeNumber(); + // Notify(); + } + + + //if (centry==centry2) + return centry; + // cout<<"centry = "<0) + // return centry; + // else return -1; +} + +AnalyzeHGCOctTB::~AnalyzeHGCOctTB() { + + // if (!fChain || !fChain2) return; + // delete fChain->GetCurrentFile(); + // delete fChain2->GetCurrentFile(); + // oFile->cd(); + // oFile->Write(); + // oFile->Close(); + + + if (!fChain) return; + delete fChain->GetCurrentFile(); + oFile->cd(); + oFile->Write(); + oFile->Close(); + +} + +#endif diff --git a/tracking_inclusion/only_EE_layer_config2/HGCNtupleVariables.cc b/tracking_inclusion/only_EE_layer_config2/HGCNtupleVariables.cc new file mode 100644 index 0000000..cf7cd2f --- /dev/null +++ b/tracking_inclusion/only_EE_layer_config2/HGCNtupleVariables.cc @@ -0,0 +1,73 @@ +#define HGCNtupleVariables_cxx +#include "HGCNtupleVariables.h" +#include +#include +#include +//#include + + + + +float HGCNtupleVariables::deltaR(float x1, float y1, float x2, float y2) { + float deltaR_ = sqrt(pow((x2-x1),2) + pow((y2-y1),2)); + return deltaR_; +} + + +int HGCNtupleVariables::getBIN(unsigned int skiroc,unsigned int channel) { + if (channel%2 != 0 || channel > 62 || skiroc > 3) return -1; + else return (skiroc*32 + (channel/2)); +} + + +std::vector HGCNtupleVariables::getModuleLocation(int moduleID) { + std::map>::iterator it = module_map.find(moduleID); + if(it != module_map.end()){ + return it->second; + } + else { + return std::vector(); + } +} + + + +//double HGCNtupleVariables::shower_comparisons(TProfile* shower, TH1F* hist) { +// TH1F* HGCNtupleVariables::shower_comparisons(TProfile* shower, TH1F* hist) { +// // TFile* file0 = TFile::Open("/home/shubham/work/HGCAL/CERNTB/niramay/niramay_github/forked_repo/E_Pi_Comparison/functions/Template_150_GeV.root"); +// // TH1F* ref_hist = (TH1F*)file0->Get("hist_ref_template"); +// //TH1F* hist = new TH1F("hist","hist",30,0,30); +// for(int i = 1; i <= shower->GetNbinsX(); i++){ +// hist->SetBinContent(i,shower->GetBinContent(i)); +// } +// return hist; +// //return (hist->Chi2Test(ref_h,"CHI2/NDF")); +// } + + +// float HGCNtupleVariables::find_official_calib(int layer, int en_chan){ +// std::pair temp_find; +// temp_find = std::make_pair(layer,en_chan); +// std::map, float >::iterator it = offical_calib_map.find(temp_find); +// if(it != offical_calib_map.end()){ +// return it->second; +// } +// else { +// return -1.0; +// } +// } + + +// float HGCNtupleVariables::find_my_calib(int layer, int en_chan){ +// std::pair temp_find; +// temp_find = std::make_pair(layer,en_chan); +// std::map, float >::iterator it = my_calib_map.find(temp_find); +// if(it != my_calib_map.end()){ +// return it->second; +// } +// else { +// return -1.0; +// } +// } + + diff --git a/tracking_inclusion/only_EE_layer_config2/HGCNtupleVariables.h b/tracking_inclusion/only_EE_layer_config2/HGCNtupleVariables.h new file mode 100644 index 0000000..2ad02fa --- /dev/null +++ b/tracking_inclusion/only_EE_layer_config2/HGCNtupleVariables.h @@ -0,0 +1,511 @@ +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Thu Aug 16 18:22:34 2018 by ROOT version 6.06/01 +// from TTree hits/HGC rechits +// found on file: muon_v10.root +////////////////////////////////////////////////////////// + +#ifndef HGCNtupleVariables_h +#define HGCNtupleVariables_h + +#include +#include +#include +#include + +// Header file for the classes stored in the TTree if any. +#include "vector" + +using namespace std; + +class HGCNtupleVariables { +public : + + HGCNtupleVariables(TTree * /*tree*/ =0) : fChain(0) { } + ~HGCNtupleVariables() { } + /* void Init(TTree *tree); */ + void Init(TTree *tree, TTree *tree2); + Bool_t Notify(); + Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; } + std::vector getModuleLocation(int moduleID); + int getBIN(unsigned int skiroc,unsigned int channel); + float deltaR(float x1, float y1, float x2, float y2); + //double shower_comparisons(TProfile* shower, TH1F* hist); + //double shower_comparisons(TProfile* shower, TH1F* ref_h); + // TH1F* shower_comparisons(TProfile* shower, TH1F* hist); + // float find_my_calib(int layer, int en_chan); + // float find_official_calib(int layer, int en_chan); + std::map> module_map; + // std::map, float> offical_calib_map; + // std::map, float> my_calib_map; + + TTree *fChain; //!pointer to the analyzed TTree or TChain + TTree *fChain2; //!pointer to the analyzed TTree or TChain + Int_t fCurrent; //!current Tree number in a TChain + Int_t fCurrent2; //!current Tree number in a TChain + + // Fixed size dimensions of array or collections stored in the TTree if any. + + // Declaration of leaf types + UInt_t event; + UInt_t run; + Int_t pdgID; + Float_t beamEnergy; + Float_t trueBeamEnergy; + Int_t NRechits; + vector *rechit_detid; + vector *rechit_module; + vector *rechit_layer; + vector *rechit_chip; + vector *rechit_channel; + vector *rechit_type; + vector *rechit_x; + vector *rechit_y; + vector *rechit_z; + vector *rechit_iu; + vector *rechit_iv; + vector *rechit_energy; + vector *rechit_energy_noHG; + vector *rechit_amplitudeHigh; + vector *rechit_amplitudeLow; + vector *rechit_hg_goodFit; + vector *rechit_lg_goodFit; + vector *rechit_hg_saturated; + vector *rechit_lg_saturated; + vector *rechit_fully_calibrated; + vector *rechit_TS2High; + vector *rechit_TS2Low; + vector *rechit_TS3High; + vector *rechit_TS3Low; + vector *rechit_Tot; + vector *rechit_time; + vector *rechit_timeMaxHG; + vector *rechit_timeMaxLG; + vector *rechit_toaRise; + vector *rechit_toaFall; + + // List of branches + TBranch *b_event; //! + TBranch *b_run; //! + TBranch *b_pdgID; //! + TBranch *b_beamEnergy; //! + TBranch *b_trueBeamEnergy; //! + TBranch *b_NRechits; //! + TBranch *b_rechit_detid; //! + TBranch *b_rechit_module; //! + TBranch *b_rechit_layer; //! + TBranch *b_rechit_chip; //! + TBranch *b_rechit_channel; //! + TBranch *b_rechit_type; //! + TBranch *b_rechit_x; //! + TBranch *b_rechit_y; //! + TBranch *b_rechit_z; //! + TBranch *b_rechit_iu; //! + TBranch *b_rechit_iv; //! + TBranch *b_rechit_energy; //! + TBranch *b_rechit_energy_noHG; //! + TBranch *b_rechit_amplitudeHigh; //! + TBranch *b_rechit_amplitudeLow; //! + TBranch *b_rechit_hg_goodFit; //! + TBranch *b_rechit_lg_goodFit; //! + TBranch *b_rechit_hg_saturated; //! + TBranch *b_rechit_lg_saturated; //! + TBranch *b_rechit_fully_calibrated; //! + TBranch *b_rechit_TS2High; //! + TBranch *b_rechit_TS2Low; //! + TBranch *b_rechit_TS3High; //! + TBranch *b_rechit_TS3Low; //! + TBranch *b_rechit_Tot; //! + TBranch *b_rechit_time; //! + TBranch *b_rechit_timeMaxHG; //! + TBranch *b_rechit_timeMaxLG; //! + TBranch *b_rechit_toaRise; //! + TBranch *b_rechit_toaFall; //! + + // second tree + Int_t ntracks; + Float_t impactX_HGCal_layer_1; + Float_t impactY_HGCal_layer_1; + Float_t impactX_HGCal_layer_2; + Float_t impactY_HGCal_layer_2; + Float_t impactX_HGCal_layer_3; + Float_t impactY_HGCal_layer_3; + Float_t impactX_HGCal_layer_4; + Float_t impactY_HGCal_layer_4; + Float_t impactX_HGCal_layer_5; + Float_t impactY_HGCal_layer_5; + Float_t impactX_HGCal_layer_6; + Float_t impactY_HGCal_layer_6; + Float_t impactX_HGCal_layer_7; + Float_t impactY_HGCal_layer_7; + Float_t impactX_HGCal_layer_8; + Float_t impactY_HGCal_layer_8; + Float_t impactX_HGCal_layer_9; + Float_t impactY_HGCal_layer_9; + Float_t impactX_HGCal_layer_10; + Float_t impactY_HGCal_layer_10; + Float_t impactX_HGCal_layer_11; + Float_t impactY_HGCal_layer_11; + Float_t impactX_HGCal_layer_12; + Float_t impactY_HGCal_layer_12; + Float_t impactX_HGCal_layer_13; + Float_t impactY_HGCal_layer_13; + Float_t impactX_HGCal_layer_14; + Float_t impactY_HGCal_layer_14; + Float_t impactX_HGCal_layer_15; + Float_t impactY_HGCal_layer_15; + Float_t impactX_HGCal_layer_16; + Float_t impactY_HGCal_layer_16; + Float_t impactX_HGCal_layer_17; + Float_t impactY_HGCal_layer_17; + Float_t impactX_HGCal_layer_18; + Float_t impactY_HGCal_layer_18; + Float_t impactX_HGCal_layer_19; + Float_t impactY_HGCal_layer_19; + Float_t impactX_HGCal_layer_20; + Float_t impactY_HGCal_layer_20; + Float_t impactX_HGCal_layer_21; + Float_t impactY_HGCal_layer_21; + Float_t impactX_HGCal_layer_22; + Float_t impactY_HGCal_layer_22; + Float_t impactX_HGCal_layer_23; + Float_t impactY_HGCal_layer_23; + Float_t impactX_HGCal_layer_24; + Float_t impactY_HGCal_layer_24; + Float_t impactX_HGCal_layer_25; + Float_t impactY_HGCal_layer_25; + Float_t impactX_HGCal_layer_26; + Float_t impactY_HGCal_layer_26; + Float_t impactX_HGCal_layer_27; + Float_t impactY_HGCal_layer_27; + Float_t impactX_HGCal_layer_28; + Float_t impactY_HGCal_layer_28; + Float_t impactX_HGCal_layer_29; + Float_t impactY_HGCal_layer_29; + Float_t impactX_HGCal_layer_30; + Float_t impactY_HGCal_layer_30; + Float_t impactX_HGCal_layer_31; + Float_t impactY_HGCal_layer_31; + Float_t impactX_HGCal_layer_32; + Float_t impactY_HGCal_layer_32; + Float_t impactX_HGCal_layer_33; + Float_t impactY_HGCal_layer_33; + Float_t impactX_HGCal_layer_34; + Float_t impactY_HGCal_layer_34; + Float_t impactX_HGCal_layer_35; + Float_t impactY_HGCal_layer_35; + Float_t impactX_HGCal_layer_36; + Float_t impactY_HGCal_layer_36; + Float_t impactX_HGCal_layer_37; + Float_t impactY_HGCal_layer_37; + Float_t impactX_HGCal_layer_38; + Float_t impactY_HGCal_layer_38; + Float_t impactX_HGCal_layer_39; + Float_t impactY_HGCal_layer_39; + Float_t impactX_HGCal_layer_40; + Float_t impactY_HGCal_layer_40; + + + Float_t trackChi2_X; + Float_t trackChi2_Y; + Int_t dwcReferenceType; + Double_t m_x; + Double_t m_y; + Double_t b_x; + Double_t b_y; + + // List of branches + TBranch *b_ntracks; //! + TBranch *b_impactX_HGCal_layer_1; //! + TBranch *b_impactY_HGCal_layer_1; //! + TBranch *b_impactX_HGCal_layer_2; //! + TBranch *b_impactY_HGCal_layer_2; //! + TBranch *b_impactX_HGCal_layer_3; //! + TBranch *b_impactY_HGCal_layer_3; //! + TBranch *b_impactX_HGCal_layer_4; //! + TBranch *b_impactY_HGCal_layer_4; //! + TBranch *b_impactX_HGCal_layer_5; //! + TBranch *b_impactY_HGCal_layer_5; //! + TBranch *b_impactX_HGCal_layer_6; //! + TBranch *b_impactY_HGCal_layer_6; //! + TBranch *b_impactX_HGCal_layer_7; //! + TBranch *b_impactY_HGCal_layer_7; //! + TBranch *b_impactX_HGCal_layer_8; //! + TBranch *b_impactY_HGCal_layer_8; //! + TBranch *b_impactX_HGCal_layer_9; //! + TBranch *b_impactY_HGCal_layer_9; //! + TBranch *b_impactX_HGCal_layer_10; //! + TBranch *b_impactY_HGCal_layer_10; //! + TBranch *b_impactX_HGCal_layer_11; //! + TBranch *b_impactY_HGCal_layer_11; //! + TBranch *b_impactX_HGCal_layer_12; //! + TBranch *b_impactY_HGCal_layer_12; //! + TBranch *b_impactX_HGCal_layer_13; //! + TBranch *b_impactY_HGCal_layer_13; //! + TBranch *b_impactX_HGCal_layer_14; //! + TBranch *b_impactY_HGCal_layer_14; //! + TBranch *b_impactX_HGCal_layer_15; //! + TBranch *b_impactY_HGCal_layer_15; //! + TBranch *b_impactX_HGCal_layer_16; //! + TBranch *b_impactY_HGCal_layer_16; //! + TBranch *b_impactX_HGCal_layer_17; //! + TBranch *b_impactY_HGCal_layer_17; //! + TBranch *b_impactX_HGCal_layer_18; //! + TBranch *b_impactY_HGCal_layer_18; //! + TBranch *b_impactX_HGCal_layer_19; //! + TBranch *b_impactY_HGCal_layer_19; //! + TBranch *b_impactX_HGCal_layer_20; //! + TBranch *b_impactY_HGCal_layer_20; //! + TBranch *b_impactX_HGCal_layer_21; //! + TBranch *b_impactY_HGCal_layer_21; //! + TBranch *b_impactX_HGCal_layer_22; //! + TBranch *b_impactY_HGCal_layer_22; //! + TBranch *b_impactX_HGCal_layer_23; //! + TBranch *b_impactY_HGCal_layer_23; //! + TBranch *b_impactX_HGCal_layer_24; //! + TBranch *b_impactY_HGCal_layer_24; //! + TBranch *b_impactX_HGCal_layer_25; //! + TBranch *b_impactY_HGCal_layer_25; //! + TBranch *b_impactX_HGCal_layer_26; //! + TBranch *b_impactY_HGCal_layer_26; //! + TBranch *b_impactX_HGCal_layer_27; //! + TBranch *b_impactY_HGCal_layer_27; //! + TBranch *b_impactX_HGCal_layer_28; //! + TBranch *b_impactY_HGCal_layer_28; //! + TBranch *b_impactX_HGCal_layer_29; + TBranch *b_impactY_HGCal_layer_29; + TBranch *b_impactX_HGCal_layer_30; + TBranch *b_impactY_HGCal_layer_30; + TBranch *b_impactX_HGCal_layer_31; + TBranch *b_impactY_HGCal_layer_31; + TBranch *b_impactX_HGCal_layer_32; + TBranch *b_impactY_HGCal_layer_32; + TBranch *b_impactX_HGCal_layer_33; + TBranch *b_impactY_HGCal_layer_33; + TBranch *b_impactX_HGCal_layer_34; + TBranch *b_impactY_HGCal_layer_34; + TBranch *b_impactX_HGCal_layer_35; + TBranch *b_impactY_HGCal_layer_35; + TBranch *b_impactX_HGCal_layer_36; + TBranch *b_impactY_HGCal_layer_36; + TBranch *b_impactX_HGCal_layer_37; + TBranch *b_impactY_HGCal_layer_37; + TBranch *b_impactX_HGCal_layer_38; + TBranch *b_impactY_HGCal_layer_38; + TBranch *b_impactX_HGCal_layer_39; + TBranch *b_impactY_HGCal_layer_39; + TBranch *b_impactX_HGCal_layer_40; + TBranch *b_impactY_HGCal_layer_40; + + TBranch *b_trackChi2_X; //! + TBranch *b_trackChi2_Y; //! + TBranch *b_dwcReferenceType; //! + TBranch *b_m_x; //! + TBranch *b_m_y; //! + TBranch *b_b_x; //! + TBranch *b_b_y; //! + + + +}; + +#endif + +#ifdef HGCNtupleVariables_cxx + +void HGCNtupleVariables::Init(TTree *tree, TTree *tree2) +/* void HGCNtupleVariables::Init(TTree *tree) */ +{ + // The Init() function is called when the selector needs to initialize + // a new tree or chain. Typically here the branch addresses and branch + // pointers of the tree will be set. + // It is normally not necessary to make changes to the generated + // code, but the routine can be extended by the user if needed. + // Init() will be called many times when running on PROOF + // (once per file to be processed). + + // Set object pointer + rechit_detid = 0; + rechit_module = 0; + rechit_layer = 0; + rechit_chip = 0; + rechit_channel = 0; + rechit_type = 0; + rechit_x = 0; + rechit_y = 0; + rechit_z = 0; + rechit_iu = 0; + rechit_iv = 0; + rechit_energy = 0; + rechit_energy_noHG = 0; + rechit_amplitudeHigh = 0; + rechit_amplitudeLow = 0; + rechit_hg_goodFit = 0; + rechit_lg_goodFit = 0; + rechit_hg_saturated = 0; + rechit_lg_saturated = 0; + rechit_fully_calibrated = 0; + rechit_TS2High = 0; + rechit_TS2Low = 0; + rechit_TS3High = 0; + rechit_TS3Low = 0; + rechit_Tot = 0; + rechit_time = 0; + rechit_timeMaxHG = 0; + rechit_timeMaxLG = 0; + rechit_toaRise = 0; + rechit_toaFall = 0; + // Set branch addresses and branch pointers + if (!tree) return; + fChain = tree; + fCurrent = -1; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("event", &event, &b_event); + fChain->SetBranchAddress("run", &run, &b_run); + fChain->SetBranchAddress("pdgID", &pdgID, &b_pdgID); + fChain->SetBranchAddress("beamEnergy", &beamEnergy, &b_beamEnergy); + fChain->SetBranchAddress("trueBeamEnergy", &trueBeamEnergy, &b_trueBeamEnergy); + fChain->SetBranchAddress("NRechits", &NRechits, &b_NRechits); + fChain->SetBranchAddress("rechit_detid", &rechit_detid, &b_rechit_detid); + fChain->SetBranchAddress("rechit_module", &rechit_module, &b_rechit_module); + fChain->SetBranchAddress("rechit_layer", &rechit_layer, &b_rechit_layer); + fChain->SetBranchAddress("rechit_chip", &rechit_chip, &b_rechit_chip); + fChain->SetBranchAddress("rechit_channel", &rechit_channel, &b_rechit_channel); + fChain->SetBranchAddress("rechit_type", &rechit_type, &b_rechit_type); + fChain->SetBranchAddress("rechit_x", &rechit_x, &b_rechit_x); + fChain->SetBranchAddress("rechit_y", &rechit_y, &b_rechit_y); + fChain->SetBranchAddress("rechit_z", &rechit_z, &b_rechit_z); + fChain->SetBranchAddress("rechit_iu", &rechit_iu, &b_rechit_iu); + fChain->SetBranchAddress("rechit_iv", &rechit_iv, &b_rechit_iv); + fChain->SetBranchAddress("rechit_energy", &rechit_energy, &b_rechit_energy); + fChain->SetBranchAddress("rechit_energy_noHG", &rechit_energy_noHG, &b_rechit_energy_noHG); + fChain->SetBranchAddress("rechit_amplitudeHigh", &rechit_amplitudeHigh, &b_rechit_amplitudeHigh); + fChain->SetBranchAddress("rechit_amplitudeLow", &rechit_amplitudeLow, &b_rechit_amplitudeLow); + fChain->SetBranchAddress("rechit_hg_goodFit", &rechit_hg_goodFit, &b_rechit_hg_goodFit); + fChain->SetBranchAddress("rechit_lg_goodFit", &rechit_lg_goodFit, &b_rechit_lg_goodFit); + fChain->SetBranchAddress("rechit_hg_saturated", &rechit_hg_saturated, &b_rechit_hg_saturated); + fChain->SetBranchAddress("rechit_lg_saturated", &rechit_lg_saturated, &b_rechit_lg_saturated); + fChain->SetBranchAddress("rechit_fully_calibrated", &rechit_fully_calibrated, &b_rechit_fully_calibrated); + fChain->SetBranchAddress("rechit_TS2High", &rechit_TS2High, &b_rechit_TS2High); + fChain->SetBranchAddress("rechit_TS2Low", &rechit_TS2Low, &b_rechit_TS2Low); + fChain->SetBranchAddress("rechit_TS3High", &rechit_TS3High, &b_rechit_TS3High); + fChain->SetBranchAddress("rechit_TS3Low", &rechit_TS3Low, &b_rechit_TS3Low); + fChain->SetBranchAddress("rechit_Tot", &rechit_Tot, &b_rechit_Tot); + fChain->SetBranchAddress("rechit_time", &rechit_time, &b_rechit_time); + fChain->SetBranchAddress("rechit_timeMaxHG", &rechit_timeMaxHG, &b_rechit_timeMaxHG); + fChain->SetBranchAddress("rechit_timeMaxLG", &rechit_timeMaxLG, &b_rechit_timeMaxLG); + fChain->SetBranchAddress("rechit_toaRise", &rechit_toaRise, &b_rechit_toaRise); + fChain->SetBranchAddress("rechit_toaFall", &rechit_toaFall, &b_rechit_toaFall); + + // Set branch addresses and branch pointers + if (!tree2) return; + fChain2 = tree2; + fCurrent2 = -1; + fChain2->SetMakeClass(1); + + fChain2->SetBranchAddress("ntracks", &ntracks, &b_ntracks); + fChain2->SetBranchAddress("impactX_HGCal_layer_1", &impactX_HGCal_layer_1, &b_impactX_HGCal_layer_1); + fChain2->SetBranchAddress("impactY_HGCal_layer_1", &impactY_HGCal_layer_1, &b_impactY_HGCal_layer_1); + fChain2->SetBranchAddress("impactX_HGCal_layer_2", &impactX_HGCal_layer_2, &b_impactX_HGCal_layer_2); + fChain2->SetBranchAddress("impactY_HGCal_layer_2", &impactY_HGCal_layer_2, &b_impactY_HGCal_layer_2); + fChain2->SetBranchAddress("impactX_HGCal_layer_3", &impactX_HGCal_layer_3, &b_impactX_HGCal_layer_3); + fChain2->SetBranchAddress("impactY_HGCal_layer_3", &impactY_HGCal_layer_3, &b_impactY_HGCal_layer_3); + fChain2->SetBranchAddress("impactX_HGCal_layer_4", &impactX_HGCal_layer_4, &b_impactX_HGCal_layer_4); + fChain2->SetBranchAddress("impactY_HGCal_layer_4", &impactY_HGCal_layer_4, &b_impactY_HGCal_layer_4); + fChain2->SetBranchAddress("impactX_HGCal_layer_5", &impactX_HGCal_layer_5, &b_impactX_HGCal_layer_5); + fChain2->SetBranchAddress("impactY_HGCal_layer_5", &impactY_HGCal_layer_5, &b_impactY_HGCal_layer_5); + fChain2->SetBranchAddress("impactX_HGCal_layer_6", &impactX_HGCal_layer_6, &b_impactX_HGCal_layer_6); + fChain2->SetBranchAddress("impactY_HGCal_layer_6", &impactY_HGCal_layer_6, &b_impactY_HGCal_layer_6); + fChain2->SetBranchAddress("impactX_HGCal_layer_7", &impactX_HGCal_layer_7, &b_impactX_HGCal_layer_7); + fChain2->SetBranchAddress("impactY_HGCal_layer_7", &impactY_HGCal_layer_7, &b_impactY_HGCal_layer_7); + fChain2->SetBranchAddress("impactX_HGCal_layer_8", &impactX_HGCal_layer_8, &b_impactX_HGCal_layer_8); + fChain2->SetBranchAddress("impactY_HGCal_layer_8", &impactY_HGCal_layer_8, &b_impactY_HGCal_layer_8); + fChain2->SetBranchAddress("impactX_HGCal_layer_9", &impactX_HGCal_layer_9, &b_impactX_HGCal_layer_9); + fChain2->SetBranchAddress("impactY_HGCal_layer_9", &impactY_HGCal_layer_9, &b_impactY_HGCal_layer_9); + fChain2->SetBranchAddress("impactX_HGCal_layer_10", &impactX_HGCal_layer_10, &b_impactX_HGCal_layer_10); + fChain2->SetBranchAddress("impactY_HGCal_layer_10", &impactY_HGCal_layer_10, &b_impactY_HGCal_layer_10); + fChain2->SetBranchAddress("impactX_HGCal_layer_11", &impactX_HGCal_layer_11, &b_impactX_HGCal_layer_11); + fChain2->SetBranchAddress("impactY_HGCal_layer_11", &impactY_HGCal_layer_11, &b_impactY_HGCal_layer_11); + fChain2->SetBranchAddress("impactX_HGCal_layer_12", &impactX_HGCal_layer_12, &b_impactX_HGCal_layer_12); + fChain2->SetBranchAddress("impactY_HGCal_layer_12", &impactY_HGCal_layer_12, &b_impactY_HGCal_layer_12); + fChain2->SetBranchAddress("impactX_HGCal_layer_13", &impactX_HGCal_layer_13, &b_impactX_HGCal_layer_13); + fChain2->SetBranchAddress("impactY_HGCal_layer_13", &impactY_HGCal_layer_13, &b_impactY_HGCal_layer_13); + fChain2->SetBranchAddress("impactX_HGCal_layer_14", &impactX_HGCal_layer_14, &b_impactX_HGCal_layer_14); + fChain2->SetBranchAddress("impactY_HGCal_layer_14", &impactY_HGCal_layer_14, &b_impactY_HGCal_layer_14); + fChain2->SetBranchAddress("impactX_HGCal_layer_15", &impactX_HGCal_layer_15, &b_impactX_HGCal_layer_15); + fChain2->SetBranchAddress("impactY_HGCal_layer_15", &impactY_HGCal_layer_15, &b_impactY_HGCal_layer_15); + fChain2->SetBranchAddress("impactX_HGCal_layer_16", &impactX_HGCal_layer_16, &b_impactX_HGCal_layer_16); + fChain2->SetBranchAddress("impactY_HGCal_layer_16", &impactY_HGCal_layer_16, &b_impactY_HGCal_layer_16); + fChain2->SetBranchAddress("impactX_HGCal_layer_17", &impactX_HGCal_layer_17, &b_impactX_HGCal_layer_17); + fChain2->SetBranchAddress("impactY_HGCal_layer_17", &impactY_HGCal_layer_17, &b_impactY_HGCal_layer_17); + fChain2->SetBranchAddress("impactX_HGCal_layer_18", &impactX_HGCal_layer_18, &b_impactX_HGCal_layer_18); + fChain2->SetBranchAddress("impactY_HGCal_layer_18", &impactY_HGCal_layer_18, &b_impactY_HGCal_layer_18); + fChain2->SetBranchAddress("impactX_HGCal_layer_19", &impactX_HGCal_layer_19, &b_impactX_HGCal_layer_19); + fChain2->SetBranchAddress("impactY_HGCal_layer_19", &impactY_HGCal_layer_19, &b_impactY_HGCal_layer_19); + fChain2->SetBranchAddress("impactX_HGCal_layer_20", &impactX_HGCal_layer_20, &b_impactX_HGCal_layer_20); + fChain2->SetBranchAddress("impactY_HGCal_layer_20", &impactY_HGCal_layer_20, &b_impactY_HGCal_layer_20); + fChain2->SetBranchAddress("impactX_HGCal_layer_21", &impactX_HGCal_layer_21, &b_impactX_HGCal_layer_21); + fChain2->SetBranchAddress("impactY_HGCal_layer_21", &impactY_HGCal_layer_21, &b_impactY_HGCal_layer_21); + fChain2->SetBranchAddress("impactX_HGCal_layer_22", &impactX_HGCal_layer_22, &b_impactX_HGCal_layer_22); + fChain2->SetBranchAddress("impactY_HGCal_layer_22", &impactY_HGCal_layer_22, &b_impactY_HGCal_layer_22); + fChain2->SetBranchAddress("impactX_HGCal_layer_23", &impactX_HGCal_layer_23, &b_impactX_HGCal_layer_23); + fChain2->SetBranchAddress("impactY_HGCal_layer_23", &impactY_HGCal_layer_23, &b_impactY_HGCal_layer_23); + fChain2->SetBranchAddress("impactX_HGCal_layer_24", &impactX_HGCal_layer_24, &b_impactX_HGCal_layer_24); + fChain2->SetBranchAddress("impactY_HGCal_layer_24", &impactY_HGCal_layer_24, &b_impactY_HGCal_layer_24); + fChain2->SetBranchAddress("impactX_HGCal_layer_25", &impactX_HGCal_layer_25, &b_impactX_HGCal_layer_25); + fChain2->SetBranchAddress("impactY_HGCal_layer_25", &impactY_HGCal_layer_25, &b_impactY_HGCal_layer_25); + fChain2->SetBranchAddress("impactX_HGCal_layer_26", &impactX_HGCal_layer_26, &b_impactX_HGCal_layer_26); + fChain2->SetBranchAddress("impactY_HGCal_layer_26", &impactY_HGCal_layer_26, &b_impactY_HGCal_layer_26); + fChain2->SetBranchAddress("impactX_HGCal_layer_27", &impactX_HGCal_layer_27, &b_impactX_HGCal_layer_27); + fChain2->SetBranchAddress("impactY_HGCal_layer_27", &impactY_HGCal_layer_27, &b_impactY_HGCal_layer_27); + fChain2->SetBranchAddress("impactX_HGCal_layer_28", &impactX_HGCal_layer_28, &b_impactX_HGCal_layer_28); + fChain2->SetBranchAddress("impactY_HGCal_layer_28", &impactY_HGCal_layer_28, &b_impactY_HGCal_layer_28); + fChain2->SetBranchAddress("impactX_HGCal_layer_29", &impactX_HGCal_layer_29, &b_impactX_HGCal_layer_29); + fChain2->SetBranchAddress("impactY_HGCal_layer_29", &impactY_HGCal_layer_29, &b_impactY_HGCal_layer_29); + fChain2->SetBranchAddress("impactX_HGCal_layer_30", &impactX_HGCal_layer_30, &b_impactX_HGCal_layer_30); + fChain2->SetBranchAddress("impactY_HGCal_layer_30", &impactY_HGCal_layer_30, &b_impactY_HGCal_layer_30); + fChain2->SetBranchAddress("impactX_HGCal_layer_31", &impactX_HGCal_layer_31, &b_impactX_HGCal_layer_31); + fChain2->SetBranchAddress("impactY_HGCal_layer_31", &impactY_HGCal_layer_31, &b_impactY_HGCal_layer_31); + fChain2->SetBranchAddress("impactX_HGCal_layer_32", &impactX_HGCal_layer_32, &b_impactX_HGCal_layer_32); + fChain2->SetBranchAddress("impactY_HGCal_layer_32", &impactY_HGCal_layer_32, &b_impactY_HGCal_layer_32); + fChain2->SetBranchAddress("impactX_HGCal_layer_33", &impactX_HGCal_layer_33, &b_impactX_HGCal_layer_33); + fChain2->SetBranchAddress("impactY_HGCal_layer_33", &impactY_HGCal_layer_33, &b_impactY_HGCal_layer_33); + fChain2->SetBranchAddress("impactX_HGCal_layer_34", &impactX_HGCal_layer_34, &b_impactX_HGCal_layer_34); + fChain2->SetBranchAddress("impactY_HGCal_layer_34", &impactY_HGCal_layer_34, &b_impactY_HGCal_layer_34); + fChain2->SetBranchAddress("impactX_HGCal_layer_35", &impactX_HGCal_layer_35, &b_impactX_HGCal_layer_35); + fChain2->SetBranchAddress("impactY_HGCal_layer_35", &impactY_HGCal_layer_35, &b_impactY_HGCal_layer_35); + fChain2->SetBranchAddress("impactX_HGCal_layer_36", &impactX_HGCal_layer_36, &b_impactX_HGCal_layer_36); + fChain2->SetBranchAddress("impactY_HGCal_layer_36", &impactY_HGCal_layer_36, &b_impactY_HGCal_layer_36); + fChain2->SetBranchAddress("impactX_HGCal_layer_37", &impactX_HGCal_layer_37, &b_impactX_HGCal_layer_37); + fChain2->SetBranchAddress("impactY_HGCal_layer_37", &impactY_HGCal_layer_37, &b_impactY_HGCal_layer_37); + fChain2->SetBranchAddress("impactX_HGCal_layer_38", &impactX_HGCal_layer_38, &b_impactX_HGCal_layer_38); + fChain2->SetBranchAddress("impactY_HGCal_layer_38", &impactY_HGCal_layer_38, &b_impactY_HGCal_layer_38); + fChain2->SetBranchAddress("impactX_HGCal_layer_39", &impactX_HGCal_layer_39, &b_impactX_HGCal_layer_39); + fChain2->SetBranchAddress("impactY_HGCal_layer_39", &impactY_HGCal_layer_39, &b_impactY_HGCal_layer_39); + fChain2->SetBranchAddress("impactX_HGCal_layer_40", &impactX_HGCal_layer_40, &b_impactX_HGCal_layer_40); + fChain2->SetBranchAddress("impactY_HGCal_layer_40", &impactY_HGCal_layer_40, &b_impactY_HGCal_layer_40); + + fChain2->SetBranchAddress("trackChi2_X", &trackChi2_X, &b_trackChi2_X); + fChain2->SetBranchAddress("trackChi2_Y", &trackChi2_Y, &b_trackChi2_Y); + fChain2->SetBranchAddress("dwcReferenceType", &dwcReferenceType, &b_dwcReferenceType); + fChain2->SetBranchAddress("m_x", &m_x, &b_m_x); + fChain2->SetBranchAddress("m_y", &m_y, &b_m_y); + fChain2->SetBranchAddress("b_x", &b_x, &b_b_x); + fChain2->SetBranchAddress("b_y", &b_y, &b_b_y); + + Notify(); +} + +Bool_t HGCNtupleVariables::Notify() +{ + // The Notify() function is called when a new file is opened. This + // can be either for a new TTree in a TChain or when when a new TTree + // is started when using PROOF. It is normally not necessary to make changes + // to the generated code, but the routine can be extended by the + // user if needed. The return value is currently not used. + + return kTRUE; +} + +#endif // #ifdef HGCNtupleVariables_cxx diff --git a/tracking_inclusion/only_EE_layer_config2/Makefile b/tracking_inclusion/only_EE_layer_config2/Makefile new file mode 100644 index 0000000..0e04de3 --- /dev/null +++ b/tracking_inclusion/only_EE_layer_config2/Makefile @@ -0,0 +1,37 @@ +CXX = g++ + +CXXFLAGS= $(shell root-config --cflags) +LIBS = $(shell root-config --libs) + + +SOURCES = HGCNtupleVariables.cc AnalyzeHGCOctTB.cc +HEADERS = HGCNtupleVariables.h AnalyzeHGCOctTB.h +OBJECTS = $(SOURCES:.cc=.o) + +EXECUTABLE = analyzeHGCOctTB + +all: $(SOURCES) $(EXECUTABLE) + +%.o: %.cc + @echo Compiling $<... + $(CXX) $(CXXFLAGS) -c -o $@ $< + + +$(EXECUTABLE): $(OBJECTS) + @echo "Linking $(PROGRAM) ..." + @echo "@$(CXX) $(LIBS) $(OBJECTS) -o $@" + @$(CXX) -o $@ $^ $(LIBS) + @echo "done" + + +# Specifying the object files as intermediates deletes them automatically after the build process. +.INTERMEDIATE: $(OBJECTS) + +# The default target, which gives instructions, can be called regardless of whether or not files need to be updated. +.PHONY : clean +clean: + rm -f $(OBJECTS) $(EXECUTABLE) + +### +HGCNtupleVariables.o: HGCNtupleVariables.h +AnalyzeHGCOctTB.o:HGCNtupleVariables.h AnalyzeHGCOctTB.h diff --git a/tracking_inclusion/only_EE_layer_config2/analyzeHGCOctTB b/tracking_inclusion/only_EE_layer_config2/analyzeHGCOctTB new file mode 100755 index 0000000..c8ab43e Binary files /dev/null and b/tracking_inclusion/only_EE_layer_config2/analyzeHGCOctTB differ