]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/fastSimul/AliTPCclusterAnalysis.C
.so cleanup: removed from gSystem->Load()
[u/mrichter/AliRoot.git] / TPC / fastSimul / AliTPCclusterAnalysis.C
CommitLineData
13f45dd8 1/*
2//
3// 0. Load libraries
4//
4070f709 5gSystem->Load("libSTAT");
13f45dd8 6.x ~/NimStyle.C
7.L $ALICE_ROOT/TPC/fastSimul/AliTPCclusterFast.cxx+
8.L $ALICE_ROOT/TPC/fastSimul/AliTPCclusterAnalysis.C
9//
10// 1. load tree
11//
12LoadTree();
13LoadTrack();
14//
15//
16//
17
18*/
19TChain * treeCluster=0;
20TChain * treeTrack=0;
21AliTPCfastTrack * track =0;
22
23void LoadTree(const char* fname="cluterSimul.root"){
24 //
25 //
26 //
27 treeCluster = new TChain("simul","simul");
28 treeCluster->AddFile(fname);
29}
30
31void LoadTrack(const char* fname="trackerSimul.root"){
32 //
33 //
34 //
35 treeTrack = new TChain("simulTrack","simulTrack");
36 treeTrack->AddFile(fname);
37 TFile f(fname);
38
39}
40
41
42
43
44
45
46void MakeQNormalization(Int_t maxPoints){
47 //
48 // Normalize Q to the diffusion and angular effect
49 //
50
51 TStatToolkit toolkit;
52 Double_t chi2;
53 TVectorD fitParam;
54 TMatrixD covMatrix;
55 Int_t npoints;
56 TString fstringQ="";
57 fstringQ+="fDiff++";
58 fstringQ+="abs(fAngleY)++";
59 fstringQ+="abs(fAngleZ)++";
60 TString *strQmax=0;
61 TString *strQtot=0;
62 //
63 strQmax = toolkit.FitPlane(treeCluster,"s.GetQmax(0.33,2.5,1,1,1)/s.fNtot",fstringQ.Data(), "", chi2,npoints,fitParam,covMatrix,-1,0,50000);
64 printf("Qmax norm\t%f\n",TMath::Sqrt(chi2/npoints));
65 strQmax->Tokenize("++")->Print();
66 treeCluster->SetAlias("qMaxCorr",strQmax->Data());
67 //
68 strQtot = toolkit.FitPlane(treeCluster,"s.GetQtot(0.33,2.5,1,1,1)/s.fNtot",fstringQ.Data(),"", chi2,npoints,fitParam,covMatrix,-1,0,50000);
69 printf("Qmax norm\t%f\n",TMath::Sqrt(chi2/npoints));
70 strQtot->Tokenize("++")->Print();
71 treeCluster->SetAlias("qTotCorr",strQtot->Data());
72 //
73 //
74}
75
76
77
78
79//
80// Correction tests - normalization of response functions
81//
82
83void sum(){
84 TF2 f2("f2","AliTPCclusterFast::GaussConvolution(x,y,2,0.5,0.5,0.5)",-3,3,-3,3);
85 Float_t sumg=0;
86 for (Float_t x=-5; x<5; x+=0.5) for (Float_t y=-5; y<5; y+=0.5) sumg+=f2->Eval(x,y);
87 printf("%f\n", sumg);
88}
89
90
91
92Double_t testSumGaus(Float_t k0,Float_t k1, Float_t s0, Float_t s1){
93 TF2 f2("f2",Form("AliTPCclusterFast::GaussConvolution(x,y,%f,%f,%f,%f)",k0,k1,s0,s1),-2,2,-2,2);
94 Float_t sumg=0;
95 for (Float_t x=-5; x<5; x+=0.2) for (Float_t y=-5; y<5; y+=0.2) sumg+=f2.Eval(x,y);
96 sumg*=0.2*0.2;
97 printf("%f\t%f\t%f\t%f\t%f\n",k0,k1,s0,s1, sumg);
98 return sumg;
99}
100
101Double_t testSumExp(Float_t s0, Float_t k1){
102 TF1 f1("f1",Form("AliTPCclusterFast::GaussExpConvolution(x,%f,%f)",s0,k1),-2,2);
103 Float_t sumg=0;
104 for (Float_t x=-5; x<5; x+=0.2) sumg+=f1.Eval(x);
105 sumg*=0.2;
106 printf("%f\t%f\t%f\t%f\t%f\n",s0,k1, sumg);
107 return sumg;
108}
109
110
111
112