Thermal source model of p+nucleus 3.5 AGeV


{
    // To save space, only leptons branches are generated and written to file.
    // allows for different seeds each time the macro is started
    
    PUtils::SetSeed(0);
    
    // makeDistributionManager()->Disable("helicity_angles");
    
    Bool_t freeze=kFALSE;
    
    Float_t Eb    = 3.5;     // beam energy in AGeV
    Float_t ctr   = 1.0;     // 
    //Float_t bmax  = 3.9;     // max. impact parameter (corresponds to 60% of all)
    Float_t bmax  = 0.0;         // Poisson sampling
    if (bmax>0.) ctr = 1.;   // use b sampling instead of Poisson sampling
    
    Float_t T1    = 0.080;   // temperature in GeV (for pion 2-component spectra)
    Float_t T2    = 0.080;   // temperature in GeV (assume this for thermalized source)
    Float_t frac  = 1.0;     // fraction of pion low-T component (from Jehad's fit to QMD)
    Float_t blast = 0.0;     // radial expansion velocity
    
    Float_t A2    = 1.0;     // polar distribution (from KaoS pion data)
    Float_t A4    = 0.0;
    Float_t v1    = 0.0;     // side flow
    Float_t v2    = 0.0;     // elliptic flow
    
    // Multiplicties for 3.5 AGeV P+nucleus min. bias events
    Float_t Mprot  = 2.03*ctr;       // proton
    Float_t Mneut  = 2.03*ctr;       // neutron
    Float_t Mdeut  = 0.0*ctr;      // deuteron (= 10% of proton)
    // <Apart> = ctr*(8.9 + 8.9 + 2*0.89) = 19.6 = A/2
    Float_t Mpi0   = 0.60*ctr;      // pi0 multiplicity in p+C 3.5 AGeV
    Float_t Mpip   = 0.60*ctr;      // pi+
    Float_t Mpim   = 0.60*ctr;      // pi-
    Float_t Meta   = 0.031*ctr;     // eta
    Float_t Momega = 0.011*ctr;     // omega
    Float_t Mrho0  = 0.011*ctr;     // rho0  
    Float_t Mphi   = 0.0005*ctr;    // phi
    Float_t MDelta = 2.*3./2.*Mpi0; // Delta0 + Delta+  
    
    Float_t enhance = 500.;           // enhancement factor for mesons
    //Float_t enhance = 5000.; 
    // enhance = 1.;           // enhancement factor
    Float_t enhancepi = 4.;            //enhancement factor for pi
    //Float_t enhancepi = 1;            //enhancement factor for pi
    
    Mpi0   *= enhancepi;
    //Mpip *= enhancepi;
    Meta   *= enhance;
    Momega *= enhance;
    Mrho0  *= enhance;
    Mphi   *= enhance;
    MDelta *= enhance;

    PFireball *source1 = new PFireball("pi0",Eb,T1,T2,frac,blast,A2,A4,v1,v2);
    PFireball *source2 = new PFireball("eta",Eb,T2,0.,1.,blast,0.0,A4,v1,v2);
    PFireball *source3 = new PFireball("w",Eb,T2,0.,1.,blast,0.0,A4,v1,v2);
    PFireball *source4 = new PFireball("w",Eb,T2,0.,1.,blast,0.0,A4,v1,v2);
    
    // source4->getFuncE()->Draw();
    // return;

    PFireball *source5  = new PFireball("rho0",Eb,T2,0.,1.,blast,0.0,A4,v1,v2);
    PFireball *source6  = new PFireball("phi",Eb,T2,0.,1.,blast,0.0,A4,v1,v2);
    PFireball *source7  = new PFireball("phi",Eb,T2,0.,1.,blast,0.0,A4,v1,v2);
    PFireball *source8  = new PFireball("D0",Eb,T2,0.,1.,blast,0.0,A4,v1,v2);
    PFireball *source9  = new PFireball("phi",Eb,T1,T2,frac,blast,A2,A4,v1,v2);
    PFireball *source10 = new PFireball("pi-",Eb,T1,T2,frac,blast,A2,A4,v1,v2);
    PFireball *source11 = new PFireball("p",Eb,T1,T2,frac,blast,A2,A4,v1,v2);
    PFireball *source12 = new PFireball("eta",Eb,T2,0.,1.,blast,0.0,A4,v1,v2);

    source1->SetW(1.0/enhancepi);
    source2->SetW(1.0/enhance);
    source3->SetW(1.0/enhance);
    source4->SetW(1.0/enhance);
    source5->SetW(1.0/enhance);
    source6->SetW(1.0/enhance);
    source7->SetW(1.0/enhance);
    source8->SetW(1.0/enhance);
    source9->SetW(1.0);
    source10->SetW(1.0);
    source11->SetW(1.0);
    source12->SetW(1.0/enhance);
    
    
    PChannel *c1 = source1->makeChannel(20, 0.012*Mpi0);          // pi0 decay directly
    PChannel *c2 = source2->makeChannel(1, 0.006*Meta);     // eta -> gamma e+e-
    PChannel *c3 = source3->makeChannel(1, 5.9e-4*Momega);  // omega -> pi0 e+e-
    PChannel *c4 = source4->makeChannel(1, 7.15e-5*Momega); // omega -> e+e-
    PChannel *c5 = source5->makeChannel(1, 4.48e-5*Mrho0);  // rho0 -> e+e-
    PChannel *c6 = source6->makeChannel(1, 3.00e-4*Mphi);   // phi -> e+e-
    PChannel *c7 = source7->makeChannel(1, 1.30e-4*Mphi);   // phi -> eta e+e-
    PChannel *c8 = source8->makeChannel(1, 4.4e-5*MDelta);  // Delta -> N e+e-
    PChannel *c9 = source9->makeChannel(1,0.49*Mphi); //phi->K+K-
    /*
      PChannel *c9 = source9->makeChannel(10, Mpip);  // Pion plus
      PChannel *c10 = source10->makeChannel(10, Mpim);  // Pion minus
      PChannel *c11 = source11->makeChannel(10, Mprot);  // Proton
    */
    PChannel *c12 = source12->makeChannel(1, 0.21*Meta);     // eta -> gamma, gamma 
    //PChannel *c14 = source13->makeChannel(1, 0.99*Mpi0);     // pi0 -> gamma, gamma
    //
    
    source1->Print();
    source2->Print();
    source3->Print();
    source4->Print();
    source5->Print();
    source6->Print();
    source7->Print();
    source8->Print();
    source9->Print();
    source10->Print();
    source11->Print();
    source12->Print();
    
    
    PParticle **ptcls;
    
    /// Dalitz decays
    
    PParticle *gam1  = new PParticle("g");
    PParticle *diel1 = new PParticle("dilepton");
    PParticle *elec1 = new PParticle("e-");
    PParticle *posi1 = new PParticle("e+");
    
    ////////////////    pi0 Dalitz decay       /////////////////////////////
    
    ptcls = c1->GetParticles();
    PParticle *s1_1[] = {ptcls[1], gam1, diel1};
    PParticle *s1_2[] = {diel1, elec1, posi1};
    PChannel  *c1_1 = new PChannel(s1_1,2,1);
    PChannel  *c1_2 = new PChannel(s1_2,2,1);

    /// Dalitz decays
    
    PParticle *gam2  = new PParticle("g");
    PParticle *diel2 = new PParticle("dilepton");
    PParticle *elec2 = new PParticle("e-");
    PParticle *posi2 = new PParticle("e+");

    ////////////////    eta Dalitz decay       /////////////////////////////
    
    ptcls = c2->GetParticles();
    PParticle *s2_1[] = {ptcls[1], gam2, diel2};
    PParticle *s2_2[] = {diel2, elec2, posi2};
    PChannel  *c2_1 = new PChannel(s2_1,2,1);
    PChannel  *c2_2 = new PChannel(s2_2,2,1);
    
    
    ////////////////    omega Dalitz decay     /////////////////////////////
    
    PParticle *pi03  = new PParticle("pi0");
    PParticle *diel3 = new PParticle("dilepton");
    PParticle *elec3 = new PParticle("e-");
    PParticle *posi3 = new PParticle("e+");
    
    ptcls = c3->GetParticles();
    PParticle *s3_1[] = {ptcls[1], pi03, diel3};
    PParticle *s3_2[] = {diel3, elec3, posi3};
    PChannel  *c3_1 = new PChannel(s3_1,2,1);
    PChannel  *c3_2 = new PChannel(s3_2,2,1);

    ////////////////    omega direct decay     /////////////////////////////
    
    PParticle *elec4 = new PParticle("e-");
    PParticle *posi4 = new PParticle("e+");
 
    ptcls = c4->GetParticles();
    PParticle *s4_1[] = {ptcls[1], elec4, posi4};
    PChannel  *c4_1 = new PChannel(s4_1,2,1);

    ////////////////    rho0 direct decay     /////////////////////////////
    
    PParticle *elec5 = new PParticle("e-");
    PParticle *posi5 = new PParticle("e+");
    
    ptcls = c5->GetParticles();
    PParticle *s5_1[] = {ptcls[1], elec5, posi5};
    PChannel  *c5_1 = new PChannel(s5_1,2,1);

    ////////////////    phi direct decay      /////////////////////////////
    
    PParticle *elec6 = new PParticle("e-");
    PParticle *posi6 = new PParticle("e+");
    
    ptcls = c6->GetParticles();
    PParticle *s6_1[] = {ptcls[1], elec6, posi6};
    PChannel  *c6_1 = new PChannel(s6_1,2,1);

    ////////////////    phi Dalitz decay      /////////////////////////////

    PParticle *eta7  = new PParticle("eta");
    PParticle *diel7 = new PParticle("dilepton");
    PParticle *elec7 = new PParticle("e-");
    PParticle *posi7 = new PParticle("e+");

    ptcls = c7->GetParticles();
    PParticle *s7_1[] = {ptcls[1], eta7, diel7};
    PParticle *s7_2[] = {diel7, elec7, posi7};
    PChannel  *c7_1 = new PChannel(s7_1,2,1);
    PChannel  *c7_2 = new PChannel(s7_2,2,1);
    
    ////////////////    Delta Dalitz decay    /////////////////////////////
    
    PParticle *neut8 = new PParticle("n");
    PParticle *diel8 = new PParticle("dilepton");
    PParticle *elec8 = new PParticle("e-");
    PParticle *posi8 = new PParticle("e+");

    ptcls = c8->GetParticles();
    PParticle *s8_1[] = {ptcls[1], neut8, diel8};
    PParticle *s8_2[] = {diel8, elec8, posi8};
    PChannel  *c8_1 = new PChannel(s8_1,2,1);
    PChannel  *c8_2 = new PChannel(s8_2,2,1);

    //phi->K+,k- decay
    
    ptcls= c9->GetParticles();
    PParticle *kp    = new PParticle("K+");
    PParticle *km    = new PParticle("K-");
    PParticle *s9_1[] = {ptcls[1],kp,km};
    PChannel  *c9_1 = new PChannel(s9_1,2,1);
    
    //// eta two photon decay   ///////////////////////////////////////
    
    PParticle *gamma1 = new PParticle("g");
    PParticle *gamma2 = new PParticle("g");
 
    ptcls = c12->GetParticles();
    PParticle *s12_1[] = {ptcls[1], gamma1, gamma2};
    PChannel  *c12_1 = new PChannel(s12_1,2,1);

    //////////////////////////////////////////////////////////////////////
    
    
    
    
    PChannel *cc[] = {
	c1,c1_1,c1_2,        /* pi0          */
	c2,c2_1,c2_2,       /* eta Dalitz   */
	c3,c3_1,c3_2,       /* omega Dalitz */
	c4,c4_1,            /* omega direct */
	c5,c5_1,            /* rho0         */
	c6,c6_1,            /* phi direct   */
	c7,c7_1,c7_2,       /* phi Dalitz   */
	c8,c8_1,c8_2,        /* Delta Dalitz */
	//                 c9,c9_1,                  /* phi K+,k- production */
	//                  c10,                 /*Pim production*/
	//                  c11,                 /* Proton production */
	//                  c12,c12_1            /* eta 2 photon decay */
    };
    //change  *cc[]if you add want to add new channels and modify param after outFile
    
    PReaction *r = new PReaction(cc,"pA",21,1,0,0,1);
    //PReaction *r=new PReaction(cc,"pA",6,1,0,0,1);
    r->Print();
    
    //r->setUserSelection(selectLeptons);          // this works for a loaded function
    //r->setUserSelection(&select);                  //calls filter function in PReaction.cc
    //r->setTrigCond(1);    // require at least 1 lepton per event
    
    //r->SetDecayAll(1.);   // decay all particles with tau < 1 ns
    r->SetHGeant(0);      // set to 1, if PLUTO is run from HGeant prompt
    r->loop(10000);   // do n events
    
    //data->Draw("M()","(ID() == 51 || ID()==52 || ID()==41) * W()");
    //data->Draw("M()","(ID()==41) * W()","same"); 
    
}

 pA_cocktail_35.C:1
 pA_cocktail_35.C:2
 pA_cocktail_35.C:3
 pA_cocktail_35.C:4
 pA_cocktail_35.C:5
 pA_cocktail_35.C:6
 pA_cocktail_35.C:7
 pA_cocktail_35.C:8
 pA_cocktail_35.C:9
 pA_cocktail_35.C:10
 pA_cocktail_35.C:11
 pA_cocktail_35.C:12
 pA_cocktail_35.C:13
 pA_cocktail_35.C:14
 pA_cocktail_35.C:15
 pA_cocktail_35.C:16
 pA_cocktail_35.C:17
 pA_cocktail_35.C:18
 pA_cocktail_35.C:19
 pA_cocktail_35.C:20
 pA_cocktail_35.C:21
 pA_cocktail_35.C:22
 pA_cocktail_35.C:23
 pA_cocktail_35.C:24
 pA_cocktail_35.C:25
 pA_cocktail_35.C:26
 pA_cocktail_35.C:27
 pA_cocktail_35.C:28
 pA_cocktail_35.C:29
 pA_cocktail_35.C:30
 pA_cocktail_35.C:31
 pA_cocktail_35.C:32
 pA_cocktail_35.C:33
 pA_cocktail_35.C:34
 pA_cocktail_35.C:35
 pA_cocktail_35.C:36
 pA_cocktail_35.C:37
 pA_cocktail_35.C:38
 pA_cocktail_35.C:39
 pA_cocktail_35.C:40
 pA_cocktail_35.C:41
 pA_cocktail_35.C:42
 pA_cocktail_35.C:43
 pA_cocktail_35.C:44
 pA_cocktail_35.C:45
 pA_cocktail_35.C:46
 pA_cocktail_35.C:47
 pA_cocktail_35.C:48
 pA_cocktail_35.C:49
 pA_cocktail_35.C:50
 pA_cocktail_35.C:51
 pA_cocktail_35.C:52
 pA_cocktail_35.C:53
 pA_cocktail_35.C:54
 pA_cocktail_35.C:55
 pA_cocktail_35.C:56
 pA_cocktail_35.C:57
 pA_cocktail_35.C:58
 pA_cocktail_35.C:59
 pA_cocktail_35.C:60
 pA_cocktail_35.C:61
 pA_cocktail_35.C:62
 pA_cocktail_35.C:63
 pA_cocktail_35.C:64
 pA_cocktail_35.C:65
 pA_cocktail_35.C:66
 pA_cocktail_35.C:67
 pA_cocktail_35.C:68
 pA_cocktail_35.C:69
 pA_cocktail_35.C:70
 pA_cocktail_35.C:71
 pA_cocktail_35.C:72
 pA_cocktail_35.C:73
 pA_cocktail_35.C:74
 pA_cocktail_35.C:75
 pA_cocktail_35.C:76
 pA_cocktail_35.C:77
 pA_cocktail_35.C:78
 pA_cocktail_35.C:79
 pA_cocktail_35.C:80
 pA_cocktail_35.C:81
 pA_cocktail_35.C:82
 pA_cocktail_35.C:83
 pA_cocktail_35.C:84
 pA_cocktail_35.C:85
 pA_cocktail_35.C:86
 pA_cocktail_35.C:87
 pA_cocktail_35.C:88
 pA_cocktail_35.C:89
 pA_cocktail_35.C:90
 pA_cocktail_35.C:91
 pA_cocktail_35.C:92
 pA_cocktail_35.C:93
 pA_cocktail_35.C:94
 pA_cocktail_35.C:95
 pA_cocktail_35.C:96
 pA_cocktail_35.C:97
 pA_cocktail_35.C:98
 pA_cocktail_35.C:99
 pA_cocktail_35.C:100
 pA_cocktail_35.C:101
 pA_cocktail_35.C:102
 pA_cocktail_35.C:103
 pA_cocktail_35.C:104
 pA_cocktail_35.C:105
 pA_cocktail_35.C:106
 pA_cocktail_35.C:107
 pA_cocktail_35.C:108
 pA_cocktail_35.C:109
 pA_cocktail_35.C:110
 pA_cocktail_35.C:111
 pA_cocktail_35.C:112
 pA_cocktail_35.C:113
 pA_cocktail_35.C:114
 pA_cocktail_35.C:115
 pA_cocktail_35.C:116
 pA_cocktail_35.C:117
 pA_cocktail_35.C:118
 pA_cocktail_35.C:119
 pA_cocktail_35.C:120
 pA_cocktail_35.C:121
 pA_cocktail_35.C:122
 pA_cocktail_35.C:123
 pA_cocktail_35.C:124
 pA_cocktail_35.C:125
 pA_cocktail_35.C:126
 pA_cocktail_35.C:127
 pA_cocktail_35.C:128
 pA_cocktail_35.C:129
 pA_cocktail_35.C:130
 pA_cocktail_35.C:131
 pA_cocktail_35.C:132
 pA_cocktail_35.C:133
 pA_cocktail_35.C:134
 pA_cocktail_35.C:135
 pA_cocktail_35.C:136
 pA_cocktail_35.C:137
 pA_cocktail_35.C:138
 pA_cocktail_35.C:139
 pA_cocktail_35.C:140
 pA_cocktail_35.C:141
 pA_cocktail_35.C:142
 pA_cocktail_35.C:143
 pA_cocktail_35.C:144
 pA_cocktail_35.C:145
 pA_cocktail_35.C:146
 pA_cocktail_35.C:147
 pA_cocktail_35.C:148
 pA_cocktail_35.C:149
 pA_cocktail_35.C:150
 pA_cocktail_35.C:151
 pA_cocktail_35.C:152
 pA_cocktail_35.C:153
 pA_cocktail_35.C:154
 pA_cocktail_35.C:155
 pA_cocktail_35.C:156
 pA_cocktail_35.C:157
 pA_cocktail_35.C:158
 pA_cocktail_35.C:159
 pA_cocktail_35.C:160
 pA_cocktail_35.C:161
 pA_cocktail_35.C:162
 pA_cocktail_35.C:163
 pA_cocktail_35.C:164
 pA_cocktail_35.C:165
 pA_cocktail_35.C:166
 pA_cocktail_35.C:167
 pA_cocktail_35.C:168
 pA_cocktail_35.C:169
 pA_cocktail_35.C:170
 pA_cocktail_35.C:171
 pA_cocktail_35.C:172
 pA_cocktail_35.C:173
 pA_cocktail_35.C:174
 pA_cocktail_35.C:175
 pA_cocktail_35.C:176
 pA_cocktail_35.C:177
 pA_cocktail_35.C:178
 pA_cocktail_35.C:179
 pA_cocktail_35.C:180
 pA_cocktail_35.C:181
 pA_cocktail_35.C:182
 pA_cocktail_35.C:183
 pA_cocktail_35.C:184
 pA_cocktail_35.C:185
 pA_cocktail_35.C:186
 pA_cocktail_35.C:187
 pA_cocktail_35.C:188
 pA_cocktail_35.C:189
 pA_cocktail_35.C:190
 pA_cocktail_35.C:191
 pA_cocktail_35.C:192
 pA_cocktail_35.C:193
 pA_cocktail_35.C:194
 pA_cocktail_35.C:195
 pA_cocktail_35.C:196
 pA_cocktail_35.C:197
 pA_cocktail_35.C:198
 pA_cocktail_35.C:199
 pA_cocktail_35.C:200
 pA_cocktail_35.C:201
 pA_cocktail_35.C:202
 pA_cocktail_35.C:203
 pA_cocktail_35.C:204
 pA_cocktail_35.C:205
 pA_cocktail_35.C:206
 pA_cocktail_35.C:207
 pA_cocktail_35.C:208
 pA_cocktail_35.C:209
 pA_cocktail_35.C:210
 pA_cocktail_35.C:211
 pA_cocktail_35.C:212
 pA_cocktail_35.C:213
 pA_cocktail_35.C:214
 pA_cocktail_35.C:215
 pA_cocktail_35.C:216
 pA_cocktail_35.C:217
 pA_cocktail_35.C:218
 pA_cocktail_35.C:219
 pA_cocktail_35.C:220
 pA_cocktail_35.C:221
 pA_cocktail_35.C:222
 pA_cocktail_35.C:223
 pA_cocktail_35.C:224
 pA_cocktail_35.C:225
 pA_cocktail_35.C:226
 pA_cocktail_35.C:227
 pA_cocktail_35.C:228
 pA_cocktail_35.C:229
 pA_cocktail_35.C:230
 pA_cocktail_35.C:231
 pA_cocktail_35.C:232
 pA_cocktail_35.C:233
 pA_cocktail_35.C:234
 pA_cocktail_35.C:235
 pA_cocktail_35.C:236
 pA_cocktail_35.C:237
 pA_cocktail_35.C:238
 pA_cocktail_35.C:239
 pA_cocktail_35.C:240
 pA_cocktail_35.C:241
 pA_cocktail_35.C:242
 pA_cocktail_35.C:243
 pA_cocktail_35.C:244
 pA_cocktail_35.C:245
 pA_cocktail_35.C:246
 pA_cocktail_35.C:247
 pA_cocktail_35.C:248
 pA_cocktail_35.C:249
 pA_cocktail_35.C:250
 pA_cocktail_35.C:251
 pA_cocktail_35.C:252
 pA_cocktail_35.C:253
 pA_cocktail_35.C:254
 pA_cocktail_35.C:255
 pA_cocktail_35.C:256
 pA_cocktail_35.C:257
 pA_cocktail_35.C:258
 pA_cocktail_35.C:259
 pA_cocktail_35.C:260
 pA_cocktail_35.C:261
 pA_cocktail_35.C:262
 pA_cocktail_35.C:263
 pA_cocktail_35.C:264
 pA_cocktail_35.C:265
 pA_cocktail_35.C:266
 pA_cocktail_35.C:267
 pA_cocktail_35.C:268
 pA_cocktail_35.C:269
 pA_cocktail_35.C:270
 pA_cocktail_35.C:271
 pA_cocktail_35.C:272
 pA_cocktail_35.C:273