FairRoot/PandaRoot
runPULL.C
Go to the documentation of this file.
1 {
2  gROOT->Reset();
3  gStyle->SetOptFit(1);
4 
5 
6  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
7  basiclibs();
8 
9  // Load this example libraries
10  gSystem->Load("libGeoBase");
11  gSystem->Load("libParBase");
12  gSystem->Load("libBase");
13  gSystem->Load("libField");
14  gSystem->Load("libPndData");
15  gSystem->Load("libGeane");
16  gSystem->Load("libPlane");
17  gSystem->Load("libGeaneExEmc");
18  gSystem->Load("libTrkBase");
19 
20  TFile *f=new TFile("geane.root");
21  TTree *simtree=f->Get("pndsim") ;
22 
23  fTrackParGeane = new TClonesArray("FairTrackParH");
24  fTrackParIni = new TClonesArray("FairTrackParH");
25  fTrackParFinal = new TClonesArray("FairTrackParH");
26 
27  TH1F *h1=new TH1F("h1","Phi ",100,-10.,10.);
28  TH1F *h2=new TH1F("h2","Lambda",100,-10,10);
29  TH1F *h3=new TH1F("h3","Qp",100,-10.,10.);
30  TH1F *h4=new TH1F("h4","Y",100,-10,10);
31  TH1F *h5=new TH1F("h5","Z",100,-10,10);
32  TH1F *h6=new TH1F("h6","Px",100, -10,10);
33  TH1F *h7=new TH1F("h7","Py",100,-10,10);
34  TH1F *h8=new TH1F("h8","Pz",100,-10,10);
35  TH1F *h9=new TH1F("h9","Ysc",100,-10,10);
36  TH1F *h10=new TH1F("h10","Ysc",100,-10,10);
37  TH1F *h11=new TH1F("h11","Zsc",100,-10,10);
38 
39  TH2F *h101=new TH2F("h101","X_MC vs X_GE",100,-100,100,100,-100,100);
40  TH2F *h102=new TH2F("h102","Y_MC vs Y_GE",100,-100,100,100,-100,100);
41  TH2F *h103=new TH2F("h103","Z_MC vs Z_GE",100,-150,250,100,-150,250);
42 
43  TH2F *h201=new TH2F("h201","PX_MC vs PX_GE",100,-2,2,100,-2,2);
44  TH2F *h202=new TH2F("h202","PY_MC vs PY_GE",100,-2,2,100,-2,2);
45  TH2F *h203=new TH2F("h203","PZ_MC vs PZ_GE",100,-2,2,100,-2,2);
46 
47  simtree->SetBranchAddress("GeaneTrackFinal",&fTrackParFinal);
48  simtree->SetBranchAddress("GeaneTrackPar",&fTrackParGeane);
49  FairTrackParH *fTrkF ;
50  FairTrackParH *fTrkG;
51  Int_t Nevents= simtree->GetEntriesFast();
52  cout<<Nevents<<endl;
53  for(Int_t i=0; i<Nevents; i++){
54  fTrackParGeane->Delete();
55  fTrackParFinal->Delete();
56  simtree->GetEntry(i);
57  for (Int_t k=0; k<fTrackParGeane->GetEntriesFast(); k++) {
58  fTrkF = (FairTrackParH *)fTrackParFinal->At(k);
59  fTrkG = (FairTrackParH *)fTrackParGeane->At(k);
60  if(fTrkF &&fTrkG ){
61 
62  h101->Fill(fTrkF->GetX(),fTrkG->GetX());
63  h102->Fill(fTrkF->GetY(),fTrkG->GetY());
64  h103->Fill(fTrkF->GetZ(),fTrkG->GetZ());
65 
66  h201->Fill(fTrkF->GetPx(),fTrkG->GetPx());
67  h202->Fill(fTrkF->GetPy(),fTrkG->GetPy());
68  h203->Fill(fTrkF->GetPz(),fTrkG->GetPz());
69 
70  if(fTrkG->GetDPhi())h1->Fill((fTrkF->GetPhi()-fTrkG->GetPhi())/fTrkG->GetDPhi());
71  if(fTrkG->GetDLambda())h2->Fill((fTrkF->GetLambda()-fTrkG->GetLambda())/fTrkG->GetDLambda());
72  if(fTrkG->GetDQp())h3->Fill((fTrkF->GetQp()-fTrkG->GetQp())/fTrkG->GetDQp());
73  if(fTrkG->GetDY())h4->Fill((fTrkF->GetY() -fTrkG->GetY()) /fTrkG->GetDY());
74  if(fTrkG->GetDZ())h5->Fill((fTrkF->GetZ() -fTrkG->GetZ()) /fTrkG->GetDZ());
75  if(fTrkG->GetDPx())h6->Fill((fTrkF->GetPx()-fTrkG->GetPx())/fTrkG->GetDPx());
76  if(fTrkG->GetDPy())h7->Fill((fTrkF->GetPy()-fTrkG->GetPy())/fTrkG->GetDPy());
77  if(fTrkG->GetDPz())h8->Fill((fTrkF->GetPz()-fTrkG->GetPz())/fTrkG->GetDPz());
78  if(fTrkG->GetDY_sc())h9->Fill((fTrkF->GetY_sc()-fTrkG->GetY_sc())/fTrkG->GetDY_sc());
79  if(fTrkG->GetDY_sc())h10->Fill((fTrkF->GetY_sc()-fTrkG->GetY_sc())/fTrkG->GetDY_sc());
80  if(fTrkG->GetDZ_sc())h11->Fill((fTrkF->GetZ_sc()-fTrkG->GetZ_sc())/fTrkG->GetDZ_sc());
81  }
82  }
83  }
84  TCanvas *c=new TCanvas("c","c",900,600);
85  c->Divide(5,2);
86  c->cd(1);
87  h1->Draw();
88  h1-> Fit("gaus");
89  c->cd(2);
90  h2->Draw();
91  h2-> Fit("gaus");
92  c->cd(3);
93  h3->Draw();
94  h3-> Fit("gaus");
95  c->cd(4);
96  h4->Draw();
97  h4-> Fit("gaus");
98  c->cd(5);
99  h5->Draw();
100  h5-> Fit("gaus");
101  c->cd(6);
102  h6->Draw();
103  h6-> Fit("gaus");
104  c->cd(7);
105  h7->Draw();
106  h7-> Fit("gaus");
107  c->cd(8);
108  h8->Draw();
109  h8-> Fit("gaus");
110  c->cd(9);
111  h9->Draw();
112  h9-> Fit("gaus");
113  c->cd(10);
114  h10->Draw();
115  h10-> Fit("gaus");
116 
117  c->cd();
118 }
cout<<"the track theta is "<< trackthe<< endl;mc_x[j]=vecmc.X();mc_y[j]=vecmc.Y();mc_z[j]=vecmc.Z()-1110;r_mc[j]=TMath::Sqrt(mc_x[j]*mc_x[j]+mc_y[j]*mc_y[j]);std::cout<<"the r_mc[j] is "<< r_mc[j]<< std::endl;std::cout<<"the mc_z[j] is "<< mc_z[j]<< std::endl;r_mc_err[j]=0;z_mc_err[j]=0;rc_x[j]=vecrc.X();rc_y[j]=vecrc.Y();rc_z[j]=vecrc.Z()-1110;r_rc[j]=TMath::Sqrt(rc_x[j]*rc_x[j]+rc_y[j]*rc_y[j]);std::cout<<"the r_rc[j] is "<< r_rc[j]<< std::endl;std::cout<<"the rc_z[j] is "<< rc_z[j]<< std::endl;r_rc_err[j]=0;z_rc_err[j]=0;double tempmc=TMath::Sqrt(mc_x[0]*mc_x[0]+mc_y[0]*mc_y[0]);mcfirstthe=TMath::ATan(tempmc/(mc_z[0]+1110));cout<<"the first hit theta is "<< mcfirstthe<< endl;}TGraphErrors *mctrack=new TGraphErrors(4, mc_z, r_mc, z_mc_err, r_mc_err);mctrack-> Fit("trackFit","ONF")
TH1F * h9
Definition: runPULL1.C:35
basiclibs()
TTree * simtree
Definition: runPULL1.C:21
Int_t i
Definition: run_full.C:25
FairTrackParH * fTrkF
Definition: runPULL1.C:40
TH1F * h4
TH1F * h8
Definition: runPULL1.C:34
TH2F * h203
Definition: runPULL.C:45
fTrackParFinal
Definition: runPULL1.C:25
TH2F * h5
Definition: draw_bands.C:19
FairTrackParH * fTrkG
Definition: runPULL1.C:41
TFile * f
Definition: bump_analys.C:12
TH1F * h11
Definition: runPULL.C:37
TH2F * h101
Definition: runPULL.C:39
TH1F * h3
TH2F * h202
Definition: runPULL.C:44
fTrackParGeane
Definition: runPULL1.C:23
TH1F * h7
Definition: runPULL1.C:33
TH2F * h201
Definition: runPULL.C:43
TH1F * h6
Definition: runPULL1.C:32
Int_t Nevents
Definition: runPULL1.C:42
TH2F * h103
Definition: runPULL.C:41
TH2F * h102
Definition: runPULL.C:40
fTrackParIni
Definition: runPULL1.C:24