Changeset 6459 for trunk/MagicSoft/Mars
- Timestamp:
- 02/14/05 16:29:56 (20 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r6457 r6459 59 59 of phe in the outer pixels is equiv. to the inner pixels. 60 60 - the same for the calibration factor - with the same argument 61 - adapted to change in MWriteRootFile 61 62 62 63 * mhist/MHCamera.cc: 63 64 - changed drawing such, that NaN is not displayed anymore 65 66 * Makefile: 67 - added new program ganymed 68 69 * mfileio/MWriteRootFile.[h,cc]: 70 - added possibility to use UPDATE mode with rules (dangerous!) 71 as discussed with Abelardo, Daniel M. and Thomas S. 72 73 * mjobs/MJStar.cc: 74 - adapted to change in MWriteRootFile 75 - added software trigger (still untuned) as suggested by 76 Thomas S. 77 - added calculation of source position before calculation 78 of image parameters 79 - added MPointingPos to Events-Tree 80 - removed MPointingPos from Drive-Tree 81 - renamed sub-tasklists to something more intuitive 82 83 * mjobs/Makefile, mjobs/JobsLinkDef.h: 84 - added MJCut.cc 85 86 * mraw/MRawFileRead.cc: 87 - return kERROR if ReInit fails 64 88 65 89 -
trunk/MagicSoft/Mars/Makefile
r5717 r6459 20 20 # 21 21 #PROGRAMS = readraw merpp mars test mona status 22 PROGRAMS = readdaq readraw merpp mars mona showlog callisto showplot star22 PROGRAMS = readdaq merpp readraw callisto star ganymed showlog showplot mars mona 23 23 SOLIB = libmars.so 24 24 CINT = M … … 80 80 .SUFFIXES: .c .cc .h .o 81 81 82 SRCFILES = 82 SRCFILES = 83 83 84 84 ############################################################ -
trunk/MagicSoft/Mars/mfileio/MWriteRootFile.cc
r6373 r6459 127 127 MWriteRootFile::MWriteRootFile(const Int_t comp, 128 128 const char *rule, 129 const Bool_t overwrite,129 const Option_t *option, 130 130 const char *ftitle, 131 131 const char *name, … … 139 139 // a valid file. (Stupid workaround - but does a good job) 140 140 // 141 fOut = new TFile("/dev/null", overwrite?"RECREATE":"NEW", ftitle, comp); 141 fOut = new TFile("/dev/null", option, ftitle, comp); 142 fOut->SetOption(option); // IMPORTANT! 142 143 } 143 144 … … 713 714 const Int_t compr = fOut->GetCompressionLevel(); 714 715 const TString title = fOut->GetTitle(); 715 716 *fLog << inf << "MWriteRootFile - Open new file " << fname << " (Title=" << title << ", Compression=" << compr << ")" << endl; 716 const TString opt = fOut->GetOption(); 717 718 *fLog << inf << "MWriteRootFile - Open new file " << fname << " (Title=" << title << ", Option=" << opt << ", Compression=" << compr << ")" << endl; 717 719 718 720 // Open new file with old setup 719 TFile *newfile = TFile::Open(fname, "RECREATE", title, compr);721 TFile *newfile = TFile::Open(fname, opt, title, compr); 720 722 if (!newfile) 721 723 { -
trunk/MagicSoft/Mars/mfileio/MWriteRootFile.h
r6373 r6459 112 112 MWriteRootFile(const Int_t comp, 113 113 const char *rule, 114 const Bool_t overwrite=kTRUE,114 const Option_t *opt="RECREATE", 115 115 const char *ftitle="Untitled", 116 116 const char *name=NULL, -
trunk/MagicSoft/Mars/mfilter/MFSoftwareTrigger.cc
r3500 r6459 19 19 ! Author(s): Thomas Bretz, 04/2003 <mailto:tbretz@astro.uni-wuerzburg.de> 20 20 ! 21 ! Copyright: MAGIC Software Development, 2000-200 321 ! Copyright: MAGIC Software Development, 2000-2005 22 22 ! 23 23 ! … … 30 30 // This is a class to evaluate a software trigger 31 31 // 32 // to be called after the calibration (when the number of photons is 33 // available for all pixels) 34 // 35 // require 2 neighboring pixels (which are not in the outermost ring), 36 // each having at least 'fNumMinPhotons' photons 37 // 32 // The number of required pixels is setup by: 33 // SetNumNeighbors(4) // default 34 // 35 // The Threshold is setup by: 36 // SetThreshold(5) // default 37 // 38 // Time window for coincidence: 39 // SetTimeWindow(3.3) 40 // To switch off time-coincidence use 41 // SetTimeWindow(-1) 42 // or 43 // SetTimeWindow() 44 // 45 // kSinglePixelsNeighbors <default> 46 // ---------------------- 47 // Checks whether there is at least one pixel above threshold which 48 // has fNumNeighbors direct neighbors which are also above threshold. 49 // The outermost ring of pixels is ignord. Only 'used' pixels are 50 // taken into account. 51 // 52 // kAnyPattern 53 // ----------- 54 // Checks whether it find a cluster of pixels above fThreshold which 55 // has a size bigger/equal than fNumNeighbors. The layout (pattern) of 56 // the cluster is ignored. Unmapped pixels are ignored. 57 // 58 // WARNING: Using trigger type kAllPattern resets the BIT(21) bit 59 // of all pixels in MCerPhotEvt 60 // 61 // 62 // Input: 63 // MCerPhotEvt 64 // MArrivalTime 65 // MGeomCam 38 66 // 39 67 ///////////////////////////////////////////////////////////////////////////// … … 49 77 50 78 #include "MCerPhotEvt.h" 79 #include "MArrivalTime.h" 51 80 52 81 ClassImp(MFSoftwareTrigger); … … 59 88 // 60 89 MFSoftwareTrigger::MFSoftwareTrigger(const char *name, const char *title) 61 : fNumMinPhotons(0), fNumNeighbors(2) 90 : fCam(NULL), fEvt(NULL), fTme(NULL), fThreshold(5), 91 fTimeWindow(0.5), fNumNeighbors(4), fType(kSinglePixelNeighbors) 62 92 { 63 93 fName = name ? name : "MFSoftwareTrigger"; … … 67 97 // -------------------------------------------------------------------------- 68 98 // 69 // Software trigger 70 // 71 // require 2 neighboring pixels (which are not in the outermost ring), 72 // each having at least 'fNumMinPhotons' photons 73 // 99 // This function recursively finds all pixels of one island and sets 100 // BIT(14) for the pixel. 101 // 102 // 1) Check whether a pixel with the index idx exists, is unused 103 // and has not yet BIT(14) set 104 // 2) Set BIT(14) to the pixel 105 // 3) Loop over all its neighbors taken from the geometry geom. For all 106 // neighbors recursively call this function (CountPixels) 107 // 4) Sum the number of valid neighbors newly found 108 // 109 // Returns the size of the cluster 110 // 111 Int_t MFSoftwareTrigger::CountPixels(Int_t idx, Float_t tm0) const 112 { 113 // Try to get the pixel information of a pixel with this index 114 MCerPhotPix *pix = fEvt->GetPixById(idx); 115 116 // If a pixel with this index is not existing... do nothing. 117 if (!pix) 118 return 0; 119 120 // If pixel already assigned to a cluster 121 if (pix->TestBit(kWasChecked)) 122 return 0; 123 124 if (pix->IsPixelUnmapped()) 125 return 0; 126 127 // Assign the new island number num to this used pixel 128 pix->SetBit(kWasChecked); 129 130 // Get the size of this pixel and check threshold 131 const Double_t size = pix->GetNumPhotons()*fCam->GetPixRatio(idx); 132 if (size<fThreshold) 133 return 0; 134 135 const Float_t tm1 = (*fTme)[idx]; 136 if (fTimeWindow>0 && TMath::Abs(tm1-tm0)>fTimeWindow) 137 return 0; 138 139 //pix->SetBit(kAboveThreshold); 140 141 Int_t num = 1; 142 143 // Get the geometry information (neighbors) of this pixel 144 const MGeomPix &gpix = (*fCam)[idx]; 145 146 // Now do the same with all its neighbors and sum the 147 // sizes which they correspond to 148 const Int_t n = gpix.GetNumNeighbors(); 149 for (int i=0; i<n; i++) 150 num += CountPixels(gpix.GetNeighbor(i), tm1); 151 152 // return size of this (sub)cluster 153 return num; 154 } 155 /* 156 Int_t MFSoftwareTrigger::CountCoincidencePixels(Int_t idx) const 157 { 158 // Try to get the pixel information of a pixel with this index 159 MCerPhotPix *pix = fEvt->GetPixById(idx); 160 161 // If a pixel with this index is not existing... do nothing. 162 if (!pix) 163 return 0; 164 165 // If pixel already assigned to a cluster 166 if (pix->TestBit(kWasChecked)) 167 return 0; 168 169 if (pix->IsPixelUnmapped()) 170 return 0; 171 172 // Assign the new island number num to this used pixel 173 pix->SetBit(kWasChecked); 174 175 // Get the size of this pixel and check threshold 176 const Double_t size = pix->GetNumPhotons(); 177 if (size<fThreshold) 178 return 0; 179 180 Int_t num = 1; 181 182 // Get the geometry information (neighbors) of this pixel 183 const MGeomPix &gpix = (*fCam)[idx]; 184 185 // Now do the same with all its neighbors and sum the 186 // sizes which they correspond to 187 const Int_t n = gpix.GetNumNeighbors(); 188 for (int i=0; i<n; i++) 189 num += CountPixels(gpix.GetNeighbor(i)); 190 191 // return size of this (sub)cluster 192 return num; 193 } 194 */ 195 void MFSoftwareTrigger::ResetBits(Int_t bits) const 196 { 197 TObject *obj=0; 198 199 TIter Next(*fEvt); 200 while ((obj=Next())) 201 obj->ResetBit(bits); 202 } 203 204 // -------------------------------------------------------------------------- 205 // 206 // Check if there is at least one pixel which fullfills the condition 207 // 208 Bool_t MFSoftwareTrigger::ClusterTrigger() const 209 { 210 ResetBits(kWasChecked); 211 212 // Reset bit 213 MCerPhotPix *pix=0; 214 215 // We could loop over all indices which looks more straight 216 // forward but should be a lot slower (assuming zero supression) 217 TIter Next(*fEvt); 218 while ((pix=static_cast<MCerPhotPix*>(Next()))) 219 { 220 // Check if trigger condition is fullfilled for this pixel 221 const Int_t idx = pix->GetPixId(); 222 if (CountPixels(idx, (*fTme)[idx]) >= fNumNeighbors) 223 return kTRUE; 224 } 225 226 return kFALSE; 227 } 228 /* 229 Int_t MFSoftwareTrigger::CheckCoincidence(Int_t idx, Float_t tm0) const 230 { 231 // Try to get the pixel information of a pixel with this index 232 MCerPhotPix *pix = fEvt->GetPixById(idx); 233 234 // If a pixel with this index is not existing... do nothing. 235 if (!pix) 236 return 0; 237 238 // If pixel already assigned to a cluster 239 if (pix->TestBit(kWasChecked)) 240 return 0; 241 242 if (pix->IsPixelUnmapped()) 243 return 0; 244 245 // Assign the new island number num to this used pixel 246 pix->SetBit(kWasChecked); 247 248 const Double_t size = pix->GetNumPhotons(); 249 if (size<fThreshold) 250 return 0; 251 252 const Float_t tm1 = (*fTme)[idx]; 253 if (TMath::Abs(tm1-tm0)>fTimeWindow) 254 return 0; 255 256 pix->SetBit(kIsCoincident); 257 258 259 Int_t num = 1; 260 261 // Get the geometry information (neighbors) of this pixel 262 const MGeomPix &gpix = (*fCam)[idx]; 263 264 Int_t cnt = 0; 265 266 // Now do the same with all its neighbors and sum the 267 // sizes which they correspond to 268 const Int_t n = gpix.GetNumNeighbors(); 269 for (int i=0; i<n; i++) 270 { 271 const Int_t rc = CheckCoincidence(gpix.GetNeighbor(i), tm0); 272 if (fEvt->GetPixById(gpix.GetNeighbor(i))->TestBit(kIsCoincident)) 273 cnt++; 274 num += rc; 275 } 276 277 // return size of this (sub)cluster 278 return cnt<2 ? 0 : num; 279 280 } 281 282 Bool_t MFSoftwareTrigger::MagicLvl1Trigger() const 283 { 284 // Reset bit 285 MCerPhotPix *pix=0; 286 287 // We could loop over all indices which looks more straight 288 // forward but should be a lot slower (assuming zero supression) 289 TIter Next(*fEvt); 290 while ((pix=static_cast<MCerPhotPix*>(Next()))) 291 { 292 ResetBits(kWasChecked|kIsCoincident); 293 294 const Int_t idx = pix->GetPixId(); 295 if (CheckCoincidence(idx, (*fTme)[idx])<fNumNeighbors) 296 continue; 297 298 return kTRUE; 299 } 300 return kFALSE; 301 } 302 */ 303 304 Bool_t MFSoftwareTrigger::CheckPixel(const MCerPhotPix &pix) const 305 { 306 if (!pix.IsPixelUsed()) 307 return kFALSE; 308 309 if (pix.GetNumPhotons()*fCam->GetPixRatio(pix.GetPixId())<fThreshold) 310 return kFALSE; 311 312 if ((*fCam)[pix.GetPixId()].IsInOutermostRing()) 313 return kFALSE; 314 315 return kTRUE; 316 } 317 318 // -------------------------------------------------------------------------- 319 // 320 // Software single pixel coincidence trigger 321 // 74 322 Bool_t MFSoftwareTrigger::SwTrigger() const 75 323 { … … 78 326 for (Int_t i=0; i<entries; i++) 79 327 { 80 const MCerPhotPix &pix = (*fEvt)[i];81 if (! pix.IsPixelUsed())328 const MCerPhotPix &pix0 = (*fEvt)[i]; 329 if (!CheckPixel(pix0)) 82 330 continue; 83 331 84 if (pix.GetNumPhotons()<fNumMinPhotons)85 continue;86 87 // this pixel is used and has the required no.of photons88 // check whether this is also true for a neigboring pixel89 MGeomPix &gpix = (*fCam)[pix.GetPixId()];90 if (gpix.IsInOutermostRing())91 continue;92 93 332 Int_t num = 1; 333 334 const MGeomPix &gpix = (*fCam)[pix0.GetPixId()]; 94 335 95 336 const Int_t nneighbors = gpix.GetNumNeighbors(); 96 337 for (Int_t n=0; n<nneighbors; n++) 97 338 { 98 const Int_t id = gpix.GetNeighbor(n);99 if (! fEvt->IsPixelUsed(id))339 const Int_t idx1 = gpix.GetNeighbor(n); 340 if (!CheckPixel(*fEvt->GetPixById(idx1))) 100 341 continue; 101 342 102 if ((*fCam)[id].IsInOutermostRing()) 103 continue; 104 105 const Double_t photons = fEvt->GetPixById(id)->GetNumPhotons(); 106 if (photons >= fNumMinPhotons) 107 if (++num==fNumNeighbors) 108 return kTRUE; 343 if (fTimeWindow>0) 344 { 345 const Float_t t0 = (*fTme)[pix0.GetPixId()]; 346 const Float_t t1 = (*fTme)[idx1]; 347 348 if (TMath::Abs(t0-t1)>fTimeWindow) 349 continue; 350 } 351 352 if (++num==fNumNeighbors) 353 return kTRUE; 109 354 } 110 355 } … … 132 377 } 133 378 379 fTme = (MArrivalTime*)pList->FindObject("MArrivalTime"); 380 if (!fTme) 381 { 382 *fLog << err << "MArrivalTime not found... aborting." << endl; 383 return kFALSE; 384 } 385 386 134 387 memset(fCut, 0, sizeof(fCut)); 135 388 … … 143 396 Int_t MFSoftwareTrigger::Process() 144 397 { 145 fResult = SwTrigger(); 398 switch (fType) 399 { 400 case kSinglePixelNeighbors: 401 fResult = SwTrigger(); 402 break; 403 case kAnyPattern: 404 fResult = ClusterTrigger(); 405 break; 406 } 146 407 147 408 fCut[fResult ? 0 : 1]++; … … 157 418 if (GetNumExecutions()==0) 158 419 return kTRUE; 420 421 TString type; 422 switch (fType) 423 { 424 case kSinglePixelNeighbors: 425 type = " single pixel trigger"; 426 break; 427 case kAnyPattern: 428 type = " any pattern trigger"; 429 break; 430 } 159 431 160 432 *fLog << inf << endl; … … 164 436 *fLog << " " << setw(7) << fCut[0] << " (" << setw(3) ; 165 437 *fLog << (int)(fCut[0]*100/GetNumExecutions()); 166 *fLog << "%) Evts fullfilled software trigger";167 *fLog << " ( NumPhotons>=" << fNumMinPhotons << ", NumNeighbors>=";168 *fLog << (int)fNumNeighbors << " )" << endl;438 *fLog << "%) Evts fullfilled" << type; 439 *fLog << " (Thresh>=" << fThreshold << ", Num>="; 440 *fLog << (int)fNumNeighbors << ", Win=" << fTimeWindow << ")" << endl; 169 441 *fLog << " " << setw(7) << fCut[1] << " (" << setw(3) ; 170 442 *fLog << (int)(fCut[1]*100/GetNumExecutions()); 171 *fLog << "%) Evts didn't fullfill software trigger." << endl;443 *fLog << "%) Evts didn't fullfill" << type << "." << endl; 172 444 173 445 return kTRUE; 174 446 } 447 448 // -------------------------------------------------------------------------- 449 // 450 // Read the setup from a TEnv, eg: 451 // MFSoftwareTrigger.Threshold: 5 452 // MFSoftwareTrigger.NumNeighbors: 4 453 // MFSoftwareTrigger.TimeWindow: 3.3 454 // MFSoftwareTrigger.TriggerType: SinglePixel, AnyPattern 455 // 456 // To switch off time-coincidence use 457 // MFSoftwareTrigger.TimeWindow: -1 458 // 459 Int_t MFSoftwareTrigger::ReadEnv(const TEnv &env, TString prefix, Bool_t print) 460 { 461 Bool_t rc = kFALSE; 462 if (IsEnvDefined(env, prefix, "Threshold", print)) 463 { 464 rc = kTRUE; 465 SetThreshold(GetEnvValue(env, prefix, "Threshold", fThreshold)); 466 } 467 if (IsEnvDefined(env, prefix, "NumNeighbors", print)) 468 { 469 rc = kTRUE; 470 SetNumNeighbors(GetEnvValue(env, prefix, "NumNeighbors", fNumNeighbors)); 471 } 472 if (IsEnvDefined(env, prefix, "TimeWindow", print)) 473 { 474 rc = kTRUE; 475 SetTimeWindow(GetEnvValue(env, prefix, "TimeWindow", fTimeWindow)); 476 } 477 478 if (IsEnvDefined(env, prefix, "TriggerType", print)) 479 { 480 TString dat = GetEnvValue(env, prefix, "TriggerType", ""); 481 dat = dat.Strip(TString::kBoth); 482 dat.ToLower(); 483 484 if (dat == (TString)"singlepixel") 485 SetTriggerType(kSinglePixelNeighbors); 486 if (dat == (TString)"anypattern") 487 SetTriggerType(kAnyPattern); 488 489 rc = kTRUE; 490 } 491 492 return rc; 493 } -
trunk/MagicSoft/Mars/mjobs/JobsLinkDef.h
r6332 r6459 8 8 #pragma link C++ class MJCalib+; 9 9 #pragma link C++ class MSequence+; 10 #pragma link C++ class MDataSet+; 10 11 12 #pragma link C++ class MJCut+; 11 13 #pragma link C++ class MJStar+; 12 14 #pragma link C++ class MJPedestal+; 15 //#pragma link C++ class MJOptimize+; 13 16 #pragma link C++ class MJCalibration+; 14 17 #pragma link C++ class MJCalibrateSignal+; -
trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc
r6457 r6459 553 553 554 554 // The second rule is for the case reading raw-files! 555 MWriteRootFile write(2, Form("%s{s/_D_/_Y_}{s/.raw$/.root}", fPathOut.Data()), fOverwrite );555 MWriteRootFile write(2, Form("%s{s/_D_/_Y_}{s/.raw$/.root}", fPathOut.Data()), fOverwrite?"RECREATE":"NEW"); 556 556 // Run Header 557 557 write.AddContainer("MRawRunHeader", "RunHeaders"); -
trunk/MagicSoft/Mars/mjobs/MJStar.cc
r6348 r6459 54 54 #include "MReadMarsFile.h" 55 55 #include "MFDeltaT.h" 56 #include "MFSoftwareTrigger.h" 56 57 #include "MContinue.h" 57 58 #include "MGeomApply.h" 58 59 #include "MEventRateCalc.h" 59 60 #include "MImgCleanStd.h" 61 #include "MSrcPosCalc.h" 60 62 #include "MHillasCalc.h" 61 63 #include "MFillH.h" … … 187 189 */ 188 190 //MBadPixelsMerge merge(&badpix); 191 192 MFSoftwareTrigger swtrig; 193 MContinue contsw(&swtrig, "FilterSwTrigger", "Software trigger"); 194 contsw.SetInverted(); 195 196 189 197 MImgCleanStd clean; 190 198 clean.SetNamePedPhotCam("MPedPhotFromExtractorRndm"); 191 199 200 MSrcPosCalc poscalc; 192 201 MHillasCalc hcalc; 193 202 … … 243 252 // ------------------ Setup write task ---------------- 244 253 245 MWriteRootFile write(2, Form("%s{s/_Y_/_I_}", fPathOut.Data()), fOverwrite );254 MWriteRootFile write(2, Form("%s{s/_Y_/_I_}", fPathOut.Data()), fOverwrite?"RECREATE":"NEW"); 246 255 // Data 247 256 write.AddContainer("MHillas", "Events"); … … 253 262 //write.AddContainer("MImageParTime", "Events"); 254 263 write.AddContainer("MRawEvtHeader", "Events"); 264 write.AddContainer("MPointingPos", "Events"); 255 265 if (ismc) 256 266 { 257 write.AddContainer("MPointingPos", "Events");258 267 // Monte Carlo 259 write.AddContainer("MMcEvt", "Events");260 write.AddContainer("MMcTrig", "Events");268 write.AddContainer("MMcEvt", "Events"); 269 write.AddContainer("MMcTrig", "Events"); 261 270 // Monte Carlo Headers 262 write.AddContainer("MMcRunHeader", "RunHeaders");263 write.AddContainer("MMcTrigHeader", "RunHeaders");264 write.AddContainer("MMcConfigRunHeader", "RunHeaders");265 write.AddContainer("MMcCorsikaRunHeader", "RunHeaders");271 write.AddContainer("MMcRunHeader", "RunHeaders"); 272 write.AddContainer("MMcTrigHeader", "RunHeaders"); 273 write.AddContainer("MMcConfigRunHeader", "RunHeaders"); 274 write.AddContainer("MMcCorsikaRunHeader", "RunHeaders"); 266 275 } 267 276 else 268 277 { 269 write.AddContainer("MTime", "Events");278 write.AddContainer("MTime", "Events"); 270 279 // Run Header 271 write.AddContainer("MRawRunHeader", "RunHeaders");272 write.AddContainer("MBadPixelsCam", "RunHeaders");273 write.AddContainer("MGeomCam", "RunHeaders");280 write.AddContainer("MRawRunHeader", "RunHeaders"); 281 write.AddContainer("MBadPixelsCam", "RunHeaders"); 282 write.AddContainer("MGeomCam", "RunHeaders"); 274 283 //write.AddContainer("MObservatory", "RunHeaders"); 275 284 // Drive 276 285 //write.AddContainer("MSrcPosCam", "Drive"); 277 write.AddContainer("MPointingPos", "Drive"); 278 write.AddContainer("MReportDrive", "Drive"); 279 write.AddContainer("MTimeDrive", "Drive"); 286 write.AddContainer("MReportDrive", "Drive"); 287 write.AddContainer("MTimeDrive", "Drive"); 280 288 // Effective On Time 281 289 write.AddContainer("MEffectiveOnTime", "EffectiveOnTime"); … … 283 291 } 284 292 285 MTaskList tlist2 ;293 MTaskList tlist2("Events"); 286 294 tlist2.AddToList(&apply); 287 295 if (!ismc) 288 {289 296 tlist2.AddToList(&cont); 297 tlist2.AddToList(&contsw); 298 if (!ismc) 299 { 290 300 tlist2.AddToList(&rate); 291 301 //tlist2.AddToList(&rate1); … … 301 311 tlist2.AddToList(&fill0b); 302 312 //tlist2.AddToList(&fill0r); 313 tlist2.AddToList(&poscalc); 303 314 tlist2.AddToList(&hcalc); 304 315 tlist2.AddToList(&fill1); … … 314 325 //MSrcPosFromModel srcpos; 315 326 316 MTaskList tlist3 ;327 MTaskList tlist3("Drive"); 317 328 tlist3.AddToList(&pcalc); 318 329 //tlist3.AddToList(&srcpos); -
trunk/MagicSoft/Mars/mjobs/Makefile
r6332 r6459 26 26 27 27 SRCFILES = MSequence.cc \ 28 MDataSet.cc \ 28 29 MJob.cc \ 30 MJCut.cc \ 29 31 MJCalib.cc \ 30 32 MJStar.cc \ … … 35 37 MJCalibTest.cc 36 38 39 # MJOptimize.cc \ 40 37 41 ############################################################ 38 42 -
trunk/MagicSoft/Mars/mraw/MRawFileRead.cc
r6456 r6459 252 252 // --> ReInit tasklist 253 253 // 254 return tlist->ReInit(fParList) ;254 return tlist->ReInit(fParList) ? kTRUE : kERROR; 255 255 } 256 256
Note:
See TracChangeset
for help on using the changeset viewer.