Methods to get the decay length and pointing angle of V0 daughter (Annalisa)
[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(),
48 fBeamEn(2750.),
f97d4a8e 49 fMinImpactParam(0.),
50 fMaxImpactParam(5.),
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),
70 fFragmentation(kFALSE)
1a52e0ed 71{
72// Constructor
e7c989e4 73 fEnergyCMS = 5500.;
f2ba02a4 74 AliDpmJetRndm::SetDpmJetRandom(GetRandom());
1a52e0ed 75}
76
77
78//______________________________________________________________________________
79AliGenDPMjet::AliGenDPMjet(Int_t npart)
f97d4a8e 80 :AliGenMC(npart),
81 fBeamEn(2750.),
f97d4a8e 82 fMinImpactParam(0.),
83 fMaxImpactParam(5.),
84 fICentr(0),
85 fSelectAll(0),
86 fFlavor(0),
87 fTrials(0),
88 fSpectators(1),
89 fSpecn(0),
90 fSpecp(0),
91 fDPMjet(0),
f97d4a8e 92 fNoGammas(0),
93 fLHC(0),
9c97cedd 94 fPi0Decay(1),
717765ce 95 fDecayAll(0),
f97d4a8e 96 fGenImpPar(0.),
3b50c39e 97 fProcess(kDpmMb),
98 fTriggerMultiplicity(0),
99 fTriggerMultiplicityEta(0),
19896767 100 fTriggerMultiplicityPtMin(0),
101 fkTuneForDiff(0),
5fed2e29 102 fProcDiff(0),
103 fFragmentation(kFALSE)
104
1a52e0ed 105{
106// Default PbPb collisions at 5. 5 TeV
107//
e7c989e4 108 fEnergyCMS = 5500.;
1a52e0ed 109 fName = "DPMJET";
110 fTitle= "Particle Generator using DPMJET";
1a52e0ed 111 SetTarget();
112 SetProjectile();
f2ba02a4 113 fVertex.Set(3);
f2ba02a4 114 AliDpmJetRndm::SetDpmJetRandom(GetRandom());
1a52e0ed 115}
116
ba758f5a 117AliGenDPMjet::AliGenDPMjet(const AliGenDPMjet &/*Dpmjet*/)
f97d4a8e 118 :AliGenMC(),
119 fBeamEn(2750.),
f97d4a8e 120 fMinImpactParam(0.),
121 fMaxImpactParam(5.),
122 fICentr(0),
123 fSelectAll(0),
124 fFlavor(0),
125 fTrials(0),
126 fSpectators(1),
127 fSpecn(0),
128 fSpecp(0),
129 fDPMjet(0),
f97d4a8e 130 fNoGammas(0),
131 fLHC(0),
9c97cedd 132 fPi0Decay(1),
717765ce 133 fDecayAll(0),
f97d4a8e 134 fGenImpPar(0.),
3b50c39e 135 fProcess(kDpmMb),
136 fTriggerMultiplicity(0),
137 fTriggerMultiplicityEta(0),
19896767 138 fTriggerMultiplicityPtMin(0),
139 fkTuneForDiff(0),
5fed2e29 140 fProcDiff(0),
141 fFragmentation(kFALSE)
142
ba758f5a 143{
f97d4a8e 144 // Dummy copy constructor
e7c989e4 145 fEnergyCMS = 5500.;
ba758f5a 146}
1a52e0ed 147
148//______________________________________________________________________________
149AliGenDPMjet::~AliGenDPMjet()
150{
151// Destructor
1a52e0ed 152}
1a52e0ed 153//______________________________________________________________________________
154void AliGenDPMjet::Init()
155{
156// Initialization
157
e67e0fb7 158 SetMC(new TDPMjet(fProcess, fAProjectile, fZProjectile, fATarget, fZTarget,
1a52e0ed 159 fBeamEn,fEnergyCMS));
160
35c87559 161 fDPMjet=(TDPMjet*) fMCEvGen;
1a52e0ed 162 //
163 // **** Flag to force central production
164 // fICentr=1. central production forced
165 // fICentr<0 && fICentr>-100 -> bmin = fMinImpactParam, bmax = fMaxImpactParam
166 // fICentr<-99 -> fraction of x-sec. = XSFRAC
167 // fICentr=-1. -> evaporation/fzc suppressed
e2b2a1dd 168 // fICentr<-1. -> evaporation/fzc allowed
cd19c617 169 if (fAProjectile == 1 && TMath::Abs(fZProjectile == 1)) fDPMjet->SetfIdp(1);
ba758f5a 170
1a52e0ed 171 fDPMjet->SetfFCentr(fICentr);
e67e0fb7 172 fDPMjet->SetbRange(fMinImpactParam, fMaxImpactParam);
f97d4a8e 173 fDPMjet->SetPi0Decay(fPi0Decay);
717765ce 174 fDPMjet->SetDecayAll(fDecayAll);
5fed2e29 175 fDPMjet->SetFragmentProd(fFragmentation);
e2b2a1dd 176
177 AliGenMC::Init();
178
1a52e0ed 179//
180// Initialize DPMjet
181//
182 fDPMjet->Initialize();
1a52e0ed 183}
184
185
186//______________________________________________________________________________
187void AliGenDPMjet::Generate()
188{
189// Generate one event
190
c0d429ef 191 Double_t polar[3] = {0,0,0};
192 Double_t origin[3] = {0,0,0};
193 Double_t p[4] = {0};
1a52e0ed 194 Float_t tof;
195
196// converts from mm/c to s
197 const Float_t kconv = 0.001/2.999792458e8;
198 Int_t nt = 0;
199 Int_t jev = 0;
e67e0fb7 200 Int_t kf, ks, imo;
1a52e0ed 201 kf = 0;
1a52e0ed 202 fTrials = 0;
e67e0fb7 203 // Set collision vertex position
204 if (fVertexSmear == kPerEvent) Vertex();
1a52e0ed 205
206 while(1)
207 {
208// Generate one event
209// --------------------------------------------------------------------------
210 fSpecn = 0;
211 fSpecp = 0;
212// --------------------------------------------------------------------------
213 fDPMjet->GenerateEvent();
9c97cedd 214
1a52e0ed 215 fTrials++;
216
8507138f 217 fDPMjet->ImportParticles(&fParticles,"All");
1a52e0ed 218 if (fLHC) Boost();
219
220 // Temporaneo
221 fGenImpPar = fDPMjet->GetBImpac();
41cc7c18 222
223 if(TMath::Abs(fXingAngleY) > 1.e-10) BeamCrossAngle();
224
8507138f 225 Int_t np = fParticles.GetEntriesFast();
3b50c39e 226 //
227 // Multiplicity Trigger
228 if (fTriggerMultiplicity > 0) {
229 Int_t multiplicity = 0;
230 for (Int_t i = 0; i < np; i++) {
231 TParticle * iparticle = (TParticle *) fParticles.At(i);
232
233 Int_t statusCode = iparticle->GetStatusCode();
234
235 // Initial state particle
236 if (statusCode != 1)
237 continue;
238 // eta cut
239 if (fTriggerMultiplicityEta > 0 && TMath::Abs(iparticle->Eta()) > fTriggerMultiplicityEta)
240 continue;
241 // pt cut
242 if (iparticle->Pt() < fTriggerMultiplicityPtMin)
243 continue;
244
245 TParticlePDG* pdgPart = iparticle->GetPDG();
246 if (pdgPart && pdgPart->Charge() == 0)
247 continue;
248 ++multiplicity;
249 }
250 //
251 //
252 if (multiplicity < fTriggerMultiplicity) continue;
253 Printf("Triggered on event with multiplicity of %d >= %d", multiplicity, fTriggerMultiplicity);
254 }
255
19896767 256
c5dfa3e4 257 if(fkTuneForDiff && ( (TMath::Abs(fEnergyCMS - 900) < 1) || (TMath::Abs(fEnergyCMS - 2760) < 1) || (TMath::Abs(fEnergyCMS - 7000) < 1)) ) {
19896767 258 if(!CheckDiffraction() ) continue;
259 }
260
261
3b50c39e 262 Int_t nc = 0;
263 if (np == 0) continue;
264
1a52e0ed 265 Int_t i;
266 Int_t* newPos = new Int_t[np];
267 Int_t* pSelected = new Int_t[np];
268
269 for (i = 0; i<np; i++) {
270 newPos[i] = i;
271 pSelected[i] = 0;
272 }
273
1a52e0ed 274// First select parent particles
275
276 for (i = 0; i<np; i++) {
8507138f 277 TParticle *iparticle = (TParticle *) fParticles.At(i);
1a52e0ed 278
279// Is this a parent particle ?
280
281 if (Stable(iparticle)) continue;
282
283 Bool_t selected = kTRUE;
284 Bool_t hasSelectedDaughters = kFALSE;
285
286 kf = iparticle->GetPdgCode();
cd19c617 287 if (kf == 92 || kf == 99999) continue;
1a52e0ed 288 ks = iparticle->GetStatusCode();
289// No initial state partons
290 if (ks==21) continue;
1a52e0ed 291 if (!fSelectAll) selected = KinematicSelection(iparticle, 0) &&
292 SelectFlavor(kf);
9c97cedd 293
294
1a52e0ed 295 hasSelectedDaughters = DaughtersSelection(iparticle);
296
9c97cedd 297
1a52e0ed 298// Put particle on the stack if it is either selected or
299// it is the mother of at least one seleted particle
300
301 if (selected || hasSelectedDaughters) {
302 nc++;
303 pSelected[i] = 1;
304 } // selected
305 } // particle loop parents
306
307// Now select the final state particles
308
309
310 for (i=0; i<np; i++) {
8507138f 311 TParticle *iparticle = (TParticle *) fParticles.At(i);
1a52e0ed 312
313// Is this a final state particle ?
314
315 if (!Stable(iparticle)) continue;
316
317 Bool_t selected = kTRUE;
318 kf = iparticle->GetPdgCode();
319 ks = iparticle->GetStatusCode();
320
321// --------------------------------------------------------------------------
322// Count spectator neutrons and protons (ks == 13, 14)
323 if(ks == 13 || ks == 14){
324 if(kf == kNeutron) fSpecn += 1;
325 if(kf == kProton) fSpecp += 1;
326 }
327// --------------------------------------------------------------------------
328
329 if (!fSelectAll) {
330 selected = KinematicSelection(iparticle,0)&&SelectFlavor(kf);
331 if (!fSpectators && selected) selected = (ks == 13 || ks == 14);
332 }
333
334// Put particle on the stack if selected
335
336 if (selected) {
337 nc++;
338 pSelected[i] = 1;
339 } // selected
340 } // particle loop final state
341
342// Write particles to stack
343
344 for (i = 0; i<np; i++) {
8507138f 345 TParticle * iparticle = (TParticle *) fParticles.At(i);
1a52e0ed 346 Bool_t hasMother = (iparticle->GetFirstMother()>=0);
1a52e0ed 347 if (pSelected[i]) {
348
349 kf = iparticle->GetPdgCode();
1a52e0ed 350 ks = iparticle->GetStatusCode();
351
352 p[0] = iparticle->Px();
353 p[1] = iparticle->Py();
354 p[2] = iparticle->Pz();
c0d429ef 355 p[3] = iparticle->Energy();
e67e0fb7 356 origin[0] = fVertex[0]+iparticle->Vx()/10; // [cm]
357 origin[1] = fVertex[1]+iparticle->Vy()/10; // [cm]
358 origin[2] = fVertex[2]+iparticle->Vz()/10; // [cm]
359
21391258 360 tof = fTime + kconv*iparticle->T();
1a52e0ed 361
362 imo = -1;
363 TParticle* mother = 0;
364 if (hasMother) {
365 imo = iparticle->GetFirstMother();
8507138f 366 mother = (TParticle *) fParticles.At(imo);
cd19c617 367 imo = (mother->GetPdgCode() != 92 && mother->GetPdgCode() != 99999) ? newPos[imo] : -1;
1a52e0ed 368 } // if has mother
369
9c97cedd 370
371
1a52e0ed 372 Bool_t tFlag = (fTrackIt && (ks == 1));
c0d429ef 373 PushTrack(tFlag, imo, kf,
374 p[0], p[1], p[2], p[3],
375 origin[0], origin[1], origin[2], tof,
376 polar[0], polar[1], polar[2],
377 kPNoProcess, nt, 1., ks);
1a52e0ed 378 KeepTrack(nt);
379 newPos[i] = nt;
380 } // if selected
381 } // particle loop
382 delete[] newPos;
383 delete[] pSelected;
1a52e0ed 384 if (nc>0) {
385 jev += nc;
386 if (jev >= fNpart || fNpart == -1) {
1a52e0ed 387 break;
388 }
1a52e0ed 389 }
390 } // event loop
391 MakeHeader();
392 SetHighWaterMark(nt);
393}
394
1a52e0ed 395//______________________________________________________________________________
396Bool_t AliGenDPMjet::DaughtersSelection(TParticle* iparticle)
397{
398//
399// Looks recursively if one of the daughters has been selected
400//
401// printf("\n Consider daughters %d:",iparticle->GetPdgCode());
402 Int_t imin = -1;
403 Int_t imax = -1;
404 Int_t i;
405 Bool_t hasDaughters = (iparticle->GetFirstDaughter() >=0);
406 Bool_t selected = kFALSE;
407 if (hasDaughters) {
408 imin = iparticle->GetFirstDaughter();
409 imax = iparticle->GetLastDaughter();
410 for (i = imin; i <= imax; i++){
8507138f 411 TParticle * jparticle = (TParticle *) fParticles.At(i);
1a52e0ed 412 Int_t ip = jparticle->GetPdgCode();
413 if (KinematicSelection(jparticle,0)&&SelectFlavor(ip)) {
414 selected=kTRUE; break;
415 }
416 if (DaughtersSelection(jparticle)) {selected=kTRUE; break; }
417 }
418 } else {
419 return kFALSE;
420 }
421 return selected;
422}
423
424
425
426//______________________________________________________________________________
427Bool_t AliGenDPMjet::SelectFlavor(Int_t pid)
428{
429// Select flavor of particle
430// 0: all
431// 4: charm and beauty
432// 5: beauty
433 Bool_t res = 0;
434
435 if (fFlavor == 0) {
436 res = kTRUE;
437 } else {
438 Int_t ifl = TMath::Abs(pid/100);
439 if (ifl > 10) ifl/=10;
440 res = (fFlavor == ifl);
441 }
442//
443// This part if gamma writing is inhibited
444 if (fNoGammas)
445 res = res && (pid != kGamma && pid != kPi0);
446//
447 return res;
448}
449
450//______________________________________________________________________________
451Bool_t AliGenDPMjet::Stable(TParticle* particle)
452{
453// Return true for a stable particle
454//
455
456// if (particle->GetFirstDaughter() < 0 ) return kTRUE;
457 if (particle->GetStatusCode() == 1) return kTRUE;
458 else return kFALSE;
459
460}
461
1a52e0ed 462//______________________________________________________________________________
463void AliGenDPMjet::MakeHeader()
464{
19896767 465// printf("MakeHeader %13.3f \n", fDPMjet->GetBImpac());
1a52e0ed 466// Builds the event header, to be called after each event
467 AliGenEventHeader* header = new AliGenDPMjetEventHeader("DPMJET");
468 ((AliGenDPMjetEventHeader*) header)->SetNProduced(fDPMjet->GetNumStablePc());
469 ((AliGenDPMjetEventHeader*) header)->SetImpactParameter(fDPMjet->GetBImpac());
470 ((AliGenDPMjetEventHeader*) header)->SetTotalEnergy(fDPMjet->GetTotEnergy());
3c349853 471 ((AliGenDPMjetEventHeader*) header)->SetParticipants(fDPMjet->GetProjParticipants(),
472 fDPMjet->GetTargParticipants());
19896767 473
474 if(fProcDiff>0){
475 ((AliGenDPMjetEventHeader*) header)->SetProcessType(fProcDiff);
476 }
477 else
478 ((AliGenDPMjetEventHeader*) header)->SetProcessType(fDPMjet->GetProcessCode());
479
3c349853 480 // Bookkeeping for kinematic bias
1a52e0ed 481 ((AliGenDPMjetEventHeader*) header)->SetTrials(fTrials);
3c349853 482 // Event Vertex
f2ba02a4 483 header->SetPrimaryVertex(fVertex);
21391258 484 header->SetInteractionTime(fTime);
60e3ddb0 485 ((AliGenDPMjetEventHeader*) header)->SetNDiffractive(POEVT1.nsd1, POEVT1.nsd2, POEVT1.ndd);
1a52e0ed 486 gAlice->SetGenEventHeader(header);
d2593e7a 487 AddHeader(header);
1a52e0ed 488}
489
9dcc0beb 490void AliGenDPMjet::AddHeader(AliGenEventHeader* header)
491{
492 // Add header to container or runloader
493 if (fContainer) {
494 fContainer->AddHeader(header);
495 } else {
33c3c91a 496 AliRunLoader::Instance()->GetHeader()->SetGenEventHeader(header);
9dcc0beb 497 }
498}
1a52e0ed 499
500
501//______________________________________________________________________________
ba758f5a 502AliGenDPMjet& AliGenDPMjet::operator=(const AliGenDPMjet& /*rhs*/)
1a52e0ed 503{
504// Assignment operator
505 return *this;
506}
507
508
e2b2a1dd 509//______________________________________________________________________________
d2593e7a 510void AliGenDPMjet::FinishRun()
511{
512 // Print run statistics
513 fDPMjet->Dt_Dtuout();
514}
515
19896767 516
e2b2a1dd 517//______________________________________________________________________________
19896767 518Bool_t AliGenDPMjet::CheckDiffraction()
519{
520
521 // printf("AAA\n");
522
523 Int_t np = fParticles.GetEntriesFast();
524
525 Int_t iPart1=-1;
526 Int_t iPart2=-1;
527
528 Double_t y1 = 1e10;
529 Double_t y2 = -1e10;
530
531 const Int_t kNstable=20;
532 const Int_t pdgStable[20] = {
533 22, // Photon
534 11, // Electron
535 12, // Electron Neutrino
536 13, // Muon
537 14, // Muon Neutrino
538 15, // Tau
539 16, // Tau Neutrino
540 211, // Pion
541 321, // Kaon
542 311, // K0
543 130, // K0s
544 310, // K0l
545 2212, // Proton
546 2112, // Neutron
547 3122, // Lambda_0
548 3112, // Sigma Minus
549 3222, // Sigma Plus
550 3312, // Xsi Minus
551 3322, // Xsi0
552 3334 // Omega
553 };
d2593e7a 554
19896767 555 for (Int_t i = 0; i < np; i++) {
556 TParticle * part = (TParticle *) fParticles.At(i);
557
558 Int_t statusCode = part->GetStatusCode();
559
560 // Initial state particle
561 if (statusCode != 1)
562 continue;
563
564 Int_t pdg = TMath::Abs(part->GetPdgCode());
565 Bool_t isStable = kFALSE;
566 for (Int_t i1 = 0; i1 < kNstable; i1++) {
567 if (pdg == pdgStable[i1]) {
568 isStable = kTRUE;
569 break;
570 }
571 }
572 if(!isStable)
573 continue;
574
575 Double_t y = part->Y();
576
577 if (y < y1)
578 {
579 y1 = y;
580 iPart1 = i;
581 }
582 if (y > y2)
583 {
584 y2 = y;
585 iPart2 = i;
586 }
587 }
588
589 if(iPart1<0 || iPart2<0) return kFALSE;
590
591 y1=TMath::Abs(y1);
592 y2=TMath::Abs(y2);
593
594 TParticle * part1 = (TParticle *) fParticles.At(iPart1);
595 TParticle * part2 = (TParticle *) fParticles.At(iPart2);
596
597 Int_t pdg1 = part1->GetPdgCode();
598 Int_t pdg2 = part2->GetPdgCode();
599
600
601 Int_t iPart = -1;
602 if (pdg1 == 2212 && pdg2 == 2212)
603 {
604 if(y1 > y2)
605 iPart = iPart1;
606 else if(y1 < y2)
607 iPart = iPart2;
608 else {
609 iPart = iPart1;
610 if((AliDpmJetRndm::GetDpmJetRandom())->Uniform(0.,1.)>0.5) iPart = iPart2;
611 }
612 }
613 else if (pdg1 == 2212)
614 iPart = iPart1;
615 else if (pdg2 == 2212)
616 iPart = iPart2;
617
618
619
620
621
622 Double_t M=-1.;
623 if(iPart>0) {
624 TParticle * part = (TParticle *) fParticles.At(iPart);
625 Double_t E= part->Energy();
626 Double_t P= part->P();
627 M= TMath::Sqrt((fEnergyCMS-E-P)*(fEnergyCMS-E+P));
628 }
629
c5dfa3e4 630 Double_t Mmin, Mmax, wSD, wDD, wND;
631
632 if(!GetWeightsDiffraction(M, Mmin, Mmax, wSD, wDD, wND)) return kFALSE;
633 if(M>-1 && M<Mmin) return kFALSE;
634 if(M>Mmax) M=-1;
635
19896767 636
637 Int_t procType=fDPMjet->GetProcessCode();//fPythia->GetMSTI(1);
c5dfa3e4 638 if(procType== 4) return kFALSE;
19896767 639 Int_t proc0=2;
640 if(procType== 7) proc0=1;
641 if(procType== 5 || procType== 6) proc0=0;
642
643
19896767 644 Int_t proc=2;
645 if(M>0) proc=0;
646 else if(proc0==1) proc=1;
647
19896767 648 if(proc==1 && (AliDpmJetRndm::GetDpmJetRandom())->Uniform(0.,1.) > wDD) return kFALSE;
649 if(proc==2 && (AliDpmJetRndm::GetDpmJetRandom())->Uniform(0.,1.) > wND) return kFALSE;
650
651
19896767 652
653 if(proc!=0) {
654 if(proc0!=0) fProcDiff = procType;
655 else fProcDiff = 1;
656 return kTRUE;
657 }
658
c5dfa3e4 659 if(wSD<0) AliError("wSD<0 ! \n");
19896767 660
c5dfa3e4 661 if((AliDpmJetRndm::GetDpmJetRandom())->Uniform(0.,1.)> wSD) return kFALSE;
19896767 662
663 // printf("iPart = %d\n", iPart);
664
665 if(iPart==iPart1) fProcDiff=5;
666 else if(iPart==iPart2) fProcDiff=6;
667 else {
668 printf("EROOR: iPart!=iPart1 && iPart!=iPart2\n");
669
670 }
671
672 return kTRUE;
673}
674
1a52e0ed 675
c5dfa3e4 676
677Bool_t AliGenDPMjet::GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax,
678 Double_t &wSD, Double_t &wDD, Double_t &wND)
679{
680
681 if(TMath::Abs(fEnergyCMS-900)<1 ){
682const Int_t nbin=400;
683Double_t bin[]={
6841.080000, 1.577300, 2.074600, 2.571900, 3.069200, 3.566500,
6854.063800, 4.561100, 5.058400, 5.555700, 6.053000, 6.550300,
6867.047600, 7.544900, 8.042200, 8.539500, 9.036800, 9.534100,
68710.031400, 10.528700, 11.026000, 11.523300, 12.020600, 12.517900,
68813.015200, 13.512500, 14.009800, 14.507100, 15.004400, 15.501700,
68915.999000, 16.496300, 16.993600, 17.490900, 17.988200, 18.485500,
69018.982800, 19.480100, 19.977400, 20.474700, 20.972000, 21.469300,
69121.966600, 22.463900, 22.961200, 23.458500, 23.955800, 24.453100,
69224.950400, 25.447700, 25.945000, 26.442300, 26.939600, 27.436900,
69327.934200, 28.431500, 28.928800, 29.426100, 29.923400, 30.420700,
69430.918000, 31.415300, 31.912600, 32.409900, 32.907200, 33.404500,
69533.901800, 34.399100, 34.896400, 35.393700, 35.891000, 36.388300,
69636.885600, 37.382900, 37.880200, 38.377500, 38.874800, 39.372100,
69739.869400, 40.366700, 40.864000, 41.361300, 41.858600, 42.355900,
69842.853200, 43.350500, 43.847800, 44.345100, 44.842400, 45.339700,
69945.837000, 46.334300, 46.831600, 47.328900, 47.826200, 48.323500,
70048.820800, 49.318100, 49.815400, 50.312700, 50.810000, 51.307300,
70151.804600, 52.301900, 52.799200, 53.296500, 53.793800, 54.291100,
70254.788400, 55.285700, 55.783000, 56.280300, 56.777600, 57.274900,
70357.772200, 58.269500, 58.766800, 59.264100, 59.761400, 60.258700,
70460.756000, 61.253300, 61.750600, 62.247900, 62.745200, 63.242500,
70563.739800, 64.237100, 64.734400, 65.231700, 65.729000, 66.226300,
70666.723600, 67.220900, 67.718200, 68.215500, 68.712800, 69.210100,
70769.707400, 70.204700, 70.702000, 71.199300, 71.696600, 72.193900,
70872.691200, 73.188500, 73.685800, 74.183100, 74.680400, 75.177700,
70975.675000, 76.172300, 76.669600, 77.166900, 77.664200, 78.161500,
71078.658800, 79.156100, 79.653400, 80.150700, 80.648000, 81.145300,
71181.642600, 82.139900, 82.637200, 83.134500, 83.631800, 84.129100,
71284.626400, 85.123700, 85.621000, 86.118300, 86.615600, 87.112900,
71387.610200, 88.107500, 88.604800, 89.102100, 89.599400, 90.096700,
71490.594000, 91.091300, 91.588600, 92.085900, 92.583200, 93.080500,
71593.577800, 94.075100, 94.572400, 95.069700, 95.567000, 96.064300,
71696.561600, 97.058900, 97.556200, 98.053500, 98.550800, 99.048100,
71799.545400, 100.042700, 100.540000, 101.037300, 101.534600, 102.031900,
718102.529200, 103.026500, 103.523800, 104.021100, 104.518400, 105.015700,
719105.513000, 106.010300, 106.507600, 107.004900, 107.502200, 107.999500,
720108.496800, 108.994100, 109.491400, 109.988700, 110.486000, 110.983300,
721111.480600, 111.977900, 112.475200, 112.972500, 113.469800, 113.967100,
722114.464400, 114.961700, 115.459000, 115.956300, 116.453600, 116.950900,
723117.448200, 117.945500, 118.442800, 118.940100, 119.437400, 119.934700,
724120.432000, 120.929300, 121.426600, 121.923900, 122.421200, 122.918500,
725123.415800, 123.913100, 124.410400, 124.907700, 125.405000, 125.902300,
726126.399600, 126.896900, 127.394200, 127.891500, 128.388800, 128.886100,
727129.383400, 129.880700, 130.378000, 130.875300, 131.372600, 131.869900,
728132.367200, 132.864500, 133.361800, 133.859100, 134.356400, 134.853700,
729135.351000, 135.848300, 136.345600, 136.842900, 137.340200, 137.837500,
730138.334800, 138.832100, 139.329400, 139.826700, 140.324000, 140.821300,
731141.318600, 141.815900, 142.313200, 142.810500, 143.307800, 143.805100,
732144.302400, 144.799700, 145.297000, 145.794300, 146.291600, 146.788900,
733147.286200, 147.783500, 148.280800, 148.778100, 149.275400, 149.772700,
734150.270000, 150.767300, 151.264600, 151.761900, 152.259200, 152.756500,
735153.253800, 153.751100, 154.248400, 154.745700, 155.243000, 155.740300,
736156.237600, 156.734900, 157.232200, 157.729500, 158.226800, 158.724100,
737159.221400, 159.718700, 160.216000, 160.713300, 161.210600, 161.707900,
738162.205200, 162.702500, 163.199800, 163.697100, 164.194400, 164.691700,
739165.189000, 165.686300, 166.183600, 166.680900, 167.178200, 167.675500,
740168.172800, 168.670100, 169.167400, 169.664700, 170.162000, 170.659300,
741171.156600, 171.653900, 172.151200, 172.648500, 173.145800, 173.643100,
742174.140400, 174.637700, 175.135000, 175.632300, 176.129600, 176.626900,
743177.124200, 177.621500, 178.118800, 178.616100, 179.113400, 179.610700,
744180.108000, 180.605300, 181.102600, 181.599900, 182.097200, 182.594500,
745183.091800, 183.589100, 184.086400, 184.583700, 185.081000, 185.578300,
746186.075600, 186.572900, 187.070200, 187.567500, 188.064800, 188.562100,
747189.059400, 189.556700, 190.054000, 190.551300, 191.048600, 191.545900,
748192.043200, 192.540500, 193.037800, 193.535100, 194.032400, 194.529700,
749195.027000, 195.524300, 196.021600, 196.518900, 197.016200, 197.513500,
750198.010800, 198.508100, 199.005400, 199.502700, 200.000000};
751Double_t w[]={
7521.000000, 0.389079, 0.326612, 0.356363, 0.310726, 0.264037,
7530.253810, 0.224655, 0.207990, 0.198149, 0.186803, 0.180209,
7540.178928, 0.161772, 0.162314, 0.158409, 0.148379, 0.143557,
7550.140357, 0.136272, 0.136957, 0.136606, 0.129376, 0.127671,
7560.128406, 0.132239, 0.119311, 0.130227, 0.130233, 0.123312,
7570.115257, 0.120105, 0.119733, 0.117116, 0.110096, 0.117509,
7580.109149, 0.114372, 0.100322, 0.106227, 0.108696, 0.110352,
7590.106748, 0.101475, 0.101837, 0.098585, 0.094433, 0.100148,
7600.096505, 0.100155, 0.103526, 0.098161, 0.093647, 0.100121,
7610.097426, 0.093414, 0.090241, 0.097228, 0.098098, 0.098340,
7620.096779, 0.099265, 0.095101, 0.090342, 0.097469, 0.090663,
7630.093422, 0.093103, 0.089648, 0.096923, 0.088079, 0.089360,
7640.097772, 0.092932, 0.093554, 0.085784, 0.096395, 0.096304,
7650.090183, 0.089255, 0.090265, 0.086262, 0.087044, 0.088965,
7660.085825, 0.095073, 0.085933, 0.091005, 0.091707, 0.092428,
7670.091689, 0.091224, 0.095256, 0.083407, 0.087983, 0.090320,
7680.081580, 0.088077, 0.083478, 0.091309, 0.083734, 0.089906,
7690.100155, 0.092728, 0.086542, 0.078091, 0.085261, 0.094302,
7700.078063, 0.090070, 0.086566, 0.095020, 0.082124, 0.084791,
7710.090624, 0.090236, 0.086344, 0.085706, 0.085913, 0.083107,
7720.092557, 0.081144, 0.091254, 0.096139, 0.079458, 0.088124,
7730.088777, 0.076652, 0.085168, 0.082326, 0.080435, 0.085022,
7740.085693, 0.093957, 0.088134, 0.082347, 0.082139, 0.090980,
7750.078397, 0.093595, 0.091562, 0.081789, 0.085026, 0.080868,
7760.083455, 0.084590, 0.084124, 0.081486, 0.087242, 0.080928,
7770.096392, 0.078324, 0.092093, 0.074267, 0.082925, 0.090717,
7780.081467, 0.080435, 0.078825, 0.075843, 0.088940, 0.081451,
7790.096047, 0.088102, 0.091710, 0.095208, 0.086160, 0.091305,
7800.085406, 0.094432, 0.078227, 0.099870, 0.094140, 0.080130,
7810.090707, 0.083268, 0.082222, 0.088767, 0.084477, 0.088069,
7820.089382, 0.086164, 0.089123, 0.092799, 0.076710, 0.090727,
7830.077097, 0.099905, 0.089733, 0.088101, 0.093705, 0.089215,
7840.085110, 0.086032, 0.083719, 0.079693, 0.088116, 0.090519,
7850.091150, 0.090855, 0.090547, 0.077773, 0.081914, 0.080864,
7860.082935, 0.092952, 0.079390, 0.080255, 0.091123, 0.091331,
7870.095160, 0.089343, 0.083353, 0.087445, 0.094036, 0.084719,
7880.099665, 0.085104, 0.100912, 0.085958, 0.083972, 0.098284,
7890.078318, 0.082042, 0.088007, 0.085469, 0.089984, 0.081181,
7900.098850, 0.086409, 0.089070, 0.081579, 0.089622, 0.089396,
7910.093922, 0.089472, 0.090806, 0.075034, 0.090346, 0.083871,
7920.086931, 0.089207, 0.094425, 0.087830, 0.079537, 0.097316,
7930.096513, 0.092264, 0.082211, 0.083841, 0.081861, 0.092591,
7940.077785, 0.079646, 0.093721, 0.090735, 0.086910, 0.075837,
7950.090729, 0.092800, 0.098704, 0.092441, 0.086404, 0.089344,
7960.083650, 0.082569, 0.085753, 0.091430, 0.085460, 0.095210,
7970.083226, 0.094882, 0.084856, 0.093350, 0.084579, 0.096744,
7980.099211, 0.085142, 0.085499, 0.083395, 0.088352, 0.110418,
7990.093788, 0.096140, 0.082758, 0.097145, 0.089170, 0.090720,
8000.084708, 0.095927, 0.090330, 0.074239, 0.089532, 0.090514,
8010.089823, 0.089709, 0.101840, 0.082676, 0.087157, 0.079221,
8020.096460, 0.108192, 0.088904, 0.084510, 0.096624, 0.099242,
8030.094470, 0.092473, 0.091745, 0.090439, 0.095316, 0.087963,
8040.096400, 0.089479, 0.094880, 0.085964, 0.092775, 0.083200,
8050.095133, 0.090079, 0.088828, 0.087600, 0.094123, 0.089135,
8060.082617, 0.085109, 0.114091, 0.096331, 0.108465, 0.080318,
8070.106576, 0.089671, 0.092023, 0.090722, 0.086603, 0.091788,
8080.098375, 0.082712, 0.102681, 0.098869, 0.089051, 0.109972,
8090.080440, 0.097860, 0.093074, 0.097028, 0.107826, 0.117152,
8100.090968, 0.096790, 0.096725, 0.094641, 0.089535, 0.092561,
8110.095828, 0.084320, 0.089942, 0.105476, 0.087495, 0.089805,
8120.092238, 0.094141, 0.104390, 0.082958, 0.097449, 0.099594,
8130.092640, 0.097332, 0.093223, 0.100183, 0.092511, 0.087035,
8140.088741, 0.097856, 0.116682, 0.091732, 0.097753, 0.094283,
8150.094235, 0.082016, 0.098370, 0.085676, 0.104529, 0.087319,
8160.090289, 0.105314, 0.103634, 0.101261, 0.092764, 0.098217,
8170.098939, 0.096071, 0.096071, 0.094027, 0.092713, 0.089542,
8180.112293, 0.112293, 0.089531, 0.087752};
819wDD = 0.188264;
820wND = 0.102252;
821wSD = -1;
822
823 Mmin = bin[0];
824 Mmax = bin[nbin];
825 if(M<Mmin || M>Mmax) return kTRUE;
826
827 Int_t ibin=nbin-1;
828 for(Int_t i=1; i<=nbin; i++)
829 if(M<=bin[i]) {
830 ibin=i-1;
831 // printf("Mi> %f && Mi< %f\n", bin[i-1], bin[i]);
832 break;
833 }
834 wSD=w[ibin];
835 return kTRUE;
836
837 }
838 else if(TMath::Abs(fEnergyCMS-2760)<1 ){
839
840const Int_t nbin=400;
841Double_t bin[]={
8421.080000, 1.577300, 2.074600, 2.571900, 3.069200, 3.566500,
8434.063800, 4.561100, 5.058400, 5.555700, 6.053000, 6.550300,
8447.047600, 7.544900, 8.042200, 8.539500, 9.036800, 9.534100,
84510.031400, 10.528700, 11.026000, 11.523300, 12.020600, 12.517900,
84613.015200, 13.512500, 14.009800, 14.507100, 15.004400, 15.501700,
84715.999000, 16.496300, 16.993600, 17.490900, 17.988200, 18.485500,
84818.982800, 19.480100, 19.977400, 20.474700, 20.972000, 21.469300,
84921.966600, 22.463900, 22.961200, 23.458500, 23.955800, 24.453100,
85024.950400, 25.447700, 25.945000, 26.442300, 26.939600, 27.436900,
85127.934200, 28.431500, 28.928800, 29.426100, 29.923400, 30.420700,
85230.918000, 31.415300, 31.912600, 32.409900, 32.907200, 33.404500,
85333.901800, 34.399100, 34.896400, 35.393700, 35.891000, 36.388300,
85436.885600, 37.382900, 37.880200, 38.377500, 38.874800, 39.372100,
85539.869400, 40.366700, 40.864000, 41.361300, 41.858600, 42.355900,
85642.853200, 43.350500, 43.847800, 44.345100, 44.842400, 45.339700,
85745.837000, 46.334300, 46.831600, 47.328900, 47.826200, 48.323500,
85848.820800, 49.318100, 49.815400, 50.312700, 50.810000, 51.307300,
85951.804600, 52.301900, 52.799200, 53.296500, 53.793800, 54.291100,
86054.788400, 55.285700, 55.783000, 56.280300, 56.777600, 57.274900,
86157.772200, 58.269500, 58.766800, 59.264100, 59.761400, 60.258700,
86260.756000, 61.253300, 61.750600, 62.247900, 62.745200, 63.242500,
86363.739800, 64.237100, 64.734400, 65.231700, 65.729000, 66.226300,
86466.723600, 67.220900, 67.718200, 68.215500, 68.712800, 69.210100,
86569.707400, 70.204700, 70.702000, 71.199300, 71.696600, 72.193900,
86672.691200, 73.188500, 73.685800, 74.183100, 74.680400, 75.177700,
86775.675000, 76.172300, 76.669600, 77.166900, 77.664200, 78.161500,
86878.658800, 79.156100, 79.653400, 80.150700, 80.648000, 81.145300,
86981.642600, 82.139900, 82.637200, 83.134500, 83.631800, 84.129100,
87084.626400, 85.123700, 85.621000, 86.118300, 86.615600, 87.112900,
87187.610200, 88.107500, 88.604800, 89.102100, 89.599400, 90.096700,
87290.594000, 91.091300, 91.588600, 92.085900, 92.583200, 93.080500,
87393.577800, 94.075100, 94.572400, 95.069700, 95.567000, 96.064300,
87496.561600, 97.058900, 97.556200, 98.053500, 98.550800, 99.048100,
87599.545400, 100.042700, 100.540000, 101.037300, 101.534600, 102.031900,
876102.529200, 103.026500, 103.523800, 104.021100, 104.518400, 105.015700,
877105.513000, 106.010300, 106.507600, 107.004900, 107.502200, 107.999500,
878108.496800, 108.994100, 109.491400, 109.988700, 110.486000, 110.983300,
879111.480600, 111.977900, 112.475200, 112.972500, 113.469800, 113.967100,
880114.464400, 114.961700, 115.459000, 115.956300, 116.453600, 116.950900,
881117.448200, 117.945500, 118.442800, 118.940100, 119.437400, 119.934700,
882120.432000, 120.929300, 121.426600, 121.923900, 122.421200, 122.918500,
883123.415800, 123.913100, 124.410400, 124.907700, 125.405000, 125.902300,
884126.399600, 126.896900, 127.394200, 127.891500, 128.388800, 128.886100,
885129.383400, 129.880700, 130.378000, 130.875300, 131.372600, 131.869900,
886132.367200, 132.864500, 133.361800, 133.859100, 134.356400, 134.853700,
887135.351000, 135.848300, 136.345600, 136.842900, 137.340200, 137.837500,
888138.334800, 138.832100, 139.329400, 139.826700, 140.324000, 140.821300,
889141.318600, 141.815900, 142.313200, 142.810500, 143.307800, 143.805100,
890144.302400, 144.799700, 145.297000, 145.794300, 146.291600, 146.788900,
891147.286200, 147.783500, 148.280800, 148.778100, 149.275400, 149.772700,
892150.270000, 150.767300, 151.264600, 151.761900, 152.259200, 152.756500,
893153.253800, 153.751100, 154.248400, 154.745700, 155.243000, 155.740300,
894156.237600, 156.734900, 157.232200, 157.729500, 158.226800, 158.724100,
895159.221400, 159.718700, 160.216000, 160.713300, 161.210600, 161.707900,
896162.205200, 162.702500, 163.199800, 163.697100, 164.194400, 164.691700,
897165.189000, 165.686300, 166.183600, 166.680900, 167.178200, 167.675500,
898168.172800, 168.670100, 169.167400, 169.664700, 170.162000, 170.659300,
899171.156600, 171.653900, 172.151200, 172.648500, 173.145800, 173.643100,
900174.140400, 174.637700, 175.135000, 175.632300, 176.129600, 176.626900,
901177.124200, 177.621500, 178.118800, 178.616100, 179.113400, 179.610700,
902180.108000, 180.605300, 181.102600, 181.599900, 182.097200, 182.594500,
903183.091800, 183.589100, 184.086400, 184.583700, 185.081000, 185.578300,
904186.075600, 186.572900, 187.070200, 187.567500, 188.064800, 188.562100,
905189.059400, 189.556700, 190.054000, 190.551300, 191.048600, 191.545900,
906192.043200, 192.540500, 193.037800, 193.535100, 194.032400, 194.529700,
907195.027000, 195.524300, 196.021600, 196.518900, 197.016200, 197.513500,
908198.010800, 198.508100, 199.005400, 199.502700, 200.000000};
909Double_t w[]={
9101.000000, 0.402402, 0.347976, 0.386866, 0.304413, 0.275746,
9110.256941, 0.250439, 0.228486, 0.219225, 0.203368, 0.196124,
9120.180551, 0.169230, 0.159021, 0.157136, 0.154743, 0.160522,
9130.153993, 0.143448, 0.148062, 0.136337, 0.130853, 0.127798,
9140.137576, 0.137530, 0.124175, 0.120225, 0.120774, 0.123584,
9150.121883, 0.114522, 0.118338, 0.119587, 0.106017, 0.125802,
9160.106256, 0.101585, 0.097737, 0.100817, 0.102279, 0.110935,
9170.101429, 0.107629, 0.105802, 0.095688, 0.096617, 0.100985,
9180.101521, 0.100450, 0.111836, 0.088828, 0.102264, 0.101012,
9190.097673, 0.097634, 0.091720, 0.096167, 0.084537, 0.104443,
9200.091966, 0.097204, 0.089456, 0.088273, 0.098220, 0.095151,
9210.088201, 0.085570, 0.088431, 0.077625, 0.088314, 0.084582,
9220.091545, 0.083774, 0.086183, 0.089195, 0.086255, 0.077167,
9230.096118, 0.089881, 0.086206, 0.086968, 0.079827, 0.082002,
9240.083081, 0.076587, 0.081820, 0.092382, 0.082964, 0.080901,
9250.093512, 0.082907, 0.086691, 0.093639, 0.089010, 0.082857,
9260.090795, 0.082403, 0.078602, 0.087284, 0.079638, 0.082905,
9270.077189, 0.084329, 0.075900, 0.082559, 0.084210, 0.070053,
9280.068453, 0.083369, 0.077659, 0.073286, 0.075396, 0.073946,
9290.083293, 0.076235, 0.082184, 0.080104, 0.073755, 0.077369,
9300.068281, 0.084593, 0.074923, 0.069467, 0.072094, 0.077973,
9310.067034, 0.080314, 0.087441, 0.071728, 0.072302, 0.076783,
9320.079931, 0.075557, 0.076318, 0.079029, 0.075126, 0.076859,
9330.080253, 0.074344, 0.083387, 0.087553, 0.084437, 0.076322,
9340.077748, 0.087559, 0.075649, 0.076615, 0.077098, 0.074559,
9350.075540, 0.085883, 0.079269, 0.079866, 0.068922, 0.069770,
9360.068024, 0.077783, 0.086620, 0.086769, 0.068433, 0.078059,
9370.084463, 0.072790, 0.073889, 0.079090, 0.081759, 0.069576,
9380.069160, 0.071695, 0.078569, 0.075727, 0.088055, 0.082395,
9390.079915, 0.075150, 0.073580, 0.069968, 0.071141, 0.065823,
9400.077270, 0.076229, 0.071735, 0.079271, 0.078209, 0.069503,
9410.064732, 0.076312, 0.088579, 0.087271, 0.080566, 0.073527,
9420.071376, 0.068785, 0.071812, 0.072680, 0.067252, 0.059543,
9430.072818, 0.071856, 0.083427, 0.080664, 0.077315, 0.066060,
9440.078772, 0.065442, 0.067255, 0.077676, 0.068306, 0.071578,
9450.059728, 0.073526, 0.078932, 0.070316, 0.067620, 0.067323,
9460.078316, 0.080366, 0.091194, 0.066739, 0.076238, 0.070382,
9470.077118, 0.073822, 0.072830, 0.062947, 0.077375, 0.076284,
9480.070951, 0.086127, 0.071074, 0.076621, 0.070502, 0.070897,
9490.058764, 0.065322, 0.073620, 0.062051, 0.074548, 0.083770,
9500.072502, 0.066823, 0.074192, 0.081570, 0.067340, 0.081896,
9510.080680, 0.072835, 0.069675, 0.078881, 0.072826, 0.069616,
9520.082744, 0.069138, 0.073333, 0.080881, 0.069091, 0.064266,
9530.062849, 0.072846, 0.067462, 0.067229, 0.071319, 0.071099,
9540.069381, 0.073799, 0.076106, 0.075006, 0.073074, 0.092589,
9550.074277, 0.061324, 0.069788, 0.070310, 0.063160, 0.073077,
9560.075447, 0.081013, 0.074102, 0.076565, 0.060192, 0.058326,
9570.071508, 0.072974, 0.065098, 0.060432, 0.062077, 0.075644,
9580.075417, 0.066947, 0.066744, 0.065111, 0.075468, 0.078185,
9590.073216, 0.066502, 0.079582, 0.065405, 0.069828, 0.072165,
9600.071112, 0.064656, 0.080396, 0.066505, 0.063419, 0.066128,
9610.080616, 0.071463, 0.064867, 0.074782, 0.063103, 0.068179,
9620.064911, 0.073029, 0.075746, 0.062264, 0.099126, 0.067890,
9630.074940, 0.070090, 0.073583, 0.056904, 0.063745, 0.063780,
9640.076876, 0.066519, 0.067164, 0.068668, 0.075065, 0.070983,
9650.075751, 0.066317, 0.077520, 0.073139, 0.073961, 0.085492,
9660.074629, 0.059555, 0.081026, 0.059274, 0.055448, 0.084269,
9670.066222, 0.078874, 0.062021, 0.075156, 0.090478, 0.066265,
9680.067845, 0.076653, 0.086671, 0.082362, 0.067246, 0.075975,
9690.072594, 0.068570, 0.095034, 0.065644, 0.070945, 0.066190,
9700.075906, 0.055154, 0.075575, 0.058078, 0.071004, 0.070850,
9710.064374, 0.058251, 0.069430, 0.072293, 0.065484, 0.084197,
9720.090119, 0.091619, 0.067620, 0.079462, 0.063025, 0.068128,
9730.056927, 0.076351, 0.073869, 0.061597, 0.083741, 0.063762,
9740.064489, 0.074269, 0.068832, 0.058648, 0.069536, 0.074824,
9750.081009, 0.073389, 0.076792, 0.084855, 0.075280, 0.061473,
9760.063840, 0.062891, 0.071328, 0.065250};
977wDD = 0.077845;
978wND = 0.066355;
979wSD = -1;
980
981 Mmin = bin[0];
982 Mmax = bin[nbin];
983 if(M<Mmin || M>Mmax) return kTRUE;
984
985 Int_t ibin=nbin-1;
986 for(Int_t i=1; i<=nbin; i++)
987 if(M<=bin[i]) {
988 ibin=i-1;
989 // printf("Mi> %f && Mi< %f\n", bin[i-1], bin[i]);
990 break;
991 }
992 wSD=w[ibin];
993 return kTRUE;
994
995 }
996 else if(TMath::Abs(fEnergyCMS-7000)<1 ){
997
998const Int_t nbin=400;
999Double_t bin[]={
10001.080000, 1.577300, 2.074600, 2.571900, 3.069200, 3.566500,
10014.063800, 4.561100, 5.058400, 5.555700, 6.053000, 6.550300,
10027.047600, 7.544900, 8.042200, 8.539500, 9.036800, 9.534100,
100310.031400, 10.528700, 11.026000, 11.523300, 12.020600, 12.517900,
100413.015200, 13.512500, 14.009800, 14.507100, 15.004400, 15.501700,
100515.999000, 16.496300, 16.993600, 17.490900, 17.988200, 18.485500,
100618.982800, 19.480100, 19.977400, 20.474700, 20.972000, 21.469300,
100721.966600, 22.463900, 22.961200, 23.458500, 23.955800, 24.453100,
100824.950400, 25.447700, 25.945000, 26.442300, 26.939600, 27.436900,
100927.934200, 28.431500, 28.928800, 29.426100, 29.923400, 30.420700,
101030.918000, 31.415300, 31.912600, 32.409900, 32.907200, 33.404500,
101133.901800, 34.399100, 34.896400, 35.393700, 35.891000, 36.388300,
101236.885600, 37.382900, 37.880200, 38.377500, 38.874800, 39.372100,
101339.869400, 40.366700, 40.864000, 41.361300, 41.858600, 42.355900,
101442.853200, 43.350500, 43.847800, 44.345100, 44.842400, 45.339700,
101545.837000, 46.334300, 46.831600, 47.328900, 47.826200, 48.323500,
101648.820800, 49.318100, 49.815400, 50.312700, 50.810000, 51.307300,
101751.804600, 52.301900, 52.799200, 53.296500, 53.793800, 54.291100,
101854.788400, 55.285700, 55.783000, 56.280300, 56.777600, 57.274900,
101957.772200, 58.269500, 58.766800, 59.264100, 59.761400, 60.258700,
102060.756000, 61.253300, 61.750600, 62.247900, 62.745200, 63.242500,
102163.739800, 64.237100, 64.734400, 65.231700, 65.729000, 66.226300,
102266.723600, 67.220900, 67.718200, 68.215500, 68.712800, 69.210100,
102369.707400, 70.204700, 70.702000, 71.199300, 71.696600, 72.193900,
102472.691200, 73.188500, 73.685800, 74.183100, 74.680400, 75.177700,
102575.675000, 76.172300, 76.669600, 77.166900, 77.664200, 78.161500,
102678.658800, 79.156100, 79.653400, 80.150700, 80.648000, 81.145300,
102781.642600, 82.139900, 82.637200, 83.134500, 83.631800, 84.129100,
102884.626400, 85.123700, 85.621000, 86.118300, 86.615600, 87.112900,
102987.610200, 88.107500, 88.604800, 89.102100, 89.599400, 90.096700,
103090.594000, 91.091300, 91.588600, 92.085900, 92.583200, 93.080500,
103193.577800, 94.075100, 94.572400, 95.069700, 95.567000, 96.064300,
103296.561600, 97.058900, 97.556200, 98.053500, 98.550800, 99.048100,
103399.545400, 100.042700, 100.540000, 101.037300, 101.534600, 102.031900,
1034102.529200, 103.026500, 103.523800, 104.021100, 104.518400, 105.015700,
1035105.513000, 106.010300, 106.507600, 107.004900, 107.502200, 107.999500,
1036108.496800, 108.994100, 109.491400, 109.988700, 110.486000, 110.983300,
1037111.480600, 111.977900, 112.475200, 112.972500, 113.469800, 113.967100,
1038114.464400, 114.961700, 115.459000, 115.956300, 116.453600, 116.950900,
1039117.448200, 117.945500, 118.442800, 118.940100, 119.437400, 119.934700,
1040120.432000, 120.929300, 121.426600, 121.923900, 122.421200, 122.918500,
1041123.415800, 123.913100, 124.410400, 124.907700, 125.405000, 125.902300,
1042126.399600, 126.896900, 127.394200, 127.891500, 128.388800, 128.886100,
1043129.383400, 129.880700, 130.378000, 130.875300, 131.372600, 131.869900,
1044132.367200, 132.864500, 133.361800, 133.859100, 134.356400, 134.853700,
1045135.351000, 135.848300, 136.345600, 136.842900, 137.340200, 137.837500,
1046138.334800, 138.832100, 139.329400, 139.826700, 140.324000, 140.821300,
1047141.318600, 141.815900, 142.313200, 142.810500, 143.307800, 143.805100,
1048144.302400, 144.799700, 145.297000, 145.794300, 146.291600, 146.788900,
1049147.286200, 147.783500, 148.280800, 148.778100, 149.275400, 149.772700,
1050150.270000, 150.767300, 151.264600, 151.761900, 152.259200, 152.756500,
1051153.253800, 153.751100, 154.248400, 154.745700, 155.243000, 155.740300,
1052156.237600, 156.734900, 157.232200, 157.729500, 158.226800, 158.724100,
1053159.221400, 159.718700, 160.216000, 160.713300, 161.210600, 161.707900,
1054162.205200, 162.702500, 163.199800, 163.697100, 164.194400, 164.691700,
1055165.189000, 165.686300, 166.183600, 166.680900, 167.178200, 167.675500,
1056168.172800, 168.670100, 169.167400, 169.664700, 170.162000, 170.659300,
1057171.156600, 171.653900, 172.151200, 172.648500, 173.145800, 173.643100,
1058174.140400, 174.637700, 175.135000, 175.632300, 176.129600, 176.626900,
1059177.124200, 177.621500, 178.118800, 178.616100, 179.113400, 179.610700,
1060180.108000, 180.605300, 181.102600, 181.599900, 182.097200, 182.594500,
1061183.091800, 183.589100, 184.086400, 184.583700, 185.081000, 185.578300,
1062186.075600, 186.572900, 187.070200, 187.567500, 188.064800, 188.562100,
1063189.059400, 189.556700, 190.054000, 190.551300, 191.048600, 191.545900,
1064192.043200, 192.540500, 193.037800, 193.535100, 194.032400, 194.529700,
1065195.027000, 195.524300, 196.021600, 196.518900, 197.016200, 197.513500,
1066198.010800, 198.508100, 199.005400, 199.502700, 200.000000};
1067Double_t w[]={
10681.000000, 0.526293, 0.446686, 0.437789, 0.366854, 0.333320,
10690.291931, 0.266464, 0.253870, 0.248706, 0.232788, 0.220736,
10700.209886, 0.202741, 0.188617, 0.182767, 0.178748, 0.169039,
10710.175911, 0.169098, 0.171256, 0.146728, 0.144543, 0.159470,
10720.153171, 0.151883, 0.144693, 0.136307, 0.140226, 0.135388,
10730.141317, 0.151121, 0.131209, 0.144039, 0.124688, 0.128020,
10740.119122, 0.121868, 0.122332, 0.119561, 0.115744, 0.102504,
10750.114726, 0.109518, 0.115418, 0.114860, 0.110026, 0.107693,
10760.103005, 0.115985, 0.108629, 0.105937, 0.101056, 0.101228,
10770.113305, 0.110302, 0.104696, 0.107447, 0.099095, 0.107378,
10780.103090, 0.111384, 0.090821, 0.109806, 0.093639, 0.096655,
10790.110416, 0.104446, 0.098530, 0.095105, 0.106641, 0.101804,
10800.091798, 0.094775, 0.104130, 0.088436, 0.119692, 0.099160,
10810.086163, 0.089250, 0.101898, 0.091786, 0.087346, 0.095312,
10820.107186, 0.085671, 0.093283, 0.091992, 0.114654, 0.086172,
10830.084559, 0.097862, 0.079417, 0.094737, 0.089678, 0.105265,
10840.099092, 0.087901, 0.086828, 0.084756, 0.077769, 0.084254,
10850.083262, 0.092935, 0.088858, 0.093377, 0.083569, 0.084771,
10860.084957, 0.084033, 0.095007, 0.076690, 0.087726, 0.097913,
10870.084119, 0.076361, 0.084172, 0.091068, 0.094564, 0.091406,
10880.088405, 0.090355, 0.085388, 0.084586, 0.085752, 0.084298,
10890.091294, 0.081491, 0.075024, 0.082543, 0.088048, 0.074621,
10900.078514, 0.077249, 0.078378, 0.092945, 0.075859, 0.077602,
10910.074592, 0.078181, 0.081527, 0.080865, 0.078854, 0.078237,
10920.085506, 0.089823, 0.072738, 0.078430, 0.077162, 0.081495,
10930.090878, 0.099417, 0.100966, 0.087960, 0.085556, 0.081661,
10940.078066, 0.089059, 0.073564, 0.092704, 0.073148, 0.098057,
10950.067906, 0.079452, 0.090567, 0.082454, 0.077851, 0.079694,
10960.091272, 0.078628, 0.096906, 0.098779, 0.088906, 0.070174,
10970.083822, 0.084241, 0.093237, 0.071062, 0.075771, 0.096405,
10980.098441, 0.086007, 0.069599, 0.078400, 0.083481, 0.081054,
10990.085552, 0.069582, 0.071336, 0.073207, 0.087913, 0.080125,
11000.075189, 0.067217, 0.073509, 0.099694, 0.080781, 0.073943,
11010.062822, 0.076611, 0.087672, 0.077632, 0.063959, 0.077754,
11020.084651, 0.097348, 0.063909, 0.055053, 0.087616, 0.074428,
11030.101165, 0.078446, 0.070683, 0.071162, 0.091516, 0.069641,
11040.070969, 0.069778, 0.083318, 0.066703, 0.074027, 0.067589,
11050.070620, 0.081307, 0.094406, 0.076188, 0.061663, 0.077561,
11060.076159, 0.071851, 0.074417, 0.076136, 0.069073, 0.075450,
11070.070218, 0.089709, 0.079974, 0.082077, 0.076979, 0.070497,
11080.076296, 0.087347, 0.073508, 0.088073, 0.067186, 0.059898,
11090.085495, 0.100152, 0.079468, 0.093783, 0.082680, 0.077272,
11100.081995, 0.068240, 0.071881, 0.073737, 0.072346, 0.079034,
11110.078721, 0.067518, 0.068196, 0.081738, 0.082814, 0.082480,
11120.069072, 0.066853, 0.081523, 0.073588, 0.082308, 0.091641,
11130.072747, 0.084317, 0.072190, 0.079372, 0.067424, 0.077450,
11140.062343, 0.090708, 0.065470, 0.086588, 0.071172, 0.066705,
11150.070670, 0.070407, 0.096111, 0.066738, 0.081249, 0.072882,
11160.075144, 0.060331, 0.074589, 0.076968, 0.085913, 0.072561,
11170.064645, 0.078742, 0.075670, 0.065984, 0.080932, 0.069898,
11180.065303, 0.096856, 0.057690, 0.065720, 0.066545, 0.068521,
11190.068278, 0.069245, 0.086643, 0.063401, 0.070933, 0.070752,
11200.066978, 0.058891, 0.070073, 0.078031, 0.082691, 0.101414,
11210.075814, 0.072790, 0.057622, 0.093002, 0.084660, 0.079216,
11220.070371, 0.070141, 0.076944, 0.067285, 0.078016, 0.077807,
11230.066668, 0.066459, 0.059962, 0.062774, 0.083450, 0.064554,
11240.067887, 0.064165, 0.072782, 0.067285, 0.052710, 0.096824,
11250.071931, 0.064190, 0.074442, 0.082647, 0.055797, 0.078632,
11260.061116, 0.063092, 0.049131, 0.074517, 0.069915, 0.079021,
11270.088656, 0.101045, 0.090432, 0.076460, 0.067451, 0.071381,
11280.069790, 0.077330, 0.077115, 0.084403, 0.065138, 0.056436,
11290.088024, 0.069893, 0.055985, 0.089655, 0.062911, 0.075311,
11300.086679, 0.093645, 0.068632, 0.064498, 0.057677, 0.081391,
11310.062781, 0.075467, 0.061314, 0.073394, 0.084462, 0.068470,
11320.071267, 0.060556, 0.072487, 0.063785, 0.079164, 0.070406,
11330.073394, 0.063168, 0.066968, 0.064125, 0.063954, 0.072504,
11340.058948, 0.057740, 0.083383, 0.067262};
1135wDD = 0.098024;
1136wND = 0.053452;
1137wSD = -1;
1138
1139 Mmin = bin[0];
1140 Mmax = bin[nbin];
1141 if(M<Mmin || M>Mmax) return kTRUE;
1142
1143 Int_t ibin=nbin-1;
1144 for(Int_t i=1; i<=nbin; i++)
1145 if(M<=bin[i]) {
1146 ibin=i-1;
1147 // printf("Mi> %f && Mi< %f\n", bin[i-1], bin[i]);
1148 break;
1149 }
1150 wSD=w[ibin];
1151 return kTRUE;
1152
1153 }
1154
1155 return kFALSE;
1156}
1157
1158
1a52e0ed 1159//______________________________________________________________________________