ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/yangyong/zSelection/usefullcoderoofit.cc
Revision: 1.1
Committed: Fri Sep 30 15:23:49 2011 UTC (13 years, 7 months ago) by yangyong
Content type: text/plain
Branch: MAIN
CVS Tags: V01-00-01, V01-00-00, HEAD
Log Message:
z selection code

File Contents

# Content
1
2
3
4 /////simply copy and scale weight
5 RooDataSet *cwdset(RooDataSet *indata, RooRealVar *mvar, RooRealVar *wvar, TString name, double vmin, double vmax,Double_t weightscale) {
6
7 RooDataSet *outdata = new RooDataSet(name,"",RooArgList(*mvar,*wvar),wvar->GetName());
8 for (Int_t ient=0; ient<indata->numEntries(); ++ient) {
9 const RooArgSet *ent = indata->get(ient);
10 double val = static_cast<RooAbsReal*>(ent->find(mvar->GetName()))->getVal();
11
12
13 if( val > 700){
14 cout<<"val " << val <<endl;
15 }
16
17 if( val >vmin && val < vmax){
18 mvar->setVal(val);
19 outdata->add(*mvar,weightscale*indata->weight());
20 //cout<<"val " << val <<" "<< indata ->weight()<<endl;
21 }
22 }
23
24 return outdata;
25
26 }
27
28
29 TH1F *convertRooDataSetToTH1F(RooDataSet *indata,RooRealVar *mvar, TString name, double vmin, double vmax,Double_t weightscale){
30 TH1F *outdata = new TH1F(name,name,60,vmin,vmax);
31 for (Int_t ient=0; ient<indata->numEntries(); ++ient) {
32 const RooArgSet *ent = indata->get(ient);
33 double val = static_cast<RooAbsReal*>(ent->find(mvar->GetName()))->getVal();
34 if( val >vmin && val < vmax){
35 //mvar->setVal(val);
36 //outdata->add(*mvar,weightscale*indata->weight());
37 outdata->Fill(val,weightscale*indata->weight());
38 //cout<<"val " << val <<" "<< indata ->weight()<<endl;
39 }
40 }
41
42 return outdata;
43
44 }
45
46
47 /////simply copy and scale weight
48 RooDataSet *cwdsetv1(RooDataSet *indata, RooRealVar *mvar, RooRealVar *wvar, TString name, double vmin, double vmax,Double_t weightscale, double scaleMass) {
49
50 RooDataSet *outdata = new RooDataSet(name,"",RooArgList(*mvar,*wvar),wvar->GetName());
51 for (Int_t ient=0; ient<indata->numEntries(); ++ient) {
52 const RooArgSet *ent = indata->get(ient);
53 double val = static_cast<RooAbsReal*>(ent->find(mvar->GetName()))->getVal();
54 val *= scaleMass;
55 if( val >vmin && val < vmax){
56 mvar->setVal(val);
57 outdata->add(*mvar,weightscale*indata->weight());
58 //cout<<"val " << val <<" "<< indata ->weight()<<endl;
59 }
60 }
61
62 return outdata;
63
64 }
65
66 /////simply copy , choose weight ( for data , choose runNumber)
67 RooDataSet *cwdsetv2(RooDataSet *indata, RooRealVar *mvar, RooRealVar *wvar, TString name, double vmin, double vmax,double wmin, double wmax,Double_t weightscale, double scaleMass) {
68
69 RooDataSet *outdata = new RooDataSet(name,"",RooArgList(*mvar,*wvar),wvar->GetName());
70 for (Int_t ient=0; ient<indata->numEntries(); ++ient) {
71 const RooArgSet *ent = indata->get(ient);
72 double val = static_cast<RooAbsReal*>(ent->find(mvar->GetName()))->getVal();
73 val *= scaleMass;
74 if(indata->weight() >= wmin && indata->weight() <= wmax && val >vmin && val < vmax){
75 mvar->setVal(val);
76 outdata->add(*mvar,weightscale*1);
77 //cout<<"val " << val <<" "<< indata ->weight()<<endl;
78 }
79 }
80
81 return outdata;
82
83 }
84
85
86 /// addpend and scalw weight
87 void appendcwd(RooDataSet *outdata, RooDataSet *indata, RooRealVar *mvar, RooRealVar *wvar, double vmin, double vmax,Double_t weightscale) {
88
89
90
91 for (Int_t ient=0; ient<indata->numEntries(); ++ient) {
92 const RooArgSet *ent = indata->get(ient);
93 double val = static_cast<RooAbsReal*>(ent->find(mvar->GetName()))->getVal();
94 if(val >vmin && val < vmax){
95 mvar->setVal(val);
96
97 //cout<<"check " << val <<" " << indata->weight()<<endl;
98
99 outdata->add(*mvar,weightscale*indata->weight());
100 }
101 // if( ient < 10) cout<<"checke " << mvar->getVal()<<" "<< indata->weight() <<endl;
102
103 }
104 ///return outdata;
105 }
106
107
108
109
110 /// addpend and scalw weight
111 void printRooDataSetToFile(RooDataSet *indata, RooRealVar *mvar, RooRealVar *wvar, char *filename) {
112
113 ofstream testme(filename,ios::out);
114
115 for (Int_t ient=0; ient<indata->numEntries(); ++ient) {
116 const RooArgSet *ent = indata->get(ient);
117 double val = static_cast<RooAbsReal*>(ent->find(mvar->GetName()))->getVal();
118 testme<< val<<" "<< indata->weight() <<endl;
119
120 }
121 ///return outdata;
122 }
123
124
125