/* ======================================================================== *\ ! ! * ! * 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): Javier López, 04/2004 ! ! Copyright: MAGIC Software Development, 2000-2004 ! ! \* ======================================================================== */ #include #include #include #include #include "MParList.h" #include "MTaskList.h" #include "MGeomCamMagic.h" #include "MCameraDC.h" #include "MPSFFit.h" #include "MReadReports.h" #include "MGeomApply.h" #include "MPSFFitCalc.h" #include "MEvtLoop.h" using namespace std; int main(int argc, char *argv[]) { if(argc!=2 && argc!=3) { printf("\n usage: %s filename numberEnvents \n\n",argv[0]); return 1; } UInt_t len=strlen(argv[1]); if(argv[1][len] == '/') { argv[1][len]='\0'; } TString filename; filename=argv[1]; UInt_t numEvents = 1000000; if(argc == 3) { len=strlen(argv[2]); if(argv[2][len] == '/') { argv[2][len]='\0'; } numEvents=atoi(argv[2]); } // // Create a empty Parameter List and an empty Task List // The tasklist is identified in the eventloop by its name // MParList plist; MTaskList tlist; plist.AddToList(&tlist); MGeomCamMagic geomcam; MCameraDC dccam; MPSFFit psffit; plist.AddToList(&geomcam); plist.AddToList(&dccam); plist.AddToList(&psffit); // // Now setup the tasks and tasklist: // --------------------------------- // // Reads the trees of the root file and the analysed branches MReadReports read; read.AddTree("Currents"); read.AddFile(filename); // after the reading of the trees!!! read.AddToBranchList("MReportCurrents.*"); MGeomApply geomapl; const Int_t numrings = 3; const Int_t numblind = 23; const Short_t x[numblind] = { 8, 27, 224, 279, 339, 507, 508, 509, 510, 511, 512, 513, 514, 543, 559, 560, 561, 562, 563, 564, 565, 566, 567}; // 2004_02_15 /* const Int_t numblind = 28; const Short_t x[numblind] = { 8, 224, 279, 339, 433, 434, 435, 436, 437, 438, 439, 475, 476, 477, 478, 479, 480, 481, 482, 523, 524, 525, 526, 527, 528, 529, 530, 531}; */ const TArrayS blindpixels(numblind,(Short_t*)x); MPSFFitCalc psfcalc; //psfcalc.SetImgCleanMode(MPSFFitCalc::kRing); psfcalc.SetImgCleanMode(MPSFFitCalc::kCombined); psfcalc.SetNumRings(numrings); psfcalc.SetBlindPixels(blindpixels); tlist.AddToList(&geomapl); tlist.AddToList(&read); tlist.AddToList(&psfcalc, "Currents"); // // Create and setup the eventloop // MEvtLoop evtloop; evtloop.SetParList(&plist); // // Execute your analysis // if (!evtloop.Eventloop(numEvents)) return kFALSE; // tlist.PrintStatistics(); cout << "RUN " << psffit.GetMeanMinorAxis() << ' ' << psffit.GetSigmaMinorAxis() << ' ' << psffit.GetMeanMajorAxis() << ' ' << psffit.GetSigmaMajorAxis() << ' ' << psffit.GetChisquare() << endl; }