- Timestamp:
- 07/11/05 10:34:49 (19 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r7178 r7179 21 21 22 22 -*-*- END OF LINE -*-*- 23 24 2005/07/11 Thomas Bretz 25 26 * callisto.cc, ganymed.cc, mars.cc, showlog.cc, 27 showplot.cc, sponde.cc, mimage/MImgCleanStd.cc: 28 - fixed some typos 29 30 * mastro/MAstro.[h,cc]: 31 - added new member function GetStringDeg and GetStringHor 32 33 * mastro/MAstroCatalog.cc: 34 - don't display empty ": " in tooltip for sources without name 35 36 * mbase/MParContainer.cc, mbase/MTask.cc: 37 - fixed usage of a ?:-operator 38 39 * mbase/MString.h: 40 - added two new constructors 41 42 * mjobs/MDataSet.cc: 43 - made sure that all files read later are sorted correctly. 44 This is necessary to ensure correct reading of subsystem 45 data. 46 - skipped adding a sequence twice 47 48 - print effective on time only in debug mode 49 50 * mjobs/MSequence.cc: 51 - skipped adding a run twice 52 53 * mpointing/MSrcPosCalc.cc: 54 - reformatted the comments 55 - add MTime and MPointingPos to branch list 56 - fTime and fObservatory are now presearched in PreProcess 57 to allow usage in macros having no RunHeaders (if they are 58 not found no warning is printed!) 59 - added sanity checks for these pointers in Process 60 61 23 62 24 63 2005/07/08 Thomas Bretz -
trunk/MagicSoft/Mars/NEWS
r7177 r7179 16 16 17 17 - general: MHillas - the case of CorrXY==0 is now handled properly 18 19 - general: Runs in sequences and datasets are now automatically 20 ordered (it is assumed that the order of their filenames correctly 21 represents the order of observations) to ensure correct reading 22 of the subsystem data 23 24 - general: Runs cannot be added to a sequence twice anymore. Also 25 Sequences cannot be added twice anymore to a dataset. 18 26 19 27 - showplot: got a new option to start a root interpreter, too -
trunk/MagicSoft/Mars/callisto.cc
r7125 r7179 46 46 gLog << " callisto [-c] [-y] [options] sequence.txt" << endl << endl; 47 47 gLog << " Arguments:" << endl; 48 gLog << " sequence.txt: A sciifile defining a sequence of runs" << endl;48 gLog << " sequence.txt: ASCII file defining a sequence of runs" << endl; 49 49 gLog << " For more details see MSequence" << endl; 50 50 gLog << " Root Options:" << endl; … … 94 94 gLog << " is used." << endl << endl; 95 95 gLog << " Using --iny=, --outc=, --outy=, --out= or --path= automatically" << endl; 96 gLog << " enables the correspon mding modes. In this case -c/-y are obsolete." << endl << endl;96 gLog << " enables the corresponding modes. In this case -c/-y are obsolete." << endl << endl; 97 97 gLog << "Description:" << endl; 98 98 gLog << " callisto will calculate pedestals from pedestal-files defined in a" << endl; 99 99 gLog << " sequence-file. This pedestals are used to calculate the calibration" << endl; 100 gLog << " con tants. These constants are stored in a so called calibration-file" << endl;100 gLog << " constants. These constants are stored in a so called calibration-file" << endl; 101 101 gLog << " together with some datacheck plots which can be viewed using either" << endl; 102 102 gLog << " showplot or MStatusDisplay in the interpreter. A description of a" << endl; … … 111 111 gLog << " Jupiter at a mean distance of 1,883,000km. Its mass is 1.1e23 kg. It" << endl; 112 112 gLog << " takes Callisto 16.7 days to orbit Jupiter in a synchronous orbit." << endl; 113 gLog << " Jupiter's moon Callisto was discovered independ antly by Galileo and" << endl;113 gLog << " Jupiter's moon Callisto was discovered independently by Galileo and" << endl; 114 114 gLog << " S.Marius in 1610." << endl << endl; 115 115 gLog << "Example:" << endl; -
trunk/MagicSoft/Mars/ganymed.cc
r7134 r7179 43 43 gLog << " ganymed [options] sequences.txt" << endl << endl; 44 44 gLog << " Arguments:" << endl; 45 gLog << " dataset.txt: A sciifile defining a collection of sequences" << endl;45 gLog << " dataset.txt: ASCII file defining a collection of sequences" << endl; 46 46 gLog << " For more details see MDataSet." << endl; 47 47 gLog << " Root Options:" << endl; … … 142 142 if (arg.GetNumOptions()>0) 143 143 { 144 gLog << warn << "WARNING - Unknown command line options..." << endl;144 gLog << warn << "WARNING - Unknown command-line options..." << endl; 145 145 arg.Print("options"); 146 146 gLog << endl; … … 158 158 159 159 // 160 // Setup sequence file and check for its exist ance160 // Setup sequence file and check for its existence 161 161 // 162 162 const TString kSequences = arg.GetArgumentStr(0); -
trunk/MagicSoft/Mars/mars.cc
r7135 r7179 23 23 // MARS main program 24 24 // 25 // The only job of the main program is the initiali sation of ROOT and26 // the start of the guiinterface for the mars program25 // The only job of the main program is the initialization of ROOT and 26 // the start of the GUI interface for the mars program 27 27 // 28 28 // started by h. kornmayer january, 3rd 2001 … … 68 68 69 69 // 70 // This is to make argv[i] more readable inside the code70 // This is to make argv[i] more readable inside the code 71 71 // 72 72 const TString kFilename = arg.GetArgumentStr(0); … … 78 78 79 79 // 80 // initiali se ROOT80 // initialize ROOT 81 81 // 82 82 TApplication app("mars", &argc, argv); … … 88 88 89 89 // 90 // Sw tich of TObjectStreamer in our base classes derived from TObject90 // Switch of TObject Streamer in our base classes derived from TObject 91 91 // 92 92 MArray::Class()->IgnoreTObjectStreamer(); -
trunk/MagicSoft/Mars/mastro/MAstro.cc
r6277 r7179 36 36 37 37 #include "MTime.h" // MTime::GetGmst 38 #include "MString.h" 38 39 39 40 #include "MAstroCatalog.h" // FIXME: replace by MVector3! … … 191 192 { 192 193 Day2Hm(h/24, sgn, deg, min); 194 } 195 196 TString MAstro::GetStringDeg(Double_t deg, const char *fmt) 197 { 198 Char_t sgn; 199 UShort_t d, m, s; 200 Deg2Dms(deg, sgn, d, m, s); 201 202 MString str; 203 str.Print(fmt, sgn, d, m ,s); 204 return str; 205 } 206 207 TString MAstro::GetStringHor(Double_t deg, const char *fmt) 208 { 209 Char_t sgn; 210 UShort_t h, m, s; 211 Hor2Hms(deg, sgn, h, m, s); 212 213 MString str; 214 str.Print(fmt, sgn, h, m ,s); 215 return str; 193 216 } 194 217 -
trunk/MagicSoft/Mars/mastro/MAstro.h
r6277 r7179 45 45 static void Hor2Hm(Double_t rad, Char_t &sgn, UShort_t &hor, Double_t &min); 46 46 47 // Print funtions 48 static TString GetStringDeg(Double_t deg, const char *fmt="%c%d:%02d:%02d"); 49 static TString GetStringHor(Double_t deg, const char *fmt="%c%d:%02d:%02d"); 50 47 51 // Angle treatment functions 48 52 static Bool_t String2Angle(TString &str, Double_t &ret); -
trunk/MagicSoft/Mars/mastro/MAstroCatalog.cc
r4977 r7179 733 733 const Double_t mag = -2.5*log10(v.Mag()); 734 734 735 MString str; 736 str.Print("%s: Ra=%.2fh Dec=%.1fd Mag=%.1f", v.GetName(), ra, dec, mag); 735 TString str(v.GetName()); 736 if (!str.IsNull()) 737 str += ": "; 738 str += MString::Form("Ra=%.2fh Dec=%.1fd Mag=%.1f", ra, dec, mag); 737 739 if (txt) 738 740 { -
trunk/MagicSoft/Mars/mbase/MParContainer.cc
r6949 r7179 229 229 // point to a random memory segment, because the TString has gone. 230 230 // 231 MString desc; 232 desc.Print("%s [%s]", o.GetName(), o.ClassName()); 233 return (TString)o.GetName()==o.ClassName() ? o.ClassName() : desc; 231 return (TString)o.GetName()==o.ClassName() ? (TString)o.ClassName() : 232 MString::Form("%s [%s]", o.GetName(), o.ClassName()); 234 233 } 235 234 -
trunk/MagicSoft/Mars/mbase/MString.h
r5713 r7179 12 12 { 13 13 public: 14 MString(const char *txt=0) : TString(txt) { } 15 MString(const TString &txt) : TString(txt) { } 16 14 17 MString &Print(const char *fmt, va_list &ap); 15 18 MString &Print(const char *fmt, ...); -
trunk/MagicSoft/Mars/mbase/MTask.cc
r7091 r7179 356 356 // 357 357 if (fName==ClassName()) 358 return fSerialNumber==0 ? ClassName() : MString::Form("%s;%d", ClassName(), fSerialNumber);358 return fSerialNumber==0 ? (TString)ClassName() : MString::Form("%s;%d", ClassName(), fSerialNumber); 359 359 360 360 return fSerialNumber>0 ? 361 361 MString::Form("%s;%d [%s]", fName.Data(), fSerialNumber, ClassName()) : 362 MString::Form("%s [%s]", fName.Data(), ClassName());362 MString::Form("%s [%s]", fName.Data(), ClassName()); 363 363 } 364 364 -
trunk/MagicSoft/Mars/mimage/MImgCleanStd.cc
r6855 r7179 39 39 // In both cases, the possibility to have a camera with pixels of 40 40 // different area is taken into account. 41 // The too noisy pixels can be recognized and event ally switched off41 // The too noisy pixels can be recognized and eventually switched off 42 42 // (Unmap: set blind pixels to UNUSED) separately, using the 43 43 // MBlindPixelCalc Class. In the MBlindPixelCalc class there is also the … … 170 170 // =================== 171 171 // You use this cleaning method when you want to compare the number of 172 // photo-elect ons of each pixel with the average pedestal RMS of the172 // photo-electrons of each pixel with the average pedestal RMS of the 173 173 // inner pixels (for the MAGIC camera they are the smaller ones): 174 174 //Begin_Html … … 259 259 // informations of the boundary part of the shower only on the first 260 260 // neighbors of the CORE pixels. 261 // There is the possibility now to look not only at the firs neighbors261 // There is the possibility now to look not only at the first neighbors 262 262 // (first ring),but also further away, around the CORE pixels. All the new 263 263 // pixels you can find with this method, are tested with the second level … … 511 511 // Look for the boundary pixels around the core pixels 512 512 // if a pixel has more than 2.5 (clean level 2.5) sigma, and 513 // a core neig bor, it is declared as used.513 // a core neighbor, it is declared as used. 514 514 // 515 515 void MImgCleanStd::CleanStep3() … … 744 744 // -------------------------------------------------------------------------- 745 745 // 746 // Process the GUI Events com ming from the two text entry fields.746 // Process the GUI Events coming from the two text entry fields. 747 747 // 748 748 Bool_t MImgCleanStd::ProcessMessage(Int_t msg, Int_t submsg, Long_t param1, Long_t param2) -
trunk/MagicSoft/Mars/mjobs/MDataSet.cc
r7170 r7179 49 49 // 50 50 // The sequence number are used to concatenate the filenames of the 51 // sequences using the file structure used in the datacenter. 51 // sequences using the file structure used in the datacenter. Each sequence 52 // can be added to the on and off data at the same time but only once. 52 53 // 53 54 // If you have different file names you can overwrite the default file names … … 60 61 // 61 62 // Resource file entries are case sensitive! 63 // 64 // IMPORTANT: 65 // * Run filenames must begin with a string which allows correct 66 // ordering in time, otherwise synchronization might fail. 67 // * Sequence filenames should also have names allowing to order them 68 // in time, but it is not necessary. 62 69 // 63 70 // MISSING (27/01/04): The default name and paths cannot be used yet, because … … 90 97 // -------------------------------------------------------------------------- 91 98 // 92 // Copy the run numbers from the TString runs into the TArrayI data 99 // Copy the sequence numbers from the TString runs into the TArrayI data 100 // Sequences which are twice in the list are only added once. In this case 101 // a warning is emitted. 93 102 // 94 103 void MDataSet::Split(TString &runs, TArrayI &data) const … … 103 112 TString num = runs(regexp); 104 113 105 const Int_t n = data.GetSize(); 114 const Int_t seq = atoi(num.Data()); 115 const Int_t n = data.GetSize(); 116 117 // skip already existing entries 118 int i; 119 for (i=0; i<n; i++) 120 if (data[i] == seq) 121 break; 122 123 if (i<n) 124 { 125 *fLog << warn << "WARNING - Sequence #" << seq << " alraedy in list... skipped." << endl; 126 continue; 127 } 128 129 // set new entry 106 130 data.Set(n+1); 107 data[n] = atoi(num.Data()); 108 131 data[n] = seq; 132 133 // remove entry from string 109 134 runs.Remove(0, runs.First(num)+num.Length()); 110 135 } 111 136 } 112 137 138 // -------------------------------------------------------------------------- 139 // 140 // After resolving the sequence filename and directory either from the 141 // default (/magic/data/sequences/0004/sequence00004000.txt) or from 142 // the corresponding entries in the dataset file. 143 // The entries are sorted by filename. 144 // 113 145 void MDataSet::ResolveSequences(TEnv &env, const TArrayI &num, TList &list) const 114 146 { … … 235 267 } 236 268 269 // -------------------------------------------------------------------------- 270 // 271 // Adds all sequences contained in list to the MDirIter. After adding 272 // everything MDirIter::Sort is called to sort all entries by name. 273 // 237 274 Bool_t MDataSet::AddSequencesFromList(const TList &list, MDirIter &files) 238 275 { … … 251 288 seq.SetupDatRuns(files, MSequence::kImages, dir.IsNull() ? 0 : dir.Data()); 252 289 } 290 291 // This is important in case of synchronisation, because the 292 // files in the sequences can be interleaved (eg W1, W2) 293 // Filenames MUST begin with an appropriate string which allow 294 // to order them correctly in time! 295 files.Sort(); 253 296 254 297 if (gLog.GetDebugLevel()>4) -
trunk/MagicSoft/Mars/mjobs/MSequence.cc
r6964 r7179 31 31 // 32 32 // A sequence is a collection of runs which should be used together. 33 // Any run can be contained only once. 33 34 // 34 35 // Here is an example how a file describing a sequence could look like: … … 152 153 // -------------------------------------------------------------------------- 153 154 // 154 // Copy the run numbers from the TString runs into the TArrayI data 155 // Copy the run numbers from the TString runs into the TArrayI data. 156 // Runs which are twice in the list are only added once. In this case 157 // a warning is emitted. 155 158 // 156 159 void MSequence::Split(TString &runs, TArrayI &data) const … … 165 168 TString num = runs(regexp); 166 169 167 const Int_t n = data.GetSize(); 170 const Int_t run = atoi(num.Data()); 171 const Int_t n = data.GetSize(); 172 173 // skip already existing entries 174 int i; 175 for (i=0; i<n; i++) 176 if (data[i] == run) 177 break; 178 179 if (i<n) 180 { 181 *fLog << warn << "WARNING - Run #" << run << " alraedy in list... skipped." << endl; 182 continue; 183 } 184 185 // set new entry 168 186 data.Set(n+1); 169 data[n] = atoi(num.Data());187 data[n] = run; 170 188 171 189 runs.Remove(0, runs.First(num)+num.Length()); 172 190 } 173 191 } 174 /* 175 UInt_t MSequence::SetupRuns(MDirIter &iter, const TArrayI &arr, const char *path, char *id, Bool_t raw) const 176 { 177 TString d(path); 178 179 // Setup path 180 if (d.IsNull()) 181 { 182 d = GetStandardPath(); 183 d += raw ? "rawfiles/" : "merpp/"; 184 d += fNight.GetStringFmt("%Y/%m/%d"); 185 } 186 else 187 gSystem->ExpandPathName(d); 188 189 for (int i=0; i<arr.GetSize(); i++) 190 { 191 // R. DeLosReyes and T. Bretz 192 // Changes to read the DAQ numbering format. Changes takes place 193 // between runs 35487 and 00035488 (2004_08_30) 194 const char *fmt = arr[i]>35487 ? "%08d_%s_*_E" : "%05d_%s_*_E"; 195 196 TString n; 197 198 // Create file name 199 n = fNight.GetStringFmt("%Y%m%d_"); 200 n += Form(fmt, arr[i], id); 201 n += raw ? ".raw" : ".root"; 202 203 // Add Path/File to TIter 204 iter.AddDirectory(d, n, 0); 205 } 206 207 return iter.GetNumEntries(); 208 } 209 */ 192 210 193 UInt_t MSequence::SetupRuns(MDirIter &iter, const TArrayI &arr, FileType_t type, const char *path) const 211 194 { -
trunk/MagicSoft/Mars/mpointing/MSrcPosCalc.cc
r7028 r7179 19 19 ! Author(s): Abelardo Moralejo 1/2005 <mailto:moralejo@pd.infn.it> 20 20 ! 21 ! Copyright: MAGIC Software Development, 2000-200 421 ! Copyright: MAGIC Software Development, 2000-2005 22 22 ! 23 23 ! … … 28 28 // MSrcPosCalc 29 29 // 30 // Calculate the current source position in the camera from the (possibly already 31 // corrected, by starguider) J2000 sky coordinates of the camera center (contained 32 // in MPointingPos), and the source J2000 sky coordinates contained in MSourcePos 33 // (of type MPointingPos as well). If no MSourcePos is found in the parameter list, 34 // source position is assumed to be the same for all events, that specified in 35 // MSrcPosCam (if it already existed in the parameter list), or (0,0), the center 36 // of the camera, if no MSrcPosCam was present in the parameter list. In both cases, 37 // no calculation is necessary and then the PreProcess returns kSKIP so that the task 38 // is removed from the task list. 39 // 40 // The conversion factor between the camera plain (mm) and the 41 // sky (deg) is taken from MGeomCam. The time is taken from MTime, and the coordinates 42 // of the observatory from MObservatory. 43 // 30 // Calculate the current source position in the camera from the (possibly 31 // already corrected, by starguider) J2000 sky coordinates of the camera 32 // center (contained in MPointingPos), and the source J2000 sky 33 // coordinates contained in MSourcePos (of type MPointingPos as well). If 34 // no MSourcePos is found in the parameter list, source position is 35 // assumed to be the same for all events, that specified in MSrcPosCam 36 // (if it already existed in the parameter list), or (0,0), the center of 37 // the camera, if no MSrcPosCam was present in the parameter list. In both 38 // cases, no calculation is necessary and then the PreProcess returns 39 // kSKIP so that the task is removed from the task list. 40 // 41 // The conversion factor between the camera plain (mm) and the sky (deg) 42 // is taken from MGeomCam. The time is taken from MTime, and the 43 // coordinates of the observatory from MObservatory. 44 // 44 45 // Input Container: 45 46 // MPointingPos … … 53 54 // 54 55 // To be done: 55 // - wobble mode missing /// NOTE, A. Moralejo: I see no need for special code56 //57 56 // - a switch between using sky-coordinates and time or local-coordinates 58 57 // from MPointingPos for determine the rotation angle … … 98 97 fName = name ? name : "MSrcPosCalc"; 99 98 fTitle = title ? title : "Calculates the source position in the camera"; 99 100 AddToBranchList("MTime.*"); 101 AddToBranchList("MPointingPos.*"); 100 102 } 101 103 … … 191 193 //*fLog << "Pointing Position: " << GetRaDec(*fPointPos) << endl; 192 194 *fLog << "Source Position: " << GetRaDec(*fSourcePos) << endl; 195 196 // For the case ReInit is never called we try: 197 fObservatory = (MObservatory*)pList->FindObject("MObservatory"); 198 fTime = (MTime*) pList->FindObject("MTime"); 199 fRunType = MRawRunHeader::kRTNone; 193 200 194 201 return kTRUE; … … 321 328 Int_t MSrcPosCalc::Process() 322 329 { 323 if (fRunType==MRawRunHeader::kRTMonteCarlo || !fSourcePos )330 if (fRunType==MRawRunHeader::kRTMonteCarlo || !fSourcePos || !fTime || !fObservatory) 324 331 return kTRUE; 325 332 326 // *fLog << dbg << "Camera center : Zd=" << fPointPos->GetZd() << " Az=" << fPointPos->GetAz() << endl; 327 // *fLog << dbg << "Camera center : RA=" << fPointPos->GetRa() << " Dec=" << fPointPos->GetDec() << endl; 328 // *fLog << dbg << "MJD: " << fTime->GetMjd() << ", time [ms]: " << fTime->GetTime() << endl; 329 330 MVector3 pos, pos0; // pos: source position; pos0: camera center 331 332 if (fSourcePos) 333 { 334 // Set Sky coordinates of source, taken from container "MSourcePos" of type MPointingPos. The sky 335 // coordinates must be J2000, as the sky coordinates of the camera center that we get from the container 336 // "MPointingPos" filled by the Drive. 337 338 pos.SetRaDec(fSourcePos->GetRaRad(), fSourcePos->GetDecRad()); 339 340 // *fLog << dbg << "Sky position of source: Ra=" << fSourcePos->GetRa() << 341 // " Dec=" << fSourcePos->GetDec() << endl; 342 } 343 344 // Convert sky coordinates of source to local coordinates. Warning! These are not the "true" local 345 // coordinates, since this transformation ignores precession and nutation effects. 346 const MAstroSky2Local conv(*fTime, *fObservatory); 347 pos *= conv; 348 349 350 // Set sky coordinates of camera center in pos0, and then convert to local. Same comment as above. These 351 // coordinates differ from the true local coordinates of the camera center that one could get from 352 // "MPointingPos", calculated by the Drive: the reason is that the Drive takes into account precession 353 // and nutation corrections, while MAstroSky2Local (as of Jan 27 2005 at least) does not. Since we just 354 // want to get the source position on the camera from the local coordinates of the center and the source, 355 // it does not matter that the coordinates contained in pos and pos0 ignore precession and nutation... 356 // since the shift would be the same in both cases. What would be wrong is to set in pos0 directly the 357 // local coordinates found in MPointingPos! 358 359 pos0.SetRaDec(fPointPos->GetRaRad(), fPointPos->GetDecRad()); 360 pos0 *= conv; 361 362 // *fLog << dbg << "From MAstroSky2Local, without precession and nutation corrections:" << endl; 363 // *fLog << dbg << "- Camera center (2) from RA,dec and time : Zd=" << pos0.Theta()*180./TMath::Pi() 364 // << " Az=" << pos0.Phi()*180./TMath::Pi() << endl; 365 // *fLog << dbg << "- Local position of source: Zd=" << pos.Theta()*TMath::RadToDeg() << " Az=" << pos.Phi()*TMath::RadToDeg() << endl; 366 367 368 // Calculate source position in camera, and convert to mm: 369 TVector2 v = CalcXYinCamera(pos0, pos)*fGeom->GetCameraDist()*1000; 370 SetSrcPos(v); 371 372 // v *= fGeom->GetConvMm2Deg(); 373 // *fLog << dbg << "X=" << v.X() << " deg, Y=" << v.Y() << " deg" << endl; 374 // *fLog << *fTime << endl; 375 // *fLog << endl; 376 377 return kTRUE; 333 // Set Sky coordinates of source, taken from container "MSourcePos" 334 // of type MPointingPos. The sky coordinates must be J2000, as the 335 // sky coordinates of the camera center that we get from the container 336 // "MPointingPos" filled by the Drive. 337 MVector3 pos; // pos: source position 338 pos.SetRaDec(fSourcePos->GetRaRad(), fSourcePos->GetDecRad()); 339 340 // Convert sky coordinates of source to local coordinates. Warning! These are not the "true" local 341 // coordinates, since this transformation ignores precession and nutation effects. 342 const MAstroSky2Local conv(*fTime, *fObservatory); 343 pos *= conv; 344 345 // Set sky coordinates of camera center in pos0, and then convert to 346 // local. Same comment as above. These coordinates differ from the true 347 // local coordinates of the camera center that one could get from 348 // "MPointingPos", calculated by the Drive: the reason is that the Drive 349 // takes into account precession and nutation corrections, while 350 // MAstroSky2Local (as of Jan 27 2005 at least) does not. Since we just 351 // want to get the source position on the camera from the local 352 // coordinates of the center and the source, it does not matter that 353 // the coordinates contained in pos and pos0 ignore precession and 354 // nutation... since the shift would be the same in both cases. What 355 // would be wrong is to set in pos0 directly the local coordinates 356 // found in MPointingPos! 357 MVector3 pos0; // pos0: camera center 358 pos0.SetRaDec(fPointPos->GetRaRad(), fPointPos->GetDecRad()); 359 pos0 *= conv; 360 361 // Calculate source position in camera, and convert to mm: 362 TVector2 v = CalcXYinCamera(pos0, pos)*fGeom->GetCameraDist()*1000; 363 SetSrcPos(v); 364 365 return kTRUE; 378 366 } 379 367 -
trunk/MagicSoft/Mars/showlog.cc
r7001 r7179 22 22 gLog << " -?, -h, --help This help" << endl; 23 23 gLog << endl; 24 gLog << " This program converts colored output made with ansicodes" << endl;24 gLog << " This program converts colored output made with ANSI codes" << endl; 25 25 gLog << " (like it is done by MLog) and redirected into a file back" << endl; 26 26 gLog << " into colored output." << endl << endl; 27 gLog << " It cannot be used to get rid of the A nsicodes. To display" << endl;27 gLog << " It cannot be used to get rid of the ANSI codes. To display" << endl; 28 28 gLog << " colored output with less use the option -R, eg." << endl; 29 29 gLog << " less -R logfile.log" << endl << endl; … … 45 45 } 46 46 47 // FIXME: Enhance this tool with a converter to HTM l, etc.47 // FIXME: Enhance this tool with a converter to HTML, etc. 48 48 // Add option for 'no-colors' 49 49 int main(int argc, char **argv) … … 66 66 if (arg.GetNumOptions()>0) 67 67 { 68 gLog << warn << "WARNING - Unknown command line options..." << endl;68 gLog << warn << "WARNING - Unknown command line options..." << endl; 69 69 arg.Print("options"); 70 70 gLog << endl; -
trunk/MagicSoft/Mars/showplot.cc
r7176 r7179 130 130 if (arg.GetNumOptions()>0) 131 131 { 132 gLog << err << "Unknown command line options..." << endl;132 gLog << err << "Unknown command line options..." << endl; 133 133 arg.Print("options"); 134 134 gLog << endl; -
trunk/MagicSoft/Mars/sponde.cc
r7091 r7179 123 123 if (arg.GetNumOptions()>0) 124 124 { 125 gLog << warn << "WARNING - Unknown command line options..." << endl;125 gLog << warn << "WARNING - Unknown command line options..." << endl; 126 126 arg.Print("options"); 127 127 gLog << endl; … … 139 139 140 140 // 141 // Setup sequence file and check for its exist ance141 // Setup sequence file and check for its existence 142 142 // 143 143 const TString kInfile = arg.GetArgumentStr(0);
Note:
See TracChangeset
for help on using the changeset viewer.