]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EPOS/AliGenEposIsajetToPdgConverter.cxx
Fix for the problem during PbPb run of Nov 2010 (Indra)
[u/mrichter/AliRoot.git] / EPOS / AliGenEposIsajetToPdgConverter.cxx
CommitLineData
9033ee49 1//
2// AliGenEposIsajetToPdgConverter.cxx
3//
4// Helper class used by TEpos to insert EPOS internal objects and higher
5// resonances to PDG database.
6// Quark clusters has has unaltered code, unknown objects have code of
7// form 6xxxxxxxx, and higher resonances have codes from Particle Physics
8// Review '96
9//
10// Created on: Aug 03, 2009
11// Author: Piotr Ostrowski, postrow@if.pw.edu.pl
12//
54d27e87 13
14
15#include "TDatabasePDG.h"
16#include "AliGenEposIsajetToPdgConverter.h"
54d27e87 17
18ClassImp(AliGenEposIsajetToPdgConverter)
19
20AliGenEposIsajetToPdgConverter::AliGenEposIsajetToPdgConverter() {
21
22}
23
24AliGenEposIsajetToPdgConverter::~AliGenEposIsajetToPdgConverter() { }
25
9033ee49 26Int_t AliGenEposIsajetToPdgConverter::ConvertIsajetToPdg(Int_t isajet) const{
27 // Perform code conversion, init PDG if first time called
28 if (!fgParticlesAdded) {
54d27e87 29 AddHigherResonances();
30 }
31 TDatabasePDG *pdgDb = TDatabasePDG::Instance();
32 Int_t pdg = pdgDb->ConvertIsajetToPdg(isajet);
33 if(pdg == 0) {
34 pdg = ExtendedMapping(isajet);
35 }
36 if(pdg != 0){
37 return pdg;
38 }
39 if(isajet / 100000000 == 8 || isajet / 100000000 == 7) {
40 AddQuarkCluster(isajet);
41 return isajet;
42 }
43 if(isajet % 100 == 99) {
44 pdg = AddUnknownObject(isajet);
45 }
46
47 if (pdg == 0) {
9033ee49 48 Printf("TEpos: Warning, unknown particle, ISAJET: %d\n",isajet);
54d27e87 49 }
50 return pdg;
51}
52
9033ee49 53void AliGenEposIsajetToPdgConverter::AddQuarkCluster(Int_t clusterCode) const {
54 // Add EPOS internal object to the PDG db
54d27e87 55 TDatabasePDG *pdgDb = TDatabasePDG::Instance();
56 if(!pdgDb->GetParticle(clusterCode)) {
57 pdgDb->AddParticle("Quark cluster", "Quark cluster", 0.0, kFALSE, 0, 0, "EPOS Quark cluster", clusterCode);
58 }
59}
60
9033ee49 61Int_t AliGenEposIsajetToPdgConverter::AddUnknownObject(Int_t code) const {
62 // Add EPOS internal object to the PDG db
54d27e87 63 Int_t newCode = 600000000 + code;
64 TDatabasePDG *pdgDb = TDatabasePDG::Instance();
65 if(!pdgDb->GetParticle(newCode)) {
66 pdgDb->AddParticle("Unknown EPOS particle", "Unknown EPOS particle", 0.0, kFALSE, 0, 0, "Unknown", newCode);
67 }
68 return newCode;
69}
70
9033ee49 71Int_t AliGenEposIsajetToPdgConverter::ExtendedMapping(Int_t isajet) const {
72 // Mappings for some internal EPOS objects and resonaces
54d27e87 73 Int_t sign = isajet < 0 ? -1 : 1;
74 isajet*=sign;
75 Int_t retVal = 0;
76 switch(isajet) {
77 //diquarks
78 case 1100: retVal=2203; break;
79 case 1200: retVal=2101; break;
80 case 1300: retVal=3201; break;
81 case 2200: retVal=1103; break;
82 case 2300: retVal=3101; break;
83 case 3300: retVal=3303; break;
84
85 case 1112: retVal=2222; break;
86 case 1113: retVal=12224; break;
87 case 1114: retVal=12226; break; //delta++
88 case 2222: retVal=1112; break;
89 case 2223: retVal=11114; break;
90 case 2224: retVal=11116; break; //delta-
91 case 1122: retVal=12212; break;
92 case 1123: retVal=22212; break;
93 case 1125: retVal=32212; break;
94 case 1127: retVal=42212; break; //p*
95 case 1222: retVal=12112; break;
96 case 1223: retVal=22112; break;
97 case 1225: retVal=32112; break;
98 case 1227: retVal=42112; break; //n*
99 case 1124: retVal=2122; break;
100 case 1126: retVal=12214; break;
101 case 1128: retVal=12126; break; //delta+
102 case 1224: retVal=1212; break;
103 case 1226: retVal=12114; break;
104 case 1228: retVal=11216; break; //delta0
105 case 1132: retVal=13222; break;
106 case 1133: retVal=3226; break;
107 case 1134: retVal=23224; break; //sigma+
108 case 1236: retVal=13212; break;
109 case 1237: retVal=3216; break;
110 case 1239: retVal=23214; break; //sigma0
111 case 2232: retVal=13112; break;
112 case 2233: retVal=3116; break;
113 case 2234: retVal=23114; break; //sigma-
114 case 1233: retVal=13122; break;
115 case 1234: retVal=3124; break;
116 case 1235: retVal=33122; break;
117 case 1238: retVal=13126; break; //lambda0
118 }
119 return sign*retVal;
120}
121
9033ee49 122Bool_t AliGenEposIsajetToPdgConverter::fgParticlesAdded = kFALSE;
54d27e87 123
124void AliGenEposIsajetToPdgConverter::AddHigherResonances() {
9033ee49 125 // Adds higher resonances known by EPOS but not to the PDG
126 if(fgParticlesAdded)
54d27e87 127 return;
9033ee49 128 fgParticlesAdded=kTRUE;
54d27e87 129 TDatabasePDG *fPdgDb = TDatabasePDG::Instance();
130 //| 332 | F0(975) |
131 fPdgDb->AddAntiParticle("F0_bar", -10221);
132 //| 112 | A0(980) |
133 //| 122 | A+(980) |
134 //| 1112 | DL++(1620) |
135 fPdgDb->AddParticle("delta++", "delta++", 1.630, kFALSE, 0.145, 6, "Baryon", 2222);
136 fPdgDb->AddAntiParticle("delta++_bar", -2222);
137 //| 1113 | DL++(1700) |
138 fPdgDb->AddParticle("delta++", "delta++", 1.700, kFALSE, 0.300, 6, "Baryon", 12224);
139 fPdgDb->AddAntiParticle("delta++_bar", -12224);
140 //| 1114 | DL++(1925) |
141 fPdgDb->AddParticle("delta++", "delta++", 1.960, kFALSE, 0.360, 6, "Baryon", 12226);
142 fPdgDb->AddAntiParticle("delta++_bar", -12226);
143 //| 2222 | DL-(1620) |
144 fPdgDb->AddParticle("delta-", "delta-", 1.630, kFALSE, 0.145, -3, "Baryon", 1112);
145 fPdgDb->AddAntiParticle("delta-_bar", -1112);
146 //| 2223 | DL-(1700) |
147 fPdgDb->AddParticle("delta-", "delta-", 1.700, kFALSE, 0.300, -3, "Baryon", 11114);
148 fPdgDb->AddAntiParticle("delta-_bar", -11114);
149 //| 2224 | DL-(1925) |
150 fPdgDb->AddParticle("delta-", "delta-", 1.960, kFALSE, 0.360, -3, "Baryon", 11116);
151 fPdgDb->AddAntiParticle("delta-_bar", -11116);
152 //| 1122 | N*+(1440) |
153 fPdgDb->AddParticle("p*", "proton (excited)", 1.440, kFALSE, 0.3, 3, "Baryon", 12212);
154 fPdgDb->AddAntiParticle("p*_bar", -12212);
155 //| 1123 | N*+(1530) |
156 fPdgDb->AddParticle("p*", "proton (excited)", 1.535, kFALSE, 0.150, 3, "Baryon", 22212);
157 fPdgDb->AddAntiParticle("p*_bar", -22212);
158 //| 1125 | N*+(1665) |
159 fPdgDb->AddParticle("p*", "proton (excited)", 1.655, kFALSE, 0.165, 3, "Baryon", 32212);
160 fPdgDb->AddAntiParticle("p*_bar", -32212);
161 //| 1127 | N*+(1710) |
162 fPdgDb->AddParticle("p*", "proton (excited)", 1.710, kFALSE, 0.1, 3, "Baryon", 42212);
163 fPdgDb->AddAntiParticle("p*_bar", -42212);
164 //| 1222 | N*0(1440) |
165 fPdgDb->AddParticle("n*", "neutron (excited)", 1.440, kFALSE, 0.3, 3, "Baryon", 12112);
166 fPdgDb->AddAntiParticle("n*_bar", -12112);
167 //| 1223 | N*0(1530) |
168 fPdgDb->AddParticle("n*", "neutron (excited)", 1.535, kFALSE, 0.150, 3, "Baryon", 22112);
169 fPdgDb->AddAntiParticle("n*_bar", -22112);
170 //| 1225 | N*0(1665) |
171 fPdgDb->AddParticle("n*", "neutron (excited)", 1.655, kFALSE, 0.165, 3, "Baryon", 32112);
172 fPdgDb->AddAntiParticle("n*_bar", -32112);
173 //| 1227 | N*0(1710) |
174 fPdgDb->AddParticle("n*", "neutron (excited)", 1.710, kFALSE, 0.1, 3, "Baryon", 42112);
175 fPdgDb->AddAntiParticle("n*_bar", -42112);
176 //| 1124 | DL+(1620) |
177 fPdgDb->AddParticle("delta+", "delta+", 1.630, kFALSE, 0.145, 3, "Baryon", 2122);
178 fPdgDb->AddAntiParticle("delta+_bar", -2122);
179 //| 1126 | DL+(1700) |
180 fPdgDb->AddParticle("delta+", "delta+", 1.700, kFALSE, 0.300, 3, "Baryon", 12214);
181 fPdgDb->AddAntiParticle("delta+_bar", -12214);
182 //| 1128 | DL+(1925) |
183 fPdgDb->AddParticle("delta+", "delta+", 1.960, kFALSE, 0.360, 3, "Baryon", 12126);
184 fPdgDb->AddAntiParticle("delta+_bar", -12126);
185 //| 1224 | DL0(1620) |
186 fPdgDb->AddParticle("delta0", "delta0", 1.630, kFALSE, 0.145, 0, "Baryon", 1212);
187 fPdgDb->AddAntiParticle("delta0_bar", -1212);
188 //| 1226 | DL0(1700) |
189 fPdgDb->AddParticle("delta0", "delta0", 1.700, kFALSE, 0.300, 0, "Baryon", 12114);
190 fPdgDb->AddAntiParticle("delta0_bar", -12114);
191 //| 1228 | DL0(1925) |
192 fPdgDb->AddParticle("delta0", "delta0", 1.960, kFALSE, 0.360, 0, "Baryon", 11216);
193 fPdgDb->AddAntiParticle("delta0_bar", -11216);
194 //| 1233 | L(1405) |
195 fPdgDb->AddParticle("lambda0", "lambda0", 1.406, kFALSE, 0.050, 0, "Baryon", 13122);
196 fPdgDb->AddAntiParticle("lambda0_bar", -13122);
197 //| 1234 | L(1520) |
198 //| 1235 | L(1645) |
199 fPdgDb->AddParticle("lambda0", "lambda0", 1.670, kFALSE, 0.035, 0, "Baryon", 33122);
200 fPdgDb->AddAntiParticle("lambda0_bar", -33122);
201 //| 1238 | L(1845) |
202 fPdgDb->AddParticle("lambda0", "lambda0", 1.830, kFALSE, 0.095, 0, "Baryon", 13126);
203 fPdgDb->AddAntiParticle("lambda0_bar", -13126);
204 //| 1236 | S0(1665) |
205 fPdgDb->AddParticle("sigma0", "sigma0", 1.660, kFALSE, 0.100, 0, "Baryon", 13212);
206 fPdgDb->AddAntiParticle("sigma0_bar", -13212);
207 //| 1237 | S0(1776) |
208 fPdgDb->AddParticle("sigma0", "sigma0", 1.775, kFALSE, 0.120, 0, "Baryon", 3216);
209 fPdgDb->AddAntiParticle("sigma0_bar", -3216);
210 //| 1239 | S0(1930) |
211 fPdgDb->AddParticle("sigma0", "sigma0", 1.940, kFALSE, 0.220, 0, "Baryon", 23214);
212 fPdgDb->AddAntiParticle("sigma0_bar", -23214);
213 //| 1132 | S+(1665) |
214 fPdgDb->AddParticle("sigma+", "sigma+", 1.660, kFALSE, 0.100, 0, "Baryon", 13222);
215 fPdgDb->AddAntiParticle("sigma+_bar", -13222);
216 //| 1133 | S+(1776) |
217 fPdgDb->AddParticle("sigma+", "sigma+", 1.775, kFALSE, 0.120, 0, "Baryon", 3226);
218 fPdgDb->AddAntiParticle("sigma+_bar", -3226);
219 //| 1134 | S+(1930) |
220 fPdgDb->AddParticle("sigma+", "sigma+", 1.940, kFALSE, 0.220, 0, "Baryon", 23224);
221 fPdgDb->AddAntiParticle("sigma+_bar", -23224);
222 //| 2232 | S-(1665) |
223 fPdgDb->AddParticle("sigma-", "sigma-", 1.660, kFALSE, 0.100, 0, "Baryon", 13112);
224 fPdgDb->AddAntiParticle("sigma-_bar", -13112);
225 //| 2233 | S-(1776) |
226 fPdgDb->AddParticle("sigma-", "sigma-", 1.775, kFALSE, 0.120, 0, "Baryon", 3116);
227 fPdgDb->AddAntiParticle("sigma-_bar", -3116);
228 //| 2234 | S-(1930) |
229 fPdgDb->AddParticle("sigma-", "sigma-", 1.940, kFALSE, 0.220, 0, "Baryon", 23114);
230 fPdgDb->AddAntiParticle("sigma-_bar", -23114);
231 //+------+------------+
232
233}