Changeset 984
- Timestamp:
- 10/24/01 13:57:43 (23 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/macros/trigrate.C
r971 r984 24 24 25 25 26 void trigrate(int dim=0, char *filename = " /big0/Maggi/CamData/Gamma/gamma_15_on.root" )26 void trigrate(int dim=0, char *filename = "data/camera.root" ) 27 27 { 28 28 // This macro has two input parameter: … … 67 67 // Check if the list really contains the right number of histograms 68 68 // 69 if (hists.GetEntriesFast() != dim )69 if (hists.GetEntriesFast() != dim && dim) 70 70 return; 71 71 … … 83 83 // 84 84 MReadTree reader("Events", filename); 85 reader.UseLeaf("fImpact"); 86 reader.UseLeaf("fEnergy"); 87 reader.UseLeaf("fPhi"); 88 reader.UseLeaf("fTheta"); 89 reader.UseLeaf("fNumFirstLevel"); 90 reader.UseLeaf("fPhotElfromShower"); 85 91 tasklist.AddToList(&reader); 86 92 … … 88 94 cout << "Number of Trigger conditions: " << dim << endl; 89 95 90 MMcTriggerRateCalc rate(dim, 14, BgR, 100000 , 2.75, 10.91e-2);96 MMcTriggerRateCalc rate(dim, 14, BgR, 100000); 91 97 tasklist.AddToList(&rate); 92 98 … … 104 110 105 111 TIter Next(&hists); 106 MHMcRate *r ate=NULL;107 while ((r ate=(MHMcRate*)Next()))108 r ate->Print();112 MHMcRate *r=NULL; 113 while ((r=(MHMcRate*)Next())) 114 r->Print(); 109 115 } -
trunk/MagicSoft/Mars/mbase/MParList.cc
r959 r984 457 457 // from 1 to from. 458 458 // 459 TObjArray MParList::FindObjectList(const char *name, const UInt_t from, const UInt_t to) const459 TObjArray MParList::FindObjectList(const char *name, UInt_t first, const UInt_t last) const 460 460 { 461 461 TObjArray list; 462 462 463 if ( to>0 && to<=from)464 { 465 *fLog << dbginf << "Cannot create entries backwards ( to<from)...skipped." << endl;463 if (first>0 && last<first) 464 { 465 *fLog << dbginf << "Cannot create entries backwards (last<first)...skipped." << endl; 466 466 return list; 467 467 } … … 472 472 strcpy(auxname, name); 473 473 474 if (first==0 && last!=0) 475 first = 1; 476 474 477 // 475 478 // If only 'from' is specified the number of entries are ment 476 479 // 477 const Bool_t exc = from>0 && to==0; 478 479 const UInt_t first = exc ? 0 : from; 480 const UInt_t last = exc ? from : to; 481 482 for (UInt_t num=first; num<last; num++) 483 { 484 if (from!=0 || to!=0) 485 sprintf(auxname+len, ";%d", num+1); 480 for (UInt_t i=first; i<=last; i++) 481 { 482 if (first!=0 || last!=0) 483 sprintf(auxname+len, ";%d", i); 486 484 487 485 TObject *obj = FindObject(auxname); … … 505 503 // from 1 to from. 506 504 // 507 TObjArray MParList::FindCreateObjList(const char *cname, const UInt_t from, const UInt_t to, const char *oname)505 TObjArray MParList::FindCreateObjList(const char *cname, UInt_t first, const UInt_t last, const char *oname) 508 506 { 509 507 TObjArray list; 510 508 511 if ( to>0 && to<=from)512 { 513 *fLog << dbginf << "Cannot create entries backwards ( to<from)...skipped." << endl;509 if (first>0 && last<first) 510 { 511 *fLog << dbginf << "Cannot create entries backwards (last<first)...skipped." << endl; 514 512 return list; 515 513 } … … 523 521 // If only 'from' is specified the number of entries are ment 524 522 // 525 const Bool_t exc = from>0 && to==0; 526 527 const UInt_t first = exc ? 0 : from; 528 const UInt_t last = exc ? from : to; 529 530 for (UInt_t num=first; num<last; num++) 531 { 532 if (from!=0 || to!=0) 533 sprintf(auxname+len, ";%d", num+1); 523 if (first==0 && last!=0) 524 first = 1; 525 526 for (UInt_t i=first; i<=last; i++) 527 { 528 if (first!=0 || last!=0) 529 sprintf(auxname+len, ";%d", i); 534 530 535 531 TObject *obj = FindCreateObj(auxname, oname); … … 558 554 // compiled programs if you are not 100% sure what you are doing. 559 555 // 560 TObjArray MParList::CreateObjList(const char *cname, const UInt_t from, const UInt_t to, const char *oname)556 TObjArray MParList::CreateObjList(const char *cname, UInt_t first, const UInt_t last, const char *oname) 561 557 { 562 558 TObjArray list; 559 560 if (first>0 && last<first) 561 { 562 gLog << dbginf << "Cannot create entries backwards (last<first)...skipped." << endl; 563 return list; 564 } 563 565 564 566 // … … 584 586 // If only 'from' is specified the number of entries are ment 585 587 // 586 const Bool_t exc = from>0 && to==0; 587 588 const UInt_t first = exc ? 0 : from; 589 const UInt_t last = exc ? from : to; 590 591 for (UInt_t num=first; num<last; num++) 592 { 593 if (from!=0 || to!=0) 594 sprintf(auxname+len, ";%d", num+1); 588 if (first==0 && last!=0) 589 first = 1; 590 591 for (UInt_t i=first; i<=last; i++) 592 { 593 if (first!=0 || last!=0) 594 sprintf(auxname+len, ";%d", i); 595 595 596 596 // -
trunk/MagicSoft/Mars/mbase/MParList.h
r959 r984 20 20 #include "MParContainer.h" 21 21 #endif 22 23 #include <TObjArray.h> 22 24 23 25 class MLog; … … 49 51 MParContainer *FindCreateObj(const char *classname, const char *objname=NULL); 50 52 51 TObjArray FindObjectList(const char *name, const UInt_t from, const UInt_t to=0) const; 52 TObjArray FindCreateObjList(const char *cname, const UInt_t from, const UInt_t to=0, const char *oname=NULL); 53 TObjArray FindObjectList(const char *name, UInt_t first, const UInt_t last) const; 54 TObjArray FindObjectList(const char *name, const UInt_t num) const 55 { 56 return FindObjectList(name, 0, num); 57 } 53 58 54 static TObjArray CreateObjList(const char *cname, const UInt_t from, const UInt_t to=0, const char *oname=NULL); 59 TObjArray FindCreateObjList(const char *cname, UInt_t first, const UInt_t last, const char *oname=NULL); 60 TObjArray FindCreateObjList(const char *cname, const UInt_t num, const char *oname=NULL) 61 { 62 return FindCreateObjList(cname, 0, num, oname); 63 } 64 65 static TObjArray CreateObjList(const char *cname, UInt_t first, const UInt_t last, const char *oname=NULL); 66 static TObjArray CreateObjList(const char *cname, const UInt_t num, const char *oname=NULL) 67 { 68 return CreateObjList(cname, 0, num, oname); 69 } 55 70 56 71 void Reset(); -
trunk/MagicSoft/Mars/mmontecarlo/MMcThresholdCalc.cc
r983 r984 103 103 } 104 104 105 UInt_t from = fDimension>0 ? 1 : -fDimension; 106 UInt_t to = fDimension>0 ? fDimension : -fDimension; 105 107 106 const UInt_t from = fDimension<=0 ? -fDimension : 0;108 fNum = to-from+1; 107 109 108 if (fDimension<=0) 109 fDimension = -fDimension; 110 Int_t num; 110 111 111 if (fDimension==0) 112 fDimension=1; 113 114 fMcTrig = new TObjArray(pList->FindObjectList("MMcTrig", from, fDimension)); 115 if (fMcTrig->GetEntriesFast() != fDimension) 112 fMcTrig = new TObjArray(pList->FindObjectList("MMcTrig", from, to)); 113 num = fMcTrig->GetEntriesFast(); 114 if (num != fNum) 116 115 { 117 *fLog << dbginf << "Error: Not all requested MMcTrig objects are available...aborting." << endl; 116 *fLog << dbginf << fNum << " MMcTrig objects requested, "; 117 *fLog << num << " are available... aborting." << endl; 118 118 return kFALSE; 119 119 } 120 120 121 fEnergy = new TObjArray(pList->FindCreateObjList("MHMcEnergy", from, fDimension)); 122 if (fMcTrig->GetEntriesFast() != fDimension && fDimension) 121 fEnergy = new TObjArray(pList->FindCreateObjList("MHMcEnergy", from, to)); 122 num = fMcTrig->GetEntriesFast(); 123 if (num != fNum) 123 124 { 124 *fLog << dbginf << "Error: Not all requested MHMcEnergy objects are available...aborting." << endl; 125 *fLog << dbginf << fNum << " MHMcEnergy objects requested, "; 126 *fLog << num << " are available... aborting." << endl; 125 127 return kFALSE; 126 128 } … … 141 143 const Float_t reciproc = 1./energy; 142 144 143 for (Int_t i=0; i<f Dimension; i++)145 for (Int_t i=0; i<fNum; i++) 144 146 if (GetTrig(i)->GetFirstLevel()>0) 145 147 GetHEnergy(i)->Fill(lg10, reciproc); … … 155 157 Bool_t MMcThresholdCalc::PostProcess() 156 158 { 157 for (Int_t i=0; i<f Dimension; i++)159 for (Int_t i=0; i<fNum; i++) 158 160 { 159 161 MHMcEnergy &hist = *GetHEnergy(i); -
trunk/MagicSoft/Mars/mmontecarlo/MMcThresholdCalc.h
r893 r984 25 25 private: 26 26 Int_t fDimension; 27 Int_t fNum; 27 28 28 29 const MMcEvt *fMcEvt; // Container with Monte Carlo information -
trunk/MagicSoft/Mars/mmontecarlo/MMcTriggerRateCalc.cc
r983 r984 43 43 *fTitle = title ? title : "Task to calc the trigger rate "; 44 44 45 fDimension =dim;45 fDimension = dim; 46 46 47 47 for (int i=0;i<10;i++) … … 111 111 } 112 112 113 const UInt_t from = fDimension<=0 ? -fDimension : 0; 114 115 if (fDimension<=0) 116 fDimension = -fDimension; 117 118 if (fDimension==0) 119 fDimension=1; 120 121 fMcTrig = new TObjArray(pList->FindObjectList("MMcTrig", from, fDimension)); 122 if (fMcTrig->GetEntriesFast() != fDimension) 123 { 124 *fLog << dbginf << "Error: Not all requested MMcTrig objects are available...aborting." << endl; 113 UInt_t from = fDimension>0 ? 1 : -fDimension; 114 UInt_t to = fDimension>0 ? fDimension : -fDimension; 115 116 fNum = to-from+1; 117 118 Int_t num; 119 120 fMcTrig = new TObjArray(pList->FindObjectList("MMcTrig", from, to)); 121 num = fMcTrig->GetEntriesFast(); 122 if (num != fNum) 123 { 124 *fLog << dbginf << fNum << " MMcTrig objects requested, "; 125 *fLog << num << " are available... aborting." << endl; 125 126 return kFALSE; 126 127 } 127 128 128 fMcRate = new TObjArray(pList->FindObjectList("MHMcRate", from, fDimension)); 129 if (fMcRate->GetEntriesFast() != fDimension) 130 { 131 *fLog << dbginf << "Error: Not all requested MHMcRate objects are available...aborting." << endl; 129 fMcRate = new TObjArray(pList->FindObjectList("MHMcRate", from, to)); 130 num = fMcRate->GetEntriesFast(); 131 if (num != fNum) 132 { 133 *fLog << dbginf << fNum << " MHMcRate objects requested, "; 134 *fLog << num << " are available... aborting." << endl; 132 135 return kFALSE; 133 136 } 134 137 135 for (int i=0; i<f Dimension; i++)138 for (int i=0; i<fNum; i++) 136 139 { 137 140 MHMcRate &rate = *GetRate(i); … … 175 178 // Counting number of triggers 176 179 // 177 for (int i=0; i<f Dimension; i++)180 for (int i=0; i<fNum; i++) 178 181 { 179 182 fTrigger[i] += GetTrig(i)->GetFirstLevel(); … … 194 197 // Computing trigger rate 195 198 // 196 for (int i=0; i<f Dimension; i++)199 for (int i=0; i<fNum; i++) 197 200 GetRate(i)->CalcRate(fTrigger[i], fAnalShow, fShowers); 198 201 -
trunk/MagicSoft/Mars/mmontecarlo/MMcTriggerRateCalc.h
r983 r984 27 27 Int_t fDimension; // Information about the trigger conditions 28 28 // in the root file to be read. 29 Int_t fNum; // decoded dimension 29 30 30 31 Float_t fTrigger[10]; // Number of triggered showers … … 38 39 39 40 MHMcRate *GetRate(UInt_t i) const { return (MHMcRate*)((*fMcRate)[i]); } 40 MMcTrig *GetTrig(UInt_t i) const { return (MMcTrig*)((*fMcTrig)[i]); }41 MMcTrig *GetTrig(UInt_t i) const { return (MMcTrig*)((*fMcTrig)[i]); } 41 42 42 43 public:
Note:
See TracChangeset
for help on using the changeset viewer.