ROOT logo
// Macro to run TPC performance task (locally, proof).
//
// By default 2 performance components are added to 
// AliPerformanceRes - resloution at DCA to prim. vertex
// AliPerformanceEff - efficiency for prim. tracks
//

/*
 
  //1. Run locally 
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");
  gSystem->Load("libTENDER");
  gSystem->Load("libCORRFW");
  gSystem->Load("libPWGPP");

  gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
  TChain* chain = CreateESDChain("esds.txt",10, 0);
  //TChain* chain = CreateESDChain("/u/jacek/alice/dNdPt/input/LHC10a8/esds_104867_MC_LHC10a8.txt",3, 0);
  chain->Lookup();

  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/RunPerformanceTaskResEffMC.C");
  RunPerformanceTaskResEffMC(chain, kTRUE, kFALSE, kFALSE);

  //2. Make final spectra and store them in the
  // output folder and generate control pictures

  aliroot -b
  TFile f("TPC.MC.Performance.root");

  AliPerformanceRes * compObjRes = (AliPerformanceRes*)TPCMC->FindObject("AliPerformanceRes");
  compObjRes->Analyse();
  compObjRes->GetAnalysisFolder()->ls("*");
  // create control pictures
  compObjRes->PrintHisto(kTRUE,"TPC.MC.PerformanceRes.Pict.ps");
  // store output QA histograms in file
  TFile fout("TPC.MC.PerformanceRes.Histo.root","recreate");
  compObjRes->GetAnalysisFolder()->Write();
  fout.Close();

  //
  f->cd();
  AliPerformanceEff * compObjEff = (AliPerformanceEff*)TPCMC->FindObject("AliPerformanceEff");
  compObjEff->Analyse();
  compObjEff->GetAnalysisFolder()->ls("*");
  // create control pictures
  compObjEff->PrintHisto(kTRUE,"TPC.MC.PerformanceEff.Pict.ps");
  // store output QA histograms in file
  TFile fout("TPC.MC.PerformanceEff.Histo.root","recreate");
  compObjEff->GetAnalysisFolder()->Write();
  fout.Close();

  f.Close();

*/

//_____________________________________________________________________________
void RunPerformanceTaskResEffMC(TChain *chain, Bool_t bUseMCInfo=kTRUE, Bool_t bUseESDfriend=kTRUE,  Bool_t bProof=kTRUE)
{
  if(!chain) 
  {
    AliDebug(AliLog::kError, "ERROR: No input chain available");
    return;
  }
  //
  // Swtich off all AliInfo (too much output!)
  //
  AliLog::SetGlobalLogLevel(AliLog::kError);

  //
  // Create analysis manager
  //
  AliAnalysisManager *mgr = new AliAnalysisManager;
  if(!mgr) { 
    Error("runTPCQA","AliAnalysisManager not set!");
    return;
  }

  //
  // Set ESD input handler
  //
  AliESDInputHandler* esdH = new AliESDInputHandler;
  if(!esdH) { 
    Error("runTPCQA","AliESDInputHandler not created!");
    return;
  }
  if(bUseESDfriend) esdH->SetActiveBranches("ESDfriend");
  mgr->SetInputEventHandler(esdH);

  //
  // Set MC input handler
  //
  if(bUseMCInfo) {
    AliMCEventHandler* mcH = new AliMCEventHandler;
    if(!esdH) { 
      Error("runTPCQA","AliMCEventHandler not created!");
      return;
    }
    mcH->SetReadTR(kTRUE);
    mgr->SetMCtruthEventHandler(mcH);
  }

  //
  // Create task
  //
  AliPerformanceTask *task = new AliPerformanceTask("Performance","TPC Performance");
  if (!task) {
    Error("AddTaskPerformanceTPC", "TPC performance task cannot be created!");
    return NULL;
  }
  task->SetUseMCInfo(bUseMCInfo);
  task->SetUseESDfriend(bUseESDfriend);

  //
  // Add task to analysis manager
  //
  mgr->AddTask(task);

  //
  // Create TPC-ESD track reconstruction cuts
  // MB tracks
  //
  AliRecInfoCuts *pRecInfoCutsTPC = new AliRecInfoCuts(); 
  if(pRecInfoCutsTPC) {
    pRecInfoCutsTPC->SetMaxDCAToVertexXY(3.0);
    pRecInfoCutsTPC->SetMaxDCAToVertexZ(30.0);
    //pRecInfoCutsTPC->SetMaxDCAToVertexZ(3.0);
    pRecInfoCutsTPC->SetRequireSigmaToVertex(kFALSE);
    pRecInfoCutsTPC->SetRequireTPCRefit(kFALSE);
    pRecInfoCutsTPC->SetAcceptKinkDaughters(kTRUE);
    pRecInfoCutsTPC->SetMinNClustersTPC(50);
    pRecInfoCutsTPC->SetMaxChi2PerClusterTPC(1000000.);
    pRecInfoCutsTPC->SetDCAToVertex2D(kFALSE);

    pRecInfoCutsTPC->SetHistogramsOn(kFALSE); 
  } 
  else {
    Error("AddTaskPerformanceTPC", "AliRecInfoCutsTPC cannot be created!");
    return NULL;
  }

  //
  // Create TPC-ESD track reconstruction cuts
  // MATCH tracks
  //
  AliRecInfoCuts *pRecInfoCutsMATCH = new AliRecInfoCuts(); 
  if(pRecInfoCutsMATCH) {
    pRecInfoCutsMATCH->SetMaxDCAToVertexXY(3.0);
    pRecInfoCutsMATCH->SetMaxDCAToVertexZ(3.0);
    pRecInfoCutsMATCH->SetRequireSigmaToVertex(kFALSE);
    pRecInfoCutsMATCH->SetRequireTPCRefit(kFALSE);
    pRecInfoCutsMATCH->SetAcceptKinkDaughters(kTRUE);
    pRecInfoCutsMATCH->SetMinNClustersTPC(50);
    pRecInfoCutsMATCH->SetMaxChi2PerClusterTPC(1000000.);
    pRecInfoCutsMATCH->SetDCAToVertex2D(kFALSE);
    pRecInfoCutsMATCH->SetTPCITSMatchingRadius(70); 
    pRecInfoCutsMATCH->SetTPCTRDMatchingRadius(260); 
    pRecInfoCutsMATCH->SetMinNClustersITS(3);

    pRecInfoCutsMATCH->SetHistogramsOn(kFALSE); 
  } 
  else {
    Error("AddTaskPerformanceTPC", "AliRecInfoCutsTPC cannot be created!");
    return NULL;
  }

  //
  // Create TPC-ESD track reconstruction cuts
  // standard cuts
  AliRecInfoCuts *pRecInfoCuts = new AliRecInfoCuts(); 
  if(pRecInfoCuts) {
    pRecInfoCuts->SetMaxDCAToVertexXY(3.0);
    pRecInfoCuts->SetMaxDCAToVertexZ(3.0);
    pRecInfoCuts->SetMinNClustersTPC(50);
    pRecInfoCuts->SetMinNClustersITS(2);
    pRecInfoCuts->SetHistogramsOn(kFALSE); 
    pRecInfoCuts->SetTPCITSMatchingRadius(70); 
    pRecInfoCuts->SetTPCTRDMatchingRadius(260); 
  } 
  else {
    Error("AddTaskPerformanceTPC", "AliRecInfoCuts cannot be created!");
    return NULL;
  }
  //
  // Create TPC-MC track reconstruction cuts
  //
  AliMCInfoCuts  *pMCInfoCuts = new AliMCInfoCuts();
  if(pMCInfoCuts) {
    pMCInfoCuts->SetMinTrackLength(70);
  } 
  else {
    Error("AddTaskPerformanceTPC", "AliMCInfoCuts cannot be created!");
    return NULL;
  }

  //
  // Create performance objects for TPC and set cuts 
  //
  enum { kTPC = 0, kTPCITS, kConstrained, kTPCInner, kTPCOuter, kTPCSec };

  //
  // Resolution
  //
  AliPerformanceRes *pCompRes0 = new AliPerformanceRes("AliPerformanceRes","AliPerformanceRes",kTPC,kFALSE); 
  if(!pCompRes0) {
    Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceRes");
  }
  pCompRes0->SetAliRecInfoCuts(pRecInfoCuts);
  pCompRes0->SetAliMCInfoCuts(pMCInfoCuts);

  AliPerformanceRes *pCompRes3 = new AliPerformanceRes("AliPerformanceResTPCInner","AliPerformanceResTPCInner",kTPCInner,kFALSE); 
  if(!pCompRes3) {
    Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceResTPCInner");
  }
  pCompRes3->SetAliRecInfoCuts(pRecInfoCuts);
  pCompRes3->SetAliMCInfoCuts(pMCInfoCuts);

  AliPerformanceRes *pCompRes4 = new AliPerformanceRes("AliPerformanceResTPCOuter","AliPerformanceResTPCOuter",kTPCOuter,kFALSE); 
  if(!pCompRes4) {
    Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceResTPCOuter");
  }
  pCompRes4->SetAliRecInfoCuts(pRecInfoCuts);
  pCompRes4->SetAliMCInfoCuts(pMCInfoCuts);
  //
  // Efficiency
  //
  AliPerformanceEff *pCompEff0 = new AliPerformanceEff("AliPerformanceEff","AliPerformanceEff",kTPC,kFALSE); 
  if(!pCompEff0) {
    Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceEff");
  }
  pCompEff0->SetAliRecInfoCuts(pRecInfoCuts);
  pCompEff0->SetAliMCInfoCuts(pMCInfoCuts);
  //
  // dEdx
  //
  AliPerformanceDEdx *pCompDEdx3 = new AliPerformanceDEdx("AliPerformanceDEdxTPCInner","AliPerformanceDEdxTPCInner",kTPCInner,kFALSE); 
  if(!pCompDEdx3) {
    Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceDEdxTPCInner");
  }
  pCompDEdx3->SetAliRecInfoCuts(pRecInfoCuts);
  pCompDEdx3->SetAliMCInfoCuts(pMCInfoCuts);
  //
  // DCA
  //
  AliPerformanceDCA *pCompDCA0 = new AliPerformanceDCA("AliPerformanceDCA","AliPerformanceDCA",kTPC,kFALSE); 
  if(!pCompDCA0) {
    Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceDCA");
  }
  pCompDCA0->SetAliRecInfoCuts(pRecInfoCuts);
  pCompDCA0->SetAliMCInfoCuts(pMCInfoCuts);
  //
  // TPC performance
  //
  AliPerformanceTPC *pCompTPC0 = new AliPerformanceTPC("AliPerformanceTPC","AliPerformanceTPC",kTPC,kFALSE); 
  if(!pCompTPC0) {
    Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceTPC");
  }
  pCompTPC0->SetAliRecInfoCuts(pRecInfoCutsTPC);
  pCompTPC0->SetAliMCInfoCuts(pMCInfoCuts);
  //
  // TPC+ITS matching performance
  //
  AliPerformanceMatch *pCompMatch0 = new AliPerformanceMatch("AliPerformanceMatchTPCITS","AliPerformanceMatchTPCITS",0,kFALSE); 
  if(!pCompMatch0) {
    Error("AddTaskPerformanceMatch", "Cannot create AliPerformanceMatchTPCITS");
  }
  pCompMatch0->SetAliRecInfoCuts(pRecInfoCutsMATCH);
  pCompMatch0->SetAliMCInfoCuts(pMCInfoCuts);
  //
  // TPC+TRD matching performance
  //
  AliPerformanceMatch *pCompMatch1 = new AliPerformanceMatch("AliPerformanceMatchTPCTRD","AliPerformanceMatchTPCTRD",1,kFALSE); 
  if(!pCompMatch1) {
    Error("AddTaskPerformanceMatch", "Cannot create AliPerformanceMatchTPCTRD");
  }
  pCompMatch1->SetAliRecInfoCuts(pRecInfoCutsMATCH);
  pCompMatch1->SetAliMCInfoCuts(pMCInfoCuts);
 
  AliPerformanceMatch *pCompMatch2 = new AliPerformanceMatch("AliPerformanceMatchTPCEFF","AliPerformanceMatchTPCEFF",2,kFALSE); 
  if(!pCompMatch2) {
    Error("AddTaskPerformanceMatch", "Cannot create AliPerformanceMatchTPCEFF");
  }
  pCompMatch2->SetAliRecInfoCuts(pRecInfoCutsMATCH);
  pCompMatch2->SetAliMCInfoCuts(pMCInfoCuts);

  //
  // Add components to the performance task
  //
  //task->AddPerformanceObject( pCompDEdx3 );
  //task->AddPerformanceObject( pCompDCA0 );
  //task->AddPerformanceObject( pCompTPC0 );
  //task->AddPerformanceObject( pCompMatch0 );
  //task->AddPerformanceObject( pCompMatch1 );
  //task->AddPerformanceObject( pCompMatch2 );

  //
  if(bUseMCInfo) { 
     task->AddPerformanceObject( pCompRes0 );
     //task->AddPerformanceObject( pCompRes3 );
     //task->AddPerformanceObject( pCompRes4 );
     task->AddPerformanceObject( pCompEff0 );
  }

  //
  if(!bUseMCInfo) {
    pCompDEdx3->SetTriggerClass(triggerClass);
    pCompDCA0->SetTriggerClass(triggerClass);
    pCompTPC0->SetTriggerClass(triggerClass);
    pCompMatch0->SetTriggerClass(triggerClass);
    pCompMatch1->SetTriggerClass(triggerClass);
    pCompMatch2->SetTriggerClass(triggerClass);
  }

  //
  // Create containers for input
  //
  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());

  //
  // Create containers for output
  //
  AliAnalysisDataContainer *coutput_tpc = mgr->CreateContainer("TPCMC", TList::Class(), AliAnalysisManager::kOutputContainer, Form("TPC.MC.%s.root", task->GetName()));
  mgr->ConnectOutput(task, 1, coutput_tpc);

  // Enable debug printouts
  mgr->SetDebugLevel(0);

  if (!mgr->InitAnalysis())
    return;

  mgr->PrintStatus();

  if(bProof) mgr->StartAnalysis("proof",chain);
  else mgr->StartAnalysis("local",chain);
}

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