ROOT logo
/// $Id$
//
// AliRoot Configuration for gun vmctest
//
// Extracted from G3 specific Config.C in test/gun.
// by I. Hrivnacova, IPN Orsay

Float_t EtaToTheta(Float_t arg);

AliGenerator* genGunConfig()
{
  cout << "Running genGunConfig.C ... " << endl;

  //=======================================================================
  // Event generator
  //=======================================================================

  // The cocktail itself

  AliGenCocktail *gener = new AliGenCocktail();
  gener->SetPhiRange(0, 360);
  // Set pseudorapidity range from -8 to 8.
  Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
  Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
  gener->SetThetaRange(thmin,thmax);
  gener->SetOrigin(0, 0, 0);  //vertex position
  gener->SetSigma(0, 0, 0);   //Sigma in (X,Y,Z) (cm) on IP position


  // Particle guns for the barrel part (taken from RichConfig)

  AliGenFixed *pG1=new AliGenFixed(1);
  pG1->SetPart(kProton);
  pG1->SetMomentum(2.5);
  pG1->SetTheta(109.5-3);
  pG1->SetPhi(10);
  gener->AddGenerator(pG1,"g1",1);
  
  AliGenFixed *pG2=new AliGenFixed(1);
  pG2->SetPart(kPiPlus);
  pG2->SetMomentum(1.0);
  pG2->SetTheta( 90.0-3);
  pG2->SetPhi(10);
  gener->AddGenerator(pG2,"g2",1);

  AliGenFixed *pG3=new AliGenFixed(1);
  pG3->SetPart(kPiMinus);
  pG3->SetMomentum(1.5);
  pG3->SetTheta(109.5-3);
  pG3->SetPhi(30);
  gener->AddGenerator(pG3,"g3",1);
  
  AliGenFixed *pG4=new AliGenFixed(1);
  pG4->SetPart(kKPlus);
  pG4->SetMomentum(0.7);
  pG4->SetTheta( 90.0-3);
  pG4->SetPhi(30);
  gener->AddGenerator(pG4,"g4",1);
  
  AliGenFixed *pG5=new AliGenFixed(1);
  pG5->SetPart(kKMinus);
  pG5->SetMomentum(1.0);
  pG5->SetTheta( 70.0-3);
  pG5->SetPhi(30);
  gener->AddGenerator(pG5,"g5",1);
  
  AliGenFixed *pG6=new AliGenFixed(1);
  pG6->SetPart(kProtonBar);
  pG6->SetMomentum(2.5);
  pG6->SetTheta( 90.0-3);
  pG6->SetPhi(50);
  gener->AddGenerator(pG6,"g6",1);
  
  AliGenFixed *pG7=new AliGenFixed(1);
  pG7->SetPart(kPiMinus);
  pG7->SetMomentum(0.7);
  pG7->SetTheta( 70.0-3);
  pG7->SetPhi(50);
  gener->AddGenerator(pG7,"g7",1);

  // Electrons for TRD

  AliGenFixed *pG8=new AliGenFixed(1);
  pG8->SetPart(kElectron);
  pG8->SetMomentum(1.2);
  pG8->SetTheta( 95.0);
  pG8->SetPhi(190);
  gener->AddGenerator(pG8,"g8",1);

  AliGenFixed *pG9=new AliGenFixed(1);
  pG9->SetPart(kPositron);
  pG9->SetMomentum(1.2);
  pG9->SetTheta( 85.0);
  pG9->SetPhi(190);
  gener->AddGenerator(pG9,"g9",1);

  // PHOS

  AliGenBox *gphos = new AliGenBox(1);
  gphos->SetMomentumRange(10,11.);
  gphos->SetPhiRange(270.5,270.7);
  gphos->SetThetaRange(90.5,90.7);
  gphos->SetPart(kGamma);
  gener->AddGenerator(gphos,"GENBOX GAMMA for PHOS",1);

  // EMCAL

  AliGenBox *gemcal = new AliGenBox(1);
  gemcal->SetMomentumRange(10,11.);
  gemcal->SetPhiRange(90.5,199.5);
  gemcal->SetThetaRange(90.5,90.7);
  gemcal->SetPart(kGamma);
  gener->AddGenerator(gemcal,"GENBOX GAMMA for EMCAL",1);

  // MUON
  AliGenBox * gmuon1 = new AliGenBox(1);
  gmuon1->SetMomentumRange(20.,20.1);
  gmuon1->SetPhiRange(0., 360.);         
  gmuon1->SetThetaRange(171.000,178.001);
  gmuon1->SetPart(kMuonMinus);           // Muons
  gener->AddGenerator(gmuon1,"GENBOX MUON1",1);

  AliGenBox * gmuon2 = new AliGenBox(1);
  gmuon2->SetMomentumRange(20.,20.1);
  gmuon2->SetPhiRange(0., 360.);         
  gmuon2->SetThetaRange(171.000,178.001);
  gmuon2->SetPart(kMuonPlus);           // Muons
  gener->AddGenerator(gmuon2,"GENBOX MUON1",1);

  //TOF
  AliGenFixed *gtof=new AliGenFixed(1);
  gtof->SetPart(kProton);
  gtof->SetMomentum(2.5);
  gtof->SetTheta(95);
  gtof->SetPhi(340);
  gener->AddGenerator(gtof,"Proton for TOF",1);

  //FMD1
  AliGenFixed *gfmd1=new AliGenFixed(1);
  gfmd1->SetPart(kGamma);
  gfmd1->SetMomentum(25);
  gfmd1->SetTheta(1.8);
  gfmd1->SetPhi(10);
  gener->AddGenerator(gfmd1,"Gamma for FMD1",1);
  
  //FMD2i
  AliGenFixed *gfmd2i=new AliGenFixed(1);
  gfmd2i->SetPart(kPiPlus);
  gfmd2i->SetMomentum(1.5);
  gfmd2i->SetTheta(7.3);
  gfmd2i->SetPhi(20);
  gener->AddGenerator(gfmd2i,"Pi+ for FMD2i",1);
  
  //FMD2o
  AliGenFixed *gfmd2o=new AliGenFixed(1);
  gfmd2o->SetPart(kPiMinus);
  gfmd2o->SetMomentum(1.5);
  gfmd2o->SetTheta(16.1);
  gfmd2o->SetPhi(30);
  gener->AddGenerator(gfmd2o,"Pi- for FMD2o",1);
  
  //FMD3o
  AliGenFixed *gfmd3o=new AliGenFixed(1);
  gfmd3o->SetPart(kPiPlus);
  gfmd3o->SetMomentum(1.5);
  gfmd3o->SetTheta(163.9);
  gfmd3o->SetPhi(40);
  gener->AddGenerator(gfmd3o,"Pi+ for FMD3o",1);
  
  //FMD3i
  AliGenFixed *gfmd3i=new AliGenFixed(1);
  gfmd3i->SetPart(kPiMinus);
  gfmd3i->SetMomentum(1.5);
  gfmd3i->SetTheta(170.5);
  gfmd3i->SetPhi(50);
  gener->AddGenerator(gfmd3i,"Pi- for FMD3i",1);
  
  //VZERO C
  AliGenFixed *gv0c=new AliGenFixed(1);
  gv0c->SetPart(kPiPlus);
  gv0c->SetMomentum(1.5);
  gv0c->SetTheta(170);
  gv0c->SetPhi(50);
  gener->AddGenerator(gv0c,"Pi+ for V0C",1);
  
  //VZERO A
  AliGenFixed *gv0a=new AliGenFixed(1);
  gv0a->SetPart(kPiMinus);
  gv0a->SetMomentum(1.5);
  gv0a->SetTheta(1.5);
  gv0a->SetPhi(70);
  gener->AddGenerator(gv0a,"Pi- for V0A",1);


  //PMD
  AliGenFixed *gpmd=new AliGenFixed(1);
  gpmd->SetPart(kGamma);
  gpmd->SetMomentum(2);
  gpmd->SetTheta(12.6);
  gpmd->SetPhi(60);
  gener->AddGenerator(gpmd,"Gamma for PMD",1);

  //ZDC
  AliGenFixed *gzdc1=new AliGenFixed(1);
  gzdc1->SetPart(kProton);
  gzdc1->SetMomentum(700);
  gzdc1->SetTheta(0.6);
  gzdc1->SetPhi(60);
  gener->AddGenerator(gzdc1,"Proton for ZDC",1);

  AliGenFixed *gzdc2=new AliGenFixed(1);
  gzdc2->SetPart(kNeutron);
  gzdc2->SetMomentum(500);
  gzdc2->SetTheta(0.6);
  gzdc2->SetPhi(60);
  gener->AddGenerator(gzdc2,"Neutron for ZDC",1);

  //T0
  AliGenFixed *gt0=new AliGenFixed(1);
  gt0->SetPart(kPiPlus);
  gt0->SetMomentum(2);
  gt0->SetTheta(5.1);
  gt0->SetPhi(60);
  gener->AddGenerator(gt0,"Pi+ for T0",1);

  AliGenFixed *gt01=new AliGenFixed(1);
  gt01->SetPart(kPiMinus);
  gt01->SetMomentum(2);
  gt01->SetTheta(5.1);
  gt01->SetPhi(60);
  gener->AddGenerator(gt01,"Pi- for T0",1);


  //ACORDE
  AliGenFixed *gacorde=new AliGenFixed(1);
  gacorde->SetPart(kMuonPlus);
  gacorde->SetMomentum(20);
  gacorde->SetTheta(90.);
  gacorde->SetPhi(90);
  gener->AddGenerator(gacorde,"Muon+ for ACORDE",1);

  AliGenFixed *gacorde1=new AliGenFixed(1);
  gacorde1->SetPart(kMuonMinus);
  gacorde1->SetMomentum(20);
  gacorde1->SetTheta(90.);
  gacorde1->SetPhi(90);
  gener->AddGenerator(gacorde1,"Muon- for ACORDE",1);

  gener->Init();
  
  return gener;
  
  cout << "Running genGunConfig.C finished ... " << endl;
}

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