Changeset 1574 for trunk/MagicSoft/Mars/mhist
- Timestamp:
- 11/04/02 10:06:08 (22 years ago)
- Location:
- trunk/MagicSoft/Mars/mhist
- Files:
-
- 2 added
- 36 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mhist/HistLinkDef.h
r1557 r1574 8 8 9 9 #pragma link C++ class MH+; 10 #pragma link C++ class MHArray+; 10 11 #pragma link C++ class MH3+; 11 12 -
trunk/MagicSoft/Mars/mhist/MFillH.cc
r1502 r1574 71 71 #include <fstream.h> 72 72 73 #include <TClass.h> 74 75 #include "MDataChain.h" 76 73 77 #include "MLog.h" 74 78 #include "MLogManip.h" 75 79 76 80 #include "MH.h" 81 #include "MHArray.h" 82 77 83 #include "MParList.h" 78 84 79 85 ClassImp(MFillH); 86 87 ////////////////////////////////////////////////////////////////////////////// 88 // 89 // MMap 90 // 91 // This class maps a key-value to a given value. In its simple versions it 92 // maps a key to an index. 93 // 94 ////////////////////////////////////////////////////////////////////////////// 95 #include <TArrayI.h> 96 97 class MMap 98 { 99 private: 100 TArrayI fKeys; 101 TArrayI fValues; 102 103 Int_t K(Int_t i) const { return ((TArrayI)fKeys)[i]; } 104 Int_t V(Int_t i) const { return ((TArrayI)fValues)[i]; } 105 106 public: 107 // -------------------------------------------------------------------------- 108 // 109 // Get the value which corresponds to the given key-value 110 // 111 Int_t GetValue(Int_t key) const 112 { 113 const Int_t n = fKeys.GetSize(); 114 for (int i=0; i<n; i++) 115 { 116 if (K(i)==key) 117 return V(i); 118 } 119 return -1; 120 } 121 122 // -------------------------------------------------------------------------- 123 // 124 // Adds a new pair key-value. While the key is the key to the value. 125 // if the key already exists the pair is ignored. 126 // 127 void Add(Int_t key, Int_t value) 128 { 129 if (GetValue(key)>=0) 130 return; 131 132 const Int_t n = fKeys.GetSize(); 133 134 fKeys.Set(n+1); 135 fValues.Set(n+1); 136 137 fKeys[n] = key; 138 fValues[n] = value; 139 } 140 141 // -------------------------------------------------------------------------- 142 // 143 // Adds a new pair key-value. While the key is the key to the value. 144 // In this case the value is an automatically sequential created index. 145 // if the key already exists the pair is ignored. 146 // 147 Int_t Add(Int_t key) 148 { 149 const Int_t k = GetValue(key); 150 if (k>=0) 151 return k; 152 153 const Int_t n = fKeys.GetSize(); 154 155 fKeys.Set(n+1); 156 fValues.Set(n+1); 157 158 fKeys[n] = key; 159 fValues[n] = n; 160 161 return n; 162 } 163 }; 80 164 81 165 // -------------------------------------------------------------------------- … … 91 175 fH = NULL; 92 176 fParContainer = NULL; 177 178 fIndex = NULL; 179 fMapIdx = new MMap; 93 180 } 94 181 … … 194 281 fParContainerName = par; 195 282 283 AddToBranchList(fH->GetDataMember()); 284 196 285 if (title) 197 286 return; … … 222 311 fParContainerName = par->GetName(); 223 312 313 AddToBranchList(fH->GetDataMember()); 314 224 315 if (!title) 225 316 fTitle = (TString)"Fill " + hist->GetDescriptor() + " from " + par->GetDescriptor(); 226 317 } 227 318 319 // -------------------------------------------------------------------------- 320 // 321 // Destructor. Delete fData if existing and kCanDelete is set. 322 // 323 MFillH::~MFillH() 324 { 325 if (fIndex) 326 if (fIndex->TestBit(kCanDelete)) 327 delete fIndex; 328 329 delete fMapIdx; 330 } 331 332 // -------------------------------------------------------------------------- 333 // 334 // If the histogram to be filles is a MHArray you can specify a 'rule' 335 // This rule is used to create an MDataChain. The return value of the chain 336 // is casted to int. Each int acts as a key. For each (new) key a new 337 // histogram is created in the array. (eg for the rule 338 // "MRawEvtHeader::fRunNumber" you would get one histogram per run-number) 339 // 340 void MFillH::SetRuleForIdx(const TString rule) 341 { 342 fIndex = new MDataChain(rule); 343 fIndex->SetBit(kCanDelete); 344 } 345 346 // -------------------------------------------------------------------------- 347 // 348 // If the histogram to be filles is a MHArray you can specify a MData-object 349 // The return value of the object is casted to int. Each int acts as a key. 350 // For each (new) key a new histogram is created in the array. (eg for 351 // MDataMember("MRawEvtHeader::fRunNumber") you would get one histogram per 352 // run-number) 353 // 354 void MFillH::SetRuleForIdx(MData *data) 355 { 356 fIndex = data; 357 } 358 359 // -------------------------------------------------------------------------- 360 // 361 // Extracts the name of the histogram from the MFillH argument 362 // 228 363 TString MFillH::ExtractName(const char *name) const 229 364 { … … 239 374 } 240 375 376 // -------------------------------------------------------------------------- 377 // 378 // Extracts the class-name of the histogram from the MFillH argument 379 // 241 380 TString MFillH::ExtractClass(const char *name) const 242 381 { … … 265 404 Bool_t MFillH::PreProcess(MParList *pList) 266 405 { 406 if (fIndex) 407 { 408 if (!fIndex->PreProcess(pList)) 409 { 410 *fLog << all << "PreProcessing of Index rule failed... aborting." << endl; 411 return kFALSE; 412 } 413 414 if (!fIndex->IsValid()) 415 { 416 *fLog << all << "Given Index rule invalid... aborting." << endl; 417 return kFALSE; 418 } 419 } 420 267 421 // 268 422 // Try to get the histogram container with name fHName from list … … 293 447 // 'type'. 294 448 // 295 if (!obj->InheritsFrom(MH::Class())) 449 TClass *tcls = fIndex ? MHArray::Class() : MH::Class(); 450 if (!obj->InheritsFrom(tcls)) 296 451 { 297 452 *fLog << err << dbginf << obj->GetName() << " doesn't inherit "; 298 *fLog << "from MH - cannot be used for MFillH... aborting." << endl; 453 *fLog << "from " << tcls->GetName() << " - cannot be used for MFillH..."; 454 *fLog << "aborting." << endl; 299 455 return kFALSE; 300 456 } … … 343 499 Bool_t MFillH::Process() 344 500 { 501 if (fIndex) 502 { 503 const Int_t key = (Int_t)fIndex->GetValue(); 504 const Int_t idx = fMapIdx->Add(key); 505 ((MHArray*)fH)->SetIndex(idx); 506 } 507 345 508 return fH->Fill(fParContainer); 346 509 } … … 396 559 397 560 out << ");" << endl; 398 } 561 562 if (!fIndex) 563 return; 564 565 out << " " << GetUniqueName() << ".SetRuleForIdx(\""; 566 out << fIndex->GetRule() << "\");" << endl; 567 } -
trunk/MagicSoft/Mars/mhist/MFillH.h
r1477 r1574 7 7 8 8 class MH; 9 class MData; 9 10 class MParList; 11 12 class MMap; 10 13 11 14 class MFillH : public MTask … … 15 18 TString fParContainerName; 16 19 17 MH* fH; 20 MH* fH; 18 21 TString fHName; 22 23 MData *fIndex; // MData object describing the 'key' to an automatic index for an MHArray 24 MMap *fMapIdx; //! Map to map key-index-pair for an MHArray (MMap see MFillH.cc) 19 25 20 26 TString ExtractName(const char *name) const; … … 32 38 MFillH(MH *hist, MParContainer *par, const char *name=NULL, const char *title=NULL); 33 39 40 ~MFillH(); 41 42 void SetRuleForIdx(const TString rule); 43 void SetRuleForIdx(MData *rule); 44 34 45 Bool_t PreProcess(MParList *pList); 35 46 Bool_t Process(); -
trunk/MagicSoft/Mars/mhist/MH.cc
r1572 r1574 45 45 // the histogram(s) by the data of a corresponding parameter container. // 46 46 // // 47 // Remark: the static member function (eg MakeDefCanvas) can be called // 48 // from everywhere using: MH::MakeDefCanvas(...) // 49 // // 47 50 ////////////////////////////////////////////////////////////////////////////// 48 51 … … 93 96 Bool_t MH::Fill(const MParContainer *par) 94 97 { 95 *fLog << GetDescriptor() << ": Fill not overloaded! Can't be used!" << endl;98 *fLog << warn << GetDescriptor() << ": Fill not overloaded! Can't be used!" << endl; 96 99 return kFALSE; 100 } 101 102 // -------------------------------------------------------------------------- 103 // 104 // This virtual function is ment as a generalized interface to retrieve 105 // a pointer to a root histogram from the MH-derived class. 106 // 107 TH1 *MH::GetHistByName(const TString name) 108 { 109 *fLog << warn << GetDescriptor() << ": GetHistByName not overloaded! Can't be used!" << endl; 110 return NULL; 97 111 } 98 112 … … 665 679 l.Draw(); 666 680 } 681 -
trunk/MagicSoft/Mars/mhist/MH.h
r1504 r1574 24 24 virtual Bool_t Fill(const MParContainer *par); 25 25 virtual Bool_t Finalize() { return kTRUE; } 26 27 virtual TString GetDataMember() const { return ""; } 28 29 virtual TH1 *GetHistByName(const TString name); 26 30 27 31 static TCanvas *MakeDefCanvas(TString name="", const char *title="", -
trunk/MagicSoft/Mars/mhist/MH3.cc
r1555 r1574 83 83 static const TString gsDefTitle = "Container for a %dD Mars Histogram"; 84 84 85 // -------------------------------------------------------------------------- 86 // 87 // Default constructor. 88 // 85 89 MH3::MH3() : fDimension(0), fHist(NULL) 86 90 { … … 179 183 if (fData[i]) 180 184 delete fData[i]; 185 } 186 187 // -------------------------------------------------------------------------- 188 // 189 // Return the data members used by the data chain to be used in 190 // MTask::AddBranchToList 191 // 192 TString MH3::GetDataMember() const 193 { 194 TString str=fData[0]->GetDataMember(); 195 if (fData[1]) 196 { 197 str += ";"; 198 str += fData[1]->GetDataMember(); 199 } 200 if (fData[2]) 201 { 202 str += ";"; 203 str += fData[2]->GetDataMember(); 204 } 205 return str; 181 206 } 182 207 … … 526 551 } 527 552 } 553 554 // -------------------------------------------------------------------------- 555 // 556 // Used to rebuild a MH3 object of the same type (data members, 557 // dimension, ...) 558 // 559 MParContainer *MH3::New() const 560 { 561 MH3 *h = NULL; 562 switch (fDimension) 563 { 564 case 1: 565 h=new MH3(fData[0]->GetRule()); 566 break; 567 case 2: 568 h=new MH3(fData[0]->GetRule(), fData[1]->GetRule()); 569 break; 570 case 3: 571 h=new MH3(fData[0]->GetRule(), fData[1]->GetRule(), fData[2]->GetRule()); 572 break; 573 } 574 switch (fDimension) 575 { 576 case 3: 577 h->SetScaleZ(fScale[2]); 578 case 2: 579 h->SetScaleY(fScale[1]); 580 case 1: 581 h->SetScaleX(fScale[0]); 582 } 583 return h; 584 } -
trunk/MagicSoft/Mars/mhist/MH3.h
r1524 r1574 51 51 Bool_t Fill(const MParContainer *par); 52 52 53 TString GetDataMember() const; 54 53 55 TH1 &GetHist() { return *fHist; } 54 56 const TH1 &GetHist() const { return *fHist; } 57 58 TH1 *GetHistByName(const TString name) { return fHist; } 55 59 56 60 void SetColors() const; … … 58 62 TObject *DrawClone(Option_t *opt=NULL) const; 59 63 64 MParContainer *New() const; 65 60 66 ClassDef(MH3, 1) // Generalized 1/2/3D-histogram for Mars variables 61 67 }; -
trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.h
r1415 r1574 39 39 const TH3D *GetHist() const { return &fHist; } 40 40 41 TH1 *GetHistByName(const TString name) { return &fHist; } 42 41 43 void Draw(Option_t *option=""); 42 44 TObject *DrawClone(Option_t *option="") const; -
trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.h
r1414 r1574 29 29 TH3D fHist; 30 30 31 32 31 public: 33 32 MHAlphaEnergyTime(const char *name=NULL, const char *title=NULL); … … 38 37 const TH3D *GetHist() { return &fHist; } 39 38 const TH3D *GetHist() const { return &fHist; } 39 40 TH1 *GetHistByName(const TString name) { return &fHist; } 40 41 41 42 void Draw(Option_t *option=""); -
trunk/MagicSoft/Mars/mhist/MHEnergyTheta.h
r1213 r1574 32 32 const TH2D *GetHist() const { return &fHist; } 33 33 34 TH1 *GetHistByName(const TString name) { return &fHist; } 35 34 36 void Divide(const TH2D *h1, const TH2D *h2); 35 37 void Divide(const MHEnergyTheta *h1, const MHEnergyTheta *h2) -
trunk/MagicSoft/Mars/mhist/MHEnergyTime.h
r1213 r1574 33 33 const TH2D *GetHist() const { return &fHist; } 34 34 35 TH1 *GetHistByName(const TString name) { return &fHist; } 36 35 37 void Divide(const TH2D *h1, const TH2D *h2); 36 38 void Divide(const MHEnergyTime *h1, const MHEnergyTime *h2) -
trunk/MagicSoft/Mars/mhist/MHHadronness.cc
r1557 r1574 43 43 // - red: histogram of all hadronesses for non gammas 44 44 // * Upper Right Corner: 45 // - black: acceptance of gammas vs. the hadroness46 // - red: acceptance of non gammas vs. the hadroness45 // - black: acceptance of gammas (Ag) vs. the hadroness 46 // - red: acceptance of non gammas (Ah) vs. the hadroness 47 47 // - blue: 2D distance of (acceptance_hadrons, acceptances_gammas) 48 48 // to optimum (0, 1) … … 221 221 } 222 222 223 return val1y - (val2y-val1y)/(val2x-val1x) * ( 0.5-val1x);223 return val1y - (val2y-val1y)/(val2x-val1x) * (val1x-0.5); 224 224 } 225 225 … … 265 265 } 266 266 267 fQfac->SetMaximum(max +1);267 fQfac->SetMaximum(max*1.05); 268 268 269 269 return kTRUE; … … 342 342 *fLog << "Hadronness histograms:" << endl; 343 343 *fLog << "---------------------" << endl; 344 345 if (fGraph->GetN()==0) 346 { 347 *fLog << " <No Entries>" << endl; 348 return; 349 } 350 344 351 *fLog << "Used " << fGhness->GetEntries() << " Gammas and " << fPhness->GetEntries() << " Hadrons." << endl; 345 352 *fLog << "Acc Gammas @ 1% Hadron-acc: " << Form("%3.0f", GetGammaAcceptance(0.01)*100) << "%" << endl; … … 368 375 TObject *MHHadronness::DrawClone(Option_t *opt) const 369 376 { 377 if (fGraph->GetN()==0) 378 return NULL; 379 370 380 TCanvas &c = *MakeDefCanvas("Hadronness", fTitle); 371 381 c.Divide(2, 2); … … 435 445 void MHHadronness::Draw(Option_t *) 436 446 { 437 if (!gPad) 447 if (fGraph->GetN()==0) 448 return; 449 450 if (!gPad) 438 451 MakeDefCanvas("Hadronness", fTitle); 439 452 -
trunk/MagicSoft/Mars/mhist/MHHadronness.h
r1557 r1574 18 18 const MHadronness *fHadronness; //! 19 19 20 TH1D* fPhness; // Hadrons Hadronness21 TH1D* fGhness; // Gammas Hadronness22 TH1D* fIntPhness; // Hadrons Acceptance23 TH1D* fIntGhness; // Gammas Acceptance24 TH1D* fMinDist; // Minimum Distance to optimum acceptance20 TH1D* fPhness; //-> Hadrons Hadronness 21 TH1D* fGhness; //-> Gammas Hadronness 22 TH1D* fIntPhness; //-> Hadrons Acceptance 23 TH1D* fIntGhness; //-> Gammas Acceptance 24 TH1D* fMinDist; //-> Minimum Distance to optimum acceptance 25 25 26 TGraph *fQfac; // Quality factor27 TGraph *fGraph; // gamma acceptance vs. hadron acceptance26 TGraph *fQfac; //-> Quality factor 27 TGraph *fGraph; //-> gamma acceptance vs. hadron acceptance 28 28 29 29 public: -
trunk/MagicSoft/Mars/mhist/MHHillas.cc
r1524 r1574 365 365 gPad->Update(); 366 366 } 367 368 TH1 *MHHillas::GetHistByName(const TString name) 369 { 370 if (name.Contains("Width", TString::kIgnoreCase)) 371 return fWidth; 372 if (name.Contains("Length", TString::kIgnoreCase)) 373 return fLength; 374 if (name.Contains("Size", TString::kIgnoreCase)) 375 return fSize; 376 if (name.Contains("Core", TString::kIgnoreCase)) 377 return fCorePix; 378 if (name.Contains("Used", TString::kIgnoreCase)) 379 return fUsedPix; 380 if (name.Contains("Delta", TString::kIgnoreCase)) 381 return fDelta; 382 if (name.Contains("DistC", TString::kIgnoreCase)) 383 return fDistC; 384 if (name.Contains("Center", TString::kIgnoreCase)) 385 return fCenter; 386 387 return NULL; 388 } -
trunk/MagicSoft/Mars/mhist/MHHillas.h
r1490 r1574 41 41 Bool_t Fill(const MParContainer *par); 42 42 43 TH1 *GetHistByName(const TString name); 44 43 45 TH1F *GetHistLength() { return fLength; } 44 46 TH1F *GetHistWidth() { return fWidth; } -
trunk/MagicSoft/Mars/mhist/MHHillasExt.cc
r1504 r1574 312 312 gPad->Update(); 313 313 } 314 315 TH1 *MHHillasExt::GetHistByName(const TString name) 316 { 317 if (name.Contains("Conc", TString::kIgnoreCase)) 318 return &fHConc; 319 if (name.Contains("Conc1", TString::kIgnoreCase)) 320 return &fHConc1; 321 if (name.Contains("Asym", TString::kIgnoreCase)) 322 return &fHAsym; 323 if (name.Contains("M3Long", TString::kIgnoreCase)) 324 return &fHM3Long; 325 if (name.Contains("M3Trans", TString::kIgnoreCase)) 326 return &fHM3Trans; 327 328 return NULL; 329 } -
trunk/MagicSoft/Mars/mhist/MHHillasExt.h
r1490 r1574 35 35 Bool_t Fill(const MParContainer *par); 36 36 37 TH1 *GetHistByName(const TString name); 38 37 39 void Draw(Option_t *opt=NULL); 38 40 TObject *DrawClone(Option_t *opt=NULL) const; -
trunk/MagicSoft/Mars/mhist/MHHillasSrc.cc
r1540 r1574 271 271 gPad->Update(); 272 272 } 273 274 TH1 *MHHillasSrc::GetHistByName(const TString name) 275 { 276 if (name.Contains("Alpha", TString::kIgnoreCase)) 277 return fAlpha; 278 if (name.Contains("Dist", TString::kIgnoreCase)) 279 return fDist; 280 if (name.Contains("HeadTail", TString::kIgnoreCase)) 281 return fHeadTail; 282 if (name.Contains("CosDA", TString::kIgnoreCase)) 283 return fCosDA; 284 285 return NULL; 286 } -
trunk/MagicSoft/Mars/mhist/MHHillasSrc.h
r1463 r1574 30 30 Bool_t Fill(const MParContainer *par); 31 31 32 TH1 *GetHistByName(const TString name); 33 32 34 TH1F *GetHistAlpha() { return fAlpha; } 33 35 TH1F *GetHistDist() { return fDist; } -
trunk/MagicSoft/Mars/mhist/MHMatrix.cc
r1567 r1574 487 487 } 488 488 489 // -------------------------------------------------------------------------- 490 // 491 // Implementation of SavePrimitive. Used to write the call to a constructor 492 // to a macro. In the original root implementation it is used to write 493 // gui elements to a macro-file. 494 // 489 495 void MHMatrix::StreamPrimitive(ofstream &out) const 490 496 { … … 583 589 return kTRUE; 584 590 } 591 592 // -------------------------------------------------------------------------- 593 // 594 // Return a comma seperated list of all data members used in the matrix. 595 // This is mainly used in MTask::AddToBranchList 596 // 597 TString MHMatrix::GetDataMember() const 598 { 599 return fData ? fData->GetDataMember() : TString(""); 600 } -
trunk/MagicSoft/Mars/mhist/MHMatrix.h
r1524 r1574 87 87 Bool_t Fill(MParList *plist, MTask *read); 88 88 89 TString GetDataMember() const; 90 89 91 ClassDef(MHMatrix, 1) // Multidimensional Matrix to store events 90 92 }; -
trunk/MagicSoft/Mars/mhist/MHMcDifRate.h
r1306 r1574 31 31 const TH1D *GetHist() const { return &fHist; } 32 32 33 TH1 *GetHistByName(const TString name) { return &fHist; } 34 33 35 void Draw(Option_t* option = ""); 34 36 TObject *DrawClone(Option_t* option = "") const; -
trunk/MagicSoft/Mars/mhist/MHMcEfficiency.h
r1306 r1574 30 30 const TH2D *GetHist() const { return &fHist; } 31 31 32 TH1 *GetHistByName(const TString name) { return &fHist; } 33 32 34 void Draw(Option_t* option = ""); 33 35 TObject *DrawClone(Option_t* option = "") const; -
trunk/MagicSoft/Mars/mhist/MHMcEfficiencyEnergy.h
r1306 r1574 30 30 const TH1D *GetHist() const { return &fHist; } 31 31 32 TH1 *GetHistByName(const TString name) { return &fHist; } 33 32 34 void Draw(Option_t* option = ""); 33 35 TObject *DrawClone(Option_t* option = "") const; -
trunk/MagicSoft/Mars/mhist/MHMcEfficiencyImpact.h
r1306 r1574 30 30 const TH1D *GetHist() const { return &fHist; } 31 31 32 TH1 *GetHistByName(const TString name) { return &fHist; } 33 32 34 void Draw(Option_t* option = ""); 33 35 TObject *DrawClone(Option_t* option = "") const; -
trunk/MagicSoft/Mars/mhist/MHMcEnergy.cc
r1082 r1574 260 260 } 261 261 262 TH1 *MHMcEnergy::GetHistByName(const TString name) 263 { 264 return fHist; 265 } -
trunk/MagicSoft/Mars/mhist/MHMcEnergy.h
r1015 r1574 6 6 #endif 7 7 8 class TH1; 8 9 class TH1F; 9 10 class TF1; … … 45 46 void SetNumBins(Int_t nbins = 100); 46 47 48 TH1 *GetHistByName(const TString name); 49 47 50 void Draw(Option_t* option = ""); 48 51 TObject *DrawClone(Option_t* option = "") const; 52 49 53 void Print(Option_t* option = NULL) const; 50 54 -
trunk/MagicSoft/Mars/mhist/MHMcEnergyImpact.h
r1306 r1574 29 29 const TH2D *GetHist() const { return &fHist; } 30 30 31 TH1 *GetHistByName(const TString name) { return &fHist; } 32 31 33 void Draw(Option_t* option = ""); 32 34 TObject *DrawClone(Option_t* option = "") const; -
trunk/MagicSoft/Mars/mhist/MHMcEnergyMigration.h
r1322 r1574 23 23 MMcEvt *fMcEvt; 24 24 MEnergyEst *fEnergy; 25 25 26 TH3D fHist; 26 27 … … 33 34 const TH3D *GetHist() { return &fHist; } 34 35 const TH3D *GetHist() const { return &fHist; } 36 37 TH1 *GetHistByName(const TString name) { return &fHist; } 35 38 36 39 void Draw(Option_t *option=""); -
trunk/MagicSoft/Mars/mhist/MHMcIntRate.h
r1228 r1574 29 29 const TH1D *GetHist() const { return &fHist; } 30 30 31 TH1 *GetHistByName(const TString name) { return &fHist; } 32 31 33 void Draw(Option_t* option = ""); 32 34 TObject *DrawClone(Option_t* option = "") const; -
trunk/MagicSoft/Mars/mhist/MHStarMap.h
r1283 r1574 33 33 Bool_t Fill(const MParContainer *par); 34 34 35 TH1 *GetHistByName(const TString name) { return fStarMap; } 36 35 37 TH2F *GetHist() { return fStarMap; } 36 38 -
trunk/MagicSoft/Mars/mhist/MHThetabarTheta.h
r1322 r1574 31 31 const TProfile *GetHist() const { return &fHist; } 32 32 33 TH1 *GetHistByName(const TString name) { return &fHist; } 34 33 35 void Draw(Option_t *option=""); 34 36 TObject *DrawClone(Option_t *option="") const; -
trunk/MagicSoft/Mars/mhist/MHThetabarTime.h
r1321 r1574 34 34 const TProfile *GetHist() const { return &fHist; } 35 35 36 TH1 *GetHistByName(const TString name) { return &fHist; } 37 36 38 void Draw(Option_t *option=""); 37 39 TObject *DrawClone(Option_t *option="") const; -
trunk/MagicSoft/Mars/mhist/MHTimeDiffTheta.h
r1295 r1574 32 32 const TH2D *GetHist() const { return &fHist; } 33 33 34 TH1 *GetHistByName(const TString name) { return &fHist; } 35 34 36 void Draw(Option_t *option=""); 35 37 TObject *DrawClone(Option_t *option="") const; -
trunk/MagicSoft/Mars/mhist/MHTimeDiffTime.h
r1295 r1574 30 30 const TH2D *GetHist() const { return &fHist; } 31 31 32 TH1 *GetHistByName(const TString name) { return &fHist; } 33 32 34 void Draw(Option_t *option=""); 33 35 TObject *DrawClone(Option_t *option="") const; -
trunk/MagicSoft/Mars/mhist/Makefile
r1557 r1574 32 32 MBinning.cc \ 33 33 MH.cc \ 34 MHArray.cc \ 34 35 MH3.cc \ 35 36 MHMatrix.cc \
Note:
See TracChangeset
for help on using the changeset viewer.