ROOT logo
void runSimRec(Int_t simtype, Int_t SCtype, Int_t nevents, Int_t ntracks, Int_t rate=50, Int_t gas=0)
{
  //rate is in kHz
  // recType: 0 = LongT0
  //          1 = noLongT0 
  //          2 = LongT0, T0list
  //          3 = LongT0, Z0list

  Int_t recoType=simtype/10;
  recoType%=10;
  Int_t subRecoType=simtype/100;
  simtype%=10;
  
  //simulation part
  AliToyMCEventGeneratorSimple s;

  TString outputFile="toyMC";

  //for simtype also below
  switch (simtype%2) {
    case 0:
      outputFile.Append(Form("_fixed_%dkHz",rate));
      break;
    case 1:
      outputFile.Append(Form("_train_%dkHz",rate));
      break;
  }

  AliToyMCEventGeneratorSimple::EGasType gasType=AliToyMCEventGeneratorSimple::kNeCO2_9010;
  
  switch (gas) {
    case 0:
      gasType=AliToyMCEventGeneratorSimple::kNeCO2_9010;
      outputFile.Append("_NeCO2");
      break;
    case 1:
      gasType=AliToyMCEventGeneratorSimple::kNeCO2N2_90105;
      outputFile.Append("_NeCO2N2");
      break;
  }
  
  switch (SCtype) {
    case 0:
      s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps5, gasType);
      outputFile.Append("_eps05");
      break;
    case 1:
      s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps10, gasType);
      outputFile.Append("_eps10");
      break;
    case 2:
      s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps20, gasType);
      outputFile.Append("_eps20");
      break;
    case 3:
      s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps25, gasType);
      outputFile.Append("_eps25");
      break;
    case 4:
      s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps30, gasType);
      outputFile.Append("_eps30");
      break;
    case 5:
      s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps35, gasType);
      outputFile.Append("_eps35");
      break;
    case 6:
      s.SetSpaceCharge(AliToyMCEventGeneratorSimple::kEps40, gasType);
      outputFile.Append("_eps40");
      break;
  }

  outputFile.Append(Form("_%04dev_%04dtr",nevents,ntracks));
  outputFile.Append(".root");
  s.SetOutputFileName(outputFile.Data());

  //TODO: Add other types
  switch (simtype) {
    case 0:
      s.RunSimulation(nevents,ntracks,rate);
      break;
    case 1:
      s.RunSimulationBunchTrain(nevents,ntracks);
      break;
  }

  //reconstruction part
  AliToyMCReconstruction rec;
  rec.SetForceAlpha(kTRUE);
  // rec.SetUseMaterialBudget(kTRUE)
  if (recoType==0) {
    rec.SetFillClusterRes(kTRUE);
    rec.SetLongT0seed(kTRUE);
    //rec.SetUseT0list(kTRUE);
  } else if (recoType==1) {
    rec.SetFillClusterRes(kTRUE);
    rec.SetLongT0seed(kFALSE);
    //rec.SetUseT0list(kTRUE);
  } else if (recoType==2) {
    rec.SetFillClusterRes(kTRUE);
    rec.SetLongT0seed(kTRUE);
    rec.SetUseT0list(kTRUE);
  } else if (recoType==3) {
    rec.SetFillClusterRes(kTRUE);
    rec.SetLongT0seed(kTRUE);
    rec.SetUseZ0list(kTRUE);
  }

//  if (recoType==0){
  rec.SetRecoSettings(1,0,AliToyMCReconstruction::kNoCorrection);
  if (!subRecoType||subRecoType==1) rec.RunReco(outputFile.Data());

  rec.SetRecoSettings(1,1,AliToyMCReconstruction::kIdeal);
  if (!subRecoType||subRecoType==2) rec.RunReco(outputFile.Data());

  rec.SetRecoSettings(0,1,AliToyMCReconstruction::kIdeal);
  if (!subRecoType||subRecoType==3) rec.RunReco(outputFile.Data());

  rec.SetRecoSettings(0,1,AliToyMCReconstruction::kAverageEta);
  if (!subRecoType||subRecoType==4) rec.RunReco(outputFile.Data());

  rec.SetRecoSettings(0,1,AliToyMCReconstruction::kNoCorrection);
  if (!subRecoType||subRecoType==5) rec.RunReco(outputFile.Data());

  rec.SetRecoSettings(0,0,AliToyMCReconstruction::kNoCorrection);
  if (!subRecoType||subRecoType==6) rec.RunReco(outputFile.Data());
// }

//  if (recoType==1) {
//    rec.SetRecoSettings(0,1,AliToyMCReconstruction::kNoCorrection);
//    if (!subRecoType||subRecoType==1) rec.RunFullTracking(outputFile.Data());
//    
//    rec.SetRecoSettings(0,0,AliToyMCReconstruction::kNoCorrection);
//    if (!subRecoType||subRecoType==2) rec.RunFullTracking(outputFile.Data());
//  }
  
}
 runSimRec.C:1
 runSimRec.C:2
 runSimRec.C:3
 runSimRec.C:4
 runSimRec.C:5
 runSimRec.C:6
 runSimRec.C:7
 runSimRec.C:8
 runSimRec.C:9
 runSimRec.C:10
 runSimRec.C:11
 runSimRec.C:12
 runSimRec.C:13
 runSimRec.C:14
 runSimRec.C:15
 runSimRec.C:16
 runSimRec.C:17
 runSimRec.C:18
 runSimRec.C:19
 runSimRec.C:20
 runSimRec.C:21
 runSimRec.C:22
 runSimRec.C:23
 runSimRec.C:24
 runSimRec.C:25
 runSimRec.C:26
 runSimRec.C:27
 runSimRec.C:28
 runSimRec.C:29
 runSimRec.C:30
 runSimRec.C:31
 runSimRec.C:32
 runSimRec.C:33
 runSimRec.C:34
 runSimRec.C:35
 runSimRec.C:36
 runSimRec.C:37
 runSimRec.C:38
 runSimRec.C:39
 runSimRec.C:40
 runSimRec.C:41
 runSimRec.C:42
 runSimRec.C:43
 runSimRec.C:44
 runSimRec.C:45
 runSimRec.C:46
 runSimRec.C:47
 runSimRec.C:48
 runSimRec.C:49
 runSimRec.C:50
 runSimRec.C:51
 runSimRec.C:52
 runSimRec.C:53
 runSimRec.C:54
 runSimRec.C:55
 runSimRec.C:56
 runSimRec.C:57
 runSimRec.C:58
 runSimRec.C:59
 runSimRec.C:60
 runSimRec.C:61
 runSimRec.C:62
 runSimRec.C:63
 runSimRec.C:64
 runSimRec.C:65
 runSimRec.C:66
 runSimRec.C:67
 runSimRec.C:68
 runSimRec.C:69
 runSimRec.C:70
 runSimRec.C:71
 runSimRec.C:72
 runSimRec.C:73
 runSimRec.C:74
 runSimRec.C:75
 runSimRec.C:76
 runSimRec.C:77
 runSimRec.C:78
 runSimRec.C:79
 runSimRec.C:80
 runSimRec.C:81
 runSimRec.C:82
 runSimRec.C:83
 runSimRec.C:84
 runSimRec.C:85
 runSimRec.C:86
 runSimRec.C:87
 runSimRec.C:88
 runSimRec.C:89
 runSimRec.C:90
 runSimRec.C:91
 runSimRec.C:92
 runSimRec.C:93
 runSimRec.C:94
 runSimRec.C:95
 runSimRec.C:96
 runSimRec.C:97
 runSimRec.C:98
 runSimRec.C:99
 runSimRec.C:100
 runSimRec.C:101
 runSimRec.C:102
 runSimRec.C:103
 runSimRec.C:104
 runSimRec.C:105
 runSimRec.C:106
 runSimRec.C:107
 runSimRec.C:108
 runSimRec.C:109
 runSimRec.C:110
 runSimRec.C:111
 runSimRec.C:112
 runSimRec.C:113
 runSimRec.C:114
 runSimRec.C:115
 runSimRec.C:116
 runSimRec.C:117
 runSimRec.C:118
 runSimRec.C:119
 runSimRec.C:120
 runSimRec.C:121
 runSimRec.C:122
 runSimRec.C:123
 runSimRec.C:124
 runSimRec.C:125
 runSimRec.C:126
 runSimRec.C:127
 runSimRec.C:128
 runSimRec.C:129
 runSimRec.C:130
 runSimRec.C:131
 runSimRec.C:132
 runSimRec.C:133
 runSimRec.C:134
 runSimRec.C:135
 runSimRec.C:136
 runSimRec.C:137
 runSimRec.C:138