Flushing the buffer for debug purposes (R. Preghenella)
[u/mrichter/AliRoot.git] / FASTSIM / testAliGlauberQuenching.C
1 void testAliGlauberQuenching() {
2
3   AliFastGlauber g;
4   g.Init(2);
5   g.SetCentralityClass(0.00,0.10); // centrality (fraction of geometrical cross section)
6
7   AliQuenchingWeights afq;
8   afq.InitMult();
9   afq.SetQTransport(1.);
10   afq.SetECMethod(0);
11   afq.SetLengthMax(8.);
12   afq.SampleEnergyLoss();
13
14   TCanvas *c = new TCanvas("cELD","Energy Loss Distribution",0,0,800,500);
15   c->Divide(2,1);
16
17   for(Int_t itype=1;itype<=2;itype++){
18     c->cd(itype);
19     gPad->SetLogy();
20     Char_t name[100];
21     Char_t hname[100];
22     if(itype==1){
23       sprintf(name,"Energy Loss Distribution - Quarks;E_{loss} (GeV);#"); 
24       sprintf(hname,"hQuarks"); 
25     } else {
26       sprintf(name,"Energy Loss Distribution - Gluons;E_{loss} (GeV);#"); 
27       sprintf(hname,"hGluons"); 
28     }
29
30     TH1F *h = new TH1F(hname,name,100,0,200);
31
32     for(Int_t i=0;i<10000;i++){
33       if(i % 100 == 0) cout << "." << flush;
34       Double_t ell;
35       g.GetLength(ell);
36       Double_t loss=afq.GetELossRandom(itype,ell);
37       h->Fill(loss);
38     }
39
40     h->SetStats(kTRUE);
41     if(itype==1){
42       h->SetLineColor(1);
43       h->DrawCopy();
44     }
45     else {
46       h->SetLineColor(2);
47       h->DrawCopy();
48     }
49     delete h;
50   }
51
52   c->Update();
53 }
54
55 // second example using ell distribution
56 void testFastAliGlauberQuenching(Char_t *fname) {
57
58   TFile f(fname);
59   TH1F *hEll=(TH1F*)f.Get("hEll");
60   if(!hEll) return;
61
62   AliQuenchingWeights afq;
63   afq.InitMult();
64   afq.SetQTransport(1.);
65   afq.SetECMethod(0);
66   afq.SetLengthMax(5.);
67   afq.SampleEnergyLoss();
68
69   TCanvas *c = new TCanvas("cELD","Energy Loss Distribution",0,0,800,500);
70   c->Divide(2,1);
71
72   for(Int_t itype=1;itype<=2;itype++){
73     c->cd(itype);
74     gPad->SetLogy();
75     Char_t name[200];
76     if(itype==1)
77       sprintf(name,"Energy Loss Distribution - Quarks;E_{loss} (GeV);#"); 
78     else 
79       sprintf(name,"Energy Loss Distribution - Gluons;E_{loss} (GeV);#"); 
80     Char_t hname[200];
81     if(itype==1)
82       sprintf(hname,"hQuarks"); 
83     else 
84       sprintf(hname,"hGluons"); 
85
86     TH1F *h = afq.ComputeELossHisto(itype,1.,hEll);
87
88     h->SetStats(kTRUE);
89     if(itype==1){
90       h->SetLineColor(1);
91       h->DrawCopy();
92     }
93     else {
94       h->SetLineColor(2);
95       h->DrawCopy();
96     }
97     delete h;
98   }
99
100   c->Update();
101 }