- track nucleon fragments
[u/mrichter/AliRoot.git] / TDPMjet / AliGenDPMjet.cxx
CommitLineData
1a52e0ed 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16
17// Generator using DPMJET as an external generator
18// The main DPMJET options are accessable for the user through this interface.
19// Uses the TDPMjet implementation of TGenerator.
20
21#include <TDPMjet.h>
60e3ddb0 22#include "DPMcommon.h"
1a52e0ed 23#include <TRandom.h>
24#include <TArrayI.h>
25#include <TParticle.h>
26#include <TGraph.h>
27#include <TDatabasePDG.h>
28#include <TParticlePDG.h>
29#include <TParticleClassPDG.h>
30#include <TPDGCode.h>
31#include <TLorentzVector.h>
07c71c2e 32#include <TClonesArray.h>
9dcc0beb 33#include "AliRunLoader.h"
1a52e0ed 34#include "AliGenDPMjet.h"
35#include "AliGenDPMjetEventHeader.h"
1a52e0ed 36#include "AliRun.h"
f2ba02a4 37#include "AliDpmJetRndm.h"
9dcc0beb 38#include "AliHeader.h"
39#include "AliStack.h"
40#include "AliMC.h"
c5dfa3e4 41#include "AliLog.h"
1a52e0ed 42
f97d4a8e 43ClassImp(AliGenDPMjet)
1a52e0ed 44
45//______________________________________________________________________________
46AliGenDPMjet::AliGenDPMjet()
f97d4a8e 47 :AliGenMC(),
7cbda79e 48 fBeamEn(0.),
f97d4a8e 49 fMinImpactParam(0.),
7cbda79e 50 fMaxImpactParam(100.),
f97d4a8e 51 fICentr(0),
52 fSelectAll(0),
53 fFlavor(0),
54 fTrials(0),
55 fSpectators(1),
56 fSpecn(0),
57 fSpecp(0),
58 fDPMjet(0),
f97d4a8e 59 fNoGammas(0),
60 fLHC(0),
9c97cedd 61 fPi0Decay(1),
717765ce 62 fDecayAll(0),
f97d4a8e 63 fGenImpPar(0.),
3b50c39e 64 fProcess(kDpmMb),
65 fTriggerMultiplicity(0),
66 fTriggerMultiplicityEta(0),
19896767 67 fTriggerMultiplicityPtMin(0),
68 fkTuneForDiff(0),
5fed2e29 69 fProcDiff(0),
7cbda79e 70 fFragmentation(kFALSE),
71 fHeader(AliGenDPMjetEventHeader("DPMJET"))
72
1a52e0ed 73{
74// Constructor
e7c989e4 75 fEnergyCMS = 5500.;
f2ba02a4 76 AliDpmJetRndm::SetDpmJetRandom(GetRandom());
1a52e0ed 77}
78
79
80//______________________________________________________________________________
81AliGenDPMjet::AliGenDPMjet(Int_t npart)
f97d4a8e 82 :AliGenMC(npart),
7cbda79e 83 fBeamEn(0.),
f97d4a8e 84 fMinImpactParam(0.),
7cbda79e 85 fMaxImpactParam(100.),
f97d4a8e 86 fICentr(0),
87 fSelectAll(0),
88 fFlavor(0),
89 fTrials(0),
90 fSpectators(1),
91 fSpecn(0),
92 fSpecp(0),
93 fDPMjet(0),
f97d4a8e 94 fNoGammas(0),
95 fLHC(0),
9c97cedd 96 fPi0Decay(1),
717765ce 97 fDecayAll(0),
f97d4a8e 98 fGenImpPar(0.),
3b50c39e 99 fProcess(kDpmMb),
100 fTriggerMultiplicity(0),
101 fTriggerMultiplicityEta(0),
19896767 102 fTriggerMultiplicityPtMin(0),
103 fkTuneForDiff(0),
5fed2e29 104 fProcDiff(0),
7cbda79e 105 fFragmentation(kFALSE),
106 fHeader(AliGenDPMjetEventHeader("DPMJET"))
107
5fed2e29 108
1a52e0ed 109{
110// Default PbPb collisions at 5. 5 TeV
111//
e7c989e4 112 fEnergyCMS = 5500.;
1a52e0ed 113 fName = "DPMJET";
114 fTitle= "Particle Generator using DPMJET";
1a52e0ed 115 SetTarget();
116 SetProjectile();
f2ba02a4 117 fVertex.Set(3);
f2ba02a4 118 AliDpmJetRndm::SetDpmJetRandom(GetRandom());
1a52e0ed 119}
120
ba758f5a 121AliGenDPMjet::AliGenDPMjet(const AliGenDPMjet &/*Dpmjet*/)
f97d4a8e 122 :AliGenMC(),
7cbda79e 123 fBeamEn(0.),
f97d4a8e 124 fMinImpactParam(0.),
7cbda79e 125 fMaxImpactParam(100.),
f97d4a8e 126 fICentr(0),
127 fSelectAll(0),
128 fFlavor(0),
129 fTrials(0),
130 fSpectators(1),
131 fSpecn(0),
132 fSpecp(0),
133 fDPMjet(0),
f97d4a8e 134 fNoGammas(0),
135 fLHC(0),
9c97cedd 136 fPi0Decay(1),
717765ce 137 fDecayAll(0),
f97d4a8e 138 fGenImpPar(0.),
3b50c39e 139 fProcess(kDpmMb),
140 fTriggerMultiplicity(0),
141 fTriggerMultiplicityEta(0),
19896767 142 fTriggerMultiplicityPtMin(0),
143 fkTuneForDiff(0),
5fed2e29 144 fProcDiff(0),
7cbda79e 145 fFragmentation(kFALSE),
146 fHeader(0x0)
147
5fed2e29 148
ba758f5a 149{
f97d4a8e 150 // Dummy copy constructor
e7c989e4 151 fEnergyCMS = 5500.;
ba758f5a 152}
1a52e0ed 153
154//______________________________________________________________________________
155AliGenDPMjet::~AliGenDPMjet()
156{
157// Destructor
1a52e0ed 158}
1a52e0ed 159//______________________________________________________________________________
160void AliGenDPMjet::Init()
161{
162// Initialization
163
7cbda79e 164 if(fEnergyCMS>0. && fBeamEn<0.1) fBeamEn = fEnergyCMS/2;
e67e0fb7 165 SetMC(new TDPMjet(fProcess, fAProjectile, fZProjectile, fATarget, fZTarget,
1a52e0ed 166 fBeamEn,fEnergyCMS));
167
35c87559 168 fDPMjet=(TDPMjet*) fMCEvGen;
7cbda79e 169 if (fAProjectile == 1 && TMath::Abs(fZProjectile == 1)) fDPMjet->SetfIdp(1);
170
1a52e0ed 171 // **** Flag to force central production
172 // fICentr=1. central production forced
173 // fICentr<0 && fICentr>-100 -> bmin = fMinImpactParam, bmax = fMaxImpactParam
174 // fICentr<-99 -> fraction of x-sec. = XSFRAC
175 // fICentr=-1. -> evaporation/fzc suppressed
7cbda79e 176 // fICentr<-1. -> evaporation/fzc allowed
1a52e0ed 177 fDPMjet->SetfFCentr(fICentr);
7cbda79e 178
e67e0fb7 179 fDPMjet->SetbRange(fMinImpactParam, fMaxImpactParam);
f97d4a8e 180 fDPMjet->SetPi0Decay(fPi0Decay);
717765ce 181 fDPMjet->SetDecayAll(fDecayAll);
5fed2e29 182 fDPMjet->SetFragmentProd(fFragmentation);
e2b2a1dd 183
1a52e0ed 184//
185// Initialize DPMjet
186//
187 fDPMjet->Initialize();
1a52e0ed 188}
189
190
191//______________________________________________________________________________
192void AliGenDPMjet::Generate()
193{
194// Generate one event
195
c0d429ef 196 Double_t polar[3] = {0,0,0};
197 Double_t origin[3] = {0,0,0};
198 Double_t p[4] = {0};
1a52e0ed 199 Float_t tof;
200
201// converts from mm/c to s
202 const Float_t kconv = 0.001/2.999792458e8;
203 Int_t nt = 0;
204 Int_t jev = 0;
e67e0fb7 205 Int_t kf, ks, imo;
1a52e0ed 206 kf = 0;
1a52e0ed 207 fTrials = 0;
e67e0fb7 208 // Set collision vertex position
209 if (fVertexSmear == kPerEvent) Vertex();
1a52e0ed 210
211 while(1)
212 {
213// Generate one event
214// --------------------------------------------------------------------------
215 fSpecn = 0;
216 fSpecp = 0;
217// --------------------------------------------------------------------------
218 fDPMjet->GenerateEvent();
9c97cedd 219
1a52e0ed 220 fTrials++;
221
8507138f 222 fDPMjet->ImportParticles(&fParticles,"All");
1a52e0ed 223 if (fLHC) Boost();
224
225 // Temporaneo
226 fGenImpPar = fDPMjet->GetBImpac();
41cc7c18 227
228 if(TMath::Abs(fXingAngleY) > 1.e-10) BeamCrossAngle();
229
8507138f 230 Int_t np = fParticles.GetEntriesFast();
3b50c39e 231 //
232 // Multiplicity Trigger
233 if (fTriggerMultiplicity > 0) {
234 Int_t multiplicity = 0;
235 for (Int_t i = 0; i < np; i++) {
236 TParticle * iparticle = (TParticle *) fParticles.At(i);
237
238 Int_t statusCode = iparticle->GetStatusCode();
239
240 // Initial state particle
241 if (statusCode != 1)
242 continue;
243 // eta cut
244 if (fTriggerMultiplicityEta > 0 && TMath::Abs(iparticle->Eta()) > fTriggerMultiplicityEta)
245 continue;
246 // pt cut
247 if (iparticle->Pt() < fTriggerMultiplicityPtMin)
248 continue;
249
250 TParticlePDG* pdgPart = iparticle->GetPDG();
251 if (pdgPart && pdgPart->Charge() == 0)
252 continue;
253 ++multiplicity;
254 }
255 //
256 //
257 if (multiplicity < fTriggerMultiplicity) continue;
258 Printf("Triggered on event with multiplicity of %d >= %d", multiplicity, fTriggerMultiplicity);
259 }
260
19896767 261
c5dfa3e4 262 if(fkTuneForDiff && ( (TMath::Abs(fEnergyCMS - 900) < 1) || (TMath::Abs(fEnergyCMS - 2760) < 1) || (TMath::Abs(fEnergyCMS - 7000) < 1)) ) {
19896767 263 if(!CheckDiffraction() ) continue;
264 }
265
266
3b50c39e 267 Int_t nc = 0;
268 if (np == 0) continue;
269
1a52e0ed 270 Int_t i;
271 Int_t* newPos = new Int_t[np];
272 Int_t* pSelected = new Int_t[np];
273
274 for (i = 0; i<np; i++) {
275 newPos[i] = i;
276 pSelected[i] = 0;
277 }
278
1a52e0ed 279// First select parent particles
280
281 for (i = 0; i<np; i++) {
8507138f 282 TParticle *iparticle = (TParticle *) fParticles.At(i);
1a52e0ed 283
284// Is this a parent particle ?
285
286 if (Stable(iparticle)) continue;
287
288 Bool_t selected = kTRUE;
289 Bool_t hasSelectedDaughters = kFALSE;
290
291 kf = iparticle->GetPdgCode();
cd19c617 292 if (kf == 92 || kf == 99999) continue;
1a52e0ed 293 ks = iparticle->GetStatusCode();
294// No initial state partons
295 if (ks==21) continue;
1a52e0ed 296 if (!fSelectAll) selected = KinematicSelection(iparticle, 0) &&
297 SelectFlavor(kf);
9c97cedd 298
299
1a52e0ed 300 hasSelectedDaughters = DaughtersSelection(iparticle);
301
9c97cedd 302
1a52e0ed 303// Put particle on the stack if it is either selected or
304// it is the mother of at least one seleted particle
305
306 if (selected || hasSelectedDaughters) {
307 nc++;
308 pSelected[i] = 1;
309 } // selected
310 } // particle loop parents
311
312// Now select the final state particles
313
314
315 for (i=0; i<np; i++) {
8507138f 316 TParticle *iparticle = (TParticle *) fParticles.At(i);
1a52e0ed 317
318// Is this a final state particle ?
319
320 if (!Stable(iparticle)) continue;
321
322 Bool_t selected = kTRUE;
323 kf = iparticle->GetPdgCode();
324 ks = iparticle->GetStatusCode();
325
326// --------------------------------------------------------------------------
327// Count spectator neutrons and protons (ks == 13, 14)
328 if(ks == 13 || ks == 14){
329 if(kf == kNeutron) fSpecn += 1;
330 if(kf == kProton) fSpecp += 1;
331 }
332// --------------------------------------------------------------------------
333
334 if (!fSelectAll) {
335 selected = KinematicSelection(iparticle,0)&&SelectFlavor(kf);
336 if (!fSpectators && selected) selected = (ks == 13 || ks == 14);
337 }
338
339// Put particle on the stack if selected
340
341 if (selected) {
342 nc++;
343 pSelected[i] = 1;
344 } // selected
345 } // particle loop final state
346
347// Write particles to stack
348
349 for (i = 0; i<np; i++) {
8507138f 350 TParticle * iparticle = (TParticle *) fParticles.At(i);
1a52e0ed 351 Bool_t hasMother = (iparticle->GetFirstMother()>=0);
1a52e0ed 352 if (pSelected[i]) {
353
354 kf = iparticle->GetPdgCode();
1a52e0ed 355 ks = iparticle->GetStatusCode();
356
357 p[0] = iparticle->Px();
358 p[1] = iparticle->Py();
359 p[2] = iparticle->Pz();
c0d429ef 360 p[3] = iparticle->Energy();
e67e0fb7 361 origin[0] = fVertex[0]+iparticle->Vx()/10; // [cm]
362 origin[1] = fVertex[1]+iparticle->Vy()/10; // [cm]
363 origin[2] = fVertex[2]+iparticle->Vz()/10; // [cm]
364
21391258 365 tof = fTime + kconv*iparticle->T();
1a52e0ed 366
367 imo = -1;
368 TParticle* mother = 0;
369 if (hasMother) {
370 imo = iparticle->GetFirstMother();
8507138f 371 mother = (TParticle *) fParticles.At(imo);
cd19c617 372 imo = (mother->GetPdgCode() != 92 && mother->GetPdgCode() != 99999) ? newPos[imo] : -1;
1a52e0ed 373 } // if has mother
374
9c97cedd 375
376
993be958 377 Bool_t tFlag = (fTrackIt && (ks==1 || ks==-1 || ks==1001));
c0d429ef 378 PushTrack(tFlag, imo, kf,
379 p[0], p[1], p[2], p[3],
380 origin[0], origin[1], origin[2], tof,
381 polar[0], polar[1], polar[2],
382 kPNoProcess, nt, 1., ks);
1a52e0ed 383 KeepTrack(nt);
384 newPos[i] = nt;
385 } // if selected
386 } // particle loop
387 delete[] newPos;
388 delete[] pSelected;
1a52e0ed 389 if (nc>0) {
390 jev += nc;
391 if (jev >= fNpart || fNpart == -1) {
1a52e0ed 392 break;
393 }
1a52e0ed 394 }
395 } // event loop
396 MakeHeader();
397 SetHighWaterMark(nt);
398}
399
1a52e0ed 400//______________________________________________________________________________
401Bool_t AliGenDPMjet::DaughtersSelection(TParticle* iparticle)
402{
403//
404// Looks recursively if one of the daughters has been selected
405//
406// printf("\n Consider daughters %d:",iparticle->GetPdgCode());
407 Int_t imin = -1;
408 Int_t imax = -1;
409 Int_t i;
410 Bool_t hasDaughters = (iparticle->GetFirstDaughter() >=0);
411 Bool_t selected = kFALSE;
412 if (hasDaughters) {
413 imin = iparticle->GetFirstDaughter();
414 imax = iparticle->GetLastDaughter();
415 for (i = imin; i <= imax; i++){
8507138f 416 TParticle * jparticle = (TParticle *) fParticles.At(i);
1a52e0ed 417 Int_t ip = jparticle->GetPdgCode();
418 if (KinematicSelection(jparticle,0)&&SelectFlavor(ip)) {
419 selected=kTRUE; break;
420 }
421 if (DaughtersSelection(jparticle)) {selected=kTRUE; break; }
422 }
423 } else {
424 return kFALSE;
425 }
426 return selected;
427}
428
429
430
431//______________________________________________________________________________
432Bool_t AliGenDPMjet::SelectFlavor(Int_t pid)
433{
434// Select flavor of particle
435// 0: all
436// 4: charm and beauty
437// 5: beauty
438 Bool_t res = 0;
439
440 if (fFlavor == 0) {
441 res = kTRUE;
442 } else {
443 Int_t ifl = TMath::Abs(pid/100);
444 if (ifl > 10) ifl/=10;
445 res = (fFlavor == ifl);
446 }
447//
448// This part if gamma writing is inhibited
449 if (fNoGammas)
450 res = res && (pid != kGamma && pid != kPi0);
451//
452 return res;
453}
454
455//______________________________________________________________________________
456Bool_t AliGenDPMjet::Stable(TParticle* particle)
457{
458// Return true for a stable particle
459//
460
461// if (particle->GetFirstDaughter() < 0 ) return kTRUE;
462 if (particle->GetStatusCode() == 1) return kTRUE;
463 else return kFALSE;
464
465}
466
1a52e0ed 467//______________________________________________________________________________
468void AliGenDPMjet::MakeHeader()
469{
470// Builds the event header, to be called after each event
7cbda79e 471 fHeader.SetNProduced(fDPMjet->GetNumStablePc());
472 fHeader.SetImpactParameter(fDPMjet->GetBImpac());
473 fHeader.SetTotalEnergy(fDPMjet->GetTotEnergy());
474 fHeader.SetParticipants(fDPMjet->GetProjParticipants(),
475 fDPMjet->GetTargParticipants());
476
477 fHeader.SetCollisions(DTGLCP.ncp, DTGLCP.nct,
478 fDPMjet->GetProjWounded(),fDPMjet->GetTargWounded());
479
480 if(fProcDiff>0) fHeader.SetProcessType(fProcDiff);
481 else fHeader.SetProcessType(fDPMjet->GetProcessCode());
19896767 482
3c349853 483 // Bookkeeping for kinematic bias
7cbda79e 484 fHeader.SetTrials(fTrials);
3c349853 485 // Event Vertex
7cbda79e 486 fHeader.SetPrimaryVertex(fVertex);
487 fHeader.SetInteractionTime(fTime);
488 fHeader.SetNDiffractive(POEVT1.nsd1, POEVT1.nsd2, POEVT1.ndd);
489// gAlice->SetGenEventHeader(fHeader);
490 AddHeader(&fHeader);
491 fCollisionGeometry = &fHeader;
1a52e0ed 492}
493
7cbda79e 494//______________________________________________________________________________
495/*void AliGenDPMjet::AddHeader(AliGenEventHeader* fHeader)
9dcc0beb 496{
7cbda79e 497 // Add fHeader to container or runloader
9dcc0beb 498 if (fContainer) {
7cbda79e 499 fContainer->AddHeader(fHeader);
9dcc0beb 500 } else {
7cbda79e 501 AliRunLoader::Instance()->GetHeader()->SetGenEventHeader(fHeader);
9dcc0beb 502 }
7cbda79e 503}*/
1a52e0ed 504
505
506//______________________________________________________________________________
ba758f5a 507AliGenDPMjet& AliGenDPMjet::operator=(const AliGenDPMjet& /*rhs*/)
1a52e0ed 508{
509// Assignment operator
510 return *this;
511}
512
513
e2b2a1dd 514//______________________________________________________________________________
d2593e7a 515void AliGenDPMjet::FinishRun()
516{
517 // Print run statistics
518 fDPMjet->Dt_Dtuout();
519}
520
19896767 521
e2b2a1dd 522//______________________________________________________________________________
19896767 523Bool_t AliGenDPMjet::CheckDiffraction()
524{
525
526 // printf("AAA\n");
527
528 Int_t np = fParticles.GetEntriesFast();
529
530 Int_t iPart1=-1;
531 Int_t iPart2=-1;
532
533 Double_t y1 = 1e10;
534 Double_t y2 = -1e10;
535
536 const Int_t kNstable=20;
537 const Int_t pdgStable[20] = {
538 22, // Photon
539 11, // Electron
540 12, // Electron Neutrino
541 13, // Muon
542 14, // Muon Neutrino
543 15, // Tau
544 16, // Tau Neutrino
545 211, // Pion
546 321, // Kaon
547 311, // K0
548 130, // K0s
549 310, // K0l
550 2212, // Proton
551 2112, // Neutron
552 3122, // Lambda_0
553 3112, // Sigma Minus
554 3222, // Sigma Plus
555 3312, // Xsi Minus
556 3322, // Xsi0
557 3334 // Omega
558 };
d2593e7a 559
19896767 560 for (Int_t i = 0; i < np; i++) {
561 TParticle * part = (TParticle *) fParticles.At(i);
562
563 Int_t statusCode = part->GetStatusCode();
564
565 // Initial state particle
566 if (statusCode != 1)
567 continue;
568
569 Int_t pdg = TMath::Abs(part->GetPdgCode());
570 Bool_t isStable = kFALSE;
571 for (Int_t i1 = 0; i1 < kNstable; i1++) {
572 if (pdg == pdgStable[i1]) {
573 isStable = kTRUE;
574 break;
575 }
576 }
577 if(!isStable)
578 continue;
579
580 Double_t y = part->Y();
581
582 if (y < y1)
583 {
584 y1 = y;
585 iPart1 = i;
586 }
587 if (y > y2)
588 {
589 y2 = y;
590 iPart2 = i;
591 }
592 }
593
594 if(iPart1<0 || iPart2<0) return kFALSE;
595
596 y1=TMath::Abs(y1);
597 y2=TMath::Abs(y2);
598
599 TParticle * part1 = (TParticle *) fParticles.At(iPart1);
600 TParticle * part2 = (TParticle *) fParticles.At(iPart2);
601
602 Int_t pdg1 = part1->GetPdgCode();
603 Int_t pdg2 = part2->GetPdgCode();
604
605
606 Int_t iPart = -1;
607 if (pdg1 == 2212 && pdg2 == 2212)
608 {
609 if(y1 > y2)
610 iPart = iPart1;
611 else if(y1 < y2)
612 iPart = iPart2;
613 else {
614 iPart = iPart1;
615 if((AliDpmJetRndm::GetDpmJetRandom())->Uniform(0.,1.)>0.5) iPart = iPart2;
616 }
617 }
618 else if (pdg1 == 2212)
619 iPart = iPart1;
620 else if (pdg2 == 2212)
621 iPart = iPart2;
622
623
624
625
626
627 Double_t M=-1.;
628 if(iPart>0) {
629 TParticle * part = (TParticle *) fParticles.At(iPart);
630 Double_t E= part->Energy();
631 Double_t P= part->P();
632 M= TMath::Sqrt((fEnergyCMS-E-P)*(fEnergyCMS-E+P));
633 }
634
c5dfa3e4 635 Double_t Mmin, Mmax, wSD, wDD, wND;
636
637 if(!GetWeightsDiffraction(M, Mmin, Mmax, wSD, wDD, wND)) return kFALSE;
638 if(M>-1 && M<Mmin) return kFALSE;
639 if(M>Mmax) M=-1;
640
19896767 641
642 Int_t procType=fDPMjet->GetProcessCode();//fPythia->GetMSTI(1);
c5dfa3e4 643 if(procType== 4) return kFALSE;
19896767 644 Int_t proc0=2;
645 if(procType== 7) proc0=1;
646 if(procType== 5 || procType== 6) proc0=0;
647
648
19896767 649 Int_t proc=2;
650 if(M>0) proc=0;
651 else if(proc0==1) proc=1;
652
19896767 653 if(proc==1 && (AliDpmJetRndm::GetDpmJetRandom())->Uniform(0.,1.) > wDD) return kFALSE;
654 if(proc==2 && (AliDpmJetRndm::GetDpmJetRandom())->Uniform(0.,1.) > wND) return kFALSE;
655
656
19896767 657
658 if(proc!=0) {
659 if(proc0!=0) fProcDiff = procType;
660 else fProcDiff = 1;
661 return kTRUE;
662 }
663
c5dfa3e4 664 if(wSD<0) AliError("wSD<0 ! \n");
19896767 665
c5dfa3e4 666 if((AliDpmJetRndm::GetDpmJetRandom())->Uniform(0.,1.)> wSD) return kFALSE;
19896767 667
668 // printf("iPart = %d\n", iPart);
669
670 if(iPart==iPart1) fProcDiff=5;
671 else if(iPart==iPart2) fProcDiff=6;
672 else {
673 printf("EROOR: iPart!=iPart1 && iPart!=iPart2\n");
674
675 }
676
677 return kTRUE;
678}
679
1a52e0ed 680
c5dfa3e4 681
682Bool_t AliGenDPMjet::GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax,
683 Double_t &wSD, Double_t &wDD, Double_t &wND)
684{
685
686 if(TMath::Abs(fEnergyCMS-900)<1 ){
687const Int_t nbin=400;
688Double_t bin[]={
6891.080000, 1.577300, 2.074600, 2.571900, 3.069200, 3.566500,
6904.063800, 4.561100, 5.058400, 5.555700, 6.053000, 6.550300,
6917.047600, 7.544900, 8.042200, 8.539500, 9.036800, 9.534100,
69210.031400, 10.528700, 11.026000, 11.523300, 12.020600, 12.517900,
69313.015200, 13.512500, 14.009800, 14.507100, 15.004400, 15.501700,
69415.999000, 16.496300, 16.993600, 17.490900, 17.988200, 18.485500,
69518.982800, 19.480100, 19.977400, 20.474700, 20.972000, 21.469300,
69621.966600, 22.463900, 22.961200, 23.458500, 23.955800, 24.453100,
69724.950400, 25.447700, 25.945000, 26.442300, 26.939600, 27.436900,
69827.934200, 28.431500, 28.928800, 29.426100, 29.923400, 30.420700,
69930.918000, 31.415300, 31.912600, 32.409900, 32.907200, 33.404500,
70033.901800, 34.399100, 34.896400, 35.393700, 35.891000, 36.388300,
70136.885600, 37.382900, 37.880200, 38.377500, 38.874800, 39.372100,
70239.869400, 40.366700, 40.864000, 41.361300, 41.858600, 42.355900,
70342.853200, 43.350500, 43.847800, 44.345100, 44.842400, 45.339700,
70445.837000, 46.334300, 46.831600, 47.328900, 47.826200, 48.323500,
70548.820800, 49.318100, 49.815400, 50.312700, 50.810000, 51.307300,
70651.804600, 52.301900, 52.799200, 53.296500, 53.793800, 54.291100,
70754.788400, 55.285700, 55.783000, 56.280300, 56.777600, 57.274900,
70857.772200, 58.269500, 58.766800, 59.264100, 59.761400, 60.258700,
70960.756000, 61.253300, 61.750600, 62.247900, 62.745200, 63.242500,
71063.739800, 64.237100, 64.734400, 65.231700, 65.729000, 66.226300,
71166.723600, 67.220900, 67.718200, 68.215500, 68.712800, 69.210100,
71269.707400, 70.204700, 70.702000, 71.199300, 71.696600, 72.193900,
71372.691200, 73.188500, 73.685800, 74.183100, 74.680400, 75.177700,
71475.675000, 76.172300, 76.669600, 77.166900, 77.664200, 78.161500,
71578.658800, 79.156100, 79.653400, 80.150700, 80.648000, 81.145300,
71681.642600, 82.139900, 82.637200, 83.134500, 83.631800, 84.129100,
71784.626400, 85.123700, 85.621000, 86.118300, 86.615600, 87.112900,
71887.610200, 88.107500, 88.604800, 89.102100, 89.599400, 90.096700,
71990.594000, 91.091300, 91.588600, 92.085900, 92.583200, 93.080500,
72093.577800, 94.075100, 94.572400, 95.069700, 95.567000, 96.064300,
72196.561600, 97.058900, 97.556200, 98.053500, 98.550800, 99.048100,
72299.545400, 100.042700, 100.540000, 101.037300, 101.534600, 102.031900,
723102.529200, 103.026500, 103.523800, 104.021100, 104.518400, 105.015700,
724105.513000, 106.010300, 106.507600, 107.004900, 107.502200, 107.999500,
725108.496800, 108.994100, 109.491400, 109.988700, 110.486000, 110.983300,
726111.480600, 111.977900, 112.475200, 112.972500, 113.469800, 113.967100,
727114.464400, 114.961700, 115.459000, 115.956300, 116.453600, 116.950900,
728117.448200, 117.945500, 118.442800, 118.940100, 119.437400, 119.934700,
729120.432000, 120.929300, 121.426600, 121.923900, 122.421200, 122.918500,
730123.415800, 123.913100, 124.410400, 124.907700, 125.405000, 125.902300,
731126.399600, 126.896900, 127.394200, 127.891500, 128.388800, 128.886100,
732129.383400, 129.880700, 130.378000, 130.875300, 131.372600, 131.869900,
733132.367200, 132.864500, 133.361800, 133.859100, 134.356400, 134.853700,
734135.351000, 135.848300, 136.345600, 136.842900, 137.340200, 137.837500,
735138.334800, 138.832100, 139.329400, 139.826700, 140.324000, 140.821300,
736141.318600, 141.815900, 142.313200, 142.810500, 143.307800, 143.805100,
737144.302400, 144.799700, 145.297000, 145.794300, 146.291600, 146.788900,
738147.286200, 147.783500, 148.280800, 148.778100, 149.275400, 149.772700,
739150.270000, 150.767300, 151.264600, 151.761900, 152.259200, 152.756500,
740153.253800, 153.751100, 154.248400, 154.745700, 155.243000, 155.740300,
741156.237600, 156.734900, 157.232200, 157.729500, 158.226800, 158.724100,
742159.221400, 159.718700, 160.216000, 160.713300, 161.210600, 161.707900,
743162.205200, 162.702500, 163.199800, 163.697100, 164.194400, 164.691700,
744165.189000, 165.686300, 166.183600, 166.680900, 167.178200, 167.675500,
745168.172800, 168.670100, 169.167400, 169.664700, 170.162000, 170.659300,
746171.156600, 171.653900, 172.151200, 172.648500, 173.145800, 173.643100,
747174.140400, 174.637700, 175.135000, 175.632300, 176.129600, 176.626900,
748177.124200, 177.621500, 178.118800, 178.616100, 179.113400, 179.610700,
749180.108000, 180.605300, 181.102600, 181.599900, 182.097200, 182.594500,
750183.091800, 183.589100, 184.086400, 184.583700, 185.081000, 185.578300,
751186.075600, 186.572900, 187.070200, 187.567500, 188.064800, 188.562100,
752189.059400, 189.556700, 190.054000, 190.551300, 191.048600, 191.545900,
753192.043200, 192.540500, 193.037800, 193.535100, 194.032400, 194.529700,
754195.027000, 195.524300, 196.021600, 196.518900, 197.016200, 197.513500,
755198.010800, 198.508100, 199.005400, 199.502700, 200.000000};
756Double_t w[]={
7571.000000, 0.389079, 0.326612, 0.356363, 0.310726, 0.264037,
7580.253810, 0.224655, 0.207990, 0.198149, 0.186803, 0.180209,
7590.178928, 0.161772, 0.162314, 0.158409, 0.148379, 0.143557,
7600.140357, 0.136272, 0.136957, 0.136606, 0.129376, 0.127671,
7610.128406, 0.132239, 0.119311, 0.130227, 0.130233, 0.123312,
7620.115257, 0.120105, 0.119733, 0.117116, 0.110096, 0.117509,
7630.109149, 0.114372, 0.100322, 0.106227, 0.108696, 0.110352,
7640.106748, 0.101475, 0.101837, 0.098585, 0.094433, 0.100148,
7650.096505, 0.100155, 0.103526, 0.098161, 0.093647, 0.100121,
7660.097426, 0.093414, 0.090241, 0.097228, 0.098098, 0.098340,
7670.096779, 0.099265, 0.095101, 0.090342, 0.097469, 0.090663,
7680.093422, 0.093103, 0.089648, 0.096923, 0.088079, 0.089360,
7690.097772, 0.092932, 0.093554, 0.085784, 0.096395, 0.096304,
7700.090183, 0.089255, 0.090265, 0.086262, 0.087044, 0.088965,
7710.085825, 0.095073, 0.085933, 0.091005, 0.091707, 0.092428,
7720.091689, 0.091224, 0.095256, 0.083407, 0.087983, 0.090320,
7730.081580, 0.088077, 0.083478, 0.091309, 0.083734, 0.089906,
7740.100155, 0.092728, 0.086542, 0.078091, 0.085261, 0.094302,
7750.078063, 0.090070, 0.086566, 0.095020, 0.082124, 0.084791,
7760.090624, 0.090236, 0.086344, 0.085706, 0.085913, 0.083107,
7770.092557, 0.081144, 0.091254, 0.096139, 0.079458, 0.088124,
7780.088777, 0.076652, 0.085168, 0.082326, 0.080435, 0.085022,
7790.085693, 0.093957, 0.088134, 0.082347, 0.082139, 0.090980,
7800.078397, 0.093595, 0.091562, 0.081789, 0.085026, 0.080868,
7810.083455, 0.084590, 0.084124, 0.081486, 0.087242, 0.080928,
7820.096392, 0.078324, 0.092093, 0.074267, 0.082925, 0.090717,
7830.081467, 0.080435, 0.078825, 0.075843, 0.088940, 0.081451,
7840.096047, 0.088102, 0.091710, 0.095208, 0.086160, 0.091305,
7850.085406, 0.094432, 0.078227, 0.099870, 0.094140, 0.080130,
7860.090707, 0.083268, 0.082222, 0.088767, 0.084477, 0.088069,
7870.089382, 0.086164, 0.089123, 0.092799, 0.076710, 0.090727,
7880.077097, 0.099905, 0.089733, 0.088101, 0.093705, 0.089215,
7890.085110, 0.086032, 0.083719, 0.079693, 0.088116, 0.090519,
7900.091150, 0.090855, 0.090547, 0.077773, 0.081914, 0.080864,
7910.082935, 0.092952, 0.079390, 0.080255, 0.091123, 0.091331,
7920.095160, 0.089343, 0.083353, 0.087445, 0.094036, 0.084719,
7930.099665, 0.085104, 0.100912, 0.085958, 0.083972, 0.098284,
7940.078318, 0.082042, 0.088007, 0.085469, 0.089984, 0.081181,
7950.098850, 0.086409, 0.089070, 0.081579, 0.089622, 0.089396,
7960.093922, 0.089472, 0.090806, 0.075034, 0.090346, 0.083871,
7970.086931, 0.089207, 0.094425, 0.087830, 0.079537, 0.097316,
7980.096513, 0.092264, 0.082211, 0.083841, 0.081861, 0.092591,
7990.077785, 0.079646, 0.093721, 0.090735, 0.086910, 0.075837,
8000.090729, 0.092800, 0.098704, 0.092441, 0.086404, 0.089344,
8010.083650, 0.082569, 0.085753, 0.091430, 0.085460, 0.095210,
8020.083226, 0.094882, 0.084856, 0.093350, 0.084579, 0.096744,
8030.099211, 0.085142, 0.085499, 0.083395, 0.088352, 0.110418,
8040.093788, 0.096140, 0.082758, 0.097145, 0.089170, 0.090720,
8050.084708, 0.095927, 0.090330, 0.074239, 0.089532, 0.090514,
8060.089823, 0.089709, 0.101840, 0.082676, 0.087157, 0.079221,
8070.096460, 0.108192, 0.088904, 0.084510, 0.096624, 0.099242,
8080.094470, 0.092473, 0.091745, 0.090439, 0.095316, 0.087963,
8090.096400, 0.089479, 0.094880, 0.085964, 0.092775, 0.083200,
8100.095133, 0.090079, 0.088828, 0.087600, 0.094123, 0.089135,
8110.082617, 0.085109, 0.114091, 0.096331, 0.108465, 0.080318,
8120.106576, 0.089671, 0.092023, 0.090722, 0.086603, 0.091788,
8130.098375, 0.082712, 0.102681, 0.098869, 0.089051, 0.109972,
8140.080440, 0.097860, 0.093074, 0.097028, 0.107826, 0.117152,
8150.090968, 0.096790, 0.096725, 0.094641, 0.089535, 0.092561,
8160.095828, 0.084320, 0.089942, 0.105476, 0.087495, 0.089805,
8170.092238, 0.094141, 0.104390, 0.082958, 0.097449, 0.099594,
8180.092640, 0.097332, 0.093223, 0.100183, 0.092511, 0.087035,
8190.088741, 0.097856, 0.116682, 0.091732, 0.097753, 0.094283,
8200.094235, 0.082016, 0.098370, 0.085676, 0.104529, 0.087319,
8210.090289, 0.105314, 0.103634, 0.101261, 0.092764, 0.098217,
8220.098939, 0.096071, 0.096071, 0.094027, 0.092713, 0.089542,
8230.112293, 0.112293, 0.089531, 0.087752};
824wDD = 0.188264;
825wND = 0.102252;
826wSD = -1;
827
828 Mmin = bin[0];
829 Mmax = bin[nbin];
830 if(M<Mmin || M>Mmax) return kTRUE;
831
832 Int_t ibin=nbin-1;
833 for(Int_t i=1; i<=nbin; i++)
834 if(M<=bin[i]) {
835 ibin=i-1;
836 // printf("Mi> %f && Mi< %f\n", bin[i-1], bin[i]);
837 break;
838 }
839 wSD=w[ibin];
840 return kTRUE;
841
842 }
843 else if(TMath::Abs(fEnergyCMS-2760)<1 ){
844
845const Int_t nbin=400;
846Double_t bin[]={
8471.080000, 1.577300, 2.074600, 2.571900, 3.069200, 3.566500,
8484.063800, 4.561100, 5.058400, 5.555700, 6.053000, 6.550300,
8497.047600, 7.544900, 8.042200, 8.539500, 9.036800, 9.534100,
85010.031400, 10.528700, 11.026000, 11.523300, 12.020600, 12.517900,
85113.015200, 13.512500, 14.009800, 14.507100, 15.004400, 15.501700,
85215.999000, 16.496300, 16.993600, 17.490900, 17.988200, 18.485500,
85318.982800, 19.480100, 19.977400, 20.474700, 20.972000, 21.469300,
85421.966600, 22.463900, 22.961200, 23.458500, 23.955800, 24.453100,
85524.950400, 25.447700, 25.945000, 26.442300, 26.939600, 27.436900,
85627.934200, 28.431500, 28.928800, 29.426100, 29.923400, 30.420700,
85730.918000, 31.415300, 31.912600, 32.409900, 32.907200, 33.404500,
85833.901800, 34.399100, 34.896400, 35.393700, 35.891000, 36.388300,
85936.885600, 37.382900, 37.880200, 38.377500, 38.874800, 39.372100,
86039.869400, 40.366700, 40.864000, 41.361300, 41.858600, 42.355900,
86142.853200, 43.350500, 43.847800, 44.345100, 44.842400, 45.339700,
86245.837000, 46.334300, 46.831600, 47.328900, 47.826200, 48.323500,
86348.820800, 49.318100, 49.815400, 50.312700, 50.810000, 51.307300,
86451.804600, 52.301900, 52.799200, 53.296500, 53.793800, 54.291100,
86554.788400, 55.285700, 55.783000, 56.280300, 56.777600, 57.274900,
86657.772200, 58.269500, 58.766800, 59.264100, 59.761400, 60.258700,
86760.756000, 61.253300, 61.750600, 62.247900, 62.745200, 63.242500,
86863.739800, 64.237100, 64.734400, 65.231700, 65.729000, 66.226300,
86966.723600, 67.220900, 67.718200, 68.215500, 68.712800, 69.210100,
87069.707400, 70.204700, 70.702000, 71.199300, 71.696600, 72.193900,
87172.691200, 73.188500, 73.685800, 74.183100, 74.680400, 75.177700,
87275.675000, 76.172300, 76.669600, 77.166900, 77.664200, 78.161500,
87378.658800, 79.156100, 79.653400, 80.150700, 80.648000, 81.145300,
87481.642600, 82.139900, 82.637200, 83.134500, 83.631800, 84.129100,
87584.626400, 85.123700, 85.621000, 86.118300, 86.615600, 87.112900,
87687.610200, 88.107500, 88.604800, 89.102100, 89.599400, 90.096700,
87790.594000, 91.091300, 91.588600, 92.085900, 92.583200, 93.080500,
87893.577800, 94.075100, 94.572400, 95.069700, 95.567000, 96.064300,
87996.561600, 97.058900, 97.556200, 98.053500, 98.550800, 99.048100,
88099.545400, 100.042700, 100.540000, 101.037300, 101.534600, 102.031900,
881102.529200, 103.026500, 103.523800, 104.021100, 104.518400, 105.015700,
882105.513000, 106.010300, 106.507600, 107.004900, 107.502200, 107.999500,
883108.496800, 108.994100, 109.491400, 109.988700, 110.486000, 110.983300,
884111.480600, 111.977900, 112.475200, 112.972500, 113.469800, 113.967100,
885114.464400, 114.961700, 115.459000, 115.956300, 116.453600, 116.950900,
886117.448200, 117.945500, 118.442800, 118.940100, 119.437400, 119.934700,
887120.432000, 120.929300, 121.426600, 121.923900, 122.421200, 122.918500,
888123.415800, 123.913100, 124.410400, 124.907700, 125.405000, 125.902300,
889126.399600, 126.896900, 127.394200, 127.891500, 128.388800, 128.886100,
890129.383400, 129.880700, 130.378000, 130.875300, 131.372600, 131.869900,
891132.367200, 132.864500, 133.361800, 133.859100, 134.356400, 134.853700,
892135.351000, 135.848300, 136.345600, 136.842900, 137.340200, 137.837500,
893138.334800, 138.832100, 139.329400, 139.826700, 140.324000, 140.821300,
894141.318600, 141.815900, 142.313200, 142.810500, 143.307800, 143.805100,
895144.302400, 144.799700, 145.297000, 145.794300, 146.291600, 146.788900,
896147.286200, 147.783500, 148.280800, 148.778100, 149.275400, 149.772700,
897150.270000, 150.767300, 151.264600, 151.761900, 152.259200, 152.756500,
898153.253800, 153.751100, 154.248400, 154.745700, 155.243000, 155.740300,
899156.237600, 156.734900, 157.232200, 157.729500, 158.226800, 158.724100,
900159.221400, 159.718700, 160.216000, 160.713300, 161.210600, 161.707900,
901162.205200, 162.702500, 163.199800, 163.697100, 164.194400, 164.691700,
902165.189000, 165.686300, 166.183600, 166.680900, 167.178200, 167.675500,
903168.172800, 168.670100, 169.167400, 169.664700, 170.162000, 170.659300,
904171.156600, 171.653900, 172.151200, 172.648500, 173.145800, 173.643100,
905174.140400, 174.637700, 175.135000, 175.632300, 176.129600, 176.626900,
906177.124200, 177.621500, 178.118800, 178.616100, 179.113400, 179.610700,
907180.108000, 180.605300, 181.102600, 181.599900, 182.097200, 182.594500,
908183.091800, 183.589100, 184.086400, 184.583700, 185.081000, 185.578300,
909186.075600, 186.572900, 187.070200, 187.567500, 188.064800, 188.562100,
910189.059400, 189.556700, 190.054000, 190.551300, 191.048600, 191.545900,
911192.043200, 192.540500, 193.037800, 193.535100, 194.032400, 194.529700,
912195.027000, 195.524300, 196.021600, 196.518900, 197.016200, 197.513500,
913198.010800, 198.508100, 199.005400, 199.502700, 200.000000};
914Double_t w[]={
9151.000000, 0.402402, 0.347976, 0.386866, 0.304413, 0.275746,
9160.256941, 0.250439, 0.228486, 0.219225, 0.203368, 0.196124,
9170.180551, 0.169230, 0.159021, 0.157136, 0.154743, 0.160522,
9180.153993, 0.143448, 0.148062, 0.136337, 0.130853, 0.127798,
9190.137576, 0.137530, 0.124175, 0.120225, 0.120774, 0.123584,
9200.121883, 0.114522, 0.118338, 0.119587, 0.106017, 0.125802,
9210.106256, 0.101585, 0.097737, 0.100817, 0.102279, 0.110935,
9220.101429, 0.107629, 0.105802, 0.095688, 0.096617, 0.100985,
9230.101521, 0.100450, 0.111836, 0.088828, 0.102264, 0.101012,
9240.097673, 0.097634, 0.091720, 0.096167, 0.084537, 0.104443,
9250.091966, 0.097204, 0.089456, 0.088273, 0.098220, 0.095151,
9260.088201, 0.085570, 0.088431, 0.077625, 0.088314, 0.084582,
9270.091545, 0.083774, 0.086183, 0.089195, 0.086255, 0.077167,
9280.096118, 0.089881, 0.086206, 0.086968, 0.079827, 0.082002,
9290.083081, 0.076587, 0.081820, 0.092382, 0.082964, 0.080901,
9300.093512, 0.082907, 0.086691, 0.093639, 0.089010, 0.082857,
9310.090795, 0.082403, 0.078602, 0.087284, 0.079638, 0.082905,
9320.077189, 0.084329, 0.075900, 0.082559, 0.084210, 0.070053,
9330.068453, 0.083369, 0.077659, 0.073286, 0.075396, 0.073946,
9340.083293, 0.076235, 0.082184, 0.080104, 0.073755, 0.077369,
9350.068281, 0.084593, 0.074923, 0.069467, 0.072094, 0.077973,
9360.067034, 0.080314, 0.087441, 0.071728, 0.072302, 0.076783,
9370.079931, 0.075557, 0.076318, 0.079029, 0.075126, 0.076859,
9380.080253, 0.074344, 0.083387, 0.087553, 0.084437, 0.076322,
9390.077748, 0.087559, 0.075649, 0.076615, 0.077098, 0.074559,
9400.075540, 0.085883, 0.079269, 0.079866, 0.068922, 0.069770,
9410.068024, 0.077783, 0.086620, 0.086769, 0.068433, 0.078059,
9420.084463, 0.072790, 0.073889, 0.079090, 0.081759, 0.069576,
9430.069160, 0.071695, 0.078569, 0.075727, 0.088055, 0.082395,
9440.079915, 0.075150, 0.073580, 0.069968, 0.071141, 0.065823,
9450.077270, 0.076229, 0.071735, 0.079271, 0.078209, 0.069503,
9460.064732, 0.076312, 0.088579, 0.087271, 0.080566, 0.073527,
9470.071376, 0.068785, 0.071812, 0.072680, 0.067252, 0.059543,
9480.072818, 0.071856, 0.083427, 0.080664, 0.077315, 0.066060,
9490.078772, 0.065442, 0.067255, 0.077676, 0.068306, 0.071578,
9500.059728, 0.073526, 0.078932, 0.070316, 0.067620, 0.067323,
9510.078316, 0.080366, 0.091194, 0.066739, 0.076238, 0.070382,
9520.077118, 0.073822, 0.072830, 0.062947, 0.077375, 0.076284,
9530.070951, 0.086127, 0.071074, 0.076621, 0.070502, 0.070897,
9540.058764, 0.065322, 0.073620, 0.062051, 0.074548, 0.083770,
9550.072502, 0.066823, 0.074192, 0.081570, 0.067340, 0.081896,
9560.080680, 0.072835, 0.069675, 0.078881, 0.072826, 0.069616,
9570.082744, 0.069138, 0.073333, 0.080881, 0.069091, 0.064266,
9580.062849, 0.072846, 0.067462, 0.067229, 0.071319, 0.071099,
9590.069381, 0.073799, 0.076106, 0.075006, 0.073074, 0.092589,
9600.074277, 0.061324, 0.069788, 0.070310, 0.063160, 0.073077,
9610.075447, 0.081013, 0.074102, 0.076565, 0.060192, 0.058326,
9620.071508, 0.072974, 0.065098, 0.060432, 0.062077, 0.075644,
9630.075417, 0.066947, 0.066744, 0.065111, 0.075468, 0.078185,
9640.073216, 0.066502, 0.079582, 0.065405, 0.069828, 0.072165,
9650.071112, 0.064656, 0.080396, 0.066505, 0.063419, 0.066128,
9660.080616, 0.071463, 0.064867, 0.074782, 0.063103, 0.068179,
9670.064911, 0.073029, 0.075746, 0.062264, 0.099126, 0.067890,
9680.074940, 0.070090, 0.073583, 0.056904, 0.063745, 0.063780,
9690.076876, 0.066519, 0.067164, 0.068668, 0.075065, 0.070983,
9700.075751, 0.066317, 0.077520, 0.073139, 0.073961, 0.085492,
9710.074629, 0.059555, 0.081026, 0.059274, 0.055448, 0.084269,
9720.066222, 0.078874, 0.062021, 0.075156, 0.090478, 0.066265,
9730.067845, 0.076653, 0.086671, 0.082362, 0.067246, 0.075975,
9740.072594, 0.068570, 0.095034, 0.065644, 0.070945, 0.066190,
9750.075906, 0.055154, 0.075575, 0.058078, 0.071004, 0.070850,
9760.064374, 0.058251, 0.069430, 0.072293, 0.065484, 0.084197,
9770.090119, 0.091619, 0.067620, 0.079462, 0.063025, 0.068128,
9780.056927, 0.076351, 0.073869, 0.061597, 0.083741, 0.063762,
9790.064489, 0.074269, 0.068832, 0.058648, 0.069536, 0.074824,
9800.081009, 0.073389, 0.076792, 0.084855, 0.075280, 0.061473,
9810.063840, 0.062891, 0.071328, 0.065250};
982wDD = 0.077845;
983wND = 0.066355;
984wSD = -1;
985
986 Mmin = bin[0];
987 Mmax = bin[nbin];
988 if(M<Mmin || M>Mmax) return kTRUE;
989
990 Int_t ibin=nbin-1;
991 for(Int_t i=1; i<=nbin; i++)
992 if(M<=bin[i]) {
993 ibin=i-1;
994 // printf("Mi> %f && Mi< %f\n", bin[i-1], bin[i]);
995 break;
996 }
997 wSD=w[ibin];
998 return kTRUE;
999
1000 }
1001 else if(TMath::Abs(fEnergyCMS-7000)<1 ){
1002
1003const Int_t nbin=400;
1004Double_t bin[]={
10051.080000, 1.577300, 2.074600, 2.571900, 3.069200, 3.566500,
10064.063800, 4.561100, 5.058400, 5.555700, 6.053000, 6.550300,
10077.047600, 7.544900, 8.042200, 8.539500, 9.036800, 9.534100,
100810.031400, 10.528700, 11.026000, 11.523300, 12.020600, 12.517900,
100913.015200, 13.512500, 14.009800, 14.507100, 15.004400, 15.501700,
101015.999000, 16.496300, 16.993600, 17.490900, 17.988200, 18.485500,
101118.982800, 19.480100, 19.977400, 20.474700, 20.972000, 21.469300,
101221.966600, 22.463900, 22.961200, 23.458500, 23.955800, 24.453100,
101324.950400, 25.447700, 25.945000, 26.442300, 26.939600, 27.436900,
101427.934200, 28.431500, 28.928800, 29.426100, 29.923400, 30.420700,
101530.918000, 31.415300, 31.912600, 32.409900, 32.907200, 33.404500,
101633.901800, 34.399100, 34.896400, 35.393700, 35.891000, 36.388300,
101736.885600, 37.382900, 37.880200, 38.377500, 38.874800, 39.372100,
101839.869400, 40.366700, 40.864000, 41.361300, 41.858600, 42.355900,
101942.853200, 43.350500, 43.847800, 44.345100, 44.842400, 45.339700,
102045.837000, 46.334300, 46.831600, 47.328900, 47.826200, 48.323500,
102148.820800, 49.318100, 49.815400, 50.312700, 50.810000, 51.307300,
102251.804600, 52.301900, 52.799200, 53.296500, 53.793800, 54.291100,
102354.788400, 55.285700, 55.783000, 56.280300, 56.777600, 57.274900,
102457.772200, 58.269500, 58.766800, 59.264100, 59.761400, 60.258700,
102560.756000, 61.253300, 61.750600, 62.247900, 62.745200, 63.242500,
102663.739800, 64.237100, 64.734400, 65.231700, 65.729000, 66.226300,
102766.723600, 67.220900, 67.718200, 68.215500, 68.712800, 69.210100,
102869.707400, 70.204700, 70.702000, 71.199300, 71.696600, 72.193900,
102972.691200, 73.188500, 73.685800, 74.183100, 74.680400, 75.177700,
103075.675000, 76.172300, 76.669600, 77.166900, 77.664200, 78.161500,
103178.658800, 79.156100, 79.653400, 80.150700, 80.648000, 81.145300,
103281.642600, 82.139900, 82.637200, 83.134500, 83.631800, 84.129100,
103384.626400, 85.123700, 85.621000, 86.118300, 86.615600, 87.112900,
103487.610200, 88.107500, 88.604800, 89.102100, 89.599400, 90.096700,
103590.594000, 91.091300, 91.588600, 92.085900, 92.583200, 93.080500,
103693.577800, 94.075100, 94.572400, 95.069700, 95.567000, 96.064300,
103796.561600, 97.058900, 97.556200, 98.053500, 98.550800, 99.048100,
103899.545400, 100.042700, 100.540000, 101.037300, 101.534600, 102.031900,
1039102.529200, 103.026500, 103.523800, 104.021100, 104.518400, 105.015700,
1040105.513000, 106.010300, 106.507600, 107.004900, 107.502200, 107.999500,
1041108.496800, 108.994100, 109.491400, 109.988700, 110.486000, 110.983300,
1042111.480600, 111.977900, 112.475200, 112.972500, 113.469800, 113.967100,
1043114.464400, 114.961700, 115.459000, 115.956300, 116.453600, 116.950900,
1044117.448200, 117.945500, 118.442800, 118.940100, 119.437400, 119.934700,
1045120.432000, 120.929300, 121.426600, 121.923900, 122.421200, 122.918500,
1046123.415800, 123.913100, 124.410400, 124.907700, 125.405000, 125.902300,
1047126.399600, 126.896900, 127.394200, 127.891500, 128.388800, 128.886100,
1048129.383400, 129.880700, 130.378000, 130.875300, 131.372600, 131.869900,
1049132.367200, 132.864500, 133.361800, 133.859100, 134.356400, 134.853700,
1050135.351000, 135.848300, 136.345600, 136.842900, 137.340200, 137.837500,
1051138.334800, 138.832100, 139.329400, 139.826700, 140.324000, 140.821300,
1052141.318600, 141.815900, 142.313200, 142.810500, 143.307800, 143.805100,
1053144.302400, 144.799700, 145.297000, 145.794300, 146.291600, 146.788900,
1054147.286200, 147.783500, 148.280800, 148.778100, 149.275400, 149.772700,
1055150.270000, 150.767300, 151.264600, 151.761900, 152.259200, 152.756500,
1056153.253800, 153.751100, 154.248400, 154.745700, 155.243000, 155.740300,
1057156.237600, 156.734900, 157.232200, 157.729500, 158.226800, 158.724100,
1058159.221400, 159.718700, 160.216000, 160.713300, 161.210600, 161.707900,
1059162.205200, 162.702500, 163.199800, 163.697100, 164.194400, 164.691700,
1060165.189000, 165.686300, 166.183600, 166.680900, 167.178200, 167.675500,
1061168.172800, 168.670100, 169.167400, 169.664700, 170.162000, 170.659300,
1062171.156600, 171.653900, 172.151200, 172.648500, 173.145800, 173.643100,
1063174.140400, 174.637700, 175.135000, 175.632300, 176.129600, 176.626900,
1064177.124200, 177.621500, 178.118800, 178.616100, 179.113400, 179.610700,
1065180.108000, 180.605300, 181.102600, 181.599900, 182.097200, 182.594500,
1066183.091800, 183.589100, 184.086400, 184.583700, 185.081000, 185.578300,
1067186.075600, 186.572900, 187.070200, 187.567500, 188.064800, 188.562100,
1068189.059400, 189.556700, 190.054000, 190.551300, 191.048600, 191.545900,
1069192.043200, 192.540500, 193.037800, 193.535100, 194.032400, 194.529700,
1070195.027000, 195.524300, 196.021600, 196.518900, 197.016200, 197.513500,
1071198.010800, 198.508100, 199.005400, 199.502700, 200.000000};
1072Double_t w[]={
10731.000000, 0.526293, 0.446686, 0.437789, 0.366854, 0.333320,
10740.291931, 0.266464, 0.253870, 0.248706, 0.232788, 0.220736,
10750.209886, 0.202741, 0.188617, 0.182767, 0.178748, 0.169039,
10760.175911, 0.169098, 0.171256, 0.146728, 0.144543, 0.159470,
10770.153171, 0.151883, 0.144693, 0.136307, 0.140226, 0.135388,
10780.141317, 0.151121, 0.131209, 0.144039, 0.124688, 0.128020,
10790.119122, 0.121868, 0.122332, 0.119561, 0.115744, 0.102504,
10800.114726, 0.109518, 0.115418, 0.114860, 0.110026, 0.107693,
10810.103005, 0.115985, 0.108629, 0.105937, 0.101056, 0.101228,
10820.113305, 0.110302, 0.104696, 0.107447, 0.099095, 0.107378,
10830.103090, 0.111384, 0.090821, 0.109806, 0.093639, 0.096655,
10840.110416, 0.104446, 0.098530, 0.095105, 0.106641, 0.101804,
10850.091798, 0.094775, 0.104130, 0.088436, 0.119692, 0.099160,
10860.086163, 0.089250, 0.101898, 0.091786, 0.087346, 0.095312,
10870.107186, 0.085671, 0.093283, 0.091992, 0.114654, 0.086172,
10880.084559, 0.097862, 0.079417, 0.094737, 0.089678, 0.105265,
10890.099092, 0.087901, 0.086828, 0.084756, 0.077769, 0.084254,
10900.083262, 0.092935, 0.088858, 0.093377, 0.083569, 0.084771,
10910.084957, 0.084033, 0.095007, 0.076690, 0.087726, 0.097913,
10920.084119, 0.076361, 0.084172, 0.091068, 0.094564, 0.091406,
10930.088405, 0.090355, 0.085388, 0.084586, 0.085752, 0.084298,
10940.091294, 0.081491, 0.075024, 0.082543, 0.088048, 0.074621,
10950.078514, 0.077249, 0.078378, 0.092945, 0.075859, 0.077602,
10960.074592, 0.078181, 0.081527, 0.080865, 0.078854, 0.078237,
10970.085506, 0.089823, 0.072738, 0.078430, 0.077162, 0.081495,
10980.090878, 0.099417, 0.100966, 0.087960, 0.085556, 0.081661,
10990.078066, 0.089059, 0.073564, 0.092704, 0.073148, 0.098057,
11000.067906, 0.079452, 0.090567, 0.082454, 0.077851, 0.079694,
11010.091272, 0.078628, 0.096906, 0.098779, 0.088906, 0.070174,
11020.083822, 0.084241, 0.093237, 0.071062, 0.075771, 0.096405,
11030.098441, 0.086007, 0.069599, 0.078400, 0.083481, 0.081054,
11040.085552, 0.069582, 0.071336, 0.073207, 0.087913, 0.080125,
11050.075189, 0.067217, 0.073509, 0.099694, 0.080781, 0.073943,
11060.062822, 0.076611, 0.087672, 0.077632, 0.063959, 0.077754,
11070.084651, 0.097348, 0.063909, 0.055053, 0.087616, 0.074428,
11080.101165, 0.078446, 0.070683, 0.071162, 0.091516, 0.069641,
11090.070969, 0.069778, 0.083318, 0.066703, 0.074027, 0.067589,
11100.070620, 0.081307, 0.094406, 0.076188, 0.061663, 0.077561,
11110.076159, 0.071851, 0.074417, 0.076136, 0.069073, 0.075450,
11120.070218, 0.089709, 0.079974, 0.082077, 0.076979, 0.070497,
11130.076296, 0.087347, 0.073508, 0.088073, 0.067186, 0.059898,
11140.085495, 0.100152, 0.079468, 0.093783, 0.082680, 0.077272,
11150.081995, 0.068240, 0.071881, 0.073737, 0.072346, 0.079034,
11160.078721, 0.067518, 0.068196, 0.081738, 0.082814, 0.082480,
11170.069072, 0.066853, 0.081523, 0.073588, 0.082308, 0.091641,
11180.072747, 0.084317, 0.072190, 0.079372, 0.067424, 0.077450,
11190.062343, 0.090708, 0.065470, 0.086588, 0.071172, 0.066705,
11200.070670, 0.070407, 0.096111, 0.066738, 0.081249, 0.072882,
11210.075144, 0.060331, 0.074589, 0.076968, 0.085913, 0.072561,
11220.064645, 0.078742, 0.075670, 0.065984, 0.080932, 0.069898,
11230.065303, 0.096856, 0.057690, 0.065720, 0.066545, 0.068521,
11240.068278, 0.069245, 0.086643, 0.063401, 0.070933, 0.070752,
11250.066978, 0.058891, 0.070073, 0.078031, 0.082691, 0.101414,
11260.075814, 0.072790, 0.057622, 0.093002, 0.084660, 0.079216,
11270.070371, 0.070141, 0.076944, 0.067285, 0.078016, 0.077807,
11280.066668, 0.066459, 0.059962, 0.062774, 0.083450, 0.064554,
11290.067887, 0.064165, 0.072782, 0.067285, 0.052710, 0.096824,
11300.071931, 0.064190, 0.074442, 0.082647, 0.055797, 0.078632,
11310.061116, 0.063092, 0.049131, 0.074517, 0.069915, 0.079021,
11320.088656, 0.101045, 0.090432, 0.076460, 0.067451, 0.071381,
11330.069790, 0.077330, 0.077115, 0.084403, 0.065138, 0.056436,
11340.088024, 0.069893, 0.055985, 0.089655, 0.062911, 0.075311,
11350.086679, 0.093645, 0.068632, 0.064498, 0.057677, 0.081391,
11360.062781, 0.075467, 0.061314, 0.073394, 0.084462, 0.068470,
11370.071267, 0.060556, 0.072487, 0.063785, 0.079164, 0.070406,
11380.073394, 0.063168, 0.066968, 0.064125, 0.063954, 0.072504,
11390.058948, 0.057740, 0.083383, 0.067262};
1140wDD = 0.098024;
1141wND = 0.053452;
1142wSD = -1;
1143
1144 Mmin = bin[0];
1145 Mmax = bin[nbin];
1146 if(M<Mmin || M>Mmax) return kTRUE;
1147
1148 Int_t ibin=nbin-1;
1149 for(Int_t i=1; i<=nbin; i++)
1150 if(M<=bin[i]) {
1151 ibin=i-1;
1152 // printf("Mi> %f && Mi< %f\n", bin[i-1], bin[i]);
1153 break;
1154 }
1155 wSD=w[ibin];
1156 return kTRUE;
1157
1158 }
1159
1160 return kFALSE;
1161}
1162
1163
1a52e0ed 1164//______________________________________________________________________________