double weight( double muon_pt, double muon_rap, double mass, bool isWeight) {
 int index_pt = -1;
 int index_rap = -1;

 const int nptbins = 5;
 const int nrapbins = 9;
 index_pt = Find_Index(muon_pt, true);
 index_rap = Find_Index(muon_rap, false);

 double weights_bin01[nptbins-1][nrapbins-1] = {{1.0, 0.779574566332, 1.02370535721, 1.05626632969, 1.05410635711, 1.02640831352, 0.771340890724, 1.0}, {
1.0, 0.551150683735, 1.50751555567, 1.37997072593, 1.39243306809, 1.49534378672, 0.45388879837, 1.0}, {
1.0, 1.0, 2.09277540039, 1.85523900201, 2.07016286454, 2.1700903606, 1.0, 1.0}, {
1.0, 1.0, 7.59173281425, 5.83917796524, 6.39022621693, 7.67515844958, 1.0, 1.0}};
 double weights_err_bin01[nptbins-1][nrapbins-1] = {{0.0, 0.0103785195038, 0.0031861423446, 0.00896447523497, 0.00896422229475, 0.00318683287626, 0.0103645474284, 0.0}, {
0.0, 0.393984244963, 0.010103161775, 0.0123496334405, 0.0123700692532, 0.0100750839702, 0.377648703509, 0.0}, {
0.0, 0.0, 0.0346371540461, 0.0235866145407, 0.0247600587274, 0.0350663143739, 0.0, 0.0}, {
0.0, 0.0, 0.0748836920229, 0.12481219286, 0.12538282706, 0.0751490691106, 0.0, 0.0}};

 double weights_bin02[nptbins-1][nrapbins-1] = {{1.0, 0.812272276432, 0.916797843265, 0.990286337473, 0.990215977823, 0.916629439347, 0.819757713225, 1.0}, {
1.0, 0.60839692437, 1.24583737598, 1.1434956601, 1.14682346067, 1.24396346667, 0.418272885504, 1.0}, {
1.0, 1.0, 1.65530066336, 1.53985185242, 1.53832321061, 1.62631115962, 1.0, 1.0}, {
1.0, 1.0, 3.54147825427, 3.15980599402, 3.03641463218, 3.44400637571, 1.0, 1.0}};
 double weights_err_bin02[nptbins-1][nrapbins-1] = {{0.0, 0.0124901622396, 0.111902948914, 0.00188567414633, 0.00188565782152, 0.111902948352, 0.0125003969435, 0.0}, {
0.0, 0.442082943346, 0.00606640863168, 0.00461389533757, 0.00461825107322, 0.0060641849797, 0.40869088305, 0.0}, {
0.0, 0.0, 0.0185750900118, 0.0138036082151, 0.0137996373761, 0.0184908679631, 0.0, 0.0}, {
0.0, 0.0, 0.0552441616465, 0.0463461208023, 0.0462089575561, 0.055076046911, 0.0, 0.0}};

 double weights_bin03[nptbins-1][nrapbins-1] = {{1.0, 0.73902102498, 1.00209761972, 0.989340889735, 0.986116891388, 0.999787478469, 0.743064380394, 1.0}, {
1.0, 0.50318542617, 1.14825099435, 1.06237786879, 1.06487664487, 1.14618086857, 0.251592713085, 1.0}, {
1.0, 1.0, 1.46303691525, 1.30871694224, 1.30798376748, 1.39302735887, 1.0, 1.0}, {
1.0, 1.0, 2.34719831406, 2.59354841971, 2.62187719717, 2.30205988495, 1.0, 1.0}};
 double weights_err_bin03[nptbins-1][nrapbins-1] = {{0.0, 0.0684854786134, 0.00261068207416, 0.00499809527086, 0.00499751724811, 0.00261002970582, 0.0684924897461, 0.0}, {
0.0, 1.01980390272, 0.00677703156048, 0.00954742426404, 0.00954998181053, 0.00677333464867, 0.734846922835, 0.0}, {
0.0, 0.0, 0.0180086438942, 0.020146938537, 0.0201449900887, 0.017695355436, 0.0, 0.0}, {
0.0, 0.0, 0.0459155144497, 0.0741340651605, 0.0741615076038, 0.0457441040398, 0.0, 0.0}};

 double weights_bin04[nptbins-1][nrapbins-1] = {{1.0, 0.85645005313, 1.03274281237, 1.00021757457, 0.998463673017, 1.03358492791, 0.938476255401, 1.0}, {
1.0, 0.0670913901561, 1.07326217157, 1.05430360638, 1.05152550983, 1.07042975213, 0.0670913901561, 1.0}, {
1.0, 1.0, 1.31373869978, 1.16957042739, 1.21746231989, 1.32608736554, 1.0, 1.0}, {
1.0, 1.0, 1.90408730133, 2.15107610506, 2.03371133888, 1.90995204661, 1.0, 1.0}};
 double weights_err_bin04[nptbins-1][nrapbins-1] = {{0.0, 0.191796254257, 0.01677646268, 0.0058652700529, 0.00586478376898, 0.0167765319121, 0.192116909219, 0.0}, {
0.0, 1.11803398875, 0.0168771884566, 0.0155644109015, 0.0155618401323, 0.0168739043084, 1.11803398875, 0.0}, {
0.0, 0.0, 0.0279847149135, 0.0292068421929, 0.0293275391194, 0.0280351178037, 0.0, 0.0}, {
0.0, 0.0, 0.0698119841243, 0.0688400720314, 0.0686611706075, 0.0698345596329, 0.0, 0.0}};

 double weights_bin05[nptbins-1][nrapbins-1] = {{1.0, 0.0061571212485, 1.02629938367, 1.00344771588, 1.00176973709, 1.03151499924, 0.00736988755502, 1.0}, {
1.0, 1.0, 1.05055917066, 0.98867413807, 0.996930289536, 1.05703974699, 1.0, 1.0}, {
1.0, 1.0, 1.22556517745, 1.1406998421, 1.1404449371, 1.22413788881, 1.0, 1.0}, {
1.0, 1.0, 1.71957958832, 1.58327333472, 1.55743715588, 1.73320901703, 1.0, 1.0}};
 double weights_err_bin05[nptbins-1][nrapbins-1] = {{0.0, 23.724404709, 0.00260871736506, 0.00300814783033, 0.00300663094677, 0.00261360838678, 23.7244572559, 0.0}, {
0.0, 0.0, 0.00839610588066, 0.00692639081134, 0.00695234373209, 0.00841837538632, 0.0, 0.0}, {
0.0, 0.0, 0.020484285076, 0.0155995263135, 0.0155979253116, 0.0204732340661, 0.0, 0.0}, {
0.0, 0.0, 0.042021992256, 0.0300572974476, 0.0299162450559, 0.0421454126407, 0.0, 0.0}};

 double weights_bin06[nptbins-1][nrapbins-1] = {{1.0, 1.60180693998, 1.03489189671, 1.0059468828, 1.00838219365, 1.03884433614, 0.915318251415, 1.0}, {
1.0, 1.0, 1.03679492598, 0.967319916039, 0.966114425668, 1.01652488284, 1.0, 1.0}, {
1.0, 1.0, 1.20801375105, 1.09135077973, 1.0789867615, 1.23002337171, 1.0, 1.0}, {
1.0, 1.0, 1.45733937636, 1.45061521941, 1.46315140032, 1.47637573977, 1.0, 1.0}};
 double weights_err_bin06[nptbins-1][nrapbins-1] = {{0.0, 0.672856352146, 0.00297925504952, 0.0033192766327, 0.00332238724054, 0.0029845748367, 0.587871425977, 0.0}, {
0.0, 0.0, 0.00957582494521, 0.00796787973252, 0.00796323176138, 0.00948612414513, 0.0, 0.0}, {
0.0, 0.0, 0.0229526549363, 0.0171407752114, 0.0170481627713, 0.0231546784052, 0.0, 0.0}, {
0.0, 0.0, 0.0402656314482, 0.0291130101326, 0.0292037019153, 0.040497347189, 0.0, 0.0}};

 double weights_bin07[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.03436426655, 1.00127125809, 1.00043136151, 1.03524262843, 1.0, 1.0}, {
1.0, 1.0, 1.0169420419, 0.956366006446, 0.957196906539, 1.0119995782, 1.0, 1.0}, {
1.0, 1.0, 1.11796619797, 1.04728191549, 1.0380516342, 1.10811627552, 1.0, 1.0}, {
1.0, 1.0, 1.4618461715, 1.31361477968, 1.34654662652, 1.31876171752, 1.0, 1.0}};
 double weights_err_bin07[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0066932790478, 0.0313829623623, 0.0313827923635, 0.00669409448774, 0.0, 0.0}, {
0.0, 0.0, 0.0175556605289, 0.0108237093698, 0.0108268760913, 0.0175391643444, 0.0, 0.0}, {
0.0, 0.0, 0.0309630000198, 0.0204645816718, 0.0203908040505, 0.0308725340038, 0.0, 0.0}, {
0.0, 0.0, 0.0577889142465, 0.0512039514615, 0.0513699878263, 0.0562366581163, 0.0, 0.0}};

 double weights_bin08[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.03512190002, 0.938108522536, 0.945090351952, 1.02121531446, 1.0, 1.0}, {
1.0, 1.0, 0.998359820873, 0.89616334867, 0.911683645541, 0.985377858609, 1.0, 1.0}, {
1.0, 1.0, 1.09977259158, 1.07150845252, 1.04868342039, 1.11832703714, 1.0, 1.0}, {
1.0, 1.0, 1.30730928289, 1.28763760398, 1.2728485044, 1.23564204432, 1.0, 1.0}};
 double weights_err_bin08[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0364424670264, 0.0801095682748, 0.0801103853202, 0.0364389757329, 0.0, 0.0}, {
0.0, 0.0, 0.0248038210541, 0.0344551323369, 0.0344797122677, 0.0247621793184, 0.0, 0.0}, {
0.0, 0.0, 0.0367858547722, 0.0529402416003, 0.0528590883134, 0.0369583882765, 0.0, 0.0}, {
0.0, 0.0, 0.0654621783261, 0.0854302694327, 0.0853781844555, 0.0646193156838, 0.0, 0.0}};

 double weights_bin09[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.09718438464, 1.03217770988, 1.02324515545, 1.09612703656, 1.0, 1.0}, {
1.0, 1.0, 1.04306817622, 0.945630226364, 0.92100385086, 1.02905065923, 1.0, 1.0}, {
1.0, 1.0, 1.08565354515, 0.963883666274, 0.982913509088, 1.11700061575, 1.0, 1.0}, {
1.0, 1.0, 1.05486356838, 1.17607020528, 1.15455102093, 1.22165823518, 1.0, 1.0}};
 double weights_err_bin09[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0311664210852, 0.00700952854883, 0.00699540731378, 0.031166018016, 0.0, 0.0}, {
0.0, 0.0, 0.0362223914096, 0.0124131269146, 0.0122837910562, 0.0361852122435, 0.0, 0.0}, {
0.0, 0.0, 0.0362628166074, 0.0227778566253, 0.0229721557329, 0.0366333465692, 0.0, 0.0}, {
0.0, 0.0, 0.0562690657605, 0.0351766443542, 0.034965246815, 0.0588042638601, 0.0, 0.0}};

 double weights_bin10[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.06050665907, 0.973797237159, 0.972825157263, 1.06272048269, 1.0, 1.0}, {
1.0, 1.0, 0.995223284371, 0.837155344835, 0.872860695991, 0.966949895611, 1.0, 1.0}, {
1.0, 1.0, 1.04988671915, 0.99218303169, 1.03449491623, 1.01142933017, 1.0, 1.0}, {
1.0, 1.0, 1.09554649176, 1.15629173736, 1.20797629527, 1.15320683343, 1.0, 1.0}};
 double weights_err_bin10[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0159606034244, 0.0827407616101, 0.0827405606868, 0.0159632230263, 0.0, 0.0}, {
0.0, 0.0, 0.0250148919083, 0.039426149305, 0.0395142020396, 0.0248483010577, 0.0, 0.0}, {
0.0, 0.0, 0.0407477564448, 0.0522986097891, 0.0525397309645, 0.0401740432785, 0.0, 0.0}, {
0.0, 0.0, 0.0709533029765, 0.0858514809193, 0.0861101210075, 0.0719761768482, 0.0, 0.0}};

 double weights_bin11[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.0787007033, 0.901032174797, 0.909262247111, 1.06531635723, 1.0, 1.0}, {
1.0, 1.0, 0.935826373749, 0.971337769869, 0.99819737081, 0.952327795163, 1.0, 1.0}, {
1.0, 1.0, 1.02242486356, 0.950884348768, 0.943973014918, 1.00416727671, 1.0, 1.0}, {
1.0, 1.0, 1.12557618851, 1.20062830149, 1.1522069951, 1.15152607182, 1.0, 1.0}};
 double weights_err_bin11[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.00967809251417, 0.0760157855228, 0.0760179097356, 0.00964886834935, 0.0, 0.0}, {
0.0, 0.0, 0.018128094251, 0.036942737806, 0.0370060204191, 0.0182703683744, 0.0, 0.0}, {
0.0, 0.0, 0.037116454313, 0.058671855291, 0.0586340515013, 0.0368027184614, 0.0, 0.0}, {
0.0, 0.0, 0.0582702213618, 0.0953963824148, 0.0951942762163, 0.0588248388821, 0.0, 0.0}};

 double weights_bin12[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.07933075285, 1.03412971377, 1.03818707842, 1.08269957612, 1.0, 1.0}, {
1.0, 1.0, 0.964646951613, 0.972357002712, 0.966157723128, 0.968412840613, 1.0, 1.0}, {
1.0, 1.0, 1.04747169455, 0.945647668123, 0.990504645209, 0.935913610493, 1.0, 1.0}, {
1.0, 1.0, 1.11448140888, 1.06947593251, 1.07035615962, 1.02855176754, 1.0, 1.0}};
 double weights_err_bin12[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0100652648594, 0.00861478845681, 0.00862259145205, 0.0100724628069, 0.0, 0.0}, {
0.0, 0.0, 0.0183942368641, 0.0191397043663, 0.0191129689539, 0.0184259527409, 0.0, 0.0}, {
0.0, 0.0, 0.0365574296608, 0.027349076553, 0.027801996777, 0.0346816486386, 0.0, 0.0}, {
0.0, 0.0, 0.0543739599371, 0.0393658045971, 0.0393744005417, 0.0525483638923, 0.0, 0.0}};

 double weights_bin13[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.13830697479, 1.15351705321, 1.14483662797, 1.14734614436, 1.0, 1.0}, {
1.0, 1.0, 0.698624836536, 0.720183096688, 0.725974944927, 0.692082044102, 1.0, 1.0}, {
1.0, 1.0, 0.6893457043, 0.739534347201, 0.713436834098, 0.698434440766, 1.0, 1.0}, {
1.0, 1.0, 0.290865498178, 0.359548466457, 0.374413519334, 0.297902566682, 1.0, 1.0}};
 double weights_err_bin13[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.00746371244925, 0.00656351904955, 0.00654658443861, 0.00748609069967, 0.0, 0.0}, {
0.0, 0.0, 0.0166187228089, 0.0120151673134, 0.0120588582384, 0.0165445636801, 0.0, 0.0}, {
0.0, 0.0, 0.0318524395735, 0.0213143071938, 0.0209462878289, 0.032058940855, 0.0, 0.0}, {
0.0, 0.0, 0.0445205665147, 0.0251778533701, 0.0256821287635, 0.0450522578573, 0.0, 0.0}};

 double weights_bin14[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.14297842348, 1.16128554842, 1.15731531014, 1.14513232933, 1.0, 1.0}, {
1.0, 1.0, 0.689001384561, 0.728672484628, 0.727779382032, 0.70078430679, 1.0, 1.0}, {
1.0, 1.0, 0.706153926868, 0.733688153343, 0.738898544135, 0.716763919091, 1.0, 1.0}, {
1.0, 1.0, 0.321347893835, 0.382565225683, 0.3656293485, 0.32099281329, 1.0, 1.0}};
 double weights_err_bin14[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.00491492670969, 0.00398134811447, 0.00397455462001, 0.0049195474757, 0.0, 0.0}, {
0.0, 0.0, 0.011938711989, 0.00825940229389, 0.00825434227058, 0.012040333969, 0.0, 0.0}, {
0.0, 0.0, 0.0234155444073, 0.0148459926761, 0.0148986048446, 0.0235907849196, 0.0, 0.0}, {
0.0, 0.0, 0.0332601382456, 0.0178129444254, 0.0174142520651, 0.0332417580995, 0.0, 0.0}};

 double weights_bin15[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.1543143443, 1.16303203885, 1.16472104831, 1.16212528661, 1.0, 1.0}, {
1.0, 1.0, 0.699279006918, 0.733241500357, 0.734049457714, 0.693416736453, 1.0, 1.0}, {
1.0, 1.0, 0.705207712161, 0.726727444573, 0.733512244367, 0.722681302037, 1.0, 1.0}, {
1.0, 1.0, 0.318699346514, 0.380909623427, 0.390209040571, 0.311955814002, 1.0, 1.0}};
 double weights_err_bin15[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.010902040002, 0.0107064310162, 0.0107068760311, 0.010905387631, 0.0, 0.0}, {
0.0, 0.0, 0.0130297847728, 0.0116440144139, 0.0116453163436, 0.0130099178637, 0.0, 0.0}, {
0.0, 0.0, 0.0183348883836, 0.0139180354705, 0.0139467311147, 0.018488375617, 0.0, 0.0}, {
0.0, 0.0, 0.0232466104195, 0.0150154717741, 0.0151106096614, 0.0230490086845, 0.0, 0.0}};

 double weights_bin16[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.18635864959, 1.19427399712, 1.19577409663, 1.18710783147, 1.0, 1.0}, {
1.0, 1.0, 0.706775376366, 0.744434122302, 0.741832499005, 0.707274272202, 1.0, 1.0}, {
1.0, 1.0, 0.722668970726, 0.74107430038, 0.742392445951, 0.720358054663, 1.0, 1.0}, {
1.0, 1.0, 0.325590763412, 0.393170906228, 0.393542409117, 0.326012622396, 1.0, 1.0}};
 double weights_err_bin16[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0014027826924, 0.0012021452572, 0.00120251360459, 0.00140305903133, 0.0, 0.0}, {
0.0, 0.0, 0.00271928160383, 0.00189018369157, 0.00188756307663, 0.00272014516178, 0.0, 0.0}, {
0.0, 0.0, 0.00500430711642, 0.0030661277726, 0.0030686389624, 0.00499653624072, 0.0, 0.0}, {
0.0, 0.0, 0.00662368301287, 0.00348043678928, 0.00348198031314, 0.00662790035743, 0.0, 0.0}};

 double weights_bin17[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.19367045211, 1.20368829851, 1.20414779654, 1.19157979502, 1.0, 1.0}, {
1.0, 1.0, 0.70565592774, 0.744574853889, 0.745044774608, 0.705918953635, 1.0, 1.0}, {
1.0, 1.0, 0.72001522843, 0.737314309606, 0.736998287904, 0.717351601382, 1.0, 1.0}, {
1.0, 1.0, 0.32285888304, 0.396462301278, 0.394813064638, 0.322200681382, 1.0, 1.0}};
 double weights_err_bin17[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0103868549471, 0.0103650803331, 0.0103650910287, 0.0103867678803, 0.0, 0.0}, {
0.0, 0.0, 0.0105987497592, 0.0104473743767, 0.0104474436534, 0.0105988461096, 0.0, 0.0}, {
0.0, 0.0, 0.0112518807325, 0.0106663083684, 0.010666169411, 0.0112486334297, 0.0, 0.0}, {
0.0, 0.0, 0.0118701838163, 0.0107627797652, 0.0107610435635, 0.0118672597073, 0.0, 0.0}};

 double weights_bin18[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.19968605949, 1.21546079049, 1.21785511669, 1.20069068146, 1.0, 1.0}, {
1.0, 1.0, 0.705510526073, 0.748294853827, 0.755199007468, 0.688723286622, 1.0, 1.0}, {
1.0, 1.0, 0.722056611748, 0.745518194323, 0.736090772626, 0.718098329729, 1.0, 1.0}, {
1.0, 1.0, 0.327721164517, 0.39754493582, 0.397506728714, 0.336292333435, 1.0, 1.0}};
 double weights_err_bin18[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.00356870099841, 0.00263753952173, 0.00264011432643, 0.00357018807047, 0.0, 0.0}, {
0.0, 0.0, 0.00805505566898, 0.00513854049867, 0.00516213937696, 0.0079587330313, 0.0, 0.0}, {
0.0, 0.0, 0.0151569180858, 0.00886743565111, 0.00881123270335, 0.0151153267919, 0.0, 0.0}, {
0.0, 0.0, 0.0193615830047, 0.00980689455788, 0.00980642357351, 0.0196130998917, 0.0, 0.0}};

 double weights_bin19[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.20243946239, 1.22303490762, 1.22662764751, 1.20565719815, 1.0, 1.0}, {
1.0, 1.0, 0.716907044362, 0.756535211821, 0.761226442727, 0.69558280873, 1.0, 1.0}, {
1.0, 1.0, 0.692494359867, 0.723563089444, 0.72789100336, 0.738053199331, 1.0, 1.0}, {
1.0, 1.0, 0.328016967867, 0.400105846849, 0.403747067083, 0.32257270284, 1.0, 1.0}};
 double weights_err_bin19[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.00626767973862, 0.00456163866384, 0.00456832228641, 0.00627605267896, 0.0, 0.0}, {
0.0, 0.0, 0.014064871534, 0.00883430847484, 0.00886164413516, 0.0138541527149, 0.0, 0.0}, {
0.0, 0.0, 0.0254913393281, 0.0148408764107, 0.014885187589, 0.0263164696866, 0.0, 0.0}, {
0.0, 0.0, 0.03247904127, 0.0162876576134, 0.016361593872, 0.0322083870984, 0.0, 0.0}};

 double weights_bin20[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.21722636143, 1.22870926977, 1.22858811918, 1.18513699024, 1.0, 1.0}, {
1.0, 1.0, 0.710555946333, 0.747219503442, 0.752457023326, 0.702073643943, 1.0, 1.0}, {
1.0, 1.0, 0.683329685055, 0.737662662004, 0.734641002355, 0.739812365668, 1.0, 1.0}, {
1.0, 1.0, 0.33716738313, 0.403645228961, 0.406766816097, 0.324592375834, 1.0, 1.0}};
 double weights_err_bin20[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.00981727127417, 0.00702324268778, 0.00702289658216, 0.00968703085792, 0.0, 0.0}, {
0.0, 0.0, 0.0215570209081, 0.0133602751503, 0.0134070112555, 0.0214279714004, 0.0, 0.0}, {
0.0, 0.0, 0.0386914347574, 0.0226750954363, 0.0226286081247, 0.0402587466088, 0.0, 0.0}, {
0.0, 0.0, 0.0492069978927, 0.0242969114848, 0.0243906771776, 0.0482806738413, 0.0, 0.0}};

 double weights_bin21[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.21346502982, 1.23537721925, 1.23350920934, 1.22358874263, 1.0, 1.0}, {
1.0, 1.0, 0.708929754285, 0.760028616302, 0.757277381492, 0.713152087545, 1.0, 1.0}, {
1.0, 1.0, 0.748890720543, 0.706921547745, 0.743697813235, 0.729302029664, 1.0, 1.0}, {
1.0, 1.0, 0.333892201569, 0.403684374184, 0.40713958994, 0.356775779247, 1.0, 1.0}};
 double weights_err_bin21[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0111969358668, 0.00794420583497, 0.00793819840276, 0.0112435417629, 0.0, 0.0}, {
0.0, 0.0, 0.0243326380208, 0.0150690830837, 0.0150417853167, 0.0244049908067, 0.0, 0.0}, {
0.0, 0.0, 0.0454546660322, 0.024708532375, 0.0253430803079, 0.0448562525879, 0.0, 0.0}, {
0.0, 0.0, 0.0539950262216, 0.0265936936157, 0.0267072597507, 0.0558146554153, 0.0, 0.0}};

 double weights_bin22[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.22874632491, 1.26588309607, 1.24025940716, 1.22874632491, 1.0, 1.0}, {
1.0, 1.0, 0.689934352997, 0.760330590202, 0.783362888722, 0.693594482191, 1.0, 1.0}, {
1.0, 1.0, 0.671174823724, 0.732574981102, 0.748606593439, 0.671174823724, 1.0, 1.0}, {
1.0, 1.0, 0.357952027314, 0.399041565656, 0.381626089356, 0.316595020174, 1.0, 1.0}};
 double weights_err_bin22[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0140650745914, 0.00989529228272, 0.00979463374055, 0.0140650745914, 0.0, 0.0}, {
0.0, 0.0, 0.0296565315298, 0.0183835360413, 0.0186598982207, 0.029735091803, 0.0, 0.0}, {
0.0, 0.0, 0.0528516648361, 0.030513948991, 0.030846023609, 0.0528516648361, 0.0, 0.0}, {
0.0, 0.0, 0.0671156233009, 0.031497077303, 0.030802093922, 0.0631194592149, 0.0, 0.0}};

 double weights_bin23[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.25187822636, 1.27358468692, 1.23501797541, 1.22176431714, 1.0, 1.0}, {
1.0, 1.0, 0.695545401771, 0.769180581062, 0.750019498971, 0.685885048969, 1.0, 1.0}, {
1.0, 1.0, 0.728358761245, 0.702970416965, 0.741116098505, 0.712751073504, 1.0, 1.0}, {
1.0, 1.0, 0.312409857855, 0.404956679395, 0.415901454513, 0.358208161624, 1.0, 1.0}};
 double weights_err_bin23[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0158590619378, 0.010917431133, 0.0107508606115, 0.0156671567161, 0.0, 0.0}, {
0.0, 0.0, 0.0329154129528, 0.0201374227565, 0.0198850194373, 0.0326860346264, 0.0, 0.0}, {
0.0, 0.0, 0.0604122158815, 0.032410198384, 0.03327792817, 0.0597614370865, 0.0, 0.0}, {
0.0, 0.0, 0.0675737436944, 0.0338255162702, 0.0342795700502, 0.0723574659967, 0.0, 0.0}};

 double weights_bin24[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.27098927089, 1.27335153589, 1.2571955517, 1.20070778899, 1.0, 1.0}, {
1.0, 1.0, 0.706596337826, 0.785333305438, 0.78218567696, 0.712501042599, 1.0, 1.0}, {
1.0, 1.0, 0.737361241189, 0.733834027312, 0.68864720297, 0.693056273907, 1.0, 1.0}, {
1.0, 1.0, 0.334718271409, 0.413617252706, 0.422163063712, 0.348918440499, 1.0, 1.0}};
 double weights_err_bin24[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0181339521961, 0.0121536624958, 0.0120763155064, 0.0176254505669, 0.0, 0.0}, {
0.0, 0.0, 0.0371647210972, 0.0224280880431, 0.02238309694, 0.0373196822707, 0.0, 0.0}, {
0.0, 0.0, 0.0675737454214, 0.0362261919421, 0.0350931349157, 0.0655121860281, 0.0, 0.0}, {
0.0, 0.0, 0.0762492918852, 0.0367359318643, 0.0371134947551, 0.0778499009969, 0.0, 0.0}};

 double weights_bin25[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.18751888043, 1.29503858364, 1.29871349449, 1.2246597962, 1.0, 1.0}, {
1.0, 1.0, 0.726634837374, 0.762614170497, 0.749116574559, 0.788506714616, 1.0, 1.0}, {
1.0, 1.0, 0.694690397232, 0.773580183223, 0.682502933633, 0.694690397232, 1.0, 1.0}, {
1.0, 1.0, 0.35809392892, 0.398375568756, 0.400197408247, 0.313332187805, 1.0, 1.0}};
 double weights_err_bin25[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0201088877226, 0.0137347680066, 0.0137542416495, 0.0204209299136, 0.0, 0.0}, {
0.0, 0.0, 0.0427178852274, 0.0245071581513, 0.024289312496, 0.0444994181968, 0.0, 0.0}, {
0.0, 0.0, 0.0739221284486, 0.0410997492601, 0.0386045744152, 0.0739221284486, 0.0, 0.0}, {
0.0, 0.0, 0.086710998106, 0.0389544719244, 0.0390434430341, 0.0811107117986, 0.0, 0.0}};

 double weights_bin26[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.20373213103, 1.28826484525, 1.28399805844, 1.23404435593, 1.0, 1.0}, {
1.0, 1.0, 0.698602138514, 0.796431711078, 0.754914345816, 0.673872859274, 1.0, 1.0}, {
1.0, 1.0, 0.675524487344, 0.783710699003, 0.730241158136, 0.675524487344, 1.0, 1.0}, {
1.0, 1.0, 0.346794376136, 0.430496439694, 0.405494831581, 0.331974103652, 1.0, 1.0}};
 double weights_err_bin26[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0233635249415, 0.0154065998839, 0.0153810653713, 0.0236558631084, 0.0, 0.0}, {
0.0, 0.0, 0.0478913431735, 0.0278315667508, 0.0270964418312, 0.0470360728573, 0.0, 0.0}, {
0.0, 0.0, 0.0824786266723, 0.0457389656476, 0.0441511099305, 0.0824786266723, 0.0, 0.0}, {
0.0, 0.0, 0.0944911329061, 0.0438951596752, 0.0426014647867, 0.0924500476815, 0.0, 0.0}};

 double weights_bin27[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.32068046765, 1.25249274882, 1.30526954251, 1.20309228767, 1.0, 1.0}, {
1.0, 1.0, 0.62070966692, 0.824615378237, 0.78927471917, 0.657635737757, 1.0, 1.0}, {
1.0, 1.0, 0.670826002341, 0.735802716447, 0.728778346838, 0.695219675153, 1.0, 1.0}, {
1.0, 1.0, 0.298280876267, 0.438168559632, 0.392809495488, 0.256717147606, 1.0, 1.0}};
 double weights_err_bin27[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0284210599049, 0.0171172301057, 0.0174741441827, 0.027126322574, 0.0, 0.0}, {
0.0, 0.0, 0.051708790306, 0.0315440498207, 0.0308607056926, 0.0532246502409, 0.0, 0.0}, {
0.0, 0.0, 0.0936585929215, 0.0490880918114, 0.0488532194265, 0.0953462704796, 0.0, 0.0}, {
0.0, 0.0, 0.0975900185843, 0.0480569560588, 0.0455015997324, 0.0905357582116, 0.0, 0.0}};

 double weights_bin28[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.23486763686, 1.31654954273, 1.3093214276, 1.27854462723, 1.0, 1.0}, {
1.0, 1.0, 0.775880821978, 0.768889860137, 0.773375798644, 0.69766702944, 1.0, 1.0}, {
1.0, 1.0, 0.515357644239, 0.66910952033, 0.74144568469, 0.69542236331, 1.0, 1.0}, {
1.0, 1.0, 0.287907737388, 0.423791114528, 0.420436567447, 0.467171045573, 1.0, 1.0}};
 double weights_err_bin28[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0322406169301, 0.0199645300276, 0.0199102374523, 0.0328035372157, 0.0, 0.0}, {
0.0, 0.0, 0.0669967583201, 0.0341226244607, 0.0342216574144, 0.06353360337, 0.0, 0.0}, {
0.0, 0.0, 0.0945136610297, 0.0520988271743, 0.0548385238283, 0.109783666653, 0.0, 0.0}, {
0.0, 0.0, 0.107852527413, 0.0516123547297, 0.0514080063813, 0.137376072229, 0.0, 0.0}};

 double weights_bin29[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.28791994476, 1.39471092814, 1.29852396758, 1.25177933406, 1.0, 1.0}, {
1.0, 1.0, 0.745539158442, 0.801578669053, 0.810140256974, 0.611404498137, 1.0, 1.0}, {
1.0, 1.0, 0.554504588674, 0.675107938672, 0.758094628807, 0.736580722268, 1.0, 1.0}, {
1.0, 1.0, 0.391263711939, 0.422609148665, 0.42144813452, 0.354000501279, 1.0, 1.0}};
 double weights_err_bin29[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0362262079326, 0.0216523771629, 0.0208924100721, 0.0357143162786, 0.0, 0.0}, {
0.0, 0.0, 0.0714285867108, 0.0363456482427, 0.0365392346364, 0.0646846396108, 0.0, 0.0}, {
0.0, 0.0, 0.105999798299, 0.0543928493906, 0.0576390607087, 0.122169453291, 0.0, 0.0}, {
0.0, 0.0, 0.132453243948, 0.0524864089056, 0.0524142626622, 0.125988166334, 0.0, 0.0}};

 double weights_bin30[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.38569018125, 1.31876454887, 1.35637345727, 1.26287371047, 1.0, 1.0}, {
1.0, 1.0, 0.696393826226, 0.843633884252, 0.748518299263, 0.621936624679, 1.0, 1.0}, {
1.0, 1.0, 0.663583877232, 0.707373762922, 0.805620118884, 0.651063426718, 1.0, 1.0}, {
1.0, 1.0, 0.34305540267, 0.429057798975, 0.447986819518, 0.329333186563, 1.0, 1.0}};
 double weights_err_bin30[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0459800669986, 0.024551464539, 0.0248990854967, 0.0438951469976, 0.0, 0.0}, {
0.0, 0.0, 0.0839181456984, 0.0429141268406, 0.0404226246605, 0.0793051690146, 0.0, 0.0}, {
0.0, 0.0, 0.138675055028, 0.0637576842957, 0.0680413939155, 0.137360569978, 0.0, 0.0}, {
0.0, 0.0, 0.144337573035, 0.0593390968662, 0.0606339199176, 0.141421362093, 0.0, 0.0}};

 double weights_bin31[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.23610766073, 1.33788774053, 1.38891564005, 1.24356157627, 1.0, 1.0}, {
1.0, 1.0, 0.651738015894, 0.807067356091, 0.781787250967, 0.587763732125, 1.0, 1.0}, {
1.0, 1.0, 0.62121862173, 0.737307516119, 0.771291630088, 0.744097030423, 1.0, 1.0}, {
1.0, 1.0, 0.37292855612, 0.422700621051, 0.4214235799, 0.349620521363, 1.0, 1.0}};
 double weights_err_bin31[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.031675805401, 0.0170699166733, 0.0173876228137, 0.0317707534445, 0.0, 0.0}, {
0.0, 0.0, 0.0583585143147, 0.0285090000904, 0.0280613792446, 0.0554241852568, 0.0, 0.0}, {
0.0, 0.0, 0.0958053629783, 0.0438185401521, 0.0448147706101, 0.104849256735, 0.0, 0.0}, {
0.0, 0.0, 0.105429913971, 0.0389808563779, 0.0389220974118, 0.10208340862, 0.0, 0.0}};

 double weights_bin32[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.29770779025, 1.35311911055, 1.40464516939, 1.27434480221, 1.0, 1.0}, {
1.0, 1.0, 0.63801716553, 0.839663324605, 0.807926589873, 0.634711377108, 1.0, 1.0}, {
1.0, 1.0, 0.623650020654, 0.751099828882, 0.725007030856, 0.715663958128, 1.0, 1.0}, {
1.0, 1.0, 0.379908611021, 0.447749375608, 0.418862319117, 0.351127655641, 1.0, 1.0}};
 double weights_err_bin32[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0408258276958, 0.0199701182599, 0.0203467153405, 0.040456677465, 0.0, 0.0}, {
0.0, 0.0, 0.0721693485748, 0.0335024774613, 0.0328632796186, 0.0719821414702, 0.0, 0.0}, {
0.0, 0.0, 0.119523202041, 0.0507028167638, 0.0498143665878, 0.128037198358, 0.0, 0.0}, {
0.0, 0.0, 0.128037198358, 0.0450386401471, 0.0435616201169, 0.123091822197, 0.0, 0.0}};

 double weights_bin33[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.33568562856, 1.39407162739, 1.34557012942, 1.27661353688, 1.0, 1.0}, {
1.0, 1.0, 0.739788246621, 0.795236791084, 0.841887789742, 0.774683918631, 1.0, 1.0}, {
1.0, 1.0, 0.693728577108, 0.703739843032, 0.740214164165, 0.552413496586, 1.0, 1.0}, {
1.0, 1.0, 0.324638657533, 0.441456911528, 0.424779650426, 0.413914288355, 1.0, 1.0}};
 double weights_err_bin33[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0507074988223, 0.0227043918244, 0.0223063722299, 0.0495737713556, 0.0, 0.0}, {
0.0, 0.0, 0.0949187302824, 0.0359056561454, 0.0369433732844, 0.0971314501774, 0.0, 0.0}, {
0.0, 0.0, 0.152500394435, 0.0538433568238, 0.0552208007658, 0.136084807631, 0.0, 0.0}, {
0.0, 0.0, 0.140029994953, 0.0480627212254, 0.0471463526865, 0.15811564233, 0.0, 0.0}};

 double weights_bin34[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.36487136401, 1.4315917513, 1.41038298461, 1.32136948786, 1.0, 1.0}, {
1.0, 1.0, 0.730882569008, 0.796072832399, 0.791369300154, 0.867923050697, 1.0, 1.0}, {
1.0, 1.0, 0.730108077483, 0.736878674451, 0.625490037616, 0.469355192668, 1.0, 1.0}, {
1.0, 1.0, 0.274279839367, 0.414427364297, 0.428408046466, 0.340771921638, 1.0, 1.0}};
 double weights_err_bin34[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0641502822238, 0.0250319553368, 0.0248458512143, 0.0631196967433, 0.0, 0.0}, {
0.0, 0.0, 0.114708008041, 0.0385475871227, 0.0384335432453, 0.125000129488, 0.0, 0.0}, {
0.0, 0.0, 0.192450173835, 0.0585208501834, 0.053916686806, 0.154303454859, 0.0, 0.0}, {
0.0, 0.0, 0.156173865529, 0.0482807902063, 0.0490883990996, 0.174077748937, 0.0, 0.0}};

 double weights_bin35[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.40491667531, 1.39517741631, 1.34304689338, 1.15275214384, 1.0, 1.0}, {
1.0, 1.0, 0.65973729513, 0.813202054636, 0.782515184649, 0.641411259154, 1.0, 1.0}, {
1.0, 1.0, 0.38997005177, 0.657236920721, 0.666902169555, 0.5999539258, 1.0, 1.0}, {
1.0, 1.0, 0.531087795871, 0.435991907635, 0.429627062268, 0.318652677523, 1.0, 1.0}};
 double weights_err_bin35[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.102062228099, 0.0319606351237, 0.0313578683425, 0.0924502043528, 0.0, 0.0}, {
0.0, 0.0, 0.169030944828, 0.0495076976845, 0.048564619878, 0.16666676188, 0.0, 0.0}, {
0.0, 0.0, 0.223606868718, 0.0695050329995, 0.0700142308547, 0.277350155329, 0.0, 0.0}, {
0.0, 0.0, 0.33333338094, 0.0608583226976, 0.06041247201, 0.258198951207, 0.0, 0.0}};

 double weights_bin36[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.18937270641, 1.40307972816, 1.46773778015, 1.02418205274, 1.0, 1.0}, {
1.0, 1.0, 0.6515606623, 0.838714141688, 0.852097877992, 0.930800946143, 1.0, 1.0}, {
1.0, 1.0, 0.41169005068, 0.833220855973, 0.739600535077, 0.30876753801, 1.0, 1.0}, {
1.0, 1.0, 0.22023294903, 0.414289671681, 0.41714684183, 0.330349423544, 1.0, 1.0}};
 double weights_err_bin36[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.179605402474, 0.0469327098471, 0.0480019119122, 0.166666774912, 0.0, 0.0}, {
0.0, 0.0, 0.316227823067, 0.0723577098589, 0.0729327431128, 0.377964520741, 0.0, 0.0}, {
0.0, 0.0, 0.408248334655, 0.112508950443, 0.105999958198, 0.353553441621, 0.0, 0.0}, {
0.0, 0.0, 0.408248334655, 0.0827608068489, 0.0830456970946, 0.500000036082, 0.0, 0.0}};

 double weights_bin37[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.49647763894, 1.4489752802, 1.49141388673, 1.08834737378, 1.0, 1.0}, {
1.0, 1.0, 0.67581029696, 0.877066417355, 0.713434623072, 0.289632984411, 1.0, 1.0}, {
1.0, 1.0, 0.771056934978, 0.684282445687, 0.629098377487, 0.385528467489, 1.0, 1.0}, {
1.0, 1.0, 0.0810197559016, 0.454112379816, 0.413293289495, 0.243059267705, 1.0, 1.0}};
 double weights_err_bin37[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.354191471458, 0.0672059454501, 0.0680859667761, 0.302259308149, 0.0, 0.0}, {
0.0, 0.0, 0.577741232549, 0.0981117239683, 0.088962267398, 0.378561410224, 0.0, 0.0}, {
0.0, 0.0, 1.00022577374, 0.13414715093, 0.12876579791, 0.707426037444, 0.0, 0.0}, {
0.0, 0.0, 0.408801009197, 0.113125052335, 0.108108989032, 0.707426037444, 0.0, 0.0}};

 double weights_bin38[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.3936002093, 1.49761194175, 1.50985161903, 1.52366956217, 1.0, 1.0}, {
1.0, 1.0, 0.577565573579, 0.792256246149, 0.827409768985, 0.543591128075, 1.0, 1.0}, {
1.0, 1.0, 0.442106269051, 0.670799059981, 0.705902199669, 0.309474388335, 1.0, 1.0}, {
1.0, 1.0, 0.264631051206, 0.420367122765, 0.422484841268, 0.312745787789, 1.0, 1.0}};
 double weights_err_bin38[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.114424129268, 0.0330268427097, 0.0330507154952, 0.119294143783, 0.0, 0.0}, {
0.0, 0.0, 0.179297962642, 0.035932581847, 0.036174656197, 0.174096307007, 0.0, 0.0}, {
0.0, 0.0, 0.268935551454, 0.0409238339419, 0.0414176399092, 0.225605317773, 0.0, 0.0}, {
0.0, 0.0, 0.278963862051, 0.0374033760554, 0.0374371172106, 0.302996452647, 0.0, 0.0}};

 double weights_bin39[nptbins-1][nrapbins-1] = {{1.0, 1.0, 0.621227214915, 1.56010057951, 1.59600707476, 0.931840822372, 1.0, 1.0}, {
1.0, 1.0, 0.261011214196, 0.818737689339, 0.816147918067, 0.391516821294, 1.0, 1.0}, {
1.0, 1.0, 0.747114668158, 0.657506279315, 0.694034405943, 0.373557334079, 1.0, 1.0}, {
1.0, 1.0, 0.344822154534, 0.412450878259, 0.419099737124, 0.114940718178, 1.0, 1.0}};
 double weights_err_bin39[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.22041775172, 0.0345616270663, 0.0346379805603, 0.269060419019, 0.0, 0.0}, {
0.0, 0.0, 0.409428387292, 0.0376596177746, 0.0376405756665, 0.500964008342, 0.0, 0.0}, {
0.0, 0.0, 1.0004823525, 0.0429200493539, 0.043484061218, 0.707788766267, 0.0, 0.0}, {
0.0, 0.0, 1.0004823525, 0.0386491705455, 0.0387592978167, 0.578185325815, 0.0, 0.0}};

 double weights_bin40[nptbins-1][nrapbins-1] = {{1.0, 1.0, 1.0, 1.78742800945, 1.78358958137, 1.0, 1.0, 1.0}, {
1.0, 1.0, 1.0, 0.842757756564, 0.83791225839, 1.0, 1.0, 1.0}, {
1.0, 1.0, 1.0, 0.734888552843, 0.695332844501, 1.0, 1.0, 1.0}, {
1.0, 1.0, 1.0, 0.403149718866, 0.404798930234, 1.0, 1.0, 1.0}};
 double weights_err_bin40[nptbins-1][nrapbins-1] = {{0.0, 0.0, 0.0, 0.0232552581391, 0.0232497372221, 0.0, 0.0, 0.0}, {
0.0, 0.0, 0.0, 0.0252076503658, 0.025183212684, 0.0, 0.0, 0.0}, {
0.0, 0.0, 0.0, 0.0287677927311, 0.0283851109648, 0.0, 0.0, 0.0}, {
0.0, 0.0, 0.0, 0.0249990897445, 0.0250157513955, 0.0, 0.0, 0.0}};




  if (isWeight) { 
    if (mass > 15 && mass < 20) {
      return weights_bin01[index_pt][index_rap];
    } else if (mass > 20 && mass < 25) {
      return weights_bin02[index_pt][index_rap];
    } else if (mass > 25 && mass < 30) {
      return weights_bin03[index_pt][index_rap];
    } else if (mass > 30 && mass < 35) {
      return weights_bin04[index_pt][index_rap];
    } else if (mass > 35 && mass < 40) {
      return weights_bin05[index_pt][index_rap];
    } else if (mass > 40 && mass < 45) {
      return weights_bin06[index_pt][index_rap];
    } else if (mass > 45 && mass < 50) {
      return weights_bin07[index_pt][index_rap];
    } else if (mass > 50 && mass < 55) {
      return weights_bin08[index_pt][index_rap];
    } else if (mass > 55 && mass < 60) {
      return weights_bin09[index_pt][index_rap];
    } else if (mass > 60 && mass < 64) {
      return weights_bin10[index_pt][index_rap];
    } else if (mass > 64 && mass < 68) {
      return weights_bin11[index_pt][index_rap];
    } else if (mass > 68 && mass < 72) {
      return weights_bin12[index_pt][index_rap];
    } else if (mass > 72 && mass < 76) {
      return weights_bin13[index_pt][index_rap];
    } else if (mass > 76 && mass < 81) {
      return weights_bin14[index_pt][index_rap];
    } else if (mass > 81 && mass < 86) {
      return weights_bin15[index_pt][index_rap];
    } else if (mass > 86 && mass < 91) {
      return weights_bin16[index_pt][index_rap];
    } else if (mass > 91 && mass < 96) {
      return weights_bin17[index_pt][index_rap];
    } else if (mass > 96 && mass < 101) {
      return weights_bin18[index_pt][index_rap];
    } else if (mass > 101 && mass < 106) {
      return weights_bin19[index_pt][index_rap];
    } else if (mass > 106 && mass < 110) {
      return weights_bin20[index_pt][index_rap];
    } else if (mass > 110 && mass < 115) {
      return weights_bin21[index_pt][index_rap];
    } else if (mass > 115 && mass < 120) {
      return weights_bin22[index_pt][index_rap];
    } else if (mass > 120 && mass < 126) {
      return weights_bin23[index_pt][index_rap];
    } else if (mass > 126 && mass < 133) {
      return weights_bin24[index_pt][index_rap];
    } else if (mass > 133 && mass < 141) {
      return weights_bin25[index_pt][index_rap];
    } else if (mass > 141 && mass < 150) {
      return weights_bin26[index_pt][index_rap];
    } else if (mass > 150 && mass < 160) {
      return weights_bin27[index_pt][index_rap];
    } else if (mass > 160 && mass < 171) {
      return weights_bin28[index_pt][index_rap];
    } else if (mass > 171 && mass < 185) {
      return weights_bin29[index_pt][index_rap];
    } else if (mass > 185 && mass < 200) {
      return weights_bin30[index_pt][index_rap];
    } else if (mass > 200 && mass < 220) {
      return weights_bin31[index_pt][index_rap];
    } else if (mass > 220 && mass < 243) {
      return weights_bin32[index_pt][index_rap];
    } else if (mass > 243 && mass < 273) {
      return weights_bin33[index_pt][index_rap];
    } else if (mass > 273 && mass < 320) {
      return weights_bin34[index_pt][index_rap];
    } else if (mass > 320 && mass < 380) {
      return weights_bin35[index_pt][index_rap];
    } else if (mass > 380 && mass < 440) {
      return weights_bin36[index_pt][index_rap];
    } else if (mass > 440 && mass < 510) {
      return weights_bin37[index_pt][index_rap];
    } else if (mass > 510 && mass < 600) {
      return weights_bin38[index_pt][index_rap];
    } else if (mass > 600 && mass < 1000) {
      return weights_bin39[index_pt][index_rap];
    } else if (mass > 1000 && mass < 1500) {
      return weights_bin40[index_pt][index_rap];
  };
  } else { 
    if (mass > 15 && mass < 20) {
      return weights_err_bin01[index_pt][index_rap];
   } else if (mass > 20 && mass < 25) {
      return weights_err_bin02[index_pt][index_rap];
   } else if (mass > 25 && mass < 30) {
      return weights_err_bin03[index_pt][index_rap];
   } else if (mass > 30 && mass < 35) {
      return weights_err_bin04[index_pt][index_rap];
   } else if (mass > 35 && mass < 40) {
      return weights_err_bin05[index_pt][index_rap];
   } else if (mass > 40 && mass < 45) {
      return weights_err_bin06[index_pt][index_rap];
   } else if (mass > 45 && mass < 50) {
      return weights_err_bin07[index_pt][index_rap];
   } else if (mass > 50 && mass < 55) {
      return weights_err_bin08[index_pt][index_rap];
   } else if (mass > 55 && mass < 60) {
      return weights_err_bin09[index_pt][index_rap];
   } else if (mass > 60 && mass < 64) {
      return weights_err_bin10[index_pt][index_rap];
   } else if (mass > 64 && mass < 68) {
      return weights_err_bin11[index_pt][index_rap];
   } else if (mass > 68 && mass < 72) {
      return weights_err_bin12[index_pt][index_rap];
   } else if (mass > 72 && mass < 76) {
      return weights_err_bin13[index_pt][index_rap];
   } else if (mass > 76 && mass < 81) {
      return weights_err_bin14[index_pt][index_rap];
   } else if (mass > 81 && mass < 86) {
      return weights_err_bin15[index_pt][index_rap];
   } else if (mass > 86 && mass < 91) {
      return weights_err_bin16[index_pt][index_rap];
   } else if (mass > 91 && mass < 96) {
      return weights_err_bin17[index_pt][index_rap];
   } else if (mass > 96 && mass < 101) {
      return weights_err_bin18[index_pt][index_rap];
   } else if (mass > 101 && mass < 106) {
      return weights_err_bin19[index_pt][index_rap];
   } else if (mass > 106 && mass < 110) {
      return weights_err_bin20[index_pt][index_rap];
   } else if (mass > 110 && mass < 115) {
      return weights_err_bin21[index_pt][index_rap];
   } else if (mass > 115 && mass < 120) {
      return weights_err_bin22[index_pt][index_rap];
   } else if (mass > 120 && mass < 126) {
      return weights_err_bin23[index_pt][index_rap];
   } else if (mass > 126 && mass < 133) {
      return weights_err_bin24[index_pt][index_rap];
   } else if (mass > 133 && mass < 141) {
      return weights_err_bin25[index_pt][index_rap];
   } else if (mass > 141 && mass < 150) {
      return weights_err_bin26[index_pt][index_rap];
   } else if (mass > 150 && mass < 160) {
      return weights_err_bin27[index_pt][index_rap];
   } else if (mass > 160 && mass < 171) {
      return weights_err_bin28[index_pt][index_rap];
   } else if (mass > 171 && mass < 185) {
      return weights_err_bin29[index_pt][index_rap];
   } else if (mass > 185 && mass < 200) {
      return weights_err_bin30[index_pt][index_rap];
   } else if (mass > 200 && mass < 220) {
      return weights_err_bin31[index_pt][index_rap];
   } else if (mass > 220 && mass < 243) {
      return weights_err_bin32[index_pt][index_rap];
   } else if (mass > 243 && mass < 273) {
      return weights_err_bin33[index_pt][index_rap];
   } else if (mass > 273 && mass < 320) {
      return weights_err_bin34[index_pt][index_rap];
   } else if (mass > 320 && mass < 380) {
      return weights_err_bin35[index_pt][index_rap];
   } else if (mass > 380 && mass < 440) {
      return weights_err_bin36[index_pt][index_rap];
   } else if (mass > 440 && mass < 510) {
      return weights_err_bin37[index_pt][index_rap];
   } else if (mass > 510 && mass < 600) {
      return weights_err_bin38[index_pt][index_rap];
   } else if (mass > 600 && mass < 1000) {
      return weights_err_bin39[index_pt][index_rap];
   } else if (mass > 1000 && mass < 1500) {
      return weights_err_bin40[index_pt][index_rap];
    };
 };

}
Ejemplo n.º 2
0
/*! \fn Set_Boundary_Mapping(int ig, int jg, int kg, int flags[], Real *a)
 *  \brief Given the i,j,k index of a ghost cell, return the index of the
    corresponding real cell, and reverse the momentum if necessary. */
int Grid3D::Set_Boundary_Mapping(int ig, int jg, int kg, int flags[], Real *a)
{
  // index of real cell we're mapping to
  int ir, jr, kr, idx;
  ir = jr = kr = idx = 0;

  /* 1D */
  if (H.nx>1) {

    // set index on -x face
    if (ig < H.n_ghost) {
      ir = Find_Index(ig, H.nx, flags[0], 0, &a[0]);
    }
    // set index on +x face
    else if (ig >= H.nx-H.n_ghost) {
      ir = Find_Index(ig, H.nx, flags[1], 1, &a[0]);
    }
    // set i index for multi-D problems
    else {
      ir = ig;
    }

    // if custom x boundaries are needed, set index to -1 and return
    if (ir < 0) {
      return idx = -1;
    }

    // otherwise add i index to ghost cell mapping
    idx += ir;

  }

  /* 2D */
  if (H.ny > 1) {

    // set index on -y face
    if (jg < H.n_ghost) {
      jr = Find_Index(jg, H.ny, flags[2], 0, &a[1]);
    }
    // set index on +y face
    else if (jg >= H.ny-H.n_ghost) {
      jr = Find_Index(jg, H.ny, flags[3], 1, &a[1]);
    }
    // set j index for multi-D problems
    else {
      jr = jg;
    }

    // if custom y boundaries are needed, set index to -1 and return
    if (jr < 0) {
      return idx = -1;
    }
    
    // otherwise add j index to ghost cell mapping
    idx += H.nx*jr;

  }

  /* 3D */
  if (H.nz > 1) {

    // set index on -z face
    if (kg < H.n_ghost) {
      kr = Find_Index(kg, H.nz, flags[4], 0, &a[2]);
    }
    // set index on +z face
    else if (kg >= H.nz-H.n_ghost) {
      kr = Find_Index(kg, H.nz, flags[5], 1, &a[2]);
    }
    // set k index for multi-D problems
    else {
      kr = kg;
    }

    // if custom z boundaries are needed, set index to -1 and return
    if (kr < 0) {
      return idx = -1;
    }

    // otherwise add k index to ghost cell mapping
    idx += H.nx*H.ny*kr;

  }

  return idx;
}