FairRoot/PandaRoot
plot_rk.C
Go to the documentation of this file.
1 {
2  Int_t nEvents = 100;
3 
4  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
5  gROOT->LoadMacro("$VMCWORKDIR/macro/mvd/Tools.C");
7 
8  TFile* f = new TFile("data/points_sttcombi.root"); // the sim file you want to analyse
9  TTree* t=(TTree*)f->Get("pndsim");
10  t->AddFriend("pndsim","data/digi_sttcombi.root"); // the digi file
11  t->AddFriend("pndsim","data/reco_sttcombi.root"); // the reco file you want to analyse
12  t->AddFriend("pndsim","data/lhepidmaker.root"); // tracking output
13  t->AddFriend("pndsim","data/fit_sttcombi.root"); // debug output
14 
15 
16  TClonesArray* mctrack_array=new TClonesArray("PndMCTrack");
17  t->SetBranchAddress("MCTrack",&mctrack_array);//Branch names
18 
19  TClonesArray* mc_array=new TClonesArray("PndSdsMCPoint");
20  t->SetBranchAddress("MVDPoint",&mc_array);//Branch names
21  TClonesArray* digiPixel_array=new TClonesArray("PndSdsDigiPixel");
22  t->SetBranchAddress("MVDPixelDigis",&digiPixel_array);//Branch names
23  TClonesArray* digiStrip_array=new TClonesArray("PndSdsDigiStrip");
24  t->SetBranchAddress("MVDStripDigis",&digiStrip_array);//Branch names
25  TClonesArray* stripClust_array=new TClonesArray("PndSdsCluster");
26  t->SetBranchAddress("MVDStripClusterCand",&stripClust_array);//Branch names
27  TClonesArray* pixelClust_array=new TClonesArray("PndSdsCluster");
28  t->SetBranchAddress("MVDClusterCand",&pixelClust_array);//Branch names
29  TClonesArray* stripHit_array=new TClonesArray("PndSdsHit");
30  t->SetBranchAddress("MVDHitsStrip",&stripHit_array);//Branch names
31  TClonesArray* pixelHit_array=new TClonesArray("PndSdsHit");
32  t->SetBranchAddress("MVDHitsPixel",&pixelHit_array);//Branch names
33 
34  TClonesArray* track_array=new TClonesArray("PndLhePidTrack");
35  t->SetBranchAddress("LhePidTrack",&track_array);//Branch names
36 
37 
38  TGeoManager *geoMan = (TGeoManager*) gDirectory->Get("FAIRGeom");
39  PndMvdGeoHandling* fGeoH = new PndMvdGeoHandling(geoMan);
40  PndEmcMapper::Instance(2,f.GetName());
41 
42  //-------------------------------------------------------
43 
44  TH1D* hMomDiff = new TH1D("hmomdiff","Mom difference track to mctrack;|p-p_{mc}|/ GeV/c;",500,-15.,15.);
45 
46 
47  TCanvas* c1 = new TCanvas("LHETRACK MOMENTIM", "LHETRACK MOMENTUM", 10, 10, 1200, 600);
48  c1.Divide(4,2);
49 
50  c1->cd(1);
51  t->Draw("LhePidTrack.GetMomentum().Mag()>>momlhe(100,0.5,1.5)","","");
52  momlhe->SetTitle("LhePidTrack;Momentum / GeV/c");
53  c1.cd(2);
54  t->Draw("LhePidTrack.GetMomentum().Mag()-MCTrack.GetMomentum().Mag()>>momlhedf(100,-2.5,2.5)","","");
55  momlhedf->SetTitle("LhePidTrack - MC;Momentum / GeV/c");
56 
57  c1->cd(3);
58  t->Draw("LheGenTrack.getMom().Mag()>>momfit(100,0.5,1.5)","","");
59  momfit->SetTitle("genfit Track;Momentum / GeV/c");
60  c1->cd(4);
61  t->Draw("LheGenTrack.getMom().Mag()-MCTrack.GetMomentum().Mag()>>momfitdf(100,-2.5,2.5)","","");
62  momfitdf->SetTitle("genfit Track - MC;Momentum / GeV/c");
63 
64  c1.cd(5);
65  t->Draw("MCTrack.GetMomentum().Mag():LhePidTrack.GetMomentum().Mag()-MCTrack.GetMomentum().Mag()>>momlhedfcor(100,-2.5,2.5,100,0.5,1.5)","","colz");
66  momlhedfcor->SetTitle(";LHE - MC Momentum / GeV/c;MC Momentum / GeV/c");
67  c1.cd(6);
68  t->Draw("MCTrack.GetMomentum().Mag():LhePidTrack.GetMomentum().Mag()>>momlhecor(100,0.5,1.5,100,0.5,1.5)","","colz");
69  momlhecor->SetTitle(";LHE Momentum / GeV/c;MC Momentum / GeV/c");
70 
71 
72 
73  c1.cd(7);
74  t->Draw("MCTrack.GetMomentum().Mag():LheGenTrack.getMom().Mag()-MCTrack.GetMomentum().Mag()>>momfitdfcor(100,-2.5,2.5,100,0.5,1.5)","","colz");
75  momfitdfcor->SetTitle(";GEN - MC Momentum / GeV/c;MC Momentum / GeV/c");
76  c1.cd(8);
77  t->Draw("MCTrack.GetMomentum().Mag():LheGenTrack.getMom().Mag()>>momfitcor(100,0.5,1.5,100,0.5,1.5)","","colz");
78  momfitcor->SetTitle(";GEN Momentum / GeV/c;MC Momentum / GeV/c");
79 
80 
81  TCanvas* c2 = new TCanvas("LHETRACK PID", "LHETRACK PID", 20, 20, 600, 600);
82  c2.Divide(2,2);
83 
84  c2->cd(1);
85  t->Draw("1000*LhePidTrack.GetMvdELoss()/LhePidTrack.GetMvdHitCounts():LhePidTrack.GetMomentum().Mag()>>mvd_pid(100,0,3,100,0,2)","LhePidTrack.GetMvdHitCounts()>0","colz");
86  mvd_pid->SetTitle("MVD pid;Momentum [GeV/c];MVD dE / # hit [MeV]");
87 
88  c2.cd(2);
89  t->Draw("LhePidTrack.GetBeta():LhePidTrack.GetMomentum().Mag()>>tof_pid(100,0,2,100,0,1.2)","LhePidTrack.GetTofIndex()>-1","colz");
90  tof_pid->SetTitle("TOF pid;Momentum [GeV/c];#beta");
91 
92  c2.cd(3);
93  t->Draw("LhePidTrack.GetDrcThetaC()*TMath::RadToDeg():LhePidTrack.GetMomentum().Mag()>>drc_pid(100,0,3,100,0,60)","LhePidTrack.GetDrcIndex()>-1","colz");
94  drc_pid->SetTitle("DRC pid;Momentum [GeV/c];#theta_{c} [^{0}]");
95 
96  c2.cd(4);
97  t->Draw("LhePidTrack.GetEmcELoss()/LhePidTrack.GetMomentum().Mag():LhePidTrack.GetMomentum().Mag()>>emc_pid(100,0,3,100,0,1.2)","LhePidTrack.GetEmcIndex()>-1","colz");
98  emc_pid->SetTitle("EMC pid;Momentum [GeV/c];EMC Energy / Momentum [c]");
99 
100 }
PndGeoHandling * fGeoH
Definition: anasim.C:34
TGeoManager * geoMan
c2
Definition: plot_dirc.C:39
TClonesArray * mc_array
Definition: anaLmdCluster.C:25
TH1D * hMomDiff
Definition: plot_rk.C:44
Int_t nEvents
Definition: hit_dirc.C:11
TClonesArray * stripClust_array
Definition: plot_rk.C:25
TClonesArray * stripHit_array
Definition: plot_rk.C:29
TFile * f
Definition: bump_analys.C:12
c1
Definition: plot_dirc.C:35
TClonesArray * digiPixel_array
Definition: anaMvdDigi.C:31
TTree * t
Definition: bump_analys.C:13
TClonesArray * digiStrip_array
Definition: anaLmdDigi.C:32
TClonesArray * track_array
Definition: plot_rk.C:34
TClonesArray * pixelClust_array
Definition: plot_rk.C:27
TClonesArray * mctrack_array
static PndEmcMapper * Instance()
LoadPandaStyle()
TClonesArray * pixelHit_array
Definition: plot_rk.C:31