00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "TLimitDataSource.h"
00013 #include "TH1.h"
00014 #include "TVectorD.h"
00015 #include "TObjString.h"
00016 #include "TRandom3.h"
00017
00018 ClassImp(TLimitDataSource)
00019
00020 TLimitDataSource::TLimitDataSource()
00021 {
00022
00023 fDummyTA.SetOwner();
00024 fDummyIds.SetOwner();
00025 }
00026
00027 TLimitDataSource::TLimitDataSource(TH1 * s, TH1 * b, TH1 * d)
00028 {
00029
00030
00031 fDummyTA.SetOwner();
00032 fDummyIds.SetOwner();
00033 AddChannel(s, b, d);
00034 }
00035
00036 TLimitDataSource::TLimitDataSource(TH1 * s, TH1 * b, TH1 * d,
00037 TVectorD * es, TVectorD * eb, TObjArray * names)
00038 {
00039
00040
00041 fDummyTA.SetOwner();
00042 fDummyIds.SetOwner();
00043 AddChannel(s, b, d, es, eb, names);
00044 }
00045
00046 void TLimitDataSource::AddChannel(TH1 * s, TH1 * b, TH1 * d)
00047 {
00048
00049
00050 TVectorD *empty;
00051 TRandom3 generator;
00052 fSignal.AddLast(s);
00053 fBackground.AddLast(b);
00054 fCandidates.AddLast(d);
00055 char rndname[20];
00056 snprintf(rndname,20, "rndname%f", generator.Rndm());
00057 empty = new TVectorD(1);
00058 fErrorOnSignal.AddLast(empty);
00059 fDummyTA.AddLast(empty);
00060 snprintf(rndname,20, "rndname%f", generator.Rndm());
00061 empty = new TVectorD(1);
00062 fErrorOnBackground.AddLast(empty);
00063 fDummyTA.AddLast(empty);
00064 TObjArray *dummy = new TObjArray(0);
00065 fIds.AddLast(dummy);
00066 fDummyIds.AddLast(dummy);
00067 }
00068
00069 void TLimitDataSource::AddChannel(TH1 * s, TH1 * b, TH1 * d, TVectorD * es,
00070 TVectorD * eb, TObjArray * names)
00071 {
00072
00073
00074
00075
00076
00077
00078
00079 fSignal.AddLast(s);
00080 fBackground.AddLast(b);
00081 fCandidates.AddLast(d);
00082 fErrorOnSignal.AddLast(es);
00083 fErrorOnBackground.AddLast(eb);
00084 fIds.AddLast(names);
00085 }
00086
00087 void TLimitDataSource::SetOwner(bool swtch)
00088 {
00089
00090
00091
00092
00093 fSignal.SetOwner(swtch);
00094 fBackground.SetOwner(swtch);
00095 fCandidates.SetOwner(swtch);
00096 fErrorOnSignal.SetOwner(swtch);
00097 fErrorOnBackground.SetOwner(swtch);
00098 fIds.SetOwner(swtch);
00099 fDummyTA.SetOwner(!swtch);
00100 fDummyIds.SetOwner(!swtch);
00101 }
00102