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!!!"<Fill(NRechits_EE[iL]);
+ if(!NRechits_EE[iL]) zero_rh[iL]=true;
+ else zero_rh[iL]=false;
+ }
+ else {
+ for(int j = 0; j < 7; j++) {
+ // if(!strcmp(conf_,"alpha") && (j+1) !=4 && ((iL-28)+1) > 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(dr_min_index[i]);
+
+ if(module_position_ == 0) {
+ h_adcHG_EE_track[i][channel_bin]->Fill(adcHG);
+ }
+ else if(module_position_ == 4) {
+ h_adcHG_FH_track[i-EE_LAYER][module_position_-1][channel_bin]->Fill(adcHG);
+ }
+ else {
+ cout<<"ERROR: Something went wrong at Point Tango Foxtrot!!"<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)<at(i);
+ float TS3 = rechit_TS3High->at(i);
+
+ if(module_position_ == 0) {
+ h_adcHG_EE_inv_track[module_layer_-1][channel_bin]->Fill(adcHG);
+ h_TS3_EE_inv_track[module_layer_-1][channel_bin]->Fill(TS3);
+ }
+ else if(module_position_ == 4) {
+ h_adcHG_FH_inv_track[module_layer_-1][module_position_-1][channel_bin]->Fill(adcHG);
+ }
+ else {
+ cout<<"ERROR: Something went wrong at Point Tango Foxtrot!!"<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!!!"<Fill(NRechits_EE[iL]);
+ if(!NRechits_EE[iL]) zero_rh[iL]=true;
+ else zero_rh[iL]=false;
+ }
+ else {
+ for(int j = 0; j < 7; j++) {
+ // if(!strcmp(conf_,"alpha") && (j+1) !=4 && ((iL-28)+1) > 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(dr_min_index[i]);
+
+ if(module_position_ == 0) {
+ h_adcHG_EE_track[i][channel_bin]->Fill(adcHG);
+ }
+ else if(module_position_ == 4) {
+ h_adcHG_FH_track[i-EE_LAYER][module_position_-1][channel_bin]->Fill(adcHG);
+ }
+ else {
+ cout<<"ERROR: Something went wrong at Point Tango Foxtrot!!"<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(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]);
+ h_rechitX_vs_rechitY_layer[temp_layer-1]->Fill(rechit_x->at(i),rechit_y->at(i));
+ h_trackX_vs_trackY_layer[temp_layer-1]->Fill(-1*track_x[temp_layer-1],-1*track_y[temp_layer-1]);
+ h_rechitX_vs_trackX_layer[temp_layer-1]->Fill(rechit_x->at(i),-1*track_x[temp_layer-1]);
+ h_rechitY_vs_trackY_layer[temp_layer-1]->Fill(rechit_y->at(i),-1*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);
+ //double temp = deltaR(rechit_x->at(i),rechit_y->at(i),track_x[temp_layer-1],track_y[temp_layer-1]);
+ h_dX_dY_layer[temp_layer-1]->Fill(dX,dY);
+ h_dR[temp_layer-1]->Fill(abs(temp));
+ if (abs(temp) < dr_min[temp_layer-1]) {
+ dr_min[temp_layer-1] = abs(temp);
+ dr_min_index[temp_layer-1] = i;
+ }
+
+ // if(temp_layer-1 == 0) {
+ // cout<<"entrty,RecX,RecY,TracX,TracY,dR = "<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!!!"<Fill(NRechits_EE[iL]);
+ if(!NRechits_EE[iL]) zero_rh[iL]=true;
+ else zero_rh[iL]=false;
+ }
+ else {
+ for(int j = 0; j < 7; j++) {
+ // if(!strcmp(conf_,"alpha") && (j+1) !=4 && ((iL-28)+1) > 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