/* ======================================================================== *\ ! ! * ! * This file is part of MARS, the MAGIC Analysis and Reconstruction ! * Software. It is distributed to you in the hope that it can be a useful ! * and timesaving tool in analysing Data of imaging Cerenkov telescopes. ! * It is distributed WITHOUT ANY WARRANTY. ! * ! * Permission to use, copy, modify and distribute this software and its ! * documentation for any purpose is hereby granted without fee, ! * provided that the above copyright notice appear in all copies and ! * that both that copyright notice and this permission notice appear ! * in supporting documentation. It is provided "as is" without express ! * or implied warranty. ! * ! ! ! Author(s): Oscar Blanch, 4/2003 ! ! Copyright: MAGIC Software Development, 2000-2003 ! ! \* ======================================================================== */ ///////////////////////////////////////////////////////////////////////////// // // MGeomCamECO1000 // // This class stores the geometry information of the ECO1000 camera. // All information are copied from tables, see source code. // //////////////////////////////////////////////////////////////////////////// #include "MGeomCamECO1000.h" #include "MLog.h" #include "MLogManip.h" #include "MGeomPix.h" ClassImp(MGeomCamECO1000); using namespace std; // -------------------------------------------------------------------------- // // Magic camera has 577 pixels. For geometry and Next Neighbor info see // CreateCam and CreateNN // MGeomCamECO1000::MGeomCamECO1000(const char *name) : MGeomCam(577, 34.5, name, "Geometry information of Magic Camera") { CreateCam(); CreateNN(); CalcNumSectors(); CalcMaxRadius(); CalcPixRatio(); } // -------------------------------------------------------------------------- // // This fills the geometry information from a table into the pixel objects. // void MGeomCamECO1000::CreateCam() { // // fill the geometry class with the coordinates of the MAGIC camera // // // here define the hardwire things of the ECO 1000 telescope // const Float_t xtemp[577] = { 0, 60, 30, -30, -60, -30, 30, 120, // 0 90, 60, 0, -60, -90, -120, -90, -60, // 8 0, 60, 90, 180, 150, 120, 90, 30, // 16 -30, -90, -120, -150, -180, -150, -120, -90, // 24 -30, 30, 90, 120, 150, 240, 210, 180, // 32 150, 120, 60, 0, -60, -120, -150, -180, // 40 -210, -240, -210, -180, -150, -120, -60, 0, // 48 60, 120, 150, 180, 210, 300, 270, 240, // 56 210, 180, 150, 90, 30, -30, -90, -150, // 64 -180, -210, -240, -270, -300, -270, -240, -210, // 72 -180, -150, -90, -30, 30, 90, 150, 180, // 80 210, 240, 270, 360, 330, 300, 270, 240, // 88 210, 180, 120, 60, 0, -60, -120, -180, // 96 -210, -240, -270, -300, -330, -360, -330, -300, // 104 -270, -240, -210, -180, -120, -60, 0, 60, // 112 120, 180, 210, 240, 270, 300, 330, 420, // 120 390, 360, 330, 300, 270, 240, 210, 150, // 128 90, 30, -30, -90, -150, -210, -240, -270, // 136 -300, -330, -360, -390, -420, -390, -360, -330, // 144 -300, -270, -240, -210, -150, -90, -30, 30, // 152 90, 150, 210, 240, 270, 300, 330, 360, // 160 390, 480, 450, 420, 390, 360, 330, 300, // 168 270, 240, 180, 120, 60, 0, -60, -120, // 176 -180, -240, -270, -300, -330, -360, -390, -420, // 184 -450, -480, -450, -420, -390, -360, -330, -300, // 192 -270, -240, -180, -120, -60, 0, 60, 120, // 200 180, 240, 270, 300, 330, 360, 390, 420, // 208 450, 540, 510, 480, 450, 420, 390, 360, // 216 330, 300, 270, 210, 150, 90, 30, -30, // 224 -90, -150, -210, -270, -300, -330, -360, -390, // 232 -420, -450, -480, -510, -540, -510, -480, -450, // 240 -420, -390, -360, -330, -300, -270, -210, -150, // 248 -90, -30, 30, 90, 150, 210, 270, 300, // 256 330, 360, 390, 420, 450, 480, 510, 600, // 264 570, 540, 510, 480, 450, 420, 390, 360, // 272 330, 300, 240, 180, 120, 60, 0, -60, // 280 -120, -180, -240, -300, -330, -360, -390, -420, // 288 -450, -480, -510, -540, -570, -600, -570, -540, // 296 -510, -480, -450, -420, -390, -360, -330, -300, // 304 -240, -180, -120, -60, 0, 60, 120, 180, // 312 240, 300, 330, 360, 390, 420, 450, 480, // 320 510, 540, 570, 660, 630, 600, 570, 540, // 328 510, 480, 450, 420, 390, 360, 330, 270, // 336 210, 150, 90, 30, -30, -90, -150, -210, // 344 -270, -330, -360, -390, -420, -450, -480, -510, // 352 -540, -570, -600, -630, -660, -630, -600, -570, // 360 -540, -510, -480, -450, -420, -390, -360, -330, // 368 -270, -210, -150, -90, -30, 30, 90, 150, // 376 210, 270, 330, 360, 390, 420, 450, 480, // 384 510, 540, 570, 600, 630, 720, 660, 600, // 392 540, 480, 420, 300, 180, 60, -60, -180, // 400 -300, -420, -480, -540, -600, -660, -720, -720, // 408 -660, -600, -540, -480, -420, -300, -180, -60, // 416 60, 180, 300, 420, 480, 540, 600, 660, // 424 720, 840, 780, 720, 660, 600, 540, 480, // 432 360, 240, 120, 0, -120, -240, -360, -480, // 440 -540, -600, -660, -720, -780, -840, -840, -780, // 448 -720, -660, -600, -540, -480, -360, -240, -120, // 456 0, 120, 240, 360, 480, 540, 600, 660, // 464 720, 780, 840, 960, 900, 840, 780, 720, // 472 660, 600, 540, 420, 300, 180, 60, -60, // 480 -180, -300, -420, -540, -600, -660, -720, -780, // 488 -840, -900, -960, -960, -900, -840, -780, -720, // 496 -660, -600, -540, -420, -300, -180, -60, 60, // 504 180, 300, 420, 540, 600, 660, 720, 780, // 512 840, 900, 960, 1080, 1020, 960, 900, 840, // 520 780, 720, 660, 600, 480, 360, 240, 120, // 528 0, -120, -240, -360, -480, -600, -660, -720, // 536 -780, -840, -900, -960, -1020, -1080, -1080, -1020, // 544 -960, -900, -840, -780, -720, -660, -600, -480, // 552 -360, -240, -120, 0, 120, 240, 360, 480, // 560 600, 660, 720, 780, 840, 900, 960, 1020, // 568 1080 //576 }; const Float_t ytemp[577] = { 0, 0, 51.962, 51.962, 0, -51.962, -51.962, 0, // 0 51.962, 103.922, 103.922, 103.922, 51.962, 0, -51.962, -103.922, // 8 -103.922, -103.922, -51.962, 0, 51.962, 103.922, 155.884, 155.884, // 16 155.884, 155.884, 103.922, 51.962, 0, -51.962, -103.922, -155.884, // 24 -155.884, -155.884, -155.884, -103.922, -51.962, 0, 51.962, 103.922, // 32 155.884, 207.846, 207.846, 207.846, 207.846, 207.846, 155.884, 103.922, // 40 51.962, 0, -51.962, -103.922, -155.884, -207.846, -207.846, -207.846, // 48 -207.846, -207.846, -155.884, -103.922, -51.962, 0, 51.962, 103.922, // 56 155.884, 207.846, 259.808, 259.808, 259.808, 259.808, 259.808, 259.808, // 64 207.846, 155.884, 103.922, 51.962, 0, -51.962, -103.922, -155.884, // 72 -207.846, -259.808, -259.808, -259.808, -259.808, -259.808, -259.808, -207.846, // 80 -155.884, -103.922, -51.962, 0, 51.962, 103.922, 155.884, 207.846, // 88 259.808, 311.77, 311.77, 311.77, 311.77, 311.77, 311.77, 311.77, // 96 259.808, 207.846, 155.884, 103.922, 51.962, 0, -51.962, -103.922, // 104 -155.884, -207.846, -259.808, -311.77, -311.77, -311.77, -311.77, -311.77, // 112 -311.77, -311.77, -259.808, -207.846, -155.884, -103.922, -51.962, 0, // 120 51.962, 103.922, 155.884, 207.846, 259.808, 311.77, 363.73, 363.73, // 128 363.73, 363.73, 363.73, 363.73, 363.73, 363.73, 311.77, 259.808, // 136 207.846, 155.884, 103.922, 51.962, 0, -51.962, -103.922, -155.884, // 144 -207.846, -259.808, -311.77, -363.73, -363.73, -363.73, -363.73, -363.73, // 152 -363.73, -363.73, -363.73, -311.77, -259.808, -207.846, -155.884, -103.922, // 160 -51.962, 0, 51.962, 103.922, 155.884, 207.846, 259.808, 311.77, // 168 363.73, 415.692, 415.692, 415.692, 415.692, 415.692, 415.692, 415.692, // 176 415.692, 415.692, 363.73, 311.77, 259.808, 207.846, 155.884, 103.922, // 184 51.962, 0, -51.962, -103.922, -155.884, -207.846, -259.808, -311.77, // 192 -363.73, -415.692, -415.692, -415.692, -415.692, -415.692, -415.692, -415.692, // 200 -415.692, -415.692, -363.73, -311.77, -259.808, -207.846, -155.884, -103.922, // 208 -51.962, 0, 51.962, 103.922, 155.884, 207.846, 259.808, 311.77, // 216 363.73, 415.692, 467.654, 467.654, 467.654, 467.654, 467.654, 467.654, // 224 467.654, 467.654, 467.654, 467.654, 415.692, 363.73, 311.77, 259.808, // 232 207.846, 155.884, 103.922, 51.962, 0, -51.962, -103.922, -155.884, // 240 -207.846, -259.808, -311.77, -363.73, -415.692, -467.654, -467.654, -467.654, // 248 -467.654, -467.654, -467.654, -467.654, -467.654, -467.654, -467.654, -415.692, // 256 -363.73, -311.77, -259.808, -207.846, -155.884, -103.922, -51.962, 0, // 264 51.962, 103.922, 155.884, 207.846, 259.808, 311.77, 363.73, 415.692, // 272 467.654, 519.616, 519.616, 519.616, 519.616, 519.616, 519.616, 519.616, // 280 519.616, 519.616, 519.616, 519.616, 467.654, 415.692, 363.73, 311.77, // 288 259.808, 207.846, 155.884, 103.922, 51.962, 0, -51.962, -103.922, // 296 -155.884, -207.846, -259.808, -311.77, -363.73, -415.692, -467.654, -519.616, // 304 -519.616, -519.616, -519.616, -519.616, -519.616, -519.616, -519.616, -519.616, // 312 -519.616, -519.616, -467.654, -415.692, -363.73, -311.77, -259.808, -207.846, // 320 -155.884, -103.922, -51.962, 0, 51.962, 103.922, 155.884, 207.846, // 328 259.808, 311.77, 363.73, 415.692, 467.654, 519.616, 571.576, 571.576, // 336 571.576, 571.576, 571.576, 571.576, 571.576, 571.576, 571.576, 571.576, // 344 571.576, 571.576, 519.616, 467.654, 415.692, 363.73, 311.77, 259.808, // 352 207.846, 155.884, 103.922, 51.962, 0, -51.962, -103.922, -155.884, // 360 -207.846, -259.808, -311.77, -363.73, -415.692, -467.654, -519.616, -571.576, // 368 -571.576, -571.576, -571.576, -571.576, -571.576, -571.576, -571.576, -571.576, // 376 -571.576, -571.576, -571.576, -519.616, -467.654, -415.692, -363.73, -311.77, // 384 -259.808, -207.846, -155.884, -103.922, -51.962, 69.282, 173.206, 277.128, // 392 381.052, 484.974, 588.898, 658.18, 658.18, 658.18, 658.18, 658.18, // 400 658.18, 588.898, 484.974, 381.052, 277.128, 173.206, 69.282, -69.282, // 408 -173.206, -277.128, -381.052, -484.974, -588.898, -658.18, -658.18, -658.18, // 416 -658.18, -658.18, -658.18, -588.898, -484.974, -381.052, -277.128, -173.206, // 424 -69.282, 69.282, 173.206, 277.128, 381.052, 484.974, 588.898, 692.82, // 432 762.102, 762.102, 762.102, 762.102, 762.102, 762.102, 762.102, 692.82, // 440 588.898, 484.974, 381.052, 277.128, 173.206, 69.282, -69.282, -173.206, // 448 -277.128, -381.052, -484.974, -588.898, -692.82, -762.102, -762.102, -762.102, // 456 -762.102, -762.102, -762.102, -762.102, -692.82, -588.898, -484.974, -381.052, // 464 -277.128, -173.206, -69.282, 69.282, 173.206, 277.128, 381.052, 484.974, // 472 588.898, 692.82, 796.744, 866.026, 866.026, 866.026, 866.026, 866.026, // 480 866.026, 866.026, 866.026, 796.744, 692.82, 588.898, 484.974, 381.052, // 488 277.128, 173.206, 69.282, -69.282, -173.206, -277.128, -381.052, -484.974, // 496 -588.898, -692.82, -796.744, -866.026, -866.026, -866.026, -866.026, -866.026, // 504 -866.026, -866.026, -866.026, -796.744, -692.82, -588.898, -484.974, -381.052, // 512 -277.128, -173.206, -69.282, 69.282, 173.206, 277.128, 381.052, 484.974, // 520 588.898, 692.82, 796.744, 900.666, 969.948, 969.948, 969.948, 969.948, // 528 969.948, 969.948, 969.948, 969.948, 969.948, 900.666, 796.744, 692.82, // 536 588.898, 484.974, 381.052, 277.128, 173.206, 69.282, -69.282, -173.206, // 544 -277.128, -381.052, -484.974, -588.898, -692.82, -796.744, -900.666, -969.948, // 552 -969.948, -969.948, -969.948, -969.948, -969.948, -969.948, -969.948, -969.948, // 560 -900.666, -796.744, -692.82, -588.898, -484.974, -381.052, -277.128, -173.206, // 568 -69.282 //576 }; const Float_t rtemp[577] = { 60, 60, 60, 60, 60, 60, 60, 60, // 0 60, 60, 60, 60, 60, 60, 60, 60, // 8 60, 60, 60, 60, 60, 60, 60, 60, // 16 60, 60, 60, 60, 60, 60, 60, 60, // 24 60, 60, 60, 60, 60, 60, 60, 60, // 32 60, 60, 60, 60, 60, 60, 60, 60, // 40 60, 60, 60, 60, 60, 60, 60, 60, // 48 60, 60, 60, 60, 60, 60, 60, 60, // 56 60, 60, 60, 60, 60, 60, 60, 60, // 64 60, 60, 60, 60, 60, 60, 60, 60, // 72 60, 60, 60, 60, 60, 60, 60, 60, // 80 60, 60, 60, 60, 60, 60, 60, 60, // 88 60, 60, 60, 60, 60, 60, 60, 60, // 96 60, 60, 60, 60, 60, 60, 60, 60, // 104 60, 60, 60, 60, 60, 60, 60, 60, // 112 60, 60, 60, 60, 60, 60, 60, 60, // 120 60, 60, 60, 60, 60, 60, 60, 60, // 128 60, 60, 60, 60, 60, 60, 60, 60, // 136 60, 60, 60, 60, 60, 60, 60, 60, // 144 60, 60, 60, 60, 60, 60, 60, 60, // 152 60, 60, 60, 60, 60, 60, 60, 60, // 160 60, 60, 60, 60, 60, 60, 60, 60, // 168 60, 60, 60, 60, 60, 60, 60, 60, // 176 60, 60, 60, 60, 60, 60, 60, 60, // 184 60, 60, 60, 60, 60, 60, 60, 60, // 192 60, 60, 60, 60, 60, 60, 60, 60, // 200 60, 60, 60, 60, 60, 60, 60, 60, // 208 60, 60, 60, 60, 60, 60, 60, 60, // 216 60, 60, 60, 60, 60, 60, 60, 60, // 224 60, 60, 60, 60, 60, 60, 60, 60, // 232 60, 60, 60, 60, 60, 60, 60, 60, // 240 60, 60, 60, 60, 60, 60, 60, 60, // 248 60, 60, 60, 60, 60, 60, 60, 60, // 256 60, 60, 60, 60, 60, 60, 60, 60, // 264 60, 60, 60, 60, 60, 60, 60, 60, // 272 60, 60, 60, 60, 60, 60, 60, 60, // 280 60, 60, 60, 60, 60, 60, 60, 60, // 288 60, 60, 60, 60, 60, 60, 60, 60, // 296 60, 60, 60, 60, 60, 60, 60, 60, // 304 60, 60, 60, 60, 60, 60, 60, 60, // 312 60, 60, 60, 60, 60, 60, 60, 60, // 320 60, 60, 60, 60, 60, 60, 60, 60, // 328 60, 60, 60, 60, 60, 60, 60, 60, // 336 60, 60, 60, 60, 60, 60, 60, 60, // 344 60, 60, 60, 60, 60, 60, 60, 60, // 352 60, 60, 60, 60, 60, 60, 60, 60, // 360 60, 60, 60, 60, 60, 60, 60, 60, // 368 60, 60, 60, 60, 60, 60, 60, 60, // 376 60, 60, 60, 60, 60, 60, 60, 60, // 384 60, 60, 60, 60, 60, 120, 120, 120, // 392 120, 120, 120, 120, 120, 120, 120, 120, // 400 120, 120, 120, 120, 120, 120, 120, 120, // 408 120, 120, 120, 120, 120, 120, 120, 120, // 416 120, 120, 120, 120, 120, 120, 120, 120, // 424 120, 120, 120, 120, 120, 120, 120, 120, // 432 120, 120, 120, 120, 120, 120, 120, 120, // 440 120, 120, 120, 120, 120, 120, 120, 120, // 448 120, 120, 120, 120, 120, 120, 120, 120, // 456 120, 120, 120, 120, 120, 120, 120, 120, // 464 120, 120, 120, 120, 120, 120, 120, 120, // 472 120, 120, 120, 120, 120, 120, 120, 120, // 480 120, 120, 120, 120, 120, 120, 120, 120, // 488 120, 120, 120, 120, 120, 120, 120, 120, // 496 120, 120, 120, 120, 120, 120, 120, 120, // 504 120, 120, 120, 120, 120, 120, 120, 120, // 512 120, 120, 120, 120, 120, 120, 120, 120, // 520 120, 120, 120, 120, 120, 120, 120, 120, // 528 120, 120, 120, 120, 120, 120, 120, 120, // 536 120, 120, 120, 120, 120, 120, 120, 120, // 544 120, 120, 120, 120, 120, 120, 120, 120, // 552 120, 120, 120, 120, 120, 120, 120, 120, // 560 120, 120, 120, 120, 120, 120, 120, 120, // 568 120 //576 }; // // fill the pixels list with this data // for (UInt_t i=0; i