]>
Commit | Line | Data |
---|---|---|
7148817a | 1 | // Author: Dariusz Miskowiec <mailto:d.miskowiec@gsi.de> 2007 |
2 | ||
3 | //============================================================================= | |
4 | // single particle analyzer | |
5 | //============================================================================= | |
6 | ||
7 | #include <TROOT.h> | |
8 | #include <TMath.h> | |
9 | #include <TAxis.h> | |
10 | #include <TParticlePDG.h> | |
11 | #include "AliDHN.h" | |
12 | #include "AliDEvent.h" | |
13 | #include "AliDAnalSingle.h" | |
14 | ||
15 | ClassImp(AliDAnalSingle) | |
16 | ||
17 | //============================================================================= | |
18 | AliDAnalSingle::AliDAnalSingle(Char_t *nam, Double_t emi, Double_t ema, Int_t pid) : | |
19 | AliDAnal(nam), fPid(pid), fMass(0.0) | |
20 | { | |
21 | // constructor | |
22 | // emi and ema define the rapidity range for histograms | |
23 | ||
24 | fPid = pid; | |
25 | TParticlePDG *part = AliDAnal::fgPDG.GetParticle(fPid); | |
26 | fMass = part? part->Mass() : 0; | |
27 | ||
28 | double pi = TMath::Pi(); | |
29 | TAxis *ax[10]; | |
30 | ax[0] = new TAxis(30,-1,1); ax[0]->SetTitle("vertex z"); | |
31 | ax[1] = new TAxis(80,emi,ema); ax[1]->SetTitle("eta"); | |
32 | ax[2] = new TAxis(90,-pi,pi); ax[2]->SetTitle("phi"); | |
33 | AliDHN *zep = new AliDHN("zep",3,ax); | |
34 | for (int i=0; i<3; i++) delete ax[i]; | |
35 | ||
36 | ax[0] = new TAxis(20,0,1); ax[0]->SetTitle("centrality"); | |
37 | ax[1] = new TAxis(80,emi,ema); ax[1]->SetTitle("y"); | |
38 | ax[2] = new TAxis(80,0,2); ax[2]->SetTitle("pt (GeV)"); | |
39 | AliDHN *cyp = new AliDHN("cyp",3,ax); | |
40 | for (int i=0; i<3; i++) delete ax[i]; | |
41 | ||
42 | ax[0] = new TAxis(10,emi,ema); ax[0]->SetTitle("eta"); | |
43 | ax[1] = new TAxis(150,0,3); ax[1]->SetTitle("p (GeV)"); | |
44 | ax[2] = new TAxis(150,0.5,3.5);ax[2]->SetTitle("sqrt(dedx (mips))"); | |
45 | AliDHN *epd = new AliDHN("epd",3,ax); | |
46 | for (int i=0; i<3; i++) delete ax[i]; | |
47 | ||
48 | fHistos.Add(zep); | |
49 | fHistos.Add(cyp); | |
50 | fHistos.Add(epd); | |
51 | gROOT->cd(); | |
52 | printf("%s object named %s created\n",ClassName(),GetName()); | |
53 | } | |
54 | //============================================================================= | |
55 | void AliDAnalSingle::Process(AliDEvent *ev) | |
56 | { | |
57 | // fill single particle histograms | |
58 | ||
59 | AliDHN *zep = (AliDHN*) fHistos.At(0); | |
60 | AliDHN *cyp = (AliDHN*) fHistos.At(1); | |
61 | AliDHN *epd = (AliDHN*) fHistos.At(2); | |
62 | for (int i=0; i<ev->NParticles(); i++) { | |
63 | if (!ev->ParticleGood(i,fPid)) continue; | |
64 | zep->Fill(ev->Zver(),ev->ParticleEta(i),ev->ParticlePhi(i),1.0); | |
65 | double y = fMass>0? ev->ParticleY(i,fMass) : ev->ParticleEta(i); | |
66 | cyp->Fill(ev->Centrality(),y,ev->ParticlePt(i),1.0); | |
67 | epd->Fill(ev->ParticleEta(i),ev->ParticleP(i),TMath::Sqrt(ev->ParticleDedx(i)),1.0); | |
68 | } | |
69 | } | |
70 | //============================================================================= |