-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBasicFilterJpsiUpsZ_1.C
More file actions
1524 lines (1373 loc) · 96.3 KB
/
BasicFilterJpsiUpsZ_1.C
File metadata and controls
1524 lines (1373 loc) · 96.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#include <string>
#include <stdlib.h>
#include <cmath>
#include "Riostream.h"
#include <cassert>
#include <TROOT.h>
#include <TChain.h>
#include <TCanvas.h>
#include <TFile.h>
#include <TStyle.h>
#include <TRandom3.h>
#include <TString.h>
#include <TH1D.h>
#include <TH2D.h>
#include <TH1F.h>
#include <TH2F.h>
#include "TF1.h"
#include <TLorentzVector.h>
#include <TVector3.h>
#include <TNtuple.h>
int main() {
gROOT->Reset();
using namespace std;
TChain chainData5fb("PATEventTree");
TChain chainSigMC("PATEventTree");
const int nRuns = 1;
const char *FileList[nRuns] = {
//"2017F_NoTriggerZJUpsSet1_1.txt",
"Test.txt"
};
char filebuff[100];
for (int iR = 0; iR < nRuns; iR++){
FILE *RFile;
RFile = fopen(FileList[iR],"r");
if (RFile == NULL) std::cout << "Error in File List, No Files Found" << std::endl;
else{
while ( ! feof (RFile) ){
fscanf(RFile,"%s", filebuff);
if(filebuff=="-1") break;
std::cout << "Adding File " << filebuff << " to data chain" << std::endl;
chainData5fb.Add(filebuff);
}
}
fclose(RFile);
}
std::cout<< "\nData files have been loaded" << std::endl;
// create new file
TFile *fFile = new TFile("SingleMuon2017F_Soft4Mu_Etab_JPsiUpsilonZ_NoTrigger_CompactTest.root","recreate");
TTree *fTree = new TTree("PATEventTree", "PATEventTree");
// -- general stuff
unsigned int fRun, fEvent, fLumiBlock;
int fBX, fOrbit;
unsigned int fTimeLo, fTimeHi;
float fBz;
// -- event topology
float fEvSphericity, fEvAplanarity, fEvLambda[3], fEvThrust, fEvThrust_Major, fEvThrust_Minor, fEvFW[7];
// -- HLT Path information taken directly from HLT (not PAT)
// for the array: 0 = path was run or not, 1 = path passed or not, 2 = path encountered exception or not
bool fHLTP_DoubleMu3[3], fHLTP_DoubleMu6[3], fHLTP_DoubleMu7[3], fHLTP_Dimuon0_Upsilon_Muon[3],fHLTP_Dimuon0_Jpsi3p5_Muon2[3], fHLTP_QuadMuon0_Dimuon0_Jpsi[3], fHLTP_Dimuon0_Jpsi[3], fHLTP_Dimuon10_Jpsi_Barrel[3], fHLTP_TripleMu5[3], fHLTP_Trimuon5_3p5_2_Upsilon_Muon[3], fHLTP_IsoMu20[3],fHLTP_IsoMu27[3], fHLTP_Mu50[3];//initially ,fHLTP_Dimuon0_Jpsi_Muon[3] changed for 2017 himal
// HLT prescalersb
unsigned int fHLTP_DoubleMu3_PS, fHLTP_DoubleMu6_PS, fHLTP_DoubleMu7_PS, fHLTP_Dimuon0_Jpsi3p5_Muon2_PS, fHLTP_Dimuon0_Jpsi_PS, fHLTP_Dimuon10_Jpsi_Barrel_PS, fHLTP_TripleMu5_PS, fHLTP_Trimuon5_3p5_2_Upsilon_Muon_PS, fHLTP_IsoMu20_PS, fHLTP_Mu50_PS;//initially ,fHLTP_Dimuon0_Jpsi_Muon_PS changed for 2017 himal
// HLT filters passed
bool fHLTP_DoubleMu3_Filters[5], fHLTP_DoubleMu6_Filters[5], fHLTP_DoubleMu7_Filters[5], fHLTP_TripleMu5_Filters[5], fHLTP_Dimuon0_Jpsi_Filters[7], fHLTP_Dimuon0_Jpsi3p5_Muon2_Filters[8], fHLTP_Dimuon10_Jpsi_Barrel_Filters[7], fHLTP_Trimuon5_3p5_2_Upsilon_Muon_Filters[11], fHLTP_IsoMu20_Filters[5], fHLTP_Mu50_Filters[6];////initially ,fHLTP_Dimuon0_Jpsi_Muon_Filters[8] changed for 2017 himal
// -- HLT objects from PAT
const int HLTMAX = 1000;
int fHLTN;
int fHLT_Index[HLTMAX], fHLT_ToPc[HLTMAX], fHLT_ToJt[HLTMAX], fHLT_PdgId[HLTMAX];
float fHLT_Mass[HLTMAX], fHLT_Energy[HLTMAX], fHLT_Et[HLTMAX], fHLT_P[HLTMAX], fHLT_Pt[HLTMAX], fHLT_Px[HLTMAX], fHLT_Py[HLTMAX], fHLT_Pz[HLTMAX], fHLT_Theta[HLTMAX], fHLT_Eta[HLTMAX], fHLT_Phi[HLTMAX];
//Himal addition for HLT object
float fHLT_Muon_Eta[HLTMAX], fHLT_Muon_Phi[HLTMAX], fHLT_Muon_Pt[HLTMAX], fHLT_Muon_VertexmumuJpsi[HLTMAX], fHLT_Muon_TripleMuL3[HLTMAX], fHLT_MuonJpsi_L3Matching_Pt[5], fHLT_MuonJpsi_L3Matching_Eta[5], fHLT_MuonJpsi_L3Matching_Phi[5], fHLT_MuonJpsi_VtxMatching_Pt[5], fHLT_MuonJpsi_VtxMatching_Eta[5], fHLT_MuonJpsi_VtxMatching_Phi[5], fHLT_MuonUpsilon_L3Matching_Pt[5], fHLT_MuonUpsilon_L3Matching_Eta[5], fHLT_MuonUpsilon_L3Matching_Phi[5], fHLT_MuonUpsilon_VtxMatching_Pt[5], fHLT_MuonUpsilon_VtxMatching_Eta[5], fHLT_MuonUpsilon_VtxMatching_Phi[5], fHLT_MuonZ_L3Matching_Pt[5], fHLT_MuonZ_L3Matching_Eta[5], fHLT_MuonZ_L3Matching_Phi[5], fHLT_MuonZ_VtxMatching_Pt[5], fHLT_MuonZ_VtxMatching_Eta[5], fHLT_MuonZ_VtxMatching_Phi[5];
//end
bool fHLT_Mu[HLTMAX][2], fHLT_Mu12[HLTMAX][2], fHLT_Mu15[HLTMAX][2], fHLT_Mu20[HLTMAX][2], fHLT_Mu24[HLTMAX][2], fHLT_Mu30[HLTMAX][2], fHLT_IsoMu12[HLTMAX][2], fHLT_IsoMu15[HLTMAX][2], fHLT_IsoMu17[HLTMAX][2], fHLT_IsoMu24[HLTMAX][2], fHLT_IsoMu30[HLTMAX][2], fHLT_DoubleMu3[HLTMAX][2], fHLT_DoubleMu6[HLTMAX][2], fHLT_DoubleMu7[HLTMAX][2], fHLT_Dimuon0_Upsilon_Muon[HLTMAX][2],fHLT_Dimuon0_Jpsi3p5_Muon2[HLTMAX][2], fHLT_Dimuon0_Jpsi[HLTMAX][2], fHLT_Dimuon7_Jpsi_Displaced[HLTMAX][2], fHLT_Dimuon7_Jpsi_X_Barrel[HLTMAX][2], fHLT_Dimuon10_Jpsi_Barrel[HLTMAX][2], fHLT_TripleMu5[HLTMAX][2], fHLT_Jet[HLTMAX][2];//initially fHLT_Dimuon0_Jpsi_Muon[HLTMAX][2] changed for 2017 by himal
// -- Particles
const int PARTMAX = 10000;
int fPcN, fTkN, fMuN, fElecN, fMiscTkN, fPhotN; //fHadrN,
int fPcIndex[PARTMAX], fMuIndex[PARTMAX], fElecIndex[PARTMAX], fMiscTkIndex[PARTMAX], fPhotIndex[PARTMAX], fPcToGn[PARTMAX], fPcToTk[PARTMAX], fTkToPc[PARTMAX], fPcToPv[PARTMAX], fPcTkQuality[PARTMAX], fPcJtN[PARTMAX], fPcPdgId[PARTMAX], fPcPixHitN[PARTMAX], fPcPixLayN[PARTMAX], fPcStripHitN[PARTMAX], fPcStripLayN[PARTMAX]; //fHadrIndex[PARTMAX]
float fPcCharge[PARTMAX], fPcChi2[PARTMAX], fPcNdof[PARTMAX], fPcEnergy[PARTMAX], fPcEt[PARTMAX], fPcP[PARTMAX], fPcPt[PARTMAX], fPcPx[PARTMAX], fPcPy[PARTMAX], fPcPz[PARTMAX], fPcTheta[PARTMAX], fPcEta[PARTMAX], fPcPhi[PARTMAX], fPcD0[PARTMAX], fPcDz[PARTMAX], fPcEtaErr[PARTMAX], fPcPhiErr[PARTMAX], fPcD0Err[PARTMAX], fPcDzErr[PARTMAX], fPcVx[PARTMAX], fPcVy[PARTMAX], fPcVz[PARTMAX], fPcEcalIso[PARTMAX], fPcHcalIso[PARTMAX], fPcTrackIso[PARTMAX], fPcIP[PARTMAX], fPcIPxy[PARTMAX];
// -- muons
int fMuHitN[PARTMAX], fMuMatchedN[PARTMAX], fMuMatchedNSegArb[PARTMAX], fMuMatchedNSegTrkArb[PARTMAX], fMuMatchedNSegTrkArbClean[PARTMAX], fMuHLTN[PARTMAX], fMuToHLT[PARTMAX], fMuBestProbI[4], fTkBestProbI, fMuBestProbByPtI[4];
float fMuChi2[PARTMAX], fMuNdof[PARTMAX], fMuTkKink[PARTMAX], fMuGlbKink[PARTMAX], fMuGlbProb[PARTMAX], fMuTkSADist[PARTMAX], fMuTkSAdR[PARTMAX], fMuECALEnergy[PARTMAX], fMuHCALEnergy[PARTMAX], fMuCalCompat[PARTMAX];
bool fMuIsGlobal[PARTMAX], fMuIsSoft[PARTMAX], fMuIsLoose[PARTMAX], fMuIsTracker[PARTMAX], fMuIsStandalone[PARTMAX], fMuIsCalo[PARTMAX], fMuArbitrated[PARTMAX], fMuLastStationLoose[PARTMAX], fMuLastStationTight[PARTMAX], fMu2DCompatibilityLoose[PARTMAX], fMu2DCompatibilityTight[PARTMAX], fMuOneStationLoose[PARTMAX], fMuOneStationTight[PARTMAX], fMuHLTMatch[PARTMAX][2], fMuL3Match[PARTMAX], fMuTightMatch[PARTMAX], fPcTPFilter[PARTMAX], fPcBasicFilter[PARTMAX];
int ntkplusloose, ntkminusloose, nplussoft, nminussoft;
// -- Primary Vertices
const int PVMAX = 300;
int fPvN, fRePvN, fAllPvN;
int fPvIndex[PVMAX], fPvTkN[PVMAX], fPvClosestI[PVMAX];
float fPvX[PVMAX], fPvY[PVMAX], fPvZ[PVMAX], fPvXe[PVMAX], fPvYe[PVMAX], fPvZe[PVMAX], fPvPx[PVMAX], fPvPy[PVMAX], fPvPz[PVMAX], fPvPt[PVMAX], fPvEta[PVMAX], fPvChi2[PVMAX], fPvNdof[PVMAX], fPvMass[PVMAX];
bool fPvIsFake[PVMAX], fPvIsRefit[PVMAX];
// -- Jets
const int JETMAX = 2000;
const int PARTINJETMAX = 15;
const int PARTTOJETMAX = 5;
int JtShift; //used to differentiate jet collections
int fJtN, fJtStandN, fJtFatN, fJtSubN, fJtFiltN, fJtBdRN, fJtBFlavN;
int fJtIndex[JETMAX], fJtStandIndex[JETMAX], fJtFatIndex[JETMAX], fJtSubIndex[JETMAX], fJtFiltIndex[JETMAX], fJtToPv[JETMAX], fJtHLTN[JETMAX], fJtToHLT[JETMAX], fJtTkN[JETMAX], fJtSsvN[JETMAX], fJtGtvN[JETMAX], fJtnConstituents[JETMAX], fJtFlavour[JETMAX], fJtn60[JETMAX], fJtn90[JETMAX], fJtnChargedParticles[JETMAX], fJtnNeutralParticles[JETMAX], fJtnChargedHadrons[JETMAX], fJtnNeutralHadrons[JETMAX], fJtnPhotons[JETMAX], fJtnElectrons[JETMAX], fJtnMuons[JETMAX], fJtnHFHadrons[JETMAX], fJtnHFEMParticles[JETMAX], fJtRankTCHE[JETMAX], fJtRankTCHP[JETMAX], fJtRankP[JETMAX], fJtRankBP[JETMAX], fJtRankSSVHE[JETMAX], fJtRankSSVHP[JETMAX], fJtRankCSV[JETMAX], fJtRankCSVMVA[JETMAX], fJtRankGT[JETMAX], fJtRankSE[JETMAX], fJtRankSM[JETMAX];
float fJtCharge[JETMAX], fJtDiscTCHE[JETMAX], fJtDiscTCHP[JETMAX], fJtDiscP[JETMAX], fJtDiscBP[JETMAX], fJtDiscSSVHE[JETMAX], fJtDiscSSVHP[JETMAX], fJtDiscCSV[JETMAX], fJtDiscCSVMVA[JETMAX], fJtDiscGT[JETMAX], fJtDiscSE[JETMAX], fJtDiscSM[JETMAX], fJtMaxDist[JETMAX], fJtPhi[JETMAX], fJtTheta[JETMAX], fJtEta[JETMAX], fJtRapidity[JETMAX], fJtP[JETMAX], fJtPt[JETMAX], fJtPx[JETMAX], fJtPy[JETMAX], fJtPz[JETMAX], fJtEnergy[JETMAX], fJtEt[JETMAX], fJtMass[JETMAX], fJtMt[JETMAX], fJtVx[JETMAX], fJtVy[JETMAX], fJtVz[JETMAX], fJtChargedEmEnergy[JETMAX], fJtNeutralEmEnergy[JETMAX], fJtChargedHadronEnergy[JETMAX], fJtNeutralHadronEnergy[JETMAX], fJtPhotonEnergy[JETMAX], fJtElectronEnergy[JETMAX], fJtMuonEnergy[JETMAX], fJtHFHadronEnergy[JETMAX], fJtHFEMEnergy[JETMAX], fJtdRMean[JETMAX], fJtdRMax[JETMAX], fJtPtRelMean[JETMAX], fJtPtRelMax[JETMAX], fJtPtRelSum[JETMAX], fJtPullPx[JETMAX], fJtPullPy[JETMAX], fJtPullPz[JETMAX];
bool fJtIsStandard[JETMAX], fJtIsFat[JETMAX], fJtIsSub[JETMAX], fJtIsFilt[JETMAX], fJtBFromH[JETMAX], fJtBdRMatch[JETMAX], fJtHLTMatch[JETMAX][2], fJtVeto[JETMAX];
// -- References between particle and jet
int fPcToJt[PARTMAX][PARTTOJETMAX], fJtToPc[JETMAX][PARTINJETMAX];
// -- Fat and subjet specific variables
int fFatSubN[JETMAX], fFatFiltN[JETMAX], fSubToFat[JETMAX], fFiltToFat[JETMAX];
// for jet matching to B
int fJtBdRIndex[JETMAX], fJtToBdRIndex[JETMAX], fJtBFlavIndex[JETMAX];
float fJtBdR[JETMAX]; // dR to B hadron
// -- Secondary Vertices
const int SVMAX = 20;
const int TKINSVMAX = 20;
const int SVINJETMAX = 4;
int fSvN, fSsvN, fGtvN;
int fSvIndex[SVMAX], fSvTkN[SVMAX], fSvSeqInJt[SVMAX];
float fSvX[SVMAX], fSvY[SVMAX], fSvZ[SVMAX], fSvXe[SVMAX], fSvYe[SVMAX], fSvZe[SVMAX], fSvPx[SVMAX], fSvPy[SVMAX], fSvPz[SVMAX], fSvPt[SVMAX], fSvEta[SVMAX], fSvChi2[SVMAX], fSvNdof[SVMAX], fSvDist[SVMAX], fSvDistCM[SVMAX], fSvMass[SVMAX], fSvTau[SVMAX], fSvTauCM[SVMAX];
bool fSvIsGTV[SVMAX];
// -- References between vertex and tracks
int fSvToPc[SVMAX][TKINSVMAX], fPcToSsv[PARTMAX], fPcToGtv[PARTMAX];
// -- References between jet and SV
int fSvToJt[SVMAX], fJtToSsv[JETMAX][SVINJETMAX], fJtToGtv[JETMAX][SVINJETMAX];
// -- MET information
const int METMAX = 10;
int fMETN;
int fMETIndex[METMAX];
float fMETPhi[METMAX], fMETTheta[METMAX], fMETEta[METMAX], fMETRapidity[METMAX], fMETCharge[METMAX], fMETP[METMAX], fMETPt[METMAX], fMETPx[METMAX], fMETPy[METMAX], fMETPz[METMAX], fMETEnergy[METMAX], fMETEt[METMAX], fMETMass[METMAX], fMETMt[METMAX], fMETVx[METMAX], fMETVy[METMAX], fMETVz[METMAX];
// -- JPsi->MuMu candidates
const int JPsiMAX = 1000;
int fJPsiN, fJPsiMuMuN, fJPsiMuTkN, fBaseJPsiI[2], fJPsiBestProbI[2], fJPsiVtxBestProbI[2];
int fJPsiIndex[JPsiMAX], fJPsiClosestPVinZ[JPsiMAX], fJPsiMuI[JPsiMAX][2], fJPsiMuCategory[JPsiMAX][2];
float fJPsiCharge[JPsiMAX], fJPsiPhi[JPsiMAX], fJPsiTheta[JPsiMAX], fJPsiEta[JPsiMAX], fJPsiRapidity[JPsiMAX], fJPsiP[JPsiMAX], fJPsiPt[JPsiMAX], fJPsiPx[JPsiMAX], fJPsiPy[JPsiMAX], fJPsiPz[JPsiMAX], fJPsiEnergy[JPsiMAX], fJPsiEt[JPsiMAX], fJPsiMass[JPsiMAX], fJPsiMt[JPsiMAX], fJPsiChi2[JPsiMAX], fJPsiNdof[JPsiMAX], fJPsiVx[JPsiMAX], fJPsiVy[JPsiMAX], fJPsiVz[JPsiMAX], fJPsiVxE[JPsiMAX], fJPsiVyE[JPsiMAX], fJPsiVzE[JPsiMAX], fJPsiVtxPhi[JPsiMAX], fJPsiVtxTheta[JPsiMAX], fJPsiVtxEta[JPsiMAX], fJPsiVtxRapidity[JPsiMAX], fJPsiVtxP[JPsiMAX], fJPsiVtxPt[JPsiMAX], fJPsiVtxPx[JPsiMAX], fJPsiVtxPy[JPsiMAX], fJPsiVtxPz[JPsiMAX], fJPsiVtxEnergy[JPsiMAX], fJPsiVtxEt[JPsiMAX], fJPsiVtxMass[JPsiMAX], fJPsiVtxMt[JPsiMAX];
bool fJPsiMuCutKin[JPsiMAX][2], fJPsiMuCutHLT[JPsiMAX][2], fJPsiMuCutIso[JPsiMAX][2], fJPsiMuCutSA[JPsiMAX][2], fJPsiMuCutTrk[JPsiMAX][2], fJPsiMuType[JPsiMAX][2][5], fJPsiBasicFilter[JPsiMAX], fJPsiVtxBasicFilter[JPsiMAX];
// -- isolation information
int fJPsiFromClosestI[JPsiMAX][5], fNJPsiSharedTk2[JPsiMAX], fNJPsiWithin05[JPsiMAX], fNJPsiWithin03[JPsiMAX];
float fJPsidRToClosest[JPsiMAX][5];
// -- Eta_b->2 J/Psi candidates
const int ETABMAX = 500;
int fEtabN, fBaseEtabI, fEtabBestMassI, fEtabVtxBestMassI, fEtabBestProbI, fEtabBest4MuProbI, fEtabVtxBestProbI, fEtabVtxBestPtI;
int fEtabIndex[ETABMAX], fEtabDuplicatesI[ETABMAX], fEtabJPsiI[ETABMAX][2], fEtabMuI[ETABMAX][4], fEtabMuN[ETABMAX], fEtabL3MatchMuN[ETABMAX], fEtabToRePvI[ETABMAX];
float fEtabCharge[ETABMAX], fEtabPhi[ETABMAX], fEtabTheta[ETABMAX], fEtabEta[ETABMAX], fEtabRapidity[ETABMAX], fEtabP[ETABMAX], fEtabPt[ETABMAX], fEtabPx[ETABMAX], fEtabPy[ETABMAX], fEtabPz[ETABMAX], fEtabEnergy[ETABMAX], fEtabEt[ETABMAX], fEtabMass[ETABMAX], fEtabMt[ETABMAX], fEtabChi2[ETABMAX], fEtabNdof[ETABMAX], fEtabVx[ETABMAX], fEtabVy[ETABMAX], fEtabVz[ETABMAX], fEtabVxE[ETABMAX], fEtabVyE[ETABMAX], fEtabVzE[ETABMAX], fEtabVtxPhi[ETABMAX], fEtabVtxTheta[ETABMAX], fEtabVtxEta[ETABMAX], fEtabVtxRapidity[ETABMAX], fEtabVtxP[ETABMAX], fEtabVtxPt[ETABMAX], fEtabVtxPx[ETABMAX], fEtabVtxPy[ETABMAX], fEtabVtxPz[ETABMAX], fEtabVtxEnergy[ETABMAX], fEtabVtxEt[ETABMAX], fEtabVtxMass[ETABMAX], fEtabVtxMt[ETABMAX], fEtabCT[ETABMAX], fEtabCTxy[ETABMAX], fEtabVtxCT[ETABMAX], fEtabVtxCTxy[ETABMAX], fEtabJPsiDeltaL[ETABMAX], fEtabJPsiDeltaT[ETABMAX], fEtabJPsiVtxErr[ETABMAX], fEtabJPsiVtxErrxy[ETABMAX], fEtabJPsiProjX[ETABMAX][2], fEtabJPsiProjY[ETABMAX][2], fEtabJPsiProjZ[ETABMAX][2], fEtabJPsiCT[ETABMAX][2], fEtabJPsiCTxy[ETABMAX][2], fEtabJPsiToPVVtxErr[ETABMAX][2], fEtabJPsiToPVVtxErrxy[ETABMAX][2], fEtabJPsiVtxCT[ETABMAX][2], fEtabJPsiVtxCTxy[ETABMAX][2];
bool fEtabBasicFilter[ETABMAX], fEtabVtxBasicFilter[ETABMAX];
//Himal additions
bool fEtabBasicFilter_Muon[ETABMAX];
// isolation information
int fEtabJPsiIsoTkN[ETABMAX][2];
float fEtabJPsiIso7PV[ETABMAX][2], fEtabJPsiIsoTkCA[ETABMAX][2];
// -- H->bb candidates
const int HMAX = 100;
int fHN;
int fHIndex[HMAX], fHJtI[HMAX][2];
float fHCharge[HMAX], fHPhi[HMAX], fHTheta[HMAX], fHEta[HMAX], fHRapidity[HMAX], fHP[HMAX], fHPt[HMAX], fHPx[HMAX], fHPy[HMAX], fHPz[HMAX], fHEnergy[HMAX], fHEt[HMAX], fHMass[HMAX], fHMt[HMAX], fHVx[HMAX], fHVy[HMAX], fHVz[HMAX];
// -- Gen Particles
const int GENMAX = 3000;
const int MOTHERMAX = 5;
const int DAUGHTERMAX = 20;
int fGnN, fGnBN;
int fGnIndex[GENMAX], fGnBIndex[GENMAX], fGnIsJet[GENMAX], fGnLongLived[GENMAX], fGnPdgId[GENMAX], fGnNMothers[GENMAX], fGnNDaughters[GENMAX];
float fGnCharge[GENMAX], fGnPhi[GENMAX], fGnTheta[GENMAX], fGnEta[GENMAX], fGnRapidity[GENMAX], fGnP[GENMAX], fGnPt[GENMAX], fGnPx[GENMAX], fGnPy[GENMAX], fGnPz[GENMAX], fGnEnergy[GENMAX], fGnEt[GENMAX], fGnMass[GENMAX], fGnMt[GENMAX], fGnVx[GENMAX], fGnVy[GENMAX], fGnVz[GENMAX], fGnDist[GENMAX], fGnDistCM[GENMAX], fGnTau[GENMAX], fGnTauCM[GENMAX];
// -- References to daughter candidates
int fGnMotherIndex[GENMAX][MOTHERMAX], fGnDaughterIndex[GENMAX][DAUGHTERMAX];
// -- Signal quantities (Etab and J/Psi information)
int fEtabI, fEtabdRMatchI, fJPsiI[2], fJPsidRMatchI[2], fMuI[2][2], fMudRMatchI[2][2], fMuByPtI[4], fMuByPtMatchI[4];
float fMu11_4MomJPsi1CM[4], fMu12_4MomJPsi1CM[4], fMu21_4MomJPsi2CM[4], fMu22_4MomJPsi2CM[4], fJPsi1_4MomEtabCM[4], fJPsi2_4MomEtabCM[4], fEtab_4MomJPsi1CM[4], fEtab_4MomJPsi2CM[4];
// create the branches in the new tree
fTree->Branch("run", &fRun, "run/i");
fTree->Branch("lumiblock", &fLumiBlock, "lumiblock/i");
fTree->Branch("event", &fEvent, "event/i");
fTree->Branch("bx", &fBX, "bx/I");
fTree->Branch("orbit", &fOrbit, "orbit/I");
fTree->Branch("bz", &fBz, "bz/F");
fTree->Branch("tlo", &fTimeLo, "tlo/i");
fTree->Branch("thi", &fTimeHi, "thi/i");
fTree->Branch("EvSphericity", &fEvSphericity, "EvSphericity/F");
fTree->Branch("EvAplanarity", &fEvAplanarity, "EvAplanarity/F");
fTree->Branch("EvLambda", fEvLambda, "EvLambda[3]/F");
fTree->Branch("EvThrust", &fEvThrust, "EvThrust/F");
fTree->Branch("EvThrust_Major", &fEvThrust_Major, "EvThrust_Major/F");
fTree->Branch("EvThrust_Minor", &fEvThrust_Minor, "EvThrust_Minor/F");
fTree->Branch("EvFW", fEvFW, "EvFW[7]/F");
fTree->Branch("HLTP_DoubleMu3", fHLTP_DoubleMu3, "HLTP_DoubleMu3[3]/O");
fTree->Branch("HLTP_DoubleMu6", fHLTP_DoubleMu6, "HLTP_DoubleMu6[3]/O");
fTree->Branch("HLTP_DoubleMu7", fHLTP_DoubleMu7, "HLTP_DoubleMu7[3]/O");
fTree->Branch("HLTP_Dimuon0_Jpsi", fHLTP_Dimuon0_Jpsi, "HLTP_Dimuon0_Jpsi[3]/O");
//fTree->Branch("HLTP_Dimuon0_Jpsi_Muon", fHLTP_Dimuon0_Jpsi_Muon, "HLTP_Dimuon0_Jpsi_Muon[3]/O");
fTree->Branch("HLTP_Dimuon0_Jpsi3p5_Muon2", fHLTP_Dimuon0_Jpsi3p5_Muon2, "HLTP_Dimuon0_Jpsi3p5_Muon2[3]/O");
fTree->Branch("HLTP_Trimuon5_3p5_2_Upsilon_Muon", fHLTP_Trimuon5_3p5_2_Upsilon_Muon, "HLTP_Trimuon5_3p5_2_Upsilon_Muon[3]/O");
fTree->Branch("HLTP_Trimuon5_3p5_2_Upsilon_Muon_Filters", fHLTP_Trimuon5_3p5_2_Upsilon_Muon_Filters, "HLTP_Trimuon5_3p5_2_Upsilon_Muon_Filters[11]/O");
fTree->Branch("HLTP_Trimuon5_3p5_2_Upsilon_Muon_PS", &fHLTP_Trimuon5_3p5_2_Upsilon_Muon_PS, "HLTP_Trimuon5_3p5_2_Upsilon_Muon_PS/i");
fTree->Branch("HLTP_QuadMuon0_Dimuon0_Jpsi", fHLTP_QuadMuon0_Dimuon0_Jpsi, "HLTP_QuadMuon0_Dimuon0_Jpsi[3]/O");
fTree->Branch("HLTP_Dimuon0_Upsilon_Muon", fHLTP_Dimuon0_Upsilon_Muon, "HLTP_Dimuon0_Upsilon_Muon[3]/O");
fTree->Branch("HLTP_Dimuon10_Jpsi_Barrel", fHLTP_Dimuon10_Jpsi_Barrel, "HLTP_Dimuon10_Jpsi_Barrel[3]/O");
fTree->Branch("HLTP_TripleMu5", fHLTP_TripleMu5, "HLTP_TripleMu5[3]/O");
fTree->Branch("HLTP_DoubleMu3_PS", &fHLTP_DoubleMu3_PS, "HLTP_DoubleMu3_PS/i");
fTree->Branch("HLTP_DoubleMu6_PS", &fHLTP_DoubleMu6_PS, "HLTP_DoubleMu6_PS/i");
fTree->Branch("HLTP_DoubleMu7_PS", &fHLTP_DoubleMu7_PS, "HLTP_DoubleMu7_PS/i");
//fTree->Branch("HLTP_Dimuon0_Jpsi_Muon_PS", &fHLTP_Dimuon0_Jpsi_Muon_PS, "HLTP_Dimuon0_Jpsi_Muon_PS/i");
fTree->Branch("HLTP_Dimuon0_Jpsi3p5_Muon2_PS", &fHLTP_Dimuon0_Jpsi3p5_Muon2_PS, "HLTP_Dimuon0_Jpsi3p5_Muon2_PS/i");
fTree->Branch("HLTP_Dimuon0_Jpsi_PS", &fHLTP_Dimuon0_Jpsi_PS, "HLTP_Dimuon0_Jpsi_PS/i");
fTree->Branch("HLTP_Dimuon10_Jpsi_Barrel_PS", &fHLTP_Dimuon10_Jpsi_Barrel_PS, "HLTP_Dimuon10_Jpsi_Barrel_PS/i");
fTree->Branch("HLTP_TripleMu5_PS", &fHLTP_TripleMu5_PS, "HLTP_TripleMu5_PS/i");
fTree->Branch("HLTP_DoubleMu3_Filters", fHLTP_DoubleMu3_Filters, "HLTP_DoubleMu3_Filters[5]/O");
fTree->Branch("HLTP_DoubleMu6_Filters", fHLTP_DoubleMu6_Filters, "HLTP_DoubleMu6_Filters[5]/O");
fTree->Branch("HLTP_DoubleMu7_Filters", fHLTP_DoubleMu7_Filters, "HLTP_DoubleMu7_Filters[5]/O");
fTree->Branch("HLTP_TripleMu5_Filters", fHLTP_TripleMu5_Filters, "HLTP_TripleMu5_Filters[5]/O");
fTree->Branch("HLTP_Dimuon0_Jpsi_Filters", fHLTP_Dimuon0_Jpsi_Filters, "HLTP_Dimuon0_Jpsi_Filters[7]/O");
//fTree->Branch("HLTP_Dimuon0_Jpsi_Muon_Filters", fHLTP_Dimuon0_Jpsi_Muon_Filters, "HLTP_Dimuon0_Jpsi_Muon_Filters[8]/O");
fTree->Branch("HLTP_Dimuon0_Jpsi3p5_Muon2_Filters", fHLTP_Dimuon0_Jpsi3p5_Muon2_Filters, "HLTP_Dimuon0_Jpsi3p5_Muon2_Filters[8]/O");
fTree->Branch("HLTP_Dimuon10_Jpsi_Barrel_Filters", fHLTP_Dimuon10_Jpsi_Barrel_Filters, "HLTP_Dimuon10_Jpsi_Barrel_Filters[7]/O");
fTree->Branch("HLTP_IsoMu20", fHLTP_IsoMu20, "HLTP_IsoMu20[3]/O");
fTree->Branch("HLTP_IsoMu27", fHLTP_IsoMu27, "HLTP_IsoMu27[3]/O");
fTree->Branch("HLTP_Mu50", fHLTP_Mu50, "HLTP_Mu50[3]/O");
fTree->Branch("HLTP_IsoMu20_Filters", fHLTP_IsoMu20_Filters, "HLTP_IsoMu20_Filters[7]/O");
fTree->Branch("HLTP_Mu50_Filters", fHLTP_Mu50_Filters, "HLTP_Mu50_Filters[6]/O");
fTree->Branch("HLTP_IsoMu20_PS", &fHLTP_IsoMu20_PS, "HLTP_IsoMu20_PS/i");
fTree->Branch("HLTP_Mu50_PS", &fHLTP_Mu50_PS, "HLTP_Mu50_PS/i");
fTree->Branch("HLTN", &fHLTN, "HLTN/I");
//himal addition of branch
fTree->Branch("HLT_Muon_Eta", fHLT_Muon_Eta, "HLT_Muon_Eta[HLTN]/F");
fTree->Branch("HLT_Muon_Phi", fHLT_Muon_Phi, "HLT_Muon_Phi[HLTN]/F");
fTree->Branch("HLT_Muon_Pt", fHLT_Muon_Pt, "HLT_Muon_Pt[HLTN]/F");
fTree->Branch("HLT_Muon_VertexmumuJpsi", fHLT_Muon_VertexmumuJpsi, "HLT_Muon_VertexmumuJpsi[HLTN]/F");
fTree->Branch("HLT_Muon_TripleMuL3", fHLT_Muon_TripleMuL3, "HLT_Muon_TripleMuL3[HLTN]/F");
//end
//trigger matching stuff
//---Jpsi Trigger---------------
fTree->Branch("HLT_MuonJpsi_L3Matching_Pt", fHLT_MuonJpsi_L3Matching_Pt, "HLT_MuonJpsi_L3Matching_Pt[5]/F");
fTree->Branch("HLT_MuonJpsi_L3Matching_Eta", fHLT_MuonJpsi_L3Matching_Eta, "HLT_MuonJpsi_L3Matching_Eta[5]/F");
fTree->Branch("HLT_MuonJpsi_L3Matching_Phi", fHLT_MuonJpsi_L3Matching_Phi, "HLT_MuonJpsi_L3Matching_Phi[5]/F");
fTree->Branch("HLT_MuonJpsi_VtxMatching_Pt", fHLT_MuonJpsi_VtxMatching_Pt, "HLT_MuonJpsi_VtxMatching_Pt[5]/F");
fTree->Branch("HLT_MuonJpsi_VtxMatching_Eta", fHLT_MuonJpsi_VtxMatching_Eta, "HLT_MuonJpsi_VtxMatching_Eta[5]/F");
fTree->Branch("HLT_MuonJpsi_VtxMatching_Phi", fHLT_MuonJpsi_VtxMatching_Phi, "HLT_MuonJpsi_VtxMatching_Phi[5]/F");
//------Upsilon Trigger-------------
fTree->Branch("HLT_MuonUpsilon_L3Matching_Pt", fHLT_MuonUpsilon_L3Matching_Pt, "HLT_MuonUpsilon_L3Matching_Pt[5]/F");
fTree->Branch("HLT_MuonUpsilon_L3Matching_Eta", fHLT_MuonUpsilon_L3Matching_Eta, "HLT_MuonUpsilon_L3Matching_Eta[5]/F");
fTree->Branch("HLT_MuonUpsioln_L3Matching_Phi", fHLT_MuonUpsilon_L3Matching_Phi, "HLT_MuonUpsilon_L3Matching_Phi[5]/F");
fTree->Branch("HLT_MuonUpsilon_VtxMatching_Pt", fHLT_MuonUpsilon_VtxMatching_Pt, "HLT_MuonUpsilon_VtxMatching_Pt[5]/F");
fTree->Branch("HLT_MuonUpsilon_VtxMatching_Eta", fHLT_MuonUpsilon_VtxMatching_Eta, "HLT_MuonUpsilon_VtxMatching_Eta[5]/F");
fTree->Branch("HLT_MuonUpsilon_VtxMatching_Phi", fHLT_MuonUpsilon_VtxMatching_Phi, "HLT_MuonUpsilon_VtxMatching_Phi[5]/F");
//-----Z Trigger-------------------
fTree->Branch("HLT_MuonZ_L3Matching_Pt", fHLT_MuonZ_L3Matching_Pt, "HLT_MuonZ_L3Matching_Pt[5]/F");
fTree->Branch("HLT_MuonZ_L3Matching_Eta", fHLT_MuonZ_L3Matching_Eta, "HLT_MuonZ_L3Matching_Eta[5]/F");
fTree->Branch("HLT_MuonZ_L3Matching_Phi", fHLT_MuonZ_L3Matching_Phi, "HLT_MuonZ_L3Matching_Phi[5]/F");
fTree->Branch("HLT_MuonZ_VtxMatching_Pt", fHLT_MuonZ_VtxMatching_Pt, "HLT_MuonZ_VtxMatching_Pt[5]/F");
fTree->Branch("HLT_MuonZ_VtxMatching_Eta", fHLT_MuonZ_VtxMatching_Eta, "HLT_MuonZ_VtxMatching_Eta[5]/F");
fTree->Branch("HLT_MuonZ_VtxMatching_Phi", fHLT_MuonZ_VtxMatching_Phi, "HLT_MuonZ_VtxMatching_Phi[5]/F");
fTree->Branch("HLT_Index", fHLT_Index, "HLT_Index[HLTN]/I");
fTree->Branch("HLT_ToPc", fHLT_ToPc, "HLT_ToPc[HLTN]/I");
fTree->Branch("HLT_ToJt", fHLT_ToJt, "HLT_ToJt[HLTN]/I");
fTree->Branch("HLT_PdgId", fHLT_PdgId, "HLT_PdgId[HLTN]/I");
fTree->Branch("HLT_Mass", fHLT_Mass, "HLT_Mass[HLTN]/F");
fTree->Branch("HLT_Energy", fHLT_Energy, "HLT_Energy[HLTN]/F");
fTree->Branch("HLT_Et", fHLT_Et, "HLT_Et[HLTN]/F");
fTree->Branch("HLT_P", fHLT_P, "HLT_P[HLTN]/F");
fTree->Branch("HLT_Pt", fHLT_Pt, "HLT_Pt[HLTN]/F");
fTree->Branch("HLT_Px", fHLT_Px, "HLT_Px[HLTN]/F");
fTree->Branch("HLT_Py", fHLT_Py, "HLT_Py[HLTN]/F");
fTree->Branch("HLT_Pz", fHLT_Pz, "HLT_Pz[HLTN]/F");
fTree->Branch("HLT_Theta", fHLT_Theta, "HLT_Theta[HLTN]/F");
fTree->Branch("HLT_Eta", fHLT_Eta, "HLT_Eta[HLTN]/F");
fTree->Branch("HLT_Phi", fHLT_Phi, "HLT_Phi[HLTN]/F");
fTree->Branch("HLT_Mu", fHLT_Mu, "HLT_Mu[HLTN][2]/O");
fTree->Branch("HLT_Mu12", fHLT_Mu12, "HLT_Mu12[HLTN][2]/O");
fTree->Branch("HLT_Mu15", fHLT_Mu15, "HLT_Mu15[HLTN][2]/O");
fTree->Branch("HLT_Mu20", fHLT_Mu20, "HLT_Mu20[HLTN][2]/O");
fTree->Branch("HLT_Mu24", fHLT_Mu24, "HLT_Mu24[HLTN][2]/O");
fTree->Branch("HLT_Mu30", fHLT_Mu30, "HLT_Mu30[HLTN][2]/O");
fTree->Branch("HLT_IsoMu12", fHLT_IsoMu12, "HLT_IsoMu12[HLTN][2]/O");
fTree->Branch("HLT_IsoMu15", fHLT_IsoMu15, "HLT_IsoMu15[HLTN][2]/O");
fTree->Branch("HLT_IsoMu17", fHLT_IsoMu17, "HLT_IsoMu17[HLTN][2]/O");
fTree->Branch("HLT_IsoMu24", fHLT_IsoMu24, "HLT_IsoMu24[HLTN][2]/O");
fTree->Branch("HLT_IsoMu30", fHLT_IsoMu30, "HLT_IsoMu30[HLTN][2]/O");
fTree->Branch("HLT_DoubleMu3", fHLT_DoubleMu3, "HLT_DoubleMu3[HLTN][2]/O");
fTree->Branch("HLT_DoubleMu6", fHLT_DoubleMu6, "HLT_DoubleMu6[HLTN][2]/O");
fTree->Branch("HLT_DoubleMu7", fHLT_DoubleMu7, "HLT_DoubleMu7[HLTN][2]/O");
//fTree->Branch("HLT_Dimuon0_Jpsi_Muon", fHLT_Dimuon0_Jpsi_Muon, "HLT_Dimuon0_Jpsi_Muon[HLTN][2]/O");
fTree->Branch("HLT_Dimuon0_Jpsi3p5_Muon2", fHLT_Dimuon0_Jpsi3p5_Muon2, "HLT_Dimuon0_Jpsi3p5_Muon2[HLTN][2]/O");//changed foe 2017 himal
fTree->Branch("HLT_Dimuon0_Upsilon_Muon", fHLT_Dimuon0_Upsilon_Muon, "HLT_Dimuon0_Upsilon_Muon[HLTN][2]/O");
fTree->Branch("HLT_Dimuon0_Jpsi", fHLT_Dimuon0_Jpsi, "HLT_Dimuon0_Jpsi[HLTN][2]/O");
fTree->Branch("HLT_Dimuon7_Jpsi_Displaced", fHLT_Dimuon7_Jpsi_Displaced, "HLT_Dimuon7_Jpsi_Displaced[HLTN][2]/O");
fTree->Branch("HLT_Dimuon7_Jpsi_X_Barrel", fHLT_Dimuon7_Jpsi_X_Barrel, "HLT_Dimuon7_Jpsi_X_Barrel[HLTN][2]/O");
fTree->Branch("HLT_Dimuon10_Jpsi_Barrel", fHLT_Dimuon10_Jpsi_Barrel, "HLT_Dimuon10_Jpsi_Barrel[HLTN][2]/O");
fTree->Branch("HLT_TripleMu5", fHLT_TripleMu5, "HLT_TripleMu5[HLTN][2]/O");
fTree->Branch("HLT_Jet", fHLT_Jet, "HLT_Jet[HLTN][2]/O");
fTree->Branch("PcN", &fPcN, "PcN/I");
fTree->Branch("TkN", &fTkN, "TkN/I");
fTree->Branch("MuN", &fMuN, "MuN/I");
fTree->Branch("ElecN", &fElecN, "ElecN/I");
//fTree->Branch("HadrN", &fHadrN, "HadrN/I");
fTree->Branch("MiscTkN", &fMiscTkN, "MiscTkN/I");
fTree->Branch("PhotN", &fPhotN, "PhotN/I");
fTree->Branch("PcPlusLoose", ntkplusloose, "PcPlusLoose/I");
fTree->Branch("PcMinusLoose", ntkminusloose, "PcMinusLoose/I");
fTree->Branch("PcPlusSoft", nplussoft, "PcPlusSoft/I");
fTree->Branch("PcMinusSoft", nminussoft, "PcMinusSoft/I");
fTree->Branch("PcIndex", fPcIndex, "PcIndex[PcN]/I");
fTree->Branch("MuIndex", fMuIndex, "MuIndex[MuN]/I");
fTree->Branch("ElecIndex", fElecIndex, "ElecIndex[ElecN]/I");
//fTree->Branch("HadrIndex", fHadrIndex, "HadrIndex[HadrN]/I");
fTree->Branch("MiscTkIndex", fMiscTkIndex, "MiscTkIndex[MiscTkN]/I");
fTree->Branch("PhotIndex", fPhotIndex, "PhotIndex[PhotN]/I");
fTree->Branch("PcToTk", fPcToTk, "PcToTk[PcN]/I");
fTree->Branch("TkToPc", fTkToPc, "TkToPc[TkN]/I");
fTree->Branch("PcToPv", fPcToPv, "PcToPv[PcN]/I");
fTree->Branch("PcToSsv", fPcToSsv, "PcToSsv[PcN]/I");
fTree->Branch("PcToGtv", fPcToGtv, "PcToGtv[PcN]/I");
fTree->Branch("PcTkQuality", fPcTkQuality, "PcTkQuality[PcN]/I");
fTree->Branch("PcJtN", fPcJtN, "PcJtN[PcN]/I");
fTree->Branch("PcPdgId", fPcPdgId, "PcPdgId[PcN]/I");
fTree->Branch("PcPixHitN", fPcPixHitN, "PcPixHitN[PcN]/I");
fTree->Branch("PcPixLayN", fPcPixLayN, "PcPixLayN[PcN]/I");
fTree->Branch("PcStripHitN", fPcStripHitN, "PcStripHitN[PcN]/I");
fTree->Branch("PcStripLayN", fPcStripLayN, "PcStripLayN[PcN]/I");
fTree->Branch("PcCharge", fPcCharge, "PcCharge[PcN]/F");
fTree->Branch("PcChi2", fPcChi2, "PcChi2[PcN]/F");
fTree->Branch("PcNdof", fPcNdof, "PcNdof[PcN]/F");
fTree->Branch("PcEnergy", fPcEnergy, "PcEnergy[PcN]/F");
fTree->Branch("PcEt", fPcEt, "PcEt[PcN]/F");
fTree->Branch("PcP", fPcP, "PcP[PcN]/F");
fTree->Branch("PcPt", fPcPt, "PcPt[PcN]/F");
fTree->Branch("PcPx", fPcPx, "PcPx[PcN]/F");
fTree->Branch("PcPy", fPcPy, "PcPy[PcN]/F");
fTree->Branch("PcPz", fPcPz, "PcPz[PcN]/F");
fTree->Branch("PcTheta", fPcTheta, "PcTheta[PcN]/F");
fTree->Branch("PcEta", fPcEta, "PcEta[PcN]/F");
fTree->Branch("PcPhi", fPcPhi, "PcPhi[PcN]/F");
fTree->Branch("PcD0", fPcD0, "PcD0[PcN]/F");
fTree->Branch("PcDz", fPcDz, "PcDz[PcN]/F");
fTree->Branch("PcEtaErr", fPcEtaErr, "PcEtaErr[PcN]/F");
fTree->Branch("PcPhiErr", fPcPhiErr, "PcPhiErr[PcN]/F");
fTree->Branch("PcD0Err", fPcD0Err, "PcD0Err[PcN]/F");
fTree->Branch("PcDzErr", fPcDzErr, "PcDzErr[PcN]/F");
fTree->Branch("PcVx", fPcVx, "PcVx[PcN]/F");
fTree->Branch("PcVy", fPcVy, "PcVy[PcN]/F");
fTree->Branch("PcVz", fPcVz, "PcVz[PcN]/F");
fTree->Branch("PcEcalIso", fPcEcalIso, "PcEcalIso[PcN]/F");
fTree->Branch("PcHcalIso", fPcHcalIso, "PcHcalIso[PcN]/F");
fTree->Branch("PcTrackIso", fPcTrackIso, "PcTrackIso[PcN]/F");
fTree->Branch("PcIP", fPcIP, "PcIP[PcN]/F");
fTree->Branch("PcIPxy", fPcIPxy, "PcIPxy[PcN]/F");
fTree->Branch("MuHitN", fMuHitN, "MuHitN[MuN]/I");
fTree->Branch("MuMatchedN", fMuMatchedN, "MuMatchedN[MuN]/I");
fTree->Branch("MuMatchedNSegArb", fMuMatchedNSegArb, "MuMatchedNSegArb[MuN]/I");
fTree->Branch("MuMatchedNSegTrkArb", fMuMatchedNSegTrkArb, "MuMatchedNSegTrkArb[MuN]/I");
fTree->Branch("MuMatchedNSegTrkArbClean", fMuMatchedNSegTrkArbClean, "MuMatchedNSegTrkArbClean[MuN]/I");
fTree->Branch("MuHLTN", fMuHLTN, "MuHLTN[MuN]/I");
fTree->Branch("MuToHLT", fMuToHLT, "MuToHLT[MuN]/I");
fTree->Branch("MuChi2", fMuChi2, "MuChi2[MuN]/F");
fTree->Branch("MuNdof", fMuNdof, "MuNdof[MuN]/F");
fTree->Branch("MuTkKink", fMuTkKink, "MuTkKink[MuN]/F");
fTree->Branch("MuGlbKink", fMuGlbKink, "MuGlbKink[MuN]/F");
fTree->Branch("MuGlbProb", fMuGlbProb, "MuGlbProb[MuN]/F");
fTree->Branch("MuTkSADist", fMuTkSADist, "MuTkSADist[MuN]/F");
fTree->Branch("MuTkSAdR", fMuTkSAdR, "MuTkSAdR[MuN]/F");
fTree->Branch("MuECALEnergy", fMuECALEnergy, "MuECALEnergy[MuN]/F");
fTree->Branch("MuHCALEnergy", fMuHCALEnergy, "MuHCALEnergy[MuN]/F");
fTree->Branch("MuCalCompat", fMuCalCompat, "MuCalCompat[MuN]/F");
fTree->Branch("MuIsSoft", fMuIsSoft, "MuIsSoft[MuN]/O");
fTree->Branch("MuIsLoose", fMuIsLoose, "MuIsLoose[MuN]/O");
fTree->Branch("MuIsGlobal", fMuIsGlobal, "MuIsGlobal[MuN]/O");
fTree->Branch("MuIsTracker", fMuIsTracker, "MuIsTracker[MuN]/O");
fTree->Branch("MuIsStandalone",fMuIsStandalone,"MuIsStandalone[MuN]/O");
fTree->Branch("MuIsCalo", fMuIsCalo, "MuIsCalo[MuN]/O");
fTree->Branch("MuArbitrated", fMuArbitrated, "MuArbitrated[MuN]/O");
fTree->Branch("MuLastStationLoose", fMuLastStationLoose, "MuLastStationLoose[MuN]/O");
fTree->Branch("MuLastStationTight", fMuLastStationTight, "MuLastStationTight[MuN]/O");
fTree->Branch("Mu2DCompatibilityLoose", fMu2DCompatibilityLoose, "Mu2DCompatibilityLoose[MuN]/O");
fTree->Branch("Mu2DCompatibilityTight", fMu2DCompatibilityTight, "Mu2DCompatibilityTight[MuN]/O");
fTree->Branch("MuOneStationLoose", fMuOneStationLoose, "MuOneStationLoose[MuN]/O");
fTree->Branch("MuOneStationTight", fMuOneStationTight, "MuOneStationTight[MuN]/O");
fTree->Branch("MuHLTMatch", fMuHLTMatch, "MuHLTMatch[MuN][2]/O");
fTree->Branch("MuL3Match", fMuL3Match, "MuL3Match[MuN]/O");
fTree->Branch("MuTightMatch", fMuTightMatch, "MuTightMatch[MuN]/O");
fTree->Branch("PcTPFilter", fPcTPFilter, "PcTPFilter[PcN]/O");
fTree->Branch("PcBasicFilter",fPcBasicFilter, "PcBasicFilter[PcN]/O");
fTree->Branch("MuBestProbI", fMuBestProbI, "MuBestProbI[4]/I");
fTree->Branch("MuBestProbByPtI",fMuBestProbByPtI,"MuBestProbByPtI[4]/I");
fTree->Branch("TkBestProbI", &fTkBestProbI, "TkBestProbI/I");
fTree->Branch("PcToJt", fPcToJt, "PcToJt[PcN][5]/I");
fTree->Branch("PvN", &fPvN, "PvN/I");
fTree->Branch("RePvN", &fRePvN, "RePvN/I");
fTree->Branch("AllPvN", &fAllPvN, "AllPvN/I");
fTree->Branch("PvIndex", fPvIndex, "PvIndex[AllPvN]/I");
fTree->Branch("PvTkN", fPvTkN, "PvTkN[AllPvN]/I");
fTree->Branch("PvClosestI", fPvClosestI, "PvClosestI[AllPvN]/I");
fTree->Branch("PvX", fPvX, "PvX[AllPvN]/F");
fTree->Branch("PvY", fPvY, "PvY[AllPvN]/F");
fTree->Branch("PvZ", fPvZ, "PvZ[AllPvN]/F");
fTree->Branch("PvXe", fPvXe, "PvXe[AllPvN]/F");
fTree->Branch("PvYe", fPvYe, "PvYe[AllPvN]/F");
fTree->Branch("PvZe", fPvZe, "PvZe[AllPvN]/F");
fTree->Branch("PvPx", fPvPx, "PvPx[AllPvN]/F");
fTree->Branch("PvPy", fPvPy, "PvPy[AllPvN]/F");
fTree->Branch("PvPz", fPvPz, "PvPz[AllPvN]/F");
fTree->Branch("PvPt", fPvPt, "PvPt[AllPvN]/F");
fTree->Branch("PvEta", fPvEta, "PvEta[AllPvN]/F");
fTree->Branch("PvChi2", fPvChi2, "PvChi2[AllPvN]/F");
fTree->Branch("PvNdof", fPvNdof, "PvNdof[AllPvN]/F");
fTree->Branch("PvMass", fPvMass, "PvMass[AllPvN]/F");
fTree->Branch("PvIsFake", fPvIsFake, "PvIsFake[AllPvN]/O");
fTree->Branch("PvIsRefit", fPvIsRefit, "PvIsRefit[AllPvN]/O");
fTree->Branch("JtN", &fJtN, "JtN/I");
fTree->Branch("JtStandN", &fJtStandN, "JtStandN/I");
fTree->Branch("JtTkN", fJtTkN, "JtTkN[JtN]/I");
fTree->Branch("JtSsvN", fJtSsvN, "JtSsvN[JtN]/I");
fTree->Branch("JtGtvN", fJtGtvN, "JtGtvN[JtN]/I");
fTree->Branch("JtIndex", fJtIndex, "JtIndex[JtN]/I");
fTree->Branch("JtStandIndex", fJtStandIndex, "JtStandIndex[JtStandN]/I");
fTree->Branch("JtToPv", fJtToPv, "JtToPv[JtN]/I");
fTree->Branch("JtnConstituents", fJtnConstituents, "JtnConstituents[JtN]/I");
fTree->Branch("Jtn60", fJtn60, "Jtn60[JtN]/I");
fTree->Branch("Jtn90", fJtn90, "Jtn90[JtN]/I");
fTree->Branch("JtnChargedParticles", fJtnChargedParticles, "JtnChargedParticles[JtN]/I");
fTree->Branch("JtnNeutralParticles", fJtnNeutralParticles, "JtnNeutralParticles[JtN]/I");
fTree->Branch("JtnChargedHadrons", fJtnChargedHadrons, "JtnChargedHadrons[JtN]/I");
fTree->Branch("JtnNeutralHadrons", fJtnNeutralHadrons, "JtnNeutralHadrons[JtN]/I");
fTree->Branch("JtnPhotons", fJtnPhotons, "JtnPhotons[JtN]/I");
fTree->Branch("JtnElectrons", fJtnElectrons, "JtnElectrons[JtN]/I");
fTree->Branch("JtnMuons", fJtnMuons, "JtnMuons[JtN]/I");
fTree->Branch("JtnHFHadrons", fJtnHFHadrons, "JtnHFHadrons[JtN]/I");
fTree->Branch("JtnHFEMParticles", fJtnHFEMParticles, "JtnHFEMParticles[JtN]/I");
fTree->Branch("JtRankTCHE", fJtRankTCHE, "JtRankTCHE[JtN]/I");
fTree->Branch("JtRankTCHP", fJtRankTCHP, "JtRankTCHP[JtN]/I");
fTree->Branch("JtRankP", fJtRankP, "JtRankP[JtN]/I");
fTree->Branch("JtRankBP", fJtRankBP, "JtRankBP[JtN]/I");
fTree->Branch("JtRankSSVHE", fJtRankSSVHE, "JtRankSSVHE[JtN]/I");
fTree->Branch("JtRankSSVHP", fJtRankSSVHP, "JtRankSSVHP[JtN]/I");
fTree->Branch("JtRankCSV", fJtRankCSV, "JtRankCSV[JtN]/I");
fTree->Branch("JtRankCSVMVA", fJtRankCSVMVA, "JtRankCSVMVA[JtN]/I");
fTree->Branch("JtRankGT", fJtRankGT, "JtRankGT[JtN]/I");
fTree->Branch("JtRankSE", fJtRankSE, "JtRankSE[JtN]/I");
fTree->Branch("JtRankSM", fJtRankSM, "JtRankSM[JtN]/I");
fTree->Branch("JtCharge", fJtCharge, "JtCharge[JtN]/F");
fTree->Branch("JtDiscTCHE", fJtDiscTCHE, "JtDiscTCHE[JtN]/F");
fTree->Branch("JtDiscTCHP", fJtDiscTCHP, "JtDiscTCHP[JtN]/F");
fTree->Branch("JtDiscP", fJtDiscP, "JtDiscP[JtN]/F");
fTree->Branch("JtDiscBP", fJtDiscBP, "JtDiscBP[JtN]/F");
fTree->Branch("JtDiscSSVHE", fJtDiscSSVHE, "JtDiscSSVHE[JtN]/F");
fTree->Branch("JtDiscSSVHP", fJtDiscSSVHP, "JtDiscSSVHP[JtN]/F");
fTree->Branch("JtDiscCSV", fJtDiscCSV, "JtDiscCSV[JtN]/F");
fTree->Branch("JtDiscCSVMVA", fJtDiscCSVMVA, "JtDiscCSVMVA[JtN]/F");
fTree->Branch("JtDiscGT", fJtDiscGT, "JtDiscGT[JtN]/F");
fTree->Branch("JtDiscSE", fJtDiscSE, "JtDiscSE[JtN]/F");
fTree->Branch("JtDiscSM", fJtDiscSM, "JtDiscSM[JtN]/F");
fTree->Branch("JtMaxDist", fJtMaxDist, "JtMaxDist[JtN]/F");
fTree->Branch("JtPhi", fJtPhi, "JtPhi[JtN]/F");
fTree->Branch("JtTheta", fJtTheta, "JtTheta[JtN]/F");
fTree->Branch("JtEta", fJtEta, "JtEta[JtN]/F");
fTree->Branch("JtRapidity", fJtRapidity, "JtRapidity[JtN]/F");
fTree->Branch("JtP", fJtP, "JtP[JtN]/F");
fTree->Branch("JtPt", fJtPt, "JtPt[JtN]/F");
fTree->Branch("JtPx", fJtPx, "JtPx[JtN]/F");
fTree->Branch("JtPy", fJtPy, "JtPy[JtN]/F");
fTree->Branch("JtPz", fJtPz, "JtPz[JtN]/F");
fTree->Branch("JtEnergy", fJtEnergy, "JtEnergy[JtN]/F");
fTree->Branch("JtEt", fJtEt, "JtEt[JtN]/F");
fTree->Branch("JtMass", fJtMass, "JtMass[JtN]/F");
fTree->Branch("JtMt", fJtMt, "JtMt[JtN]/F");
fTree->Branch("JtVx", fJtVx, "JtVx[JtN]/F");
fTree->Branch("JtVy", fJtVy, "JtVy[JtN]/F");
fTree->Branch("JtVz", fJtVz, "JtVz[JtN]/F");
fTree->Branch("JtChargedEmEnergy", fJtChargedEmEnergy, "JtChargedEmEnergy[JtN]/F");
fTree->Branch("JtNeutralEmEnergy", fJtNeutralEmEnergy, "JtNeutralEmEnergy[JtN]/F");
fTree->Branch("JtChargedHadronEnergy", fJtChargedHadronEnergy, "JtChargedHadronEnergy[JtN]/F");
fTree->Branch("JtNeutralHadronEnergy", fJtNeutralHadronEnergy, "JtNeutralHadronEnergy[JtN]/F");
fTree->Branch("JtPhotonEnergy", fJtPhotonEnergy, "JtPhotonEnergy[JtN]/F");
fTree->Branch("JtElectronEnergy", fJtElectronEnergy, "JtElectronEnergy[JtN]/F");
fTree->Branch("JtMuonEnergy", fJtMuonEnergy, "JtMuonEnergy[JtN]/F");
fTree->Branch("JtHFHadronEnergy", fJtHFHadronEnergy, "JtHFHadronEnergy[JtN]/F");
fTree->Branch("JtHFEMEnergy", fJtHFEMEnergy, "JtHFEMEnergy[JtN]/F");
fTree->Branch("JtdRMean", fJtdRMean, "JtdRMean[JtN]/F");
fTree->Branch("JtdRMax", fJtdRMax, "JtdRMax[JtN]/F");
fTree->Branch("JtPtRelMean", fJtPtRelMean, "JtPtRelMean[JtN]/F");
fTree->Branch("JtPtRelMax", fJtPtRelMax, "JtPtRelMax[JtN]/F");
fTree->Branch("JtPtRelSum", fJtPtRelSum, "JtPtRelSum[JtN]/F");
fTree->Branch("JtPullPx", fJtPullPx, "JtPullPx[JtN]/F");
fTree->Branch("JtPullPy", fJtPullPy, "JtPullPy[JtN]/F");
fTree->Branch("JtPullPz", fJtPullPz, "JtPullPz[JtN]/F");
fTree->Branch("JtIsStandard", fJtIsStandard, "JtIsStandard[JtN]/O");
fTree->Branch("JtIsFat", fJtIsFat, "JtIsFat[JtN]/O");
fTree->Branch("JtIsSub", fJtIsSub, "JtIsSub[JtN]/O");
fTree->Branch("JtIsFilt", fJtIsFilt, "JtIsFilt[JtN]/O");
fTree->Branch("JtHLTMatch", fJtHLTMatch, "JtHLTMatch[JtN][2]/O");
fTree->Branch("JtVeto", fJtVeto, "JtVeto[JtN]/O");
fTree->Branch("JtHLTN", fJtHLTN, "JtHLTN[JtN]/I");
fTree->Branch("JtToHLT", fJtToHLT, "JtToHLT[JtN]/I");
fTree->Branch("JtToPc", fJtToPc, "JtToPc[JtN][20]/I");
fTree->Branch("JtToSsv", fJtToSsv, "JtToSsv[JtN][2]/I");
fTree->Branch("JtToGtv", fJtToGtv, "JtToGtv[JtN][4]/I");
fTree->Branch("SvN", &fSvN, "SvN/I");
fTree->Branch("SsvN", &fSsvN, "SsvN/I");
fTree->Branch("GtvN", &fGtvN, "GtvN/I");
fTree->Branch("SvIndex", fSvIndex, "SvIndex[SvN]/I");
fTree->Branch("SvTkN", fSvTkN, "SvTkN[SvN]/I");
fTree->Branch("SvToJt", fSvToJt, "SvToJt[SvN]/I");
fTree->Branch("SvSeqInJt", fSvSeqInJt, "SvSeqInJt[SvN]/I");
fTree->Branch("SvX", fSvX, "SvX[SvN]/F");
fTree->Branch("SvY", fSvY, "SvY[SvN]/F");
fTree->Branch("SvZ", fSvZ, "SvZ[SvN]/F");
fTree->Branch("SvXe", fSvXe, "SvXe[SvN]/F");
fTree->Branch("SvYe", fSvYe, "SvYe[SvN]/F");
fTree->Branch("SvZe", fSvZe, "SvZe[SvN]/F");
fTree->Branch("SvPx", fSvPx, "SvPx[SvN]/F");
fTree->Branch("SvPy", fSvPy, "SvPy[SvN]/F");
fTree->Branch("SvPz", fSvPz, "SvPz[SvN]/F");
fTree->Branch("SvPt", fSvPt, "SvPt[SvN]/F");
fTree->Branch("SvEta", fSvEta, "SvEta[SvN]/F");
fTree->Branch("SvChi2", fSvChi2, "SvChi2[SvN]/F");
fTree->Branch("SvNdof", fSvNdof, "SvNdof[SvN]/F");
fTree->Branch("SvDist", fSvDist, "SvDist[SvN]/F");
fTree->Branch("SvDistCM", fSvDistCM, "SvDistCM[SvN]/F");
fTree->Branch("SvMass", fSvMass, "SvMass[SvN]/F");
fTree->Branch("SvTau", fSvTau, "SvTau[SvN]/F");
fTree->Branch("SvTauCM", fSvTauCM, "SvTauCM[SvN]/F");
fTree->Branch("SvIsGTV", fSvIsGTV, "SvIsGTV[SvN]/O");
fTree->Branch("SvToPc", fSvToPc, "SvToPc[SvN][20]/I");
fTree->Branch("METN", &fMETN, "METN/I");
fTree->Branch("METIndex", fMETIndex, "METIndex[METN]/I");
fTree->Branch("METCharge", fMETCharge, "METCharge[METN]/F");
fTree->Branch("METPhi", fMETPhi, "METPhi[METN]/F");
fTree->Branch("METTheta", fMETTheta, "METTheta[METN]/F");
fTree->Branch("METEta", fMETEta, "METEta[METN]/F");
fTree->Branch("METRapidity", fMETRapidity, "METRapidity[METN]/F");
fTree->Branch("METP", fMETP, "METP[METN]/F");
fTree->Branch("METPt", fMETPt, "METPt[METN]/F");
fTree->Branch("METPx", fMETPx, "METPx[METN]/F");
fTree->Branch("METPy", fMETPy, "METPy[METN]/F");
fTree->Branch("METPz", fMETPz, "METPz[METN]/F");
fTree->Branch("METEnergy", fMETEnergy, "METEnergy[METN]/F");
fTree->Branch("METEt", fMETEt, "METEt[METN]/F");
fTree->Branch("METMass", fMETMass, "METMass[METN]/F");
fTree->Branch("METMt", fMETMt, "METMt[METN]/F");
fTree->Branch("METVx", fMETVx, "METVx[METN]/F");
fTree->Branch("METVy", fMETVy, "METVy[METN]/F");
fTree->Branch("METVz", fMETVz, "METVz[METN]/F");
fTree->Branch("JPsiN", &fJPsiN, "JPsiN/I");
fTree->Branch("JPsiMuMuN", &fJPsiMuMuN, "JPsiMuMuN/I");
fTree->Branch("JPsiMuTkN", &fJPsiMuTkN, "JPsiMuTkN/I");
fTree->Branch("BaseJPsiI", fBaseJPsiI, "BaseJPsiI[2]/I");
fTree->Branch("JPsiBestProbI", fJPsiBestProbI, "JPsiBestProbI[2]/I");
fTree->Branch("JPsiVtxBestProbI",fJPsiVtxBestProbI, "JPsiVtxBestProbI[2]/I");
fTree->Branch("JPsiIndex", fJPsiIndex, "JPsiIndex[JPsiN]/I");
fTree->Branch("JPsiClosestPVinZ", fJPsiClosestPVinZ, "JPsiClosestPVinZ[JPsiN]/I");
fTree->Branch("JPsiCharge", fJPsiCharge, "JPsiCharge[JPsiN]/F");
fTree->Branch("JPsiPhi", fJPsiPhi, "JPsiPhi[JPsiN]/F");
fTree->Branch("JPsiTheta", fJPsiTheta, "JPsiTheta[JPsiN]/F");
fTree->Branch("JPsiEta", fJPsiEta, "JPsiEta[JPsiN]/F");
fTree->Branch("JPsiRapidity", fJPsiRapidity, "JPsiRapidity[JPsiN]/F");
fTree->Branch("JPsiP", fJPsiP, "JPsiP[JPsiN]/F");
fTree->Branch("JPsiPt", fJPsiPt, "JPsiPt[JPsiN]/F");
fTree->Branch("JPsiPx", fJPsiPx, "JPsiPx[JPsiN]/F");
fTree->Branch("JPsiPy", fJPsiPy, "JPsiPy[JPsiN]/F");
fTree->Branch("JPsiPz", fJPsiPz, "JPsiPz[JPsiN]/F");
fTree->Branch("JPsiEnergy", fJPsiEnergy, "JPsiEnergy[JPsiN]/F");
fTree->Branch("JPsiEt", fJPsiEt, "JPsiEt[JPsiN]/F");
fTree->Branch("JPsiMass", fJPsiMass, "JPsiMass[JPsiN]/F");
fTree->Branch("JPsiMt", fJPsiMt, "JPsiMt[JPsiN]/F");
fTree->Branch("JPsiChi2", fJPsiChi2, "JPsiChi2[JPsiN]/F");
fTree->Branch("JPsiNdof", fJPsiNdof, "JPsiNdof[JPsiN]/F");
fTree->Branch("JPsiVx", fJPsiVx, "JPsiVx[JPsiN]/F");
fTree->Branch("JPsiVy", fJPsiVy, "JPsiVy[JPsiN]/F");
fTree->Branch("JPsiVz", fJPsiVz, "JPsiVz[JPsiN]/F");
fTree->Branch("JPsiVxE", fJPsiVxE, "JPsiVxE[JPsiN]/F");
fTree->Branch("JPsiVyE", fJPsiVyE, "JPsiVyE[JPsiN]/F");
fTree->Branch("JPsiVzE", fJPsiVzE, "JPsiVzE[JPsiN]/F");
fTree->Branch("JPsiVtxPhi", fJPsiVtxPhi, "JPsiVtxPhi[JPsiN]/F");
fTree->Branch("JPsiVtxTheta", fJPsiVtxTheta, "JPsiVtxTheta[JPsiN]/F");
fTree->Branch("JPsiVtxEta", fJPsiVtxEta, "JPsiVtxEta[JPsiN]/F");
fTree->Branch("JPsiVtxRapidity", fJPsiVtxRapidity, "JPsiVtxRapidity[JPsiN]/F");
fTree->Branch("JPsiVtxP", fJPsiVtxP, "JPsiVtxP[JPsiN]/F");
fTree->Branch("JPsiVtxPt", fJPsiVtxPt, "JPsiVtxPt[JPsiN]/F");
fTree->Branch("JPsiVtxPx", fJPsiVtxPx, "JPsiVtxPx[JPsiN]/F");
fTree->Branch("JPsiVtxPy", fJPsiVtxPy, "JPsiVtxPy[JPsiN]/F");
fTree->Branch("JPsiVtxPz", fJPsiVtxPz, "JPsiVtxPz[JPsiN]/F");
fTree->Branch("JPsiVtxEnergy", fJPsiVtxEnergy, "JPsiVtxEnergy[JPsiN]/F");
fTree->Branch("JPsiVtxEt", fJPsiVtxEt, "JPsiVtxEt[JPsiN]/F");
fTree->Branch("JPsiVtxMass", fJPsiVtxMass, "JPsiVtxMass[JPsiN]/F");
fTree->Branch("JPsiVtxMt", fJPsiVtxMt, "JPsiVtxMt[JPsiN]/F");
fTree->Branch("JPsiMuI", fJPsiMuI, "JPsiMuI[JPsiN][2]/I");
fTree->Branch("JPsiMuCategory", fJPsiMuCategory, "JPsiMuCategory[JPsiN][2]/I");
fTree->Branch("JPsiMuCutKin", fJPsiMuCutKin, "JPsiMuCutKin[JPsiN][2]/O");
fTree->Branch("JPsiMuCutHLT", fJPsiMuCutHLT, "JPsiMuCutHLT[JPsiN][2]/O");
fTree->Branch("JPsiMuCutIso", fJPsiMuCutIso, "JPsiMuCutIso[JPsiN][2]/O");
fTree->Branch("JPsiMuCutSA", fJPsiMuCutSA, "JPsiMuCutSA[JPsiN][2]/O");
fTree->Branch("JPsiMuCutTrk", fJPsiMuCutTrk, "JPsiMuCutTrk[JPsiN][2]/O");
fTree->Branch("JPsiMuType", fJPsiMuType, "JPsiMuType[JPsiN][2][5]/O");
fTree->Branch("JPsiBasicFilter", fJPsiBasicFilter, "JPsiBasicFilter[JPsiN]/O");
fTree->Branch("JPsiVtxBasicFilter",fJPsiVtxBasicFilter,"JPsiVtxBasicFilter[JPsiN]/O");
// isolation information
fTree->Branch("JPsiFromClosestI",fJPsiFromClosestI, "JPsiFromClosestI[JPsiN][5]/I");
fTree->Branch("NJPsiSharedTk2", fNJPsiSharedTk2, "NJPsiSharedTk2[JPsiN]/I");
fTree->Branch("NJPsiWithin05", fNJPsiWithin05, "NJPsiWithin05[JPsiN]/I");
fTree->Branch("NJPsiWithin03", fNJPsiWithin03, "NJPsiWithin03[JPsiN]/I");
fTree->Branch("JPsidRToClosest", fJPsidRToClosest, "JPsidRToClosest[JPsiN][5]/F");
fTree->Branch("EtabN", &fEtabN, "EtabN/I");
fTree->Branch("EtabIndex", fEtabIndex, "EtabIndex[EtabN]/I");
fTree->Branch("EtabDuplicatesI", fEtabDuplicatesI, "EtabDuplicatesI[EtabN]/I");
fTree->Branch("EtabCharge", fEtabCharge, "EtabCharge[EtabN]/F");
fTree->Branch("EtabPhi", fEtabPhi, "EtabPhi[EtabN]/F");
fTree->Branch("EtabTheta", fEtabTheta, "EtabTheta[EtabN]/F");
fTree->Branch("EtabEta", fEtabEta, "EtabEta[EtabN]/F");
fTree->Branch("EtabRapidity", fEtabRapidity, "EtabRapidity[EtabN]/F");
fTree->Branch("EtabP", fEtabP, "EtabP[EtabN]/F");
fTree->Branch("EtabPt", fEtabPt, "EtabPt[EtabN]/F");
fTree->Branch("EtabPx", fEtabPx, "EtabPx[EtabN]/F");
fTree->Branch("EtabPy", fEtabPy, "EtabPy[EtabN]/F");
fTree->Branch("EtabPz", fEtabPz, "EtabPz[EtabN]/F");
fTree->Branch("EtabEnergy", fEtabEnergy, "EtabEnergy[EtabN]/F");
fTree->Branch("EtabEt", fEtabEt, "EtabEt[EtabN]/F");
fTree->Branch("EtabMass", fEtabMass, "EtabMass[EtabN]/F");
fTree->Branch("EtabMt", fEtabMt, "EtabMt[EtabN]/F");
fTree->Branch("EtabChi2", fEtabChi2, "EtabChi2[EtabN]/F");
fTree->Branch("EtabNdof", fEtabNdof, "EtabNdof[EtabN]/F");
fTree->Branch("EtabVx", fEtabVx, "EtabVx[EtabN]/F");
fTree->Branch("EtabVy", fEtabVy, "EtabVy[EtabN]/F");
fTree->Branch("EtabVz", fEtabVz, "EtabVz[EtabN]/F");
fTree->Branch("EtabVxE", fEtabVxE, "EtabVxE[EtabN]/F");
fTree->Branch("EtabVyE", fEtabVyE, "EtabVyE[EtabN]/F");
fTree->Branch("EtabVzE", fEtabVzE, "EtabVzE[EtabN]/F");
fTree->Branch("EtabVtxPhi", fEtabVtxPhi, "EtabVtxPhi[EtabN]/F");
fTree->Branch("EtabVtxTheta", fEtabVtxTheta, "EtabVtxTheta[EtabN]/F");
fTree->Branch("EtabVtxEta", fEtabVtxEta, "EtabVtxEta[EtabN]/F");
fTree->Branch("EtabVtxRapidity",fEtabVtxRapidity,"EtabVtxRapidity[EtabN]/F");
fTree->Branch("EtabVtxP", fEtabVtxP, "EtabVtxP[EtabN]/F");
fTree->Branch("EtabVtxPt", fEtabVtxPt, "EtabVtxPt[EtabN]/F");
fTree->Branch("EtabVtxPx", fEtabVtxPx, "EtabVtxPx[EtabN]/F");
fTree->Branch("EtabVtxPy", fEtabVtxPy, "EtabVtxPy[EtabN]/F");
fTree->Branch("EtabVtxPz", fEtabVtxPz, "EtabVtxPz[EtabN]/F");
fTree->Branch("EtabVtxEnergy",fEtabVtxEnergy, "EtabVtxEnergy[EtabN]/F");
fTree->Branch("EtabVtxEt", fEtabVtxEt, "EtabVtxEt[EtabN]/F");
fTree->Branch("EtabVtxMass", fEtabVtxMass, "EtabVtxMass[EtabN]/F");
fTree->Branch("EtabVtxMt", fEtabVtxMt, "EtabVtxMt[EtabN]/F");
fTree->Branch("BaseEtabI", &fBaseEtabI, "BaseEtabI/I");
fTree->Branch("EtabBestMassI", &fEtabBestMassI, "EtabBestMassI/I");
fTree->Branch("EtabVtxBestMassI", &fEtabVtxBestMassI, "EtabVtxBestMassI/I");
fTree->Branch("EtabBestProbI", &fEtabBestProbI, "EtabBestProbI/I");
fTree->Branch("EtabBest4MuProbI", &fEtabBest4MuProbI, "EtabBest4MuProbI/I");
fTree->Branch("EtabVtxBestProbI", &fEtabVtxBestProbI, "EtabVtxBestProbI/I");
fTree->Branch("EtabVtxBestPtI", &fEtabVtxBestPtI, "EtabVtxBestPtI/I");
fTree->Branch("EtabJPsiI", fEtabJPsiI, "EtabJPsiI[EtabN][2]/I");
fTree->Branch("EtabMuI", fEtabMuI, "EtabMuI[EtabN][4]/I");
fTree->Branch("EtabMuN", fEtabMuN, "EtabMuN[EtabN]/I");
fTree->Branch("EtabL3MatchMuN",fEtabL3MatchMuN,"EtabL3MatchMuN[EtabN]/I");
fTree->Branch("EtabToRePvI", fEtabToRePvI, "EtabToRePvI[EtabN]/I");
fTree->Branch("EtabCT", fEtabCT, "EtabCT[EtabN]/F");
fTree->Branch("EtabCTxy", fEtabCTxy, "EtabCTxy[EtabN]/F");
fTree->Branch("EtabVtxCT", fEtabVtxCT, "EtabVtxCT[EtabN]/F");
fTree->Branch("EtabVtxCTxy", fEtabVtxCTxy, "EtabVtxCTxy[EtabN]/F");
fTree->Branch("EtabJPsiDeltaL", fEtabJPsiDeltaL, "EtabJPsiDeltaL[EtabN]/F");
fTree->Branch("EtabJPsiDeltaT", fEtabJPsiDeltaT, "EtabJPsiDeltaT[EtabN]/F");
fTree->Branch("EtabJPsiVtxErr", fEtabJPsiVtxErr, "EtabJPsiVtxErr[EtabN]/F");
fTree->Branch("EtabJPsiVtxErrxy",fEtabJPsiVtxErrxy,"EtabJPsiVtxErrxy[EtabN]/F");
fTree->Branch("EtabJPsiProjX", fEtabJPsiProjX, "EtabJPsiProjX[EtabN][2]/F");
fTree->Branch("EtabJPsiProjY", fEtabJPsiProjY, "EtabJPsiProjY[EtabN][2]/F");
fTree->Branch("EtabJPsiProjZ", fEtabJPsiProjZ, "EtabJPsiProjZ[EtabN][2]/F");
fTree->Branch("EtabJPsiCT", fEtabJPsiCT, "EtabJPsiCT[EtabN][2]/F");
fTree->Branch("EtabJPsiCTxy", fEtabJPsiCTxy, "EtabJPsiCTxy[EtabN][2]/F");
fTree->Branch("EtabJPsiVtxCT",fEtabJPsiVtxCT, "EtabJPsiVtxCT[EtabN][2]/F");
fTree->Branch("EtabJPsiVtxCTxy",fEtabJPsiVtxCTxy,"EtabJPsiVtxCTxy[EtabN][2]/F");
fTree->Branch("EtabJPsiToPVVtxErr",fEtabJPsiToPVVtxErr,"EtabJPsiToPVVtxErr[EtabN][2]/F");
fTree->Branch("EtabJPsiToPVVtxErrxy",fEtabJPsiToPVVtxErrxy,"EtabJPsiToPVVtxErrxy[EtabN][2]/F");
fTree->Branch("EtabBasicFilter", fEtabBasicFilter, "EtabBasicFilter[EtabN]/O");
//himal additions
// fTree->Branch(" fEtabBasicFilter", fEtabBasicFilter, "fEtabBasicFilter[ETABMAX]/0")
//end
//
fTree->Branch("EtabVtxBasicFilter", fEtabVtxBasicFilter, "EtabVtxBasicFilter[EtabN]/O");
// isolation information
fTree->Branch("EtabJPsiIsoTkN", fEtabJPsiIsoTkN, "EtabJPsiIsoTkN[EtabN][2]/I");
fTree->Branch("EtabJPsiIso7PV", fEtabJPsiIso7PV, "EtabJPsiIso7PV[EtabN][2]/F");
fTree->Branch("EtabJPsiIsoTkCA",fEtabJPsiIsoTkCA,"EtabJPsiIsoTkCA[EtabN][2]/F");
fTree->Branch("HN", &fHN, "HN/I");
fTree->Branch("HIndex", fHIndex, "HIndex[HN]/I");
fTree->Branch("HCharge", fHCharge, "HCharge[HN]/F");
fTree->Branch("HPhi", fHPhi, "HPhi[HN]/F");
fTree->Branch("HTheta", fHTheta, "HTheta[HN]/F");
fTree->Branch("HEta", fHEta, "HEta[HN]/F");
fTree->Branch("HRapidity", fHRapidity, "HRapidity[HN]/F");
fTree->Branch("HP", fHP, "HP[HN]/F");
fTree->Branch("HPt", fHPt, "HPt[HN]/F");
fTree->Branch("HPx", fHPx, "HPx[HN]/F");
fTree->Branch("HPy", fHPy, "HPy[HN]/F");
fTree->Branch("HPz", fHPz, "HPz[HN]/F");
fTree->Branch("HEnergy", fHEnergy, "HEnergy[HN]/F");
fTree->Branch("HEt", fHEt, "HEt[HN]/F");
fTree->Branch("HMass", fHMass, "HMass[HN]/F");
fTree->Branch("HMt", fHMt, "HMt[HN]/F");
fTree->Branch("HVx", fHVx, "HVx[HN]/F");
fTree->Branch("HVy", fHVy, "HVy[HN]/F");
fTree->Branch("HVz", fHVz, "HVz[HN]/F");
fTree->Branch("HJtI", fHJtI, "HJtI[HN][2]/I");
// read in the following variables
chainData5fb.SetBranchAddress("run", &fRun);
chainData5fb.SetBranchAddress("lumiblock", &fLumiBlock);
chainData5fb.SetBranchAddress("event", &fEvent);
chainData5fb.SetBranchAddress("bx", &fBX);
chainData5fb.SetBranchAddress("orbit", &fOrbit);
chainData5fb.SetBranchAddress("bz", &fBz);
chainData5fb.SetBranchAddress("tlo", &fTimeLo);
chainData5fb.SetBranchAddress("thi", &fTimeHi);
chainData5fb.SetBranchAddress("EvSphericity", &fEvSphericity);
chainData5fb.SetBranchAddress("EvAplanarity", &fEvAplanarity);
chainData5fb.SetBranchAddress("EvLambda", fEvLambda);
chainData5fb.SetBranchAddress("EvThrust", &fEvThrust);
chainData5fb.SetBranchAddress("EvThrust_Major", &fEvThrust_Major);
chainData5fb.SetBranchAddress("EvThrust_Minor", &fEvThrust_Minor);
chainData5fb.SetBranchAddress("EvFW", fEvFW);
chainData5fb.SetBranchAddress("HLTP_DoubleMu3", fHLTP_DoubleMu3);
chainData5fb.SetBranchAddress("HLTP_DoubleMu6", fHLTP_DoubleMu6);
chainData5fb.SetBranchAddress("HLTP_DoubleMu7", fHLTP_DoubleMu7);
chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi", fHLTP_Dimuon0_Jpsi);
//chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi_Muon", fHLTP_Dimuon0_Jpsi_Muon);
//--------addition to add JPsi, Upsilon Z trigger-------------------------------------------
chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi3p5_Muon2", fHLTP_Dimuon0_Jpsi3p5_Muon2); //himal addition for 2017 data
chainData5fb.SetBranchAddress("HLTP_Trimuon5_3p5_2_Upsilon_Muon", fHLTP_Trimuon5_3p5_2_Upsilon_Muon);
chainData5fb.SetBranchAddress("HLTP_Trimuon5_3p5_2_Upsilon_Muon_PS", &fHLTP_Trimuon5_3p5_2_Upsilon_Muon_PS);
chainData5fb.SetBranchAddress("HLTP_Trimuon5_3p5_2_Upsilon_Muon_Filters", fHLTP_Trimuon5_3p5_2_Upsilon_Muon_Filters);
chainData5fb.SetBranchAddress("HLTP_IsoMu20", fHLTP_IsoMu20);
chainData5fb.SetBranchAddress("HLTP_IsoMu27", fHLTP_IsoMu27);
chainData5fb.SetBranchAddress("HLTP_IsoMu20_PS", &fHLTP_IsoMu20_PS);
chainData5fb.SetBranchAddress("HLTP_IsoMu20_Filters", fHLTP_IsoMu20_Filters);
chainData5fb.SetBranchAddress("HLTP_Mu50", fHLTP_Mu50);
chainData5fb.SetBranchAddress("HLTP_Mu50_PS", &fHLTP_Mu50_PS);
chainData5fb.SetBranchAddress("HLTP_Mu50_Filters", fHLTP_Mu50_Filters);
chainData5fb.SetBranchAddress("HLT_MuonJpsi_L3Matching_Pt", fHLT_MuonJpsi_L3Matching_Pt);
chainData5fb.SetBranchAddress("HLT_MuonJpsi_L3Matching_Eta", fHLT_MuonJpsi_L3Matching_Eta);
chainData5fb.SetBranchAddress("HLT_MuonJpsi_L3Matching_Phi", fHLT_MuonJpsi_L3Matching_Phi);
chainData5fb.SetBranchAddress("HLT_MuonJpsi_VtxMatching_Pt", fHLT_MuonJpsi_VtxMatching_Pt);
chainData5fb.SetBranchAddress("HLT_MuonJpsi_VtxMatching_Eta", fHLT_MuonJpsi_VtxMatching_Eta);
chainData5fb.SetBranchAddress("HLT_MuonJpsi_VtxMatching_Phi", fHLT_MuonJpsi_VtxMatching_Phi);
chainData5fb.SetBranchAddress("HLT_MuonUpsilon_L3Matching_Pt", fHLT_MuonUpsilon_L3Matching_Pt);
chainData5fb.SetBranchAddress("HLT_MuonUpsilon_L3Matching_Eta", fHLT_MuonUpsilon_L3Matching_Eta);
chainData5fb.SetBranchAddress("HLT_MuonUpsilon_L3Matching_Phi", fHLT_MuonUpsilon_L3Matching_Phi);
chainData5fb.SetBranchAddress("HLT_MuonUpsilon_VtxMatching_Pt", fHLT_MuonUpsilon_VtxMatching_Pt);
chainData5fb.SetBranchAddress("HLT_MuonUpsilon_VtxMatching_Eta", fHLT_MuonUpsilon_VtxMatching_Eta);
chainData5fb.SetBranchAddress("HLT_MuonUpsilon_VtxMatching_Phi", fHLT_MuonUpsilon_VtxMatching_Phi);
chainData5fb.SetBranchAddress("HLT_MuonZ_L3Matching_Pt", fHLT_MuonZ_L3Matching_Pt);
chainData5fb.SetBranchAddress("HLT_MuonZ_L3Matching_Eta", fHLT_MuonZ_L3Matching_Eta);
chainData5fb.SetBranchAddress("HLT_MuonZ_L3Matching_Phi", fHLT_MuonZ_L3Matching_Phi);
chainData5fb.SetBranchAddress("HLT_MuonZ_VtxMatching_Pt", fHLT_MuonZ_VtxMatching_Pt);
chainData5fb.SetBranchAddress("HLT_MuonZ_VtxMatching_Eta", fHLT_MuonZ_VtxMatching_Eta);
chainData5fb.SetBranchAddress("HLT_MuonZ_VtxMatching_Phi", fHLT_MuonZ_VtxMatching_Phi);
//------------end----------------------------
chainData5fb.SetBranchAddress("HLTP_QuadMuon0_Dimuon0_Jpsi", fHLTP_QuadMuon0_Dimuon0_Jpsi);
chainData5fb.SetBranchAddress("HLTP_Dimuon0_Upsilon_Muon", fHLTP_Dimuon0_Upsilon_Muon);
chainData5fb.SetBranchAddress("HLTP_Dimuon10_Jpsi_Barrel", fHLTP_Dimuon10_Jpsi_Barrel);
chainData5fb.SetBranchAddress("HLTP_TripleMu5", fHLTP_TripleMu5);
chainData5fb.SetBranchAddress("HLTP_DoubleMu3_PS", &fHLTP_DoubleMu3_PS);
chainData5fb.SetBranchAddress("HLTP_DoubleMu6_PS", &fHLTP_DoubleMu6_PS);
chainData5fb.SetBranchAddress("HLTP_DoubleMu7_PS", &fHLTP_DoubleMu7_PS);
//chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi_Muon_PS", &fHLTP_Dimuon0_Jpsi_Muon_PS);
chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi3p5_Muon2_PS", &fHLTP_Dimuon0_Jpsi3p5_Muon2_PS);
chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi_PS", &fHLTP_Dimuon0_Jpsi_PS);
chainData5fb.SetBranchAddress("HLTP_Dimuon10_Jpsi_Barrel_PS", &fHLTP_Dimuon10_Jpsi_Barrel_PS);
chainData5fb.SetBranchAddress("HLTP_TripleMu5_PS", &fHLTP_TripleMu5_PS);
chainData5fb.SetBranchAddress("HLTP_DoubleMu3_Filters", fHLTP_DoubleMu3_Filters);
chainData5fb.SetBranchAddress("HLTP_DoubleMu6_Filters", fHLTP_DoubleMu6_Filters);
chainData5fb.SetBranchAddress("HLTP_DoubleMu7_Filters", fHLTP_DoubleMu7_Filters);
chainData5fb.SetBranchAddress("HLTP_TripleMu5_Filters", fHLTP_TripleMu5_Filters);
chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi_Filters", fHLTP_Dimuon0_Jpsi_Filters);
//chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi_Muon_Filters", fHLTP_Dimuon0_Jpsi_Muon_Filters);
chainData5fb.SetBranchAddress("HLTP_Dimuon0_Jpsi3p5_Muon2_Filters", fHLTP_Dimuon0_Jpsi3p5_Muon2_Filters);
chainData5fb.SetBranchAddress("HLTP_Dimuon10_Jpsi_Barrel_Filters", fHLTP_Dimuon10_Jpsi_Barrel_Filters);
//Himal addition for setbranchaddress
chainData5fb.SetBranchAddress("HLT_Muon_Eta", fHLT_Muon_Eta);
chainData5fb.SetBranchAddress("HLT_Muon_Phi", fHLT_Muon_Phi);
chainData5fb.SetBranchAddress("HLT_Muon_Pt", fHLT_Muon_Pt);
chainData5fb.SetBranchAddress("HLT_Muon_VertexmumuJpsi", fHLT_Muon_VertexmumuJpsi);
chainData5fb.SetBranchAddress("HLT_Muon_TripleMuL3", fHLT_Muon_TripleMuL3);
//end
chainData5fb.SetBranchAddress("HLTN", &fHLTN);
chainData5fb.SetBranchAddress("HLT_Index", fHLT_Index);
chainData5fb.SetBranchAddress("HLT_ToPc", fHLT_ToPc);
chainData5fb.SetBranchAddress("HLT_ToJt", fHLT_ToJt);
chainData5fb.SetBranchAddress("HLT_PdgId", fHLT_PdgId);
chainData5fb.SetBranchAddress("HLT_Mass", fHLT_Mass);
chainData5fb.SetBranchAddress("HLT_Energy", fHLT_Energy);
chainData5fb.SetBranchAddress("HLT_Et", fHLT_Et);
chainData5fb.SetBranchAddress("HLT_P", fHLT_P);
chainData5fb.SetBranchAddress("HLT_Pt", fHLT_Pt);
chainData5fb.SetBranchAddress("HLT_Px", fHLT_Px);
chainData5fb.SetBranchAddress("HLT_Py", fHLT_Py);
chainData5fb.SetBranchAddress("HLT_Pz", fHLT_Pz);
chainData5fb.SetBranchAddress("HLT_Theta", fHLT_Theta);
chainData5fb.SetBranchAddress("HLT_Eta", fHLT_Eta);
chainData5fb.SetBranchAddress("HLT_Phi", fHLT_Phi);
chainData5fb.SetBranchAddress("HLT_Mu", fHLT_Mu);
chainData5fb.SetBranchAddress("HLT_Mu12", fHLT_Mu12);
chainData5fb.SetBranchAddress("HLT_Mu15", fHLT_Mu15);
chainData5fb.SetBranchAddress("HLT_Mu20", fHLT_Mu20);
chainData5fb.SetBranchAddress("HLT_Mu24", fHLT_Mu24);
chainData5fb.SetBranchAddress("HLT_Mu30", fHLT_Mu30);
chainData5fb.SetBranchAddress("HLT_IsoMu12", fHLT_IsoMu12);
chainData5fb.SetBranchAddress("HLT_IsoMu15", fHLT_IsoMu15);
chainData5fb.SetBranchAddress("HLT_IsoMu17", fHLT_IsoMu17);
chainData5fb.SetBranchAddress("HLT_IsoMu24", fHLT_IsoMu24);
chainData5fb.SetBranchAddress("HLT_IsoMu30", fHLT_IsoMu30);
chainData5fb.SetBranchAddress("HLT_DoubleMu3", fHLT_DoubleMu3);
chainData5fb.SetBranchAddress("HLT_DoubleMu6", fHLT_DoubleMu6);
chainData5fb.SetBranchAddress("HLT_DoubleMu7", fHLT_DoubleMu7);
//chainData5fb.SetBranchAddress("HLT_Dimuon0_Jpsi_Muon", fHLT_Dimuon0_Jpsi_Muon);
chainData5fb.SetBranchAddress("HLT_Dimuon0_Jpsi3p5_Muon2", fHLT_Dimuon0_Jpsi3p5_Muon2);//changed for 2017 by himal
chainData5fb.SetBranchAddress("HLT_Dimuon0_Upsilon_Muon", fHLT_Dimuon0_Upsilon_Muon);
chainData5fb.SetBranchAddress("HLT_Dimuon0_Jpsi", fHLT_Dimuon0_Jpsi);
chainData5fb.SetBranchAddress("HLT_Dimuon7_Jpsi_Displaced", fHLT_Dimuon7_Jpsi_Displaced);
chainData5fb.SetBranchAddress("HLT_Dimuon7_Jpsi_X_Barrel", fHLT_Dimuon7_Jpsi_X_Barrel);
chainData5fb.SetBranchAddress("HLT_Dimuon10_Jpsi_Barrel", fHLT_Dimuon10_Jpsi_Barrel);
chainData5fb.SetBranchAddress("HLT_TripleMu5", fHLT_TripleMu5);
chainData5fb.SetBranchAddress("HLT_Jet", fHLT_Jet);
chainData5fb.SetBranchAddress("PcN", &fPcN);
chainData5fb.SetBranchAddress("TkN", &fTkN);
chainData5fb.SetBranchAddress("MuN", &fMuN);
chainData5fb.SetBranchAddress("ElecN", &fElecN);
chainData5fb.SetBranchAddress("MiscTkN", &fMiscTkN);
chainData5fb.SetBranchAddress("PhotN", &fPhotN);
chainData5fb.SetBranchAddress("PcIndex", fPcIndex);
chainData5fb.SetBranchAddress("MuIndex", fMuIndex);
chainData5fb.SetBranchAddress("ElecIndex", fElecIndex);
chainData5fb.SetBranchAddress("MiscTkIndex", fMiscTkIndex);
chainData5fb.SetBranchAddress("PhotIndex", fPhotIndex);
chainData5fb.SetBranchAddress("PcToTk", fPcToTk);
chainData5fb.SetBranchAddress("TkToPc", fTkToPc);
chainData5fb.SetBranchAddress("PcToPv", fPcToPv);
chainData5fb.SetBranchAddress("PcToSsv", fPcToSsv);
chainData5fb.SetBranchAddress("PcToGtv", fPcToGtv);
chainData5fb.SetBranchAddress("PcTkQuality", fPcTkQuality);
chainData5fb.SetBranchAddress("PcJtN", fPcJtN);
chainData5fb.SetBranchAddress("PcPdgId", fPcPdgId);
chainData5fb.SetBranchAddress("PcPixHitN", fPcPixHitN);
chainData5fb.SetBranchAddress("PcPixLayN", fPcPixLayN);
chainData5fb.SetBranchAddress("PcStripHitN", fPcStripHitN);
chainData5fb.SetBranchAddress("PcStripLayN", fPcStripLayN);
chainData5fb.SetBranchAddress("PcCharge", fPcCharge);
chainData5fb.SetBranchAddress("PcChi2", fPcChi2);
chainData5fb.SetBranchAddress("PcNdof", fPcNdof);
chainData5fb.SetBranchAddress("PcEnergy", fPcEnergy);
chainData5fb.SetBranchAddress("PcEt", fPcEt);
chainData5fb.SetBranchAddress("PcP", fPcP);
chainData5fb.SetBranchAddress("PcPt", fPcPt);
chainData5fb.SetBranchAddress("PcPx", fPcPx);
chainData5fb.SetBranchAddress("PcPy", fPcPy);
chainData5fb.SetBranchAddress("PcPz", fPcPz);
chainData5fb.SetBranchAddress("PcTheta", fPcTheta);
chainData5fb.SetBranchAddress("PcEta", fPcEta);
chainData5fb.SetBranchAddress("PcPhi", fPcPhi);
chainData5fb.SetBranchAddress("PcD0", fPcD0);
chainData5fb.SetBranchAddress("PcDz", fPcDz);
chainData5fb.SetBranchAddress("PcEtaErr", fPcEtaErr);
chainData5fb.SetBranchAddress("PcPhiErr", fPcPhiErr);
chainData5fb.SetBranchAddress("PcD0Err", fPcD0Err);
chainData5fb.SetBranchAddress("PcDzErr", fPcDzErr);
chainData5fb.SetBranchAddress("PcVx", fPcVx);
chainData5fb.SetBranchAddress("PcVy", fPcVy);
chainData5fb.SetBranchAddress("PcVz", fPcVz);
chainData5fb.SetBranchAddress("PcEcalIso", fPcEcalIso);
chainData5fb.SetBranchAddress("PcHcalIso", fPcHcalIso);
chainData5fb.SetBranchAddress("PcTrackIso", fPcTrackIso);
chainData5fb.SetBranchAddress("PcIP", fPcIP);
chainData5fb.SetBranchAddress("PcIPxy", fPcIPxy);
chainData5fb.SetBranchAddress("MuHitN", fMuHitN);
chainData5fb.SetBranchAddress("MuMatchedN", fMuMatchedN);
chainData5fb.SetBranchAddress("MuMatchedNSegArb", fMuMatchedNSegArb);
chainData5fb.SetBranchAddress("MuMatchedNSegTrkArb", fMuMatchedNSegTrkArb);
chainData5fb.SetBranchAddress("MuMatchedNSegTrkArbClean", fMuMatchedNSegTrkArbClean);
chainData5fb.SetBranchAddress("MuHLTN", fMuHLTN);
chainData5fb.SetBranchAddress("MuToHLT", fMuToHLT);
chainData5fb.SetBranchAddress("MuChi2", fMuChi2);
chainData5fb.SetBranchAddress("MuNdof", fMuNdof);
chainData5fb.SetBranchAddress("MuTkKink", fMuTkKink);
chainData5fb.SetBranchAddress("MuGlbKink", fMuGlbKink);
chainData5fb.SetBranchAddress("MuGlbProb", fMuGlbProb);
chainData5fb.SetBranchAddress("MuTkSADist", fMuTkSADist);
chainData5fb.SetBranchAddress("MuTkSAdR", fMuTkSAdR);
chainData5fb.SetBranchAddress("MuECALEnergy", fMuECALEnergy);
chainData5fb.SetBranchAddress("MuHCALEnergy", fMuHCALEnergy);
chainData5fb.SetBranchAddress("MuCalCompat", fMuCalCompat);
chainData5fb.SetBranchAddress("MuIsSoft", fMuIsSoft);
chainData5fb.SetBranchAddress("MuIsGlobal", fMuIsGlobal);
chainData5fb.SetBranchAddress("MuIsTracker", fMuIsTracker);
chainData5fb.SetBranchAddress("MuIsStandalone", fMuIsStandalone);
chainData5fb.SetBranchAddress("MuIsCalo", fMuIsCalo);
chainData5fb.SetBranchAddress("MuArbitrated", fMuArbitrated);
chainData5fb.SetBranchAddress("MuLastStationLoose", fMuLastStationLoose);
chainData5fb.SetBranchAddress("MuLastStationTight", fMuLastStationTight);
chainData5fb.SetBranchAddress("Mu2DCompatibilityLoose", fMu2DCompatibilityLoose);
chainData5fb.SetBranchAddress("Mu2DCompatibilityTight", fMu2DCompatibilityTight);
chainData5fb.SetBranchAddress("MuOneStationLoose", fMuOneStationLoose);
chainData5fb.SetBranchAddress("MuOneStationTight", fMuOneStationTight);
chainData5fb.SetBranchAddress("MuHLTMatch", fMuHLTMatch);
chainData5fb.SetBranchAddress("MuL3Match", fMuL3Match);
chainData5fb.SetBranchAddress("MuTightMatch", fMuTightMatch);
chainData5fb.SetBranchAddress("PcToJt", fPcToJt);
chainData5fb.SetBranchAddress("PvN", &fPvN);
chainData5fb.SetBranchAddress("RePvN", &fRePvN);
chainData5fb.SetBranchAddress("AllPvN", &fAllPvN);
chainData5fb.SetBranchAddress("PvIndex", fPvIndex);
chainData5fb.SetBranchAddress("PvTkN", fPvTkN);
chainData5fb.SetBranchAddress("PvX", fPvX);
chainData5fb.SetBranchAddress("PvY", fPvY);
chainData5fb.SetBranchAddress("PvZ", fPvZ);
chainData5fb.SetBranchAddress("PvXe", fPvXe);
chainData5fb.SetBranchAddress("PvYe", fPvYe);
chainData5fb.SetBranchAddress("PvZe", fPvZe);
chainData5fb.SetBranchAddress("PvPx", fPvPx);
chainData5fb.SetBranchAddress("PvPy", fPvPy);
chainData5fb.SetBranchAddress("PvPz", fPvPz);
chainData5fb.SetBranchAddress("PvPt", fPvPt);
chainData5fb.SetBranchAddress("PvEta", fPvEta);
chainData5fb.SetBranchAddress("PvChi2", fPvChi2);
chainData5fb.SetBranchAddress("PvNdof", fPvNdof);
chainData5fb.SetBranchAddress("PvMass", fPvMass);
chainData5fb.SetBranchAddress("PvIsFake", fPvIsFake);
chainData5fb.SetBranchAddress("PvIsRefit", fPvIsRefit);
chainData5fb.SetBranchAddress("JtN", &fJtN);
chainData5fb.SetBranchAddress("JtStandN", &fJtStandN);
chainData5fb.SetBranchAddress("JtTkN", fJtTkN);
chainData5fb.SetBranchAddress("JtSsvN", fJtSsvN);
chainData5fb.SetBranchAddress("JtGtvN", fJtGtvN);
chainData5fb.SetBranchAddress("JtIndex", fJtIndex);
chainData5fb.SetBranchAddress("JtStandIndex", fJtStandIndex);
chainData5fb.SetBranchAddress("JtToPv", fJtToPv);
chainData5fb.SetBranchAddress("JtnConstituents", fJtnConstituents);
chainData5fb.SetBranchAddress("Jtn60", fJtn60);
chainData5fb.SetBranchAddress("Jtn90", fJtn90);
chainData5fb.SetBranchAddress("JtnChargedParticles", fJtnChargedParticles);
chainData5fb.SetBranchAddress("JtnNeutralParticles", fJtnNeutralParticles);
chainData5fb.SetBranchAddress("JtnChargedHadrons", fJtnChargedHadrons);
chainData5fb.SetBranchAddress("JtnNeutralHadrons", fJtnNeutralHadrons);
chainData5fb.SetBranchAddress("JtnPhotons", fJtnPhotons);
chainData5fb.SetBranchAddress("JtnElectrons", fJtnElectrons);
chainData5fb.SetBranchAddress("JtnMuons", fJtnMuons);
chainData5fb.SetBranchAddress("JtnHFHadrons", fJtnHFHadrons);
chainData5fb.SetBranchAddress("JtnHFEMParticles", fJtnHFEMParticles);