#include "Alignment/MuonAlignmentAlgorithms/interface/ReadPGInfo.h"

/*
static char mapping[][2][20] = {
  {"351010100300001", "351010100300001"},
  {"351010100300002", "351010100300002"},
  {"351010100300003", "351010100400003"},
  {"351010100300004", "351010100400004"},
  {"351010100300005", "351010100300005"},
  {"351010100300006", "351010100400006"},
  {"351010100300024", "351010100300024"},
  {"351010100300027", "351010100400027"},
  {"351010100300039", "351010100300039"},
  {"351010100300040", "351010100400040"},
  {"351010100300041", "351010100400041"},
  {"351010100300042", "351010100400042"},
  {"351010100300043", "351010100400043"},
  {"351010100300045", "351010100300045"},
  {"351010100300054", "351010100400054"},
  {"351010100300055", "351010100400055"},
  {"351010100300056", "351010100300056"},
  {"351010100300057", "351010100300057"},
  {"351010100300058", "351010100300058"},
  {"351010100300059", "351010100300059"},
  {"351010100300060", "351010100400060"},
  {"351010100300061", "351010100300061"},
  {"351010100300062", "351010100300062"},
  {"351010100300063", "351010100400063"},
  {"351010100300064", "351010100400064"},
  {"351010100300065", "351010100300065"},
  {"351010100300066", "351010100400066"},
  {"351010100300068", "351010100300068"},
  {"351010100300073", "351010100300073"},
  {"351010100300074", "351010100400074"},
  {"351010100100007", "351010100100007"},
  {"351010100100008", "351010100200008"},
  {"351010100100009", "351010100100009"},
  {"351010100100010", "351010100200010"},
  {"351010100100011", "351010100100011"},
  {"351010100100012", "351010100100012"},
  {"351010100100013", "351010100200013"},
  {"351010100100014", "351010100100014"},
  {"351010100100015", "351010100200015"},
  {"351010100100016", "351010100100016"},
  {"351010100100017", "351010100100017"},
  {"351010100100018", "351010100100018"},
  {"351010100100019", "351010100200019"},
  {"351010100100020", "351010100200020"},
  {"351010100100021", "351010100100021"},
  {"351010100100022", "351010100200022"},
  {"351010100100023", "351010100100023"},
  {"351010100100025", "351010100200025"},
  {"351010100100028", "351010100200028"},
  {"351010100100035", "351010100100035"},
  {"351010100100037", "351010100200037"},
  {"351010100100038", "351010100100038"},
  {"351010100100044", "351010100200044"},
  {"351010100100053", "351010100200053"},
  {"351010100100067", "351010100100067"},
  {"351010100100069", "351010100200069"},
  {"351010100100070", "351010100200070"},
  {"351010100100072", "351010100100072"},
  {"351010101500051", "351010101300051"},
  {"351010101500052", "351010101500052"},
  {"351010103500029", "351010103500029"},
  {"351010103500030", "351010103500030"},
  {"351010103500031", "351010103600031"},
  {"351010103500032", "351010103600032"},
  {"351010103500033", "351010103600033"},
  {"351010103500046", "351010103600046"},
  {"351010103500047", "351010103500047"},
  {"351010103500048", "351010103500048"},
  {"351010103500049", "351010103600049"},
  {"351010103500050", "351010103500050"},
  {"351010103500075", "351010103600075"},
  {"351030101700054", "351030101700054"},
  {"351030101900053", "351030101900053"},
  {"351030100700009", "351030100800009"},
  {"351030100700010", "351030100700010"},
  {"351030100700011", "351030100700011"},
  {"351030100700013", "351030100700013"},
  {"351030100700016", "351030100700016"},
  {"351030100700028", "351030100700028"},
  {"351030100700042", "351030100700042"},
  {"351030100700043", "351030100700043"},
  {"351030100700060", "351030100800060"},
  {"351030100700065", "351030100700065"},
  {"351030100700067", "351030100700067"},
  {"351030100700068", "351030100700068"},
  {"351030100700069", "351030100700069"},
  {"351030100700072", "351030100800072"},
  {"351030100700073", "351030100800073"},
  {"351030100700074", "351030100800074"},
  {"351030100800012", "351030100800012"},
  {"351030100800014", "351030100700014"},
  {"351030100800015", "351030100800015"},
  {"351030100800027", "351030100800027"},
  {"351030100800041", "351030100800041"},
  {"351030100800044", "351030100800044"},
  {"351030100800051", "351030100800051"},
  {"351030100800059", "351030100800059"},
  {"351030100800062", "351030100800062"},
  {"351030100800066", "351030100800066"},
  {"351030100800070", "351030100800070"},
  {"351030100800071", "351030100800071"},
  {"351030100500001", "351030100500001"},
  {"351030100500002", "351030100500002"},
  {"351030100500004", "351030100500004"},
  {"351030100500005", "351030100500005"},
  {"351030100500006", "351030100600006"},
  {"351030100500007", "351030100500007"},
  {"351030100500017", "351030100500017"},
  {"351030100500019", "351030100500019"},
  {"351030100500021", "351030100500021"},
  {"351030100500023", "351030100500023"},
  {"351030100500025", "351030100500025"},
  {"351030100500039", "351030100500039"},
  {"351030100500040", "351030100500040"},
  {"351030100500063", "351030100600063"},
  {"351030100500064", "351030100600064"},
  {"351030100600003", "351030100600003"},
  {"351030100600008", "351030100600008"},
  {"351030100600018", "351030100600018"},
  {"351030100600020", "351030100600020"},
  {"351030100600022", "351030100600022"},
  {"351030100600024", "351030100600024"},
  {"351030100600026", "351030100600026"},
  {"351030100600035", "351030100600035"},
  {"351030100600036", "351030100600036"},
  {"351030100600049", "351030100600049"},
  {"351030103700033", "351030103700033"},
  {"351030103800032", "351030103800032"},
  {"351030103800034", "351030103800034"},
  {"351030103800057", "351030103800057"},
  {"351030103900058", "351030103700058"},
  {"351030103700056", "351030103900056"},
  {"351030103900031", "351030103900031"},
  {"351030104000029", "351030104000029"},
  {"351030104000030", "351030104000030"},
  {"351030104000055", "351030104000055"},
  {"35102010xx00008", "351020101000008"},
  {"35102010xx00009", "351020101200009"},
  {"35102010yy00001", "351020101200001"},
  {"35102010yy00002", "351020100900002"},
  {"35102010yy00003", "351020101200003"},
  {"35102010yy00004", "351020101200004"},
  {"35102010yy00005", "351020101100005"},
  {"35102010yy00006", "351020101000006"},
  {"35102010yy00007", "351020101100007"},
  {"35102010yy00010", "351020100900010"},
  {"35102010yy00011", "351020101100011"},
  {"35102010yy00012", "351020101000012"},
  {"35102010yy00013", "351020101100013"},
  {"35102010yy00014", "351020100900014"},
  {"35102010yy00015", "351020101200015"},
  {"35102010yy00017", "351020101100017"},
  {"35102010yy00018", "351020101000018"},
  {"35102010yy00020", "351020101000020"},
  {"35102010yy00021", "351020101200021"},
  {"35102010yy00022", "351020100900022"},
  {"35102010yy00023", "351020101200023"},
  {"35102010yy00024", "351020100900024"},
  {"35102010yy00025", "351020101100025"},
  {"35102010yy00026", "351020101000026"},
  {"35102010yy00027", "351020101100027"},
  {"35102010yy00028", "351020100900028"},
  {"35102010yy00029", "351020101200029"},
  {"35102010yy00030", "351020100900030"},
  {"35102010yy00031", "351020101100031"},
  {"35102010yy00032", "351020101000032"},
  {"35102010yy00033", "351020101200033"},
  {"35102010yy00034", "351020100900034"},
  {"35102010yy00035", "351020101100035"},
  {"35102010yy00036", "351020101000036"},
  {"35102010yy00037", "351020101200037"},
  {"35102010yy00038", "351020100900038"},
  {"35102010yy00039", "351020101200039"},
  {"35102010yy00040", "351020100900040"},
  {"35102010yy00041", "351020101100041"},
  {"35102010yy00042", "351020101000042"},
  {"35102010yy00043", "351020101200043"},
  {"35102010yy00044", "351020101000044"},
  {"35102010yy00045", "351020101100045"},
  {"35102010yy00046", "351020100900046"},
  {"35102010yy00047", "351020101100047"},
  {"35102010yy00048", "351020100900048"},
  {"35102010yy00049", "351020101200049"},
  {"35102010yy00050", "351020101000050"},
  {"35102010yy00051", "351020101100051"},
  {"35102010yy00052", "351020100900052"},
  {"35102010yy00053", "351020101200053"},
  {"35102010yy00055", "351020101200055"},
  {"35102010yy00056", "351020101000056"},
  {"35102010yy00057", "351020101100057"},
  {"35102010yy00058", "351020101000058"},
  {"35102010yy00059", "351020101200059"},
  {"35102010yy00060", "351020100900060"},
  {"351040102500003", "351040102500003"},
  {"351040102500006", "351040102500006"},
  {"351040102500015", "351040102700015"},
  {"351040102500016", "351040102500016"},
  {"351040102500021", "351040102500021"},
  {"351040102500023", "351040102500023"},
  {"351040102500025", "351040102500025"},
  {"351040102600004", "351040102600004"},
  {"351040102600008", "351040102600008"},
  {"351040102600010", "351040102600010"},
  {"351040102600011", "351040102600011"},
  {"351040102600014", "351040102600014"},
  {"351040102600018", "351040102600018"},
  {"351040102600019", "351040102600019"},
  {"351040102600028", "351040102600028"},
  {"351040102600030", "351040102600030"},
  {"351040102700002", "351040102700002"},
  {"351040102700005", "351040102700005"},
  {"351040102700013", "351040102700013"},
  {"351040102700020", "351040102700020"},
  {"351040102700026", "351040102700026"},
  {"351040102700027", "351040102700027"},
  {"351040102700031", "351040102700031"},
  {"351040102800001", "351040102800001"},
  {"351040102800007", "351040102800007"},
  {"351040102800009", "351040102800009"},
  {"351040102800012", "351040102800012"},
  {"351040102800017", "351040102800017"},
  {"351040102800022", "351040102800022"},
  {"351040102800024", "351040102800024"},
  {"351040102800029", "351040102800029"},
  {"351040103100004", "351040103100004"},
  {"351040103100006", "351040103100006"},
  {"351040103100009", "351040103000009"},
  {"351040103100010", "351040103100010"},
  {"351040103200001", "351040103200001"},
  {"351040103200008", "351040103200008"},
  {"351040103300003", "351040103300003"},
  {"351040103300005", "351040103300005"},
  {"351040103400002", "351040103400002"},
  {"351040103400007", "351040103400007"},
  {"351040104100001", "351040104100001"}};

*/

static char chambers[TOTALCHAMBERS][20] = {
    "351010100100009", "351010100100016", "351010100100014", "351010100100017", "351010100100011", "351010100100038",
    "351010100100035", "351010100100023", "351010100100036", "351010100100072", "351010100200013", "351010100200015",
    "351010100200020", "351010100200019", "351010100200010", "351010100200025", "351010100200037", "351010100200028",
    "351010100200034", "351010100200022", "351010100200070", "351010100300002", "351010100300061", "351030100500025",
    "351030100500019", "351030100500017", "351030100500021", "351030100500023", "351030100500038", "351030100500039",
    "351030100500047", "351030100500040", "351030100500001", "351030100600020", "351030100600026", "351030100600006",
    "351030100600024", "351030100600022", "351030100600018", "351030100600036", "351030100600035", "351030100600049",
    "351030100600046", "351030100600048", "351030100700014", "351030100710065", "351030100800009", "351020100900010",
    "351020100900014", "351020100900028", "351020100900030", "351020100900024", "351020100900022", "351020100900034",
    "351020100900040", "351020100900046", "351020101000018", "351020101000016", "351020101000008", "351020101000006",
    "351020101000012", "351020101000004", "351020101000032", "351020101000020", "351020101000026", "351020101000042",
    "351020101200001", "351010101300051", "351030101700054", "351020102100002", "351040102500003", "351040102500006",
    "351040102600004", "351040102600010", "351040102600030", "351040102700002", "351040102700005", "351040102700031",
    "351040102800001", "351040102800007", "351020103000004", "351020103000003", "351020103000009", "351040103100004",
    "351040103200001", "351040103300003", "351040103400002", "351010103600075", "351030103700033", "351030103800034",
    "351030103900031", "351030104000030", "351020104200001", "351020104200002", "351010100100018", "351010100100012",
    "351010100100007", "351010100100021", "351010100100067", "351010100200008", "351010100200053", "351010100200044",
    "351010100200069", "351010100200071", "351010100300005", "351010100300001", "351010100300024", "351010100300039",
    "351010100300045", "351010100300042", "351010100300056", "351010100300058", "351010100300059", "351010100300062",
    "351010100300065", "351010100300068", "351010100300073", "351010100300057", "351010100400003", "351010100400004",
    "351010100400006", "351010100400027", "351010100400026", "351010100400043", "351010100400041", "351010100400040",
    "351010100400055", "351010100400064", "351010100400060", "351010100400063", "351010100400054", "351010100400066",
    "351010100400074", "351030100500007", "351030100500005", "351030100500002", "351030100500004", "351030100500045",
    "351030100600008", "351030100600037", "351030100600003", "351030100600064", "351030100600063", "351030100700016",
    "351030100700028", "351030100700013", "351030100700010", "351030100700011", "351030100700042", "351030100700043",
    "351030100700050", "351030100700052", "351030100700061", "351030100700067", "351030100700068", "351030100700069",
    "351030100700065", "351030100800015", "351030100800027", "351030100800012", "351030100800041", "351030100800044",
    "351030100800051", "351030100800059", "351030100800060", "351030100800062", "351030100800066", "351030100800072",
    "351030100800073", "351030100800071", "351030100800074", "351030100800070", "351020100900002", "351020100900038",
    "351020100900048", "351020100900052", "351020100900060", "351020101000044", "351020101000036", "351020101000050",
    "351020101000056", "351020101000058", "351020101100005", "351020101100007", "351020101100011", "351020101100017",
    "351020101100013", "351020101100025", "351020101100027", "351020101100031", "351020101100035", "351020101100041",
    "351020101100045", "351020101100047", "351020101100051", "351020101100057", "351020101200009", "351020101200003",
    "351020101200021", "351020101200015", "351020101200023", "351020101200019", "351020101200033", "351020101200029",
    "351020101200037", "351020101200039", "351020101200049", "351020101200053", "351020101200055", "351020101200043",
    "351020101200059", "351010101500052", "351030101900053", "351020102300001", "351040102500016", "351040102500023",
    "351040102500021", "351040102500025", "351040102600008", "351040102600011", "351040102600014", "351040102600018",
    "351040102600019", "351040102600028", "351040102700013", "351040102700015", "351040102700026", "351040102700020",
    "351040102700027", "351040102800009", "351040102800012", "351040102800017", "351040102800024", "351040102800022",
    "351040102800029", "351020102900002", "351020102900001", "351020102900005", "351020102900006", "351020103000008",
    "351020103000007", "351040103100006", "351040103100010", "351040103200008", "351040103300005", "351040103300009",
    "351040103400007", "351010103500030", "351010103500029", "351010103500048", "351010103500050", "351010103500047",
    "351010103600031", "351010103600032", "351010103600033", "351010103600049", "351010103600046", "351030103700058",
    "351030103800032", "351030103800057", "351030103900056", "351030104000029", "351030104000055", "351040104100001"};

static int position[TOTALCHAMBERS][3] = {
    {2, 3, 1},   {2, 5, 1},   {2, 9, 1},   {2, 11, 1},  {1, 2, 1},   {1, 6, 1},   {1, 12, 1},  {1, 10, 1},  {1, 8, 1},
    {0, 0, 0},   {2, 6, 1},   {2, 10, 1},  {2, 12, 1},  {1, 5, 1},   {2, 8, 1},   {1, 11, 1},  {1, 3, 1},   {2, 2, 1},
    {2, 4, 1},   {1, 9, 1},   {0, 0, 0},   {0, 0, 0},   {0, 0, 0},   {1, 8, 2},   {2, 5, 2},   {2, 11, 2},  {1, 12, 2},
    {2, 9, 2},   {1, 6, 2},   {1, 2, 2},   {2, 3, 2},   {1, 10, 2},  {0, 0, 0},   {1, 9, 2},   {2, 12, 2},  {0, 0, 0},
    {2, 10, 2},  {2, 8, 2},   {1, 11, 2},  {1, 5, 2},   {1, 3, 2},   {2, 6, 2},   {2, 2, 2},   {2, 4, 2},   {0, 0, 0},
    {0, 0, 0},   {0, 0, 0},   {1, 10, 3},  {2, 5, 3},   {1, 6, 3},   {2, 3, 3},   {2, 11, 3},  {1, 2, 3},   {2, 9, 3},
    {1, 8, 3},   {1, 12, 3},  {2, 2, 3},   {2, 12, 3},  {2, 8, 3},   {1, 5, 3},   {2, 10, 3},  {2, 6, 3},   {2, 4, 3},
    {1, 11, 3},  {1, 9, 3},   {1, 3, 3},   {0, 0, 0},   {1, 4, 1},   {1, 4, 2},   {1, 4, 3},   {2, 5, 4},   {1, 6, 4},
    {2, 6, 4},   {1, 5, 4},   {0, 0, 0},   {2, 3, 4},   {1, 2, 4},   {0, 0, 0},   {2, 2, 4},   {1, 3, 4},   {2, 4, 4},
    {2, 13, 4},  {0, 0, 0},   {1, 8, 4},   {2, 8, 4},   {1, 12, 4},  {2, 12, 4},  {0, 0, 0},   {1, 10, 4},  {2, 10, 4},
    {1, 14, 4},  {2, 14, 4},  {1, 13, 4},  {1, 4, 4},   {2, 7, 1},   {0, 11, 1},  {2, 1, 1},   {0, 3, 1},   {0, 7, 1},
    {0, 2, 1},   {0, 10, 1},  {0, 6, 1},   {1, 1, 1},   {1, 7, 1},   {0, 4, 1},   {-2, 8, 1},  {0, 8, 1},   {0, 12, 1},
    {-1, 11, 1}, {-2, 10, 1}, {-1, 9, 1},  {-2, 2, 1},  {-1, 5, 1},  {-2, 4, 1},  {-2, 6, 1},  {-1, 1, 1},  {-1, 7, 1},
    {-2, 12, 1}, {-1, 6, 1},  {-1, 4, 1},  {-1, 2, 1},  {-1, 8, 1},  {-2, 9, 1},  {-1, 10, 1}, {-2, 11, 1}, {-1, 12, 1},
    {0, 9, 1},   {0, 5, 1},   {-2, 7, 1},  {-2, 5, 1},  {-2, 3, 1},  {0, 1, 1},   {-2, 1, 1},  {0, 3, 2},   {0, 7, 2},
    {2, 7, 2},   {2, 1, 2},   {0, 11, 2},  {0, 2, 2},   {0, 10, 2},  {0, 6, 2},   {1, 7, 2},   {1, 1, 2},   {0, 4, 2},
    {-1, 11, 2}, {-2, 10, 2}, {-1, 5, 2},  {-2, 8, 2},  {0, 8, 2},   {0, 12, 2},  {-1, 9, 2},  {-2, 12, 2}, {-2, 2, 2},
    {-2, 6, 2},  {-1, 1, 2},  {-1, 7, 2},  {-2, 4, 2},  {-1, 10, 2}, {-2, 11, 2}, {-1, 2, 2},  {0, 5, 2},   {0, 9, 2},
    {-1, 8, 2},  {-1, 4, 2},  {-1, 12, 2}, {-1, 6, 2},  {-2, 5, 2},  {-2, 1, 2},  {-2, 7, 2},  {-2, 3, 2},  {0, 1, 2},
    {-2, 9, 2},  {2, 1, 3},   {0, 3, 3},   {0, 11, 3},  {2, 7, 3},   {0, 7, 3},   {0, 10, 3},  {0, 2, 3},   {0, 6, 3},
    {1, 1, 3},   {1, 7, 3},   {-1, 5, 3},  {-2, 8, 3},  {-1, 9, 3},  {0, 4, 3},   {-1, 1, 3},  {0, 8, 3},   {-2, 10, 3},
    {-1, 11, 3}, {0, 12, 3},  {-2, 12, 3}, {-2, 2, 3},  {-2, 4, 3},  {-2, 6, 3},  {-1, 7, 3},  {-1, 8, 3},  {-1, 4, 3},
    {-1, 2, 3},  {-1, 6, 3},  {0, 5, 3},   {-1, 12, 3}, {-1, 10, 3}, {-2, 11, 3}, {0, 9, 3},   {-2, 9, 3},  {-2, 5, 3},
    {0, 1, 3},   {-2, 1, 3},  {-2, 3, 3},  {-2, 7, 3},  {-1, 3, 1},  {-1, 3, 2},  {-1, 3, 3},  {2, 7, 4},   {-2, 2, 4},
    {0, 7, 4},   {-1, 1, 4},  {-2, 3, 4},  {0, 6, 4},   {-1, 2, 4},  {1, 7, 4},   {0, 1, 4},   {-2, 1, 4},  {0, 3, 4},
    {2, 1, 4},   {-2, 6, 4},  {-1, 5, 4},  {-1, 7, 4},  {0, 2, 4},   {0, 5, 4},   {1, 1, 4},   {-2, 5, 4},  {-1, 6, 4},
    {-2, 7, 4},  {0, 13, 4},  {0, 4, 4},   {-2, 13, 4}, {-2, 4, 4},  {-1, 13, 4}, {-1, 4, 4},  {0, 12, 4},  {-2, 12, 4},
    {-1, 12, 4}, {0, 8, 4},   {-2, 8, 4},  {-1, 8, 4},  {2, 11, 4},  {2, 9, 4},   {-1, 11, 4}, {0, 11, 4},  {-1, 9, 4},
    {-2, 9, 4},  {1, 9, 4},   {1, 11, 4},  {-2, 11, 4}, {0, 9, 4},   {-2, 14, 4}, {0, 10, 4},  {-1, 14, 4}, {-2, 10, 4},
    {0, 14, 4},  {-1, 10, 4}, {-1, 3, 4}};

ReadPGInfo::ReadPGInfo(const char *name) {
  TDirectory *dirSave = gDirectory;
  rootFile = new TFile(name);
  dirSave->cd();
}

ReadPGInfo::~ReadPGInfo() { delete rootFile; }

char *ReadPGInfo::getId(int wheel, int station, int sector) {
  for (int counter = 0; counter < TOTALCHAMBERS; ++counter) {
    if (wheel == position[counter][0] && sector == position[counter][1] && station == position[counter][2])
      return chambers[counter];
  }
  return nullptr;
}

TMatrixD ReadPGInfo::giveR(int wheel, int station, int sector) {
  TMatrixD *empty = new TMatrixD(0, 0);
  char *id = getId(wheel, station, sector);
  if (id == nullptr)
    return *empty;
  TDirectoryFile *myDir = (TDirectoryFile *)rootFile->Get(id);
  TDirectoryFile *myR = (TDirectoryFile *)myDir->Get("R");
  TMatrixD *R = (TMatrixD *)myR->Get("matrix");
  return *R;
}

TMatrixD ReadPGInfo::giveQCCal(int wheel, int station, int sector) {
  TMatrixD *mat = new TMatrixD(0, 0);
  TMatrixD qc = giveQC(wheel, station, sector);
  if (qc.GetNrows() == 0)
    return *mat;
  mat->ResizeTo(12, 2);
  int maxCount = 12;
  if (station == 4)
    maxCount = 8;
  for (int c = 0; c < maxCount; ++c) {
    float error;
    if (qc(c, 1) == 0 || qc(c, 3) == 0) {
      (*mat)(c, 0) = (qc(c, 0) + qc(c, 2)) / 2.0;
      (*mat)(c, 1) = 500;
    } else {
      error = 1.0 / (1.0 / (qc(c, 1) * qc(c, 1)) + 1.0 / (qc(c, 3) * qc(c, 3)));
      (*mat)(c, 0) = (qc(c, 0) / (qc(c, 1) * qc(c, 1)) + qc(c, 2) / (qc(c, 3) * qc(c, 3))) * error;
      (*mat)(c, 1) = TMath::Sqrt(error);
    }
  }
  return *mat;
}

TMatrixD ReadPGInfo::giveQC(int wheel, int station, int sector) {
  TMatrixD *empty = new TMatrixD(0, 0);
  char *id = getId(wheel, station, sector);
  if (id == nullptr)
    return *empty;
  TDirectoryFile *myDir = (TDirectoryFile *)rootFile->Get(id);
  TDirectoryFile *myQC = (TDirectoryFile *)myDir->Get("QCW");
  TMatrixD *QC;
  if (myQC == nullptr) {
    QC = new TMatrixD(0, 0);
  } else {
    QC = (TMatrixD *)myQC->Get("matrix");
  }
  return *QC;
}

TMatrixD ReadPGInfo::giveSurvey(int wheel, int station, int sector) {
  TMatrixD *empty = new TMatrixD(0, 0);
  char *id = getId(wheel, station, sector);
  if (id == nullptr)
    return *empty;
  TDirectoryFile *myDir = (TDirectoryFile *)rootFile->Get(id);
  TDirectoryFile *mySur = (TDirectoryFile *)myDir->Get("Survey");
  TMatrixD *Survey = (TMatrixD *)mySur->Get("matrix_layer");
  return *Survey;
}
