本文整理汇总了C++中TProfile::SetLineColor方法的典型用法代码示例。如果您正苦于以下问题:C++ TProfile::SetLineColor方法的具体用法?C++ TProfile::SetLineColor怎么用?C++ TProfile::SetLineColor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TProfile
的用法示例。
在下文中一共展示了TProfile::SetLineColor方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: flavor_ana
void flavor_ana(int doMC=1,
const char * JecType = "abs",
const char * inFile0Name="../outputs/jetSkimRelValQCD_Pt_80_120_sw354-JEC_Summer09_7TeV_ReReco332.root",
const char * inFile1Name="djtree_JEC_Summer09_7TeV_ReReco332.root")
{
// Define Inputs
cout << "======= Inputs: ========" << endl;
//cout << "Inclusive jets: " << inFile0Name << endl;
//cout << "Dijets: " << inFile1Name << endl;
//TFile * inFile0 = new TFile(inFile0Name);
//TFile * inFile1 = new TFile(inFile1Name);
TFile * inFile0 = new TFile("../outputs/jetSkimRelValQCD_Pt_80_120_sw354-JEC_Summer09_7TeV_ReReco332.root");
TFile * inFile1 = new TFile(Form("djtree_JEC_Summer09_7TeV_ReReco332_%s.root",JecType));
TTree * Events;
inFile0->GetObject("Events",Events);
TTree * djtree;
inFile1->GetObject("djtree",djtree);
aliases(Events);
// === Dijets ===
cout << endl << "================ dijets ==============" << endl;
Int_t numPreSelEvtl = djtree->GetEntries("vz>-99");
cout << "Events:" << endl;
cout << "- with none-fake vtx: " << numPreSelEvtl << endl;
// - selection -
TCut evtSelDj("nlpet>80 && nlpet<120 && alpet>80 && jdphi>2.8");
TCut evtSelDj2("nlpet>80 && nlpet<120 && alpet>80 && jdphi>3.0");
Int_t numSelEvt1 = djtree->GetEntries(evtSelDj);
cout << "- Passing sel: " << numSelEvt1 << endl;
Int_t numSelEvt2 = djtree->GetEntries(evtSelDj2);
cout << "- Passing diphi sel: " << numSelEvt2 << endl;
// === flavor studies ===
TProfile * hNrJFlav = new TProfile("hNrJFlav","flavor",10,85,110);
hNrJFlav->SetMarkerColor(kRed);
hNrJFlav->SetLineColor(kRed);
hNrJFlav->SetMarkerStyle(kOpenCircle);
hNrJFlav->SetMinimum(0.);
hNrJFlav->SetMaximum(0.7);
hNrJFlav->SetTitle(";p_{T}^{gen jet};q jet fraction");
TProfile * hAwJFlav = (TProfile*)hNrJFlav->Clone("hAwJFlav");
hAwJFlav->SetMarkerColor(kBlue);
hAwJFlav->SetLineColor(kBlue);
TCanvas * cJFlav = new TCanvas("cJFlav","cJFlav",500,500);
TCut matParton("nlpstat>-99&&alpstat>-99");
djtree->Draw("(abs(nlpid)<6):nlpet>>hNrJFlav",evtSelDj&&matParton,"prof");
djtree->Draw("(abs(alpid)<6):alpet>>hAwJFlav",evtSelDj&&matParton,"prof same");
TLegend *leg2 = new TLegend(0.605,0.216,0.905,0.369,NULL,"brNDC");
leg2->SetFillColor(0);
leg2->SetBorderSize(0);
leg2->SetTextSize(0.03);
leg2->AddEntry(hNrJFlav,"Di-Jets, Near Jet","p");
leg2->AddEntry(hAwJFlav,"Di-Jets, Away Jet","p");
leg2->Draw();
cJFlav->Print("plots/cDJFlavor.gif");
}
示例2: overlayTProfiles
TProfile* overlayTProfiles(TH2F* hdata, TH2F* hdy, float ymin, float ymax, TString savename)
{
// See how the mean of the dimumass changes vs some variable by making TProfiles of a 2D histogram with the Dimu mass as the y axis.
// Compare data to MC and save the results as png files.
TString dataname = TString("Golden_JSON_DoubleMuon_Data");
TString dyname = TString("Drell_Yan_Monte_Carlo_2015");
// Make TProfiles from them to see how the mean changes vs the x variable.
TProfile* pdata = hdata->ProfileX();
pdata->SetLineColor(1);
pdata->SetLineWidth(3);
pdata->SetTitle(hdata->GetTitle());
pdata->GetYaxis()->SetTitle(hdata->GetYaxis()->GetTitle());
TProfile* pdy = hdy->ProfileX();
pdy->SetLineColor(2);
pdy->SetLineWidth(3);
pdy->SetTitle(hdy->GetTitle());
pdy->GetYaxis()->SetTitle(hdy->GetYaxis()->GetTitle());
std::cout<< "hdata: " << hdata << std::endl;
std::cout<< "hdy: " << hdy << std::endl;
std::cout<< "pdata: " << pdata << std::endl;
std::cout<< "pdy: " << pdy << std::endl;
TCanvas* c = new TCanvas();
c->SetGridx(kTRUE);
c->SetGridy(kTRUE);
// Draw data and MC on the same plot
// Have to draw the same plots twice to get error bars and a curve through the error bars.
c->cd();
// hdata->Draw("colz");
pdata->SetAxisRange(ymin,ymax,"Y");
pdata->Draw("hist c");
pdata->Draw("E X0 same");
pdy->Draw("hist c same");
pdy->Draw("E X0 same");
// Stat box alignment
DiMuPlottingSystem* dps = new DiMuPlottingSystem();
dps->arrangeStatBox(c);
// Legend
TLegend* l = new TLegend(0.15, 0.15, 0.7, 0.25, "", "brNDC");
l->AddEntry(pdata, dataname, "l");
l->AddEntry(pdy, dyname, "l");
l->Draw("same");
c->Print(savename);
return pdata;
}
示例3: plotAndProfileXSpread
// Draw a 2-D plot within the specified Y range and superimpose its X profile,
// setting as sigmas that of the fit (and not the error of the mean)
void plotAndProfileXSpread (TH2* h2, float min, float max, bool profile=false, float ymin=-5., float ymax=5.) {
setStyle(h2);
gPad->SetGrid(1,1);
gStyle->SetGridColor(15);
gStyle->SetOptStat(0);
// h2->RebinX(3);
// h2->RebinY(2);
// h2->SetXTitle("distance from anode (cm)");
// h2->SetYTitle("(d_{reco}-d_{sim})/#sigma_{reco}");
h2->SetMarkerColor(2);
h2->SetLineColor(2);
h2->GetYaxis()->SetTitleOffset(1.4);
h2->GetXaxis()->SetRangeUser(min,max);
h2->GetYaxis()->SetRangeUser(ymin,ymax);
h2->DrawCopy("box");
if (profile) {
TProfile* prof = h2->ProfileX("profile",-1,-1,"s");
prof->SetMarkerStyle(20);
prof->SetMarkerSize(1.2);
prof->SetMarkerColor(1);
prof->SetLineColor(1);
prof->SetLineWidth(2);
prof->DrawCopy("same e1");
delete prof;
}
TLine * l = new TLine(h2->GetXaxis()->GetXmin(),0,h2->GetXaxis()->GetXmax(),0);
l->SetLineColor(3);
l->Draw();
}
示例4: rotate2DN
void rotate2DN(const char* filename,int detNum){
TFile *f = new TFile(filename);
TCanvas* cnew= new TCanvas("cnew","",800.,500.);
cnew->cd();
stringstream sss;
sss<<"Transposed-"<<filename;
TFile f1(sss.str().c_str(),"RECREATE");
for (int i=0;i<detNum;i++){
stringstream orig ;
orig<<"hNc"<<i ;
TH2D* h1=(TH2D*)f->Get(orig.str().c_str());
string gname = h1->GetTitle();
stringstream hname ;
hname<<"hN"<<i;
TH2D* Hnew = new TH2D(hname.str().c_str(),gname.c_str(),1700.,0.,1700.,8000.,0.,8000.);
for (int x=0;x<8000;x++){
for (int y=0;y<1600;y++){
int bin = h1->GetBinContent(x,y);
Hnew->Fill(y,x,bin);
}
}
cout<<"Histogram Number "<<i<<" transpose completed"<<endl;
cnew->cd();
Hnew->SetMinimum(7);
Hnew->GetYaxis()->SetRangeUser(1300,1600);
Hnew->GetYaxis()->SetTitle("Energy (keV)");
Hnew->GetXaxis()->SetTitle("Cycle Number");
Hnew->Draw("COLZ");
TCutG *cutg = new TCutG("NaIcut1",5);
cutg->SetVarX("y");
cutg->SetVarY("x");
cutg->SetPoint(0,0,1350);
cutg->SetPoint(1,1500,1350);
cutg->SetPoint(2,1500,1500);
cutg->SetPoint(3,0,1500);
cutg->SetPoint(4,0,1350);
TProfile *profx = Hnew->ProfileX(Form("profx_%d",i),1,-1,"[NaIcut1]");
profx->SetLineColor(kRed);
profx->Draw("same");
cnew->Update();
gname = gname + ".pdf";
cnew->SaveAs(gname.c_str());
}
f1.Write();
}
示例5: QAoccupancy
void QAoccupancy(const Char_t *fdata, const Char_t *fmc)
{
style();
TFile *fdtin = TFile::Open(fdata);
TList *ldtin = (TList *)fdtin->Get("clist");
TH2 *hdtin = (TH2 *)ldtin->FindObject("NClustersSPD2");
TProfile *pdtin = hdtin->ProfileY("pdtin_clusters");
pdtin->SetMarkerStyle(20);
pdtin->SetMarkerSize(2);
pdtin->SetMarkerColor(kAzure-3);
TFile *fmcin = TFile::Open(fmc);
TList *lmcin = (TList *)fmcin->Get("clist");
TH2 *hmcin = (TH2 *)lmcin->FindObject("NClustersSPD2");
TProfile *pmcin = hmcin->ProfileY("pmcin_clusters");
pmcin->SetMarkerStyle(25);
pmcin->SetMarkerSize(2);
pmcin->SetMarkerColor(kRed+1);
TCanvas *c = new TCanvas("cOccupancy", "cOccupancy", 800, 800);
c->SetLogy();
TH1 * hfr = c->DrawFrame(-0.5, 2., 10.5, 500.);
DrawBinLabelsX(hfr, kTRUE);
hfr->SetTitle(";;#LT#it{N}_{clusters,SPD-1}#GT");
pdtin->DrawCopy("same");
pmcin->DrawCopy("same");
TLegend *legend = new TLegend(0.20, 0.18, 0.50, 0.30);
legend->SetFillColor(0);
legend->SetBorderSize(0);
legend->SetTextFont(42);
legend->SetTextSize(0.04);
legend->AddEntry(pdtin, "data", "pl");
legend->AddEntry(pmcin, "Monte Carlo", "pl");
legend->Draw("same");
c->SaveAs(canvasPrefix+"occupancy.pdf");
return;
TCanvas *cr = new TCanvas("cOccupancyr", "cOccupancyr", 800, 800);
// hfr = cr->DrawFrame(-0.5, 0.75, 10.5, 1.25);
// DrawBinLabelsX(hfr, kTRUE);
// hfr->SetTitle(";;#LT#it{N}_{clusters,SPD-1}#GT ratio");
pdtin->SetLineColor(kAzure-3);
pdtin->SetLineWidth(3);
pdtin->Divide(pmcin);
pdtin->Draw("same,histo");
legend = new TLegend(0.505025, 0.760673, 0.805276, 0.930142);
legend->SetFillColor(0);
legend->SetBorderSize(0);
legend->SetTextFont(42);
legend->SetTextSize(0.04);
legend->AddEntry(pdtin, "data / Monte Carlo", "l");
legend->Draw("same");
cr->SaveAs(canvasPrefix+"occupancyr.pdf");
}
示例6: compareTPCTOF
void compareTPCTOF(Int_t icentr,Int_t spec,Int_t arm,Float_t pTh,Int_t addbin){
LoadLib();
Float_t ptMaxFit[8] = {20,0.7,0.55,1.2,2,2,2,2};
TProfile *pTPC = extractFlowVZEROsingle(icentr,spec,arm,0,pTh,addbin,"TPC",0,0,-1,-1+2*(spec!=3)); // TPC && !TOF (TPC PID)
TProfile *pTPC2 = extractFlowVZEROsingle(icentr,spec,arm,0,pTh,addbin,"TPCextra",2,2,-1,-1+2*(spec!=3)); //TPC && TOF (TPC PID)
TProfile *pTOF = extractFlowVZEROsingle(icentr,spec,arm,0,pTh,addbin,"TOF",1,1,-1,-1+2*(spec!=3)); //TPC && TOF (TPC&TOF PID)
if(spec > 0) pTPC->Add(pTPC2);
else pTPC->Add(pTOF);
char name[100];
snprintf(name,100,"NUO_%i",spec);
hNUO[spec] = pTPC->ProjectionX(name);
hNUO[spec]->Add(pTOF,-1);
if(spec && hNUO[0]) hNUO[spec]->Add(hNUO[0],-1);
if(! kCleanMemory){
new TCanvas();
pTPC->Draw();
pTOF->Draw("SAME");
new TCanvas();
pTPC->SetLineColor(1);
pTOF->SetLineColor(2);
}
hNUO[spec]->Draw();
if(kCleanMemory){
if(pTPC) delete pTPC;
if(pTPC2) delete pTPC2;
if(pTOF) delete pTOF;
}
}
示例7: plotAndProfileX
void plotAndProfileX (TH2* h2, float min, float max, bool profile) {
setStyle(h2);
gPad->SetGrid(1,1);
gStyle->SetGridColor(15);
h2->GetYaxis()->SetRangeUser(min,max);
h2->Draw();
if (profile) {
TProfile* prof = h2->ProfileX();
prof->SetMarkerColor(2);
prof->SetLineColor(2);
prof->Draw("same");
}
TLine * l = new TLine(h2->GetXaxis()->GetXmin(),0,h2->GetXaxis()->GetXmax(),0);
l->SetLineColor(3);
l->Draw();
}
示例8: show_mass_dist
void show_mass_dist()
{
TFile *file_f = new TFile("particle_mass_dist.root");
TH2F *hm = (TH2F *) file_f->Get("mass_dist");
TProfile *pm = (TProfile *) file_f->Get("mass_dist_p");
TCanvas *cm = new TCanvas("cm", "Mass", 1000, 500);
cm->Divide(2, 1);
pm->SetLineColor(4);
cm->cd(1);
hm->Draw();
cm->cd(2)->SetBorderMode(0);
pm->Draw();
}
示例9: getProfile
//------------------------------------------------------------//
// Get TProfile
//------------------------------------------------------------//
TProfile* getProfile(TFile* file, TString pname, TString xtitle,
TString ytitle, int color, int marker)
{
TProfile* prof = (TProfile*) (file->Get(pname.Data())->Clone(Form("%s_%i",pname.Data(),color)));
prof->GetXaxis()->SetTitle(xtitle.Data());
prof->GetYaxis()->SetTitle(ytitle.Data());
prof->SetMarkerStyle(marker);
prof->SetMarkerColor(color);
//prof->SetMarkerSize(0.5);
prof->SetLineColor(color);
prof->SetTitle("");
prof->SetStats(0);
prof->GetYaxis()->SetTitleOffset(1.5);
return prof;
}
示例10: plotIsoPerformance
TProfile* plotIsoPerformance( TFile* ftt,
const char* signal, // histogram name
const char* background, // histogram name
const char* name, // unique name
bool reverse = false, // normally signal near zero bin, reverse means signal is around max bin
double bkg_eff_min = 0,
double bkg_eff_max = 1,
double sig_eff_min = 0,
double sig_eff_max = 0
)
{
TH1F* S = dynamic_cast<TH1F*>(ftt->Get(signal));
if ( ! S ) {
std::cout << "Error: histogram not found " << signal << std::endl;
return 0;
}
TH1F* B = dynamic_cast<TH1F*>(ftt->Get(background));
if ( ! B ) {
std::cout << "Error: histogram not found " << background << std::endl;
return 0;
}
char buf[1024];
sprintf(buf,"c_%s",name);
// TCanvas* c = new TCanvas(buf,buf,500,500);
sprintf(buf,"p_%s",name);
TProfile* p = new TProfile(buf,buf,50,bkg_eff_min,bkg_eff_max,sig_eff_min,sig_eff_max);
p->SetLineColor(kBlue);
p->SetLineWidth(2);
p->SetMarkerStyle(20);
p->SetMarkerSize(1);
p->GetXaxis()->SetTitle("Background Efficiency");
p->GetYaxis()->SetTitle("Signal Efficiency");
p->SetStats(kFALSE);
for( int i=0;i<=S->GetNbinsX()+1; ++i )
if ( reverse )
p->Fill(B->Integral(i,B->GetNbinsX()+1)/B->Integral(0,B->GetNbinsX()+1),
S->Integral(i,S->GetNbinsX()+1)/S->Integral(0,S->GetNbinsX()+1));
else
p->Fill(B->Integral(0,i)/B->Integral(0,B->GetNbinsX()+1),
S->Integral(0,i)/S->Integral(0,S->GetNbinsX()+1));
// p->Draw();
return p;
}
示例11: getMixProfile
//----------------------------------------//
// Get profile from all events mixed
//----------------------------------------//
TProfile* getMixProfile(TFile* file, int nbins,
float xmin, float xmax,
int color, int marker)
{
// Histograms all have same base name
string base = "h_evt";
// String stream easy for manipulation
stringstream ss;
// Create Profile
TProfile* p = new TProfile("mixed","",nbins,xmin,xmax);
p->SetMarkerSize(0.75);
p->SetMarkerStyle(marker);
p->SetMarkerColor(color);
p->SetLineColor(color);
// Now loop over events and get result
TH1F* h = NULL;
for(int i=0; i<m_nEvent; ++i){
ss.str("");
ss << base << i;
h = (TH1F*) file->Get(ss.str().c_str());
// Loop over bin content
for(int bin=1; bin<=h->GetNbinsX(); ++bin){
float content = h->GetBinContent(bin);
float center = h->GetBinCenter(bin);
p->Fill(center, content);
}
h = NULL;
}// end loop events
return p;
}
示例12: plotAnaMult4
void plotAnaMult4(char *infname="ana.root")
{
TFile *inf = new TFile(infname);
TTree *tData = (TTree*) inf->Get("Data_tree");
TTree *tMC = (TTree*) inf->Get("MC_tree");
TTree *tPP = (TTree*) inf->Get("PP_tree");
TCanvas *c1 = new TCanvas("c","",1200,700);
// c->Divide(4,1);
TCut recoCut = "leadingJetPt>120&&subleadingJetPt>50&&dphi>5*3.14159265358979/6.&&abs(leadingJetEta)<1.6&&abs(subleadingJetEta)<1.6";
TCut genCut = "genleadingJetPt>120&&gensubleadingJetPt>50&&genDphi>5*3.14159265358979/6.&&abs(genleadingJetEta)<1.6&&abs(gensubleadingJetEta)<1.6";
const int nPtBin=5;
Float_t PtBins[nPtBin+1] = {0.001,0.5,1,1.5,2,3.2};
Int_t centBin[5] = {200,100,60,20,0};
makeMultiPanelCanvas(c1,4,2,0.0,0.0,0.2,0.2,0.02);
for (int i=0;i<4;i++) {
c1->cd(i+1);
TH1D * empty=new TH1D("empty","",100,0,3.19);
// empty->Fill(0.5,1000);
empty->SetMaximum(39.99);
empty->SetMinimum(0.001);
empty->SetNdivisions(105,"X");
empty->GetXaxis()->SetTitleSize(28);
empty->GetXaxis()->SetTitleFont(43);
empty->GetXaxis()->SetTitleOffset(1.8);
empty->GetXaxis()->SetLabelSize(22);
empty->GetXaxis()->SetLabelFont(43);
empty->GetYaxis()->SetTitleSize(28);
empty->GetYaxis()->SetTitleFont(43);
empty->GetYaxis()->SetTitleOffset(1.8);
empty->GetYaxis()->SetLabelSize(22);
empty->GetYaxis()->SetLabelFont(43);
empty->GetXaxis()->CenterTitle();
empty->GetYaxis()->CenterTitle();
empty->SetXTitle("#Delta#eta_{1,2}");
empty->SetYTitle("Multiplicity Difference");
TProfile *pData = new TProfile(Form("pData%d",i),"",nPtBin,PtBins);
TProfile *pMC = new TProfile(Form("pMC%d",i),"",nPtBin,PtBins);
TProfile *pPP = new TProfile(Form("pPP%d",i),"",nPtBin,PtBins);
TProfile *pGen = new TProfile(Form("pGen%d",i),"",nPtBin,PtBins);
TCut centCut = Form("hiBin>=%d&&hiBin<%d",centBin[i+1],centBin[i]);
tData->Draw(Form("-multDiff:abs(leadingJetEta-subleadingJetEta)>>pData%d",i),recoCut&¢Cut);
tPP->Draw(Form("-multDiff:abs(leadingJetEta-subleadingJetEta)>>pPP%d",i),recoCut);
tMC->Draw(Form("-multDiff:abs(leadingJetEta-subleadingJetEta)>>pMC%d",i),recoCut&¢Cut);
tMC->Draw(Form("-genMultDiff:abs(genleadingJetEta-gensubleadingJetEta)>>pGen%d",i),genCut&¢Cut);
pMC->SetLineColor(2);
pMC->SetMarkerColor(2);
pPP->SetLineColor(4);
pPP->SetMarkerColor(4);
// pData->SetAxisRange(0,50,"Y");
// pData->SetAxisRange(0,0.49,"X");
empty->Draw();
double diff=0;
if (i==0) diff=0.1;
drawText(Form("%d-%d %%",(int)(0.5*centBin[i+1]),(int)(0.5*centBin[i])),0.22+diff,0.65);
if (i==0) drawText("PbPb #sqrt{s_{NN}}=2.76 TeV 150/#mub",0.22+diff,0.85);
if (i==0) drawText("pp #sqrt{s_{NN}}=2.76 TeV 5.3/pb",0.22+diff,0.75);
if (i==3) drawText("CMS Preliminary",0.3+diff,0.85);
Float_t sys[4]={1,1,2.5,3};
for (int j=1;j<=pData->GetNbinsX();j++)
{
TBox *b = new TBox(pData->GetBinLowEdge(j),pData->GetBinContent(j)-sys[i],pData->GetBinLowEdge(j+1),pData->GetBinContent(j)+sys[i]);
//b->SetFillColor(kGray);
b->SetFillStyle(0);
b->SetLineColor(1);
b->Draw();
TBox *b2 = new TBox(pPP->GetBinLowEdge(j),pPP->GetBinContent(j)-1,pPP->GetBinLowEdge(j+1),pPP->GetBinContent(j)+1);
//b2->SetFillColor(65);
b2->SetFillStyle(0);
b2->SetLineColor(4);
b2->Draw();
}
pData->Draw("same");
pMC->Draw("same");
pPP->Draw("same");
pGen->SetMarkerColor(4);
pGen->SetMarkerStyle(24);
pData->Draw("same");
// pGen->Draw(" same");
c1->cd(5+i);
TH1D *empty2 = (TH1D*)empty->Clone("empty2");
empty2->SetYTitle("PbPb - pp");
empty2->SetMinimum(-5);
empty2->SetMaximum(+29.99);
empty2->Draw();
//.........这里部分代码省略.........
示例13: draw_clouds_profiles
//.........这里部分代码省略.........
hist2D->GetXaxis()->SetRangeUser(0,650);
hist2D->GetYaxis()->SetRangeUser(0,650);
}
else if ( kCorrType == 1 )
{
hist2D = (TH2D*)f[0]->Get( Form("hist2D_PtPt_c%.1f-%.1f_etaW_%d_phiW_%d", cBinMin, cBinMax, etaW, phiW) );
hist2D->SetTitle( "");
hist2D->GetXaxis()->SetTitle( "#LTp_{T}#GT Forward");
hist2D->GetYaxis()->SetTitle( "#LTp_{T}#GT Backward");
} hist2D->SetMarkerColor(kOrange-9+cBin);
tuneHist2D_onPad(hist2D);
hist2D->GetXaxis()->CenterTitle();
hist2D->GetYaxis()->CenterTitle();
// removeBinsWithFewEntries(hist2D);
hist2D->DrawCopy( firstDraw ? "" : "same" );
// ##### pad 2 - profiles
tunePad( canv_2D_clouds->cd(2) );
profile = hist2D->ProfileX(); //(TProfile*)f[0]->Get( Form("hist2D_c%.1f-%.1f_etaW_%d_phiW_%d_pfx", cBinMin, cBinMax, etaW, phiW) );
if ( kCorrType == 0 )
{
profile->SetTitle( "");
profile->GetYaxis()->SetTitle( "#LTN_{ch}#GT Backward");
profile->GetXaxis()->SetRangeUser(0,650);
profile->GetYaxis()->SetRangeUser(0,650);
}
else if ( kCorrType == 1 )
{
profile->SetTitle( "");
profile->GetYaxis()->SetTitle( "#LT#LTp_{T}#GT#GT Backward");
}
profile->SetLineColor(kOrange-9+cBin);
profile->SetMarkerStyle(7);
tuneProfile_onPad( profile );
profile->GetYaxis()->CenterTitle();
deleteProfileEmptyBinErrors(profile);
canv_tmp_for_fit->cd();
profile->Fit("pol1","Q");//,"",0.25,1.2);//,"N");
canv_2D_clouds->cd(2);
TF1 *fit = profile->GetFunction("pol1");
Double_t p0 = fit->GetParameter(0);
Double_t p1 = fit->GetParameter(1);
grFromFit2D->SetPoint(grFromFit2D->GetN(), (cBinMax+cBinMin)/2, p1);
double meanX = hist2D->ProjectionX()->GetMean();
double rmsX = hist2D->ProjectionX()->GetRMS();
fit->SetRange( meanX-3*rmsX, meanX+3*rmsX );
fit->SetLineColorAlpha( kRed, 0.6 );
fit->Draw("same");
profile->DrawCopy( firstDraw ? "" : "same" );
firstDraw = false;
}
TGraphErrors *grByFormula; /*[cW][etaW]*/
if ( kCorrType == 0 )
示例14: TCanvas
//.........这里部分代码省略.........
AliFlowVZEROResults *c = (AliFlowVZEROResults *) cont->At(0);
if(! kCleanMemory) c->GetV2(spec,xMin,xMax)->Draw("SAME");
}
AliFlowVZEROResults *cA;
if(fo->Get("contVZEROv2")) cA = (AliFlowVZEROResults *) cont->At(1+2*(arm==3));
else cA = (AliFlowVZEROResults *) cont->At(0);
AliFlowVZEROResults *cC;
if(fo->Get("contVZEROv2")) cC = (AliFlowVZEROResults *) cont->At(2+2*(arm==3));
else cC = (AliFlowVZEROResults *) cont->At(1);
TProfile *p1mc = cont->At(5+3*(arm==3));
TProfile *p2mc = cont->At(6+3*(arm==3));
TProfile *p3mc = cont->At(7+3*(arm==3));
Float_t resMC1=0,resMC2=0,resMC3=0;
Float_t eresMC1=0,eresMC2=0,eresMC3=0;
for(Int_t i = icentr; i <= icentr+addbin;i++){
if(p1mc->GetBinError(i+1)){
eresMC1 += 1./p1mc->GetBinError(i+1)/p1mc->GetBinError(i+1);
resMC1 += p1mc->GetBinContent(i+1)/p1mc->GetBinError(i+1)/p1mc->GetBinError(i+1);
}
if(p2mc->GetBinError(i+1)){
eresMC2 += 1./p2mc->GetBinError(i+1)/p2mc->GetBinError(i+1);
resMC2 += p2mc->GetBinContent(i+1)/p2mc->GetBinError(i+1)/p2mc->GetBinError(i+1);
}
if(p3mc->GetBinError(i+1)){
eresMC3 += 1./p3mc->GetBinError(i+1)/p3mc->GetBinError(i+1);
resMC3 += p3mc->GetBinContent(i+1)/p3mc->GetBinError(i+1)/p3mc->GetBinError(i+1);
}
}
resMC1 /= eresMC1;
resMC2 /= eresMC2;
resMC3 /= eresMC3;
eresMC1 = sqrt(1./eresMC1);
eresMC2 = sqrt(1./eresMC2);
eresMC3 = sqrt(1./eresMC3);
ppMC = cA->GetV2(spec,xMin,xMax);
ppMC2 = cC->GetV2(spec,xMin,xMax);
scaling = sqrt(resMC1*resMC3/resMC2);
ppMC->Scale(1./scaling);
err1_2 = eresMC1*eresMC1/resMC1/resMC1/4 +
eresMC2*eresMC2/resMC2/resMC2/4 +
eresMC3*eresMC3/resMC3/resMC3/4;
err2_2 = err1_2;
err1_2 /= scaling*scaling;
printf("resolution V0A (MC) = %f +/- %f\n",scaling,err1_2);
scaling = sqrt(resMC2*resMC3/resMC1);
err2_2 /= scaling*scaling;
ppMC2->Scale(1./scaling);
printf("resolution V0C (MC) =%f +/- %f\n",scaling,err2_2);
ppMC->SetName("V0Amc");
ppMC2->SetName("V0Cmc");
if(! kCleanMemory){
ppMC->Draw("SAME");
ppMC2->Draw("SAME");
}
pMc = new TProfile(*ppMC);
pMc->Add(ppMC2);
snprintf(stringa,100,"%sMC",nameSp);
pMc->SetName(stringa);
pMc->SetLineColor(2);
}
if(! kCleanMemory){
new TCanvas();
pData->Draw();
}
if(pMc && !kCleanMemory){
pMc->Draw("SAME");
TH1D *hData = pData->ProjectionX();
TH1D *hMc = pMc->ProjectionX();
hData->Divide(hMc);
new TCanvas();
hData->Draw();
}
delete[] NUAcorrA;
delete[] NUAcorrC;
if(kCleanMemory){
if(pp) delete pp;
if(pp2) delete pp2;
if(ppMC) delete ppMC;
if(ppMC2) delete ppMC2;
}
delete cont;
if(isMC) return pMc;
return pData;
}
示例15: fitBjetJES
void fitBjetJES(int ppPbPb=1, int cbinlo=12, int cbinhi=40){
if(!ppPbPb){
cbinlo=0;
cbinhi=40;
}
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
TFile *fL;
if(!ppPbPb)fL=new TFile("histos/ppMC_hiReco_jetTrig_highPurity_JEC.root");
else fL=new TFile("histos/PbPbQCDMC_pt30by3_ipHICalibCentWeight.root");
// these are dummy files for pp
TFile *fB=new TFile("histos/PbPbBMC_pt30by3_ipHICalibCentWeight.root");
TFile *fC=new TFile("histos/PbPbCMC_pt30by3_ipHICalibCentWeight.root");
TNtuple *tL = (TNtuple*) fL->Get("nt");
TNtuple *tB = (TNtuple*) fB->Get("nt");
TNtuple *tC = (TNtuple*) fC->Get("nt");
float jtptL, refptL, jtetaL, weightL, refparton_flavorForBL, binL;
tL->SetBranchAddress("jtpt",&jtptL);
tL->SetBranchAddress("jteta",&jtetaL);
tL->SetBranchAddress("refpt",&refptL);
tL->SetBranchAddress("weight",&weightL);
if(ppPbPb)tL->SetBranchAddress("bin",&binL);
tL->SetBranchAddress("refparton_flavorForB",&refparton_flavorForBL);
float jtptB, refptB, jtetaB, weightB, refparton_flavorForBB, binB;
tB->SetBranchAddress("jtpt",&jtptB);
tB->SetBranchAddress("jteta",&jtetaB);
tB->SetBranchAddress("refpt",&refptB);
tB->SetBranchAddress("weight",&weightB);
if(ppPbPb)tB->SetBranchAddress("bin",&binB);
tB->SetBranchAddress("refparton_flavorForB",&refparton_flavorForBB);
float jtptC, refptC, jtetaC, weightC, refparton_flavorForBC, binC;
tC->SetBranchAddress("jtpt",&jtptC);
tC->SetBranchAddress("jteta",&jtetaC);
tC->SetBranchAddress("refpt",&refptC);
tC->SetBranchAddress("weight",&weightC);
if(ppPbPb)tC->SetBranchAddress("bin",&binC);
tC->SetBranchAddress("refparton_flavorForB",&refparton_flavorForBC);
TProfile *hL = new TProfile("hL","hL",250,50,300,0,10);
TProfile *hB = new TProfile("hB","hB",250,50,300,0,10);
TProfile *hC = new TProfile("hC","hC",250,50,300,0,10);
hL->Sumw2(),hB->Sumw2(),hC->Sumw2();
for(int i=0;i<tL->GetEntries();i++){
tL->GetEntry(i);
if(!ppPbPb) binL=39;
if(fabs(jtetaL)<2 && binL>=cbinlo && binL<cbinhi)
hL->Fill(refptL,jtptL/refptL,weightL);
if(!ppPbPb){
if(fabs(jtetaL)<2 && binL>=cbinlo && binL<cbinhi && abs(refparton_flavorForBL)==5)
hB->Fill(refptL,jtptL/refptL,weightL);
if(fabs(jtetaL)<2 && binL>=cbinlo && binL<cbinhi && abs(refparton_flavorForBL)==4)
hC->Fill(refptL,jtptL/refptL,weightL);
}
}
if(ppPbPb){
for(int i=0;i<tB->GetEntries();i++){
tB->GetEntry(i);
if(fabs(jtetaB)<2 && binB>=cbinlo && binB<cbinhi && abs(refparton_flavorForBB)==5)
hB->Fill(refptB,jtptB/refptB,weightB);
}
for(int i=0;i<tC->GetEntries();i++){
tC->GetEntry(i);
if(fabs(jtetaC)<2 && binC>=cbinlo && binC<cbinhi && abs(refparton_flavorForBC)==4)
hC->Fill(refptC,jtptC/refptC,weightC);
}
}
hL->SetMinimum(0.);
hL->SetLineColor(kBlue);
hB->SetLineColor(kRed);
hC->SetLineColor(kGreen);
hL->SetMarkerColor(kBlue);
hB->SetMarkerColor(kRed);
hC->SetMarkerColor(kGreen);
//hL->SetMarkerStyle(4);
//.........这里部分代码省略.........