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

# User Rev Content
1 yangyong 1.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