musrfit  1.9.2
PRunListCollection.h
Go to the documentation of this file.
1 /***************************************************************************
2 
3  PRunListCollection.h
4 
5  Author: Andreas Suter
6  e-mail: andreas.suter@psi.ch
7 
8 ***************************************************************************/
9 
10 /***************************************************************************
11  * Copyright (C) 2007-2023 by Andreas Suter *
12  * andreas.suter@psi.ch *
13  * *
14  * This program is free software; you can redistribute it and/or modify *
15  * it under the terms of the GNU General Public License as published by *
16  * the Free Software Foundation; either version 2 of the License, or *
17  * (at your option) any later version. *
18  * *
19  * This program is distributed in the hope that it will be useful, *
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
22  * GNU General Public License for more details. *
23  * *
24  * You should have received a copy of the GNU General Public License *
25  * along with this program; if not, write to the *
26  * Free Software Foundation, Inc., *
27  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
28  ***************************************************************************/
29 
30 #ifndef _PRUNLISTCOLLECTION_H_
31 #define _PRUNLISTCOLLECTION_H_
32 
33 #include <vector>
34 
35 #include "PMusr.h"
36 #include "PMsrHandler.h"
37 #include "PRunDataHandler.h"
38 #include "PRunSingleHisto.h"
39 #include "PRunSingleHistoRRF.h"
40 #include "PRunAsymmetry.h"
41 #include "PRunAsymmetryRRF.h"
42 #include "PRunAsymmetryBNMR.h"
43 #include "PRunMuMinus.h"
44 #include "PRunNonMusr.h"
45 
50 {
51  public:
52  PRunListCollection(PMsrHandler *msrInfo, PRunDataHandler *data, Bool_t theoAsdata=false);
53  virtual ~PRunListCollection();
54 
56 
57  virtual Bool_t Add(Int_t runNo, EPMusrHandleTag tag);
58 
59  virtual void SetFitRange(const PDoublePairVector fitRange);
60  virtual void SetFitRange(const TString fitRange);
61 
62  virtual Double_t GetSingleHistoChisq(const std::vector<Double_t>& par) const;
63  virtual Double_t GetSingleHistoRRFChisq(const std::vector<Double_t>& par) const;
64  virtual Double_t GetAsymmetryChisq(const std::vector<Double_t>& par) const;
65  virtual Double_t GetAsymmetryRRFChisq(const std::vector<Double_t>& par) const;
66  virtual Double_t GetAsymmetryBNMRChisq(const std::vector<Double_t>& par) const;
67  virtual Double_t GetMuMinusChisq(const std::vector<Double_t>& par) const;
68  virtual Double_t GetNonMusrChisq(const std::vector<Double_t>& par) const;
69 
70  virtual Double_t GetSingleRunChisqExpected(const std::vector<Double_t>& par, const UInt_t idx) const;
71  virtual Double_t GetSingleRunChisq(const std::vector<Double_t>& par, const UInt_t idx) const;
72 
73  virtual Double_t GetSingleHistoMaximumLikelihood(const std::vector<Double_t>& par) const;
74  virtual Double_t GetSingleHistoRRFMaximumLikelihood(const std::vector<Double_t>& par) const;
75  virtual Double_t GetAsymmetryMaximumLikelihood(const std::vector<Double_t>& par) const;
76  virtual Double_t GetAsymmetryRRFMaximumLikelihood(const std::vector<Double_t>& par) const;
77  virtual Double_t GetAsymmetryBNMRMaximumLikelihood(const std::vector<Double_t>& par) const;
78  virtual Double_t GetMuMinusMaximumLikelihood(const std::vector<Double_t>& par) const;
79  virtual Double_t GetNonMusrMaximumLikelihood(const std::vector<Double_t>& par) const;
80 
81  virtual Double_t GetSingleRunMaximumLikelihoodExpected(const std::vector<Double_t>& par, const UInt_t idx) const;
82  virtual Double_t GetSingleRunMaximumLikelihood(const std::vector<Double_t>& par, const UInt_t idx) const;
83 
84  virtual UInt_t GetNoOfBinsFitted(const UInt_t idx) const;
85  virtual UInt_t GetTotalNoOfBinsFitted() const;
86 
87  virtual UInt_t GetNoOfSingleHisto() const { return fRunSingleHistoList.size(); }
88  virtual UInt_t GetNoOfSingleHistoRRF() const { return fRunSingleHistoRRFList.size(); }
89  virtual UInt_t GetNoOfAsymmetry() const { return fRunAsymmetryList.size(); }
90  virtual UInt_t GetNoOfAsymmetryRRF() const { return fRunAsymmetryRRFList.size(); }
91  virtual UInt_t GetNoOfAsymmetryBNMR() const { return fRunAsymmetryBNMRList.size(); }
92  virtual UInt_t GetNoOfMuMinus() const { return fRunMuMinusList.size(); }
93  virtual UInt_t GetNoOfNonMusr() const { return fRunNonMusrList.size(); }
94 
95  virtual PRunData* GetSingleHisto(UInt_t index, EDataSwitch tag=kIndex);
96  virtual PRunData* GetSingleHistoRRF(UInt_t index, EDataSwitch tag=kIndex);
97  virtual PRunData* GetAsymmetry(UInt_t index, EDataSwitch tag=kIndex);
98  virtual PRunData* GetAsymmetryRRF(UInt_t index, EDataSwitch tag=kIndex);
99  virtual PRunData* GetAsymmetryBNMR(UInt_t index, EDataSwitch tag=kIndex);
100  virtual PRunData* GetMuMinus(UInt_t index, EDataSwitch tag=kIndex);
101  virtual PRunData* GetNonMusr(UInt_t index, EDataSwitch tag=kIndex);
102 
103  virtual const PDoublePairVector *GetTemp(const TString &runName) const;
104  virtual Double_t GetField(const TString &runName) const;
105  virtual Double_t GetEnergy(const TString &runName) const;
106  virtual const Char_t* GetSetup(const TString &runName) const;
107  virtual const Char_t* GetXAxisTitle(const TString &runName, const UInt_t idx) const;
108  virtual const Char_t* GetYAxisTitle(const TString &runName, const UInt_t idx) const;
109 
110  private:
111  Bool_t fTheoAsData;
114 
115  std::vector<PRunSingleHisto*> fRunSingleHistoList;
116  std::vector<PRunSingleHistoRRF*> fRunSingleHistoRRFList;
117  std::vector<PRunAsymmetry*> fRunAsymmetryList;
118  std::vector<PRunAsymmetryRRF*> fRunAsymmetryRRFList;
119  std::vector<PRunAsymmetryBNMR*> fRunAsymmetryBNMRList;
120  std::vector<PRunMuMinus*> fRunMuMinusList;
121  std::vector<PRunNonMusr*> fRunNonMusrList;
122 };
123 
124 #endif // _PRUNLISTCOLLECTION_H_
virtual PRunData * GetAsymmetry(UInt_t index, EDataSwitch tag=kIndex)
virtual Double_t GetField(const TString &runName) const
virtual UInt_t GetNoOfAsymmetryRRF() const
returns the number of asymmetry RRF data sets present in the msr-file
virtual void SetFitRange(const PDoublePairVector fitRange)
virtual Double_t GetEnergy(const TString &runName) const
virtual UInt_t GetNoOfBinsFitted(const UInt_t idx) const
virtual Double_t GetAsymmetryMaximumLikelihood(const std::vector< Double_t > &par) const
virtual Bool_t Add(Int_t runNo, EPMusrHandleTag tag)
virtual Double_t GetMuMinusMaximumLikelihood(const std::vector< Double_t > &par) const
virtual UInt_t GetNoOfSingleHistoRRF() const
returns the number of single histogram RRF data sets present in the msr-file
std::vector< PRunAsymmetry * > fRunAsymmetryList
stores all processed asymmetry data
virtual Double_t GetSingleHistoChisq(const std::vector< Double_t > &par) const
std::vector< PRunSingleHisto * > fRunSingleHistoList
stores all processed single histogram data
virtual UInt_t GetNoOfMuMinus() const
returns the number of mu minus data sets present in the msr-file
PRunDataHandler * fData
pointer to the run-data handler
virtual PRunData * GetMuMinus(UInt_t index, EDataSwitch tag=kIndex)
virtual PRunData * GetAsymmetryRRF(UInt_t index, EDataSwitch tag=kIndex)
virtual Double_t GetNonMusrMaximumLikelihood(const std::vector< Double_t > &par) const
virtual Double_t GetNonMusrChisq(const std::vector< Double_t > &par) const
virtual UInt_t GetTotalNoOfBinsFitted() const
PRunListCollection(PMsrHandler *msrInfo, PRunDataHandler *data, Bool_t theoAsdata=false)
virtual Double_t GetAsymmetryRRFMaximumLikelihood(const std::vector< Double_t > &par) const
virtual PRunData * GetSingleHisto(UInt_t index, EDataSwitch tag=kIndex)
std::vector< PRunMuMinus * > fRunMuMinusList
stores all processed mu-minus data
Bool_t fTheoAsData
if true: calculate theory points only at the data points
virtual UInt_t GetNoOfAsymmetryBNMR() const
returns the number of asymmetry BNMR data sets present in the msr-file
virtual Double_t GetAsymmetryBNMRChisq(const std::vector< Double_t > &par) const
std::vector< PRunAsymmetryBNMR * > fRunAsymmetryBNMRList
stores all processed asymmetry BNMR data
virtual Double_t GetSingleRunMaximumLikelihoodExpected(const std::vector< Double_t > &par, const UInt_t idx) const
virtual const Char_t * GetXAxisTitle(const TString &runName, const UInt_t idx) const
virtual Double_t GetSingleRunChisq(const std::vector< Double_t > &par, const UInt_t idx) const
virtual PRunData * GetNonMusr(UInt_t index, EDataSwitch tag=kIndex)
virtual Double_t GetAsymmetryBNMRMaximumLikelihood(const std::vector< Double_t > &par) const
std::vector< PRunAsymmetryRRF * > fRunAsymmetryRRFList
stores all processed asymmetry RRF data
std::vector< PRunSingleHistoRRF * > fRunSingleHistoRRFList
stores all processed single histogram RRF data
EPMusrHandleTag
Definition: PMusr.h:220
virtual const Char_t * GetYAxisTitle(const TString &runName, const UInt_t idx) const
virtual PRunData * GetSingleHistoRRF(UInt_t index, EDataSwitch tag=kIndex)
virtual Double_t GetMuMinusChisq(const std::vector< Double_t > &par) const
std::vector< PDoublePair > PDoublePairVector
Definition: PMusr.h:208
virtual Double_t GetAsymmetryChisq(const std::vector< Double_t > &par) const
virtual const Char_t * GetSetup(const TString &runName) const
virtual UInt_t GetNoOfNonMusr() const
returns the number of non-muSR data sets present in the msr-file
virtual PRunData * GetAsymmetryBNMR(UInt_t index, EDataSwitch tag=kIndex)
virtual Double_t GetSingleHistoMaximumLikelihood(const std::vector< Double_t > &par) const
virtual Double_t GetSingleHistoRRFChisq(const std::vector< Double_t > &par) const
virtual Double_t GetSingleHistoRRFMaximumLikelihood(const std::vector< Double_t > &par) const
virtual Double_t GetSingleRunChisqExpected(const std::vector< Double_t > &par, const UInt_t idx) const
virtual const PDoublePairVector * GetTemp(const TString &runName) const
virtual Double_t GetAsymmetryRRFChisq(const std::vector< Double_t > &par) const
std::vector< PRunNonMusr * > fRunNonMusrList
stores all processed non-muSR data
virtual UInt_t GetNoOfSingleHisto() const
returns the number of single histogram data sets present in the msr-file
virtual Double_t GetSingleRunMaximumLikelihood(const std::vector< Double_t > &par, const UInt_t idx) const
virtual UInt_t GetNoOfAsymmetry() const
returns the number of asymmetry data sets present in the msr-file
PMsrHandler * fMsrInfo
pointer to the msr-file handler