14 StDecayMode::~StDecayMode() { mInstance=0; }
88 if (!mcVertex->numberOfDaughters())
return kWrongDecay;
89 if (mcVertex->geantProcess() != 5)
return kWrongDecay;
90 const StMcTrack* parent = mcVertex->parent();
93 Int_t parentId = parent->geantId();
94 StSPtrVecMcTrack& Daughters = mcVertex->daughters();
96 for (StMcTrackIterator DTrackIt = Daughters.begin();
97 DTrackIt != Daughters.end(); DTrackIt++) {
98 Int_t daughterId = (*DTrackIt)->geantId();
99 if (daughterId == 1) daughterId = -1;
105 case ( 5) :
return MuPlusProcess(ID);
106 case ( 6) :
return MuMinusProcess(ID);
107 case ( 8) :
return PiPlusProcess(ID);
108 case ( 9) :
return PiMinusProcess(ID);
109 case (10) :
return KLongProcess(ID,ID2);
110 case (11) :
return KPlusProcess(ID2);
111 case (12) :
return KMinusProcess(ID2);
112 case (16) :
return KShortProcess(ID);
113 case (18) :
return LambdaProcess(ID2);
114 case (26) :
return AntiLambdaProcess(ID,ID2);
115 case (23) :
return XiProcess(ID);
116 case (31) :
return AntiXiProcess(ID);
117 case (24) :
return OmegaProcess(ID2);
118 case (32) :
return AntiOmegaProcess(ID2);
124 Int_t StDecayMode::KPlusProcess(Int_t
ID)
128 case ( 20) :
return kKPlus2MuNu;
129 case ( 56) :
return kKPlus2PiPlusPiZero;
130 case (576) :
return kKPlus2PiPlusPiPlusPiMinus;
132 case ( 42) :
return kKPlus2ENuPiZero;
134 case (140) :
return kKPlus2MuNuPiZero;
135 case (392) :
return kKPlus2PiPlusPiZeroPiZero;
136 default :
return kWrongDecay;
141 Int_t StDecayMode::KMinusProcess(Int_t ID)
145 case ( 24) :
return kKMinus2MuNu;
146 case ( 63) :
return kKMinus2PiMinusPiZero;
147 case (648) :
return kKMinus2PiPlusPiMinusPiMinus;
149 case ( 84) :
return kKMinus2ENuPiZero;
151 case (168) :
return kKMinus2MuNuPiZero;
152 case (441) :
return kKMinus2PiMinusPiZeroPiZero;
153 default :
return kWrongDecay;
158 Int_t StDecayMode::KLongProcess(Int_t ID, Int_t ID2)
161 case (504) :
return kKLong2PiPlusPiZeroPiMinus;
163 case (192) :
return kKLong2PiPlusMuNu;
165 case (180) :
return kKLong2PiMinusMuNu;
167 case ( 96) :
return kKLong2PiMinusENu;
169 case ( 72) :
return ((ID==17) ? kKLong2PiPlusPiMinus : kKLong2PiPlusENu);
170 default :
return kWrongDecay;
174 Int_t StDecayMode::KShortProcess(Int_t ID)
177 case (17) :
return kKShort2PiPlusPiMinus;
178 case (14) :
return kKShort2PiZeroPiZero;
179 case (16) :
return kKShort2PiPlusPiMinusGamma;
180 default :
return kWrongDecay;
184 Int_t StDecayMode::PiPlusProcess(Int_t ID)
188 case (9) :
return kPiPlus2MuNu;
190 case (8) :
return kPiPlus2MuNuGamma;
192 case (6) :
return kPiPlus2ENu;
193 default :
return kWrongDecay;
197 Int_t StDecayMode::PiMinusProcess(Int_t ID)
201 case (10) :
return kPiMinus2MuNu;
203 case ( 9) :
return kPiMinus2MuNuGamma;
205 case ( 7) :
return kPiMinus2ENu;
206 default :
return kWrongDecay;
210 Int_t StDecayMode::MuPlusProcess(Int_t ID)
215 case (10) :
return kMuPlus2ENuNu;
218 case ( 9) :
return kMuPlus2ENuNuGamma;
219 default :
return kWrongDecay;
223 Int_t StDecayMode::MuMinusProcess(Int_t ID)
228 case (11) :
return kMuMinus2ENuNu;
231 case (10) :
return kMuMinus2ENuNuGamma;
232 default :
return kWrongDecay;
236 Int_t StDecayMode::LambdaProcess(Int_t ID)
239 case ( 126) :
return kLambda2ProtonPiMinus;
240 case ( 91) :
return kLambda2NeutronPiZero;
241 case ( -13) :
return kLambda2NeutronGamma;
242 case (-126) :
return kLambda2ProtonPiMinusGamma;
244 case ( 168) :
return kLambda2ProtonENu;
246 case ( 336) :
return kLambda2ProtonMuNu;
247 default :
return kWrongDecay;
251 Int_t StDecayMode::AntiLambdaProcess(Int_t ID, Int_t ID2)
254 case (23) :
return kAntiLambda2AntiProtonPiPlus;
255 case (32) :
return kAntiLambda2AntiNeutronPiZero;
256 case (24) :
if (ID2 == -25)
return kAntiLambda2AntiNeutronGamma;
257 case (20) :
return kAntiLambda2AntiProtonMuNu;
258 case (22) :
return kAntiLambda2AntiProtonPiPlusGamma;
260 case (21) :
return kAntiLambda2AntiProtonENu;
261 default :
return kWrongDecay;
266 Int_t StDecayMode::XiProcess(Int_t ID)
269 case (27) :
return kCascade2LambdaPiMinus;
270 default :
return kWrongDecay;
274 Int_t StDecayMode::AntiXiProcess(Int_t ID)
277 case (34) :
return kAntiCascade2AntiLambdaPiPlus;
278 default :
return kWrongDecay;
282 Int_t StDecayMode::OmegaProcess(Int_t ID)
285 case (216) :
return kOmega2LambdaKMinus;
286 case (198) :
return kOmega2CascadePiMinus;
287 case (161) :
return kOmega2CascadePiZero;
288 default :
return kWrongDecay;
292 Int_t StDecayMode::AntiOmegaProcess(Int_t ID)
295 case (286) :
return kAntiOmega2AntiLambdaKPlus;
296 case (240) :
return kAntiOmega2AntiCascadePiPlus;
297 case (217) :
return kAntiOmega2AntiCascadePiZero;
298 default :
return kWrongDecay;
306 case (kKPlus2PiPlusPiZero) :
307 case (kKPlus2PiPlusPiPlusPiMinus) :
308 case (kKPlus2ENuPiZero) :
309 case (kKPlus2MuNuPiZero) :
310 case (kKPlus2PiPlusPiZeroPiZero) :
311 case (kPiPlus2MuNu) :
312 case (kPiPlus2MuNuGamma) :
314 case (kMuPlus2ENuNu) :
315 case (kMuPlus2ENuNuGamma) :
316 case (kAntiCascade2AntiLambdaPiPlus) :
317 case (kAntiOmega2AntiLambdaKPlus) :
318 case (kAntiOmega2AntiCascadePiPlus) :
return 1;
319 case (kKMinus2MuNu) :
320 case (kKMinus2PiMinusPiZero) :
321 case (kKMinus2PiPlusPiMinusPiMinus) :
322 case (kKMinus2ENuPiZero) :
323 case (kKMinus2MuNuPiZero) :
324 case (kKMinus2PiMinusPiZeroPiZero) :
325 case (kPiMinus2MuNu) :
326 case (kPiMinus2MuNuGamma) :
327 case (kPiMinus2ENu) :
328 case (kMuMinus2ENuNu) :
329 case (kMuMinus2ENuNuGamma) :
330 case (kCascade2LambdaPiMinus) :
331 case (kOmega2LambdaKMinus) :
332 case (kOmega2CascadePiMinus) :
return -1;
Monte Carlo Track class All information on a simulated track is stored in this class: kinematics...
Int_t ParentCharge(Int_t mode)
Int_t Process(StMcVertex *mcVertex)