/* ======================================================================== *\ ! ! * ! * 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): Thomas Bretz, 5/2003 ! Author(s): Florian Goebel 11/2005 ! ! Copyright: MAGIC Software Development, 2000-2008 ! ! \* ======================================================================== */ ///////////////////////////////////////////////////////////////////////////// // // MCameraTD // // Class Version 2: // ---------------- // + Bool_t fIsValid; // fTD contains valid information // ///////////////////////////////////////////////////////////////////////////// #include "MCameraTD.h" #include #include "MLog.h" #include "MLogManip.h" ClassImp(MCameraTD); using namespace std; // -------------------------------------------------------------------------- // // Default constructor. // MCameraTD::MCameraTD(Int_t size, const char *name, const char *title) : fTD(size), fIsValid(kTRUE) { fName = name ? name : "MCameraTD"; fTitle = title ? title : "Storage container for the pixel discriminator delays"; } // -------------------------------------------------------------------------- // // Interprete the TD (discriminator delays) part of the report // Bool_t MCameraTD::InterpreteTD(TString &str, Int_t ver) { // Skip the TD (discriminator delays) part of the report (for old // CC files with wrong or nonsense number of TD-Bytes) if (ver<200412210) { Ssiz_t pr = str.First(' '); if (pr<0) { *fLog << warn << "WARNING - No TD information found at all." << endl; return kFALSE; } if (pr!=1000) { Invalidate(); str.Remove(0, pr); str=str.Strip(TString::kLeading); return kTRUE; } } // Older files have less bytes (pixels) stored const Int_t numpix = ver<200510250 ? 500 : 577; const char *pos = str.Data(); const char *end = str.Data()+numpix*2; Int_t i=0; while (pos