ROOT logo
AliAnalysisTask* AddTaskQAHighPtDeDx(Bool_t AnalysisMC = kFALSE,
			                         Int_t typerun =1, // 0 for pp and 1 for Pb-Pb or pPb
			                         TString  type ="ESD",
			                         UInt_t kTriggerInt = AliVEvent::kINT7, //for pPb kINT7, for pp or PbPb kMB
			                         Float_t minCent = 0.,
                                     Float_t maxCent = 80.,
			                         char *centralityEstimator = "V0A",//for pPb V0A for PbPb V0M
			                         Bool_t ispileuprej = kFALSE
                                    )
{

  /////////////////////////////////////////
  // Few notes to set the wagon in a train
  // For pp collisions:
  //       Bool_t AnalysisMC = kFALSE,
  //       Int_t typerun =0,
  //       TString  type ="AOD",
  //       UInt_t kTriggerInt = AliVEvent::kMB,
  //       Float_t minCent = 0.,//This does not affect pp
  //       Float_t maxCent = 80.,//This does not affect pp
  //       char *centralityEstimator = "V0A",//for pPb V0A for PbPb V0M. This does not affect pp
  //       Bool_t ispileuprej = kFALSE
  // For PbPb collisions:
  //       Bool_t AnalysisMC = kFALSE,
  //       Int_t typerun =1,
  //       TString  type ="AOD",
  //       UInt_t kTriggerInt = AliVEvent::kMB,
  //       Float_t minCent = 0.,
  //       Float_t maxCent = 80.,
  //       char *centralityEstimator = "V0M",
  //       Bool_t ispileuprej = kFALSE
  /////////////////////////////////////////
    
  // Creates a pid task and adds it to the analysis manager
  
  // Get the pointer to the existing analysis manager via the static
  //access method
  //=========================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskHighPtDeDx", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // Check the analysis type using the event handlers connected to the
  // analysis manager The availability of MC handler can also be
  // checked here.
  // =========================================================================
  if (!mgr->GetInputEventHandler()) {
    Error("AddTaskHighPtDeDx", "This task requires an input event handler");
    return NULL;
  }  
  



  AliAnalysisFilter* trackFilterGolden = new AliAnalysisFilter("trackFilter");
  AliESDtrackCuts* esdTrackCutsGolden = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE,1);
  trackFilterGolden->AddCuts(esdTrackCutsGolden);
  
  AliAnalysisFilter* trackFilterTPC = new AliAnalysisFilter("trackFilterTPC");
  AliESDtrackCuts* esdTrackCutsTPC = 
    AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
  trackFilterTPC->AddCuts(esdTrackCutsTPC);
  


  
  AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx = new AliAnalysisTaskQAHighPtDeDx("taskHighPtDeDxpp");
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  taskHighPtDeDx->SetAnalysisType(type);
  taskHighPtDeDx->SetAnalysisMC(AnalysisMC);
  if(typerun==1){
    taskHighPtDeDx->SetAnalysisPbPb(kTRUE);
    taskHighPtDeDx->SetMinCent(minCent);
    taskHighPtDeDx->SetMaxCent(maxCent);
    taskHighPtDeDx->SetCentralityEstimator(centralityEstimator);
  }
  else
    taskHighPtDeDx->SetAnalysisPbPb(kFALSE);
  taskHighPtDeDx->SetDebugLevel(0);
  taskHighPtDeDx->SetEtaCut(0.8);
  taskHighPtDeDx->SetVtxCut(10.0);
  taskHighPtDeDx->SetTrigger(kTriggerInt);
  taskHighPtDeDx->SetPileUpRej(ispileuprej);
  //Set Filtesr
  taskHighPtDeDx->SetTrackFilterGolden(trackFilterGolden);
  taskHighPtDeDx->SetTrackFilterTPC(trackFilterTPC);
  taskHighPtDeDx->SetStoreMcIn(AnalysisMC);     // def: kFALSE
  
  mgr->AddTask(taskHighPtDeDx);
  
  // Create ONLY the output containers for the data produced by the
  // task.  Get and connect other common input/output containers via
  // the manager as below
  //=======================================================================
  TString outputFileName = AliAnalysisManager::GetCommonFileName();
    
  AliAnalysisDataContainer *cout_histdedx;
  cout_histdedx=0;
  cout_histdedx = mgr->CreateContainer("outputdedx", TList::Class(), AliAnalysisManager::kOutputContainer, outputFileName);
  mgr->ConnectInput (taskHighPtDeDx, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskHighPtDeDx, 1, cout_histdedx);
  
  // Return task pointer at the end
  return taskHighPtDeDx;
   
  
  
}
 AddTaskQAHighPtDeDx.C:1
 AddTaskQAHighPtDeDx.C:2
 AddTaskQAHighPtDeDx.C:3
 AddTaskQAHighPtDeDx.C:4
 AddTaskQAHighPtDeDx.C:5
 AddTaskQAHighPtDeDx.C:6
 AddTaskQAHighPtDeDx.C:7
 AddTaskQAHighPtDeDx.C:8
 AddTaskQAHighPtDeDx.C:9
 AddTaskQAHighPtDeDx.C:10
 AddTaskQAHighPtDeDx.C:11
 AddTaskQAHighPtDeDx.C:12
 AddTaskQAHighPtDeDx.C:13
 AddTaskQAHighPtDeDx.C:14
 AddTaskQAHighPtDeDx.C:15
 AddTaskQAHighPtDeDx.C:16
 AddTaskQAHighPtDeDx.C:17
 AddTaskQAHighPtDeDx.C:18
 AddTaskQAHighPtDeDx.C:19
 AddTaskQAHighPtDeDx.C:20
 AddTaskQAHighPtDeDx.C:21
 AddTaskQAHighPtDeDx.C:22
 AddTaskQAHighPtDeDx.C:23
 AddTaskQAHighPtDeDx.C:24
 AddTaskQAHighPtDeDx.C:25
 AddTaskQAHighPtDeDx.C:26
 AddTaskQAHighPtDeDx.C:27
 AddTaskQAHighPtDeDx.C:28
 AddTaskQAHighPtDeDx.C:29
 AddTaskQAHighPtDeDx.C:30
 AddTaskQAHighPtDeDx.C:31
 AddTaskQAHighPtDeDx.C:32
 AddTaskQAHighPtDeDx.C:33
 AddTaskQAHighPtDeDx.C:34
 AddTaskQAHighPtDeDx.C:35
 AddTaskQAHighPtDeDx.C:36
 AddTaskQAHighPtDeDx.C:37
 AddTaskQAHighPtDeDx.C:38
 AddTaskQAHighPtDeDx.C:39
 AddTaskQAHighPtDeDx.C:40
 AddTaskQAHighPtDeDx.C:41
 AddTaskQAHighPtDeDx.C:42
 AddTaskQAHighPtDeDx.C:43
 AddTaskQAHighPtDeDx.C:44
 AddTaskQAHighPtDeDx.C:45
 AddTaskQAHighPtDeDx.C:46
 AddTaskQAHighPtDeDx.C:47
 AddTaskQAHighPtDeDx.C:48
 AddTaskQAHighPtDeDx.C:49
 AddTaskQAHighPtDeDx.C:50
 AddTaskQAHighPtDeDx.C:51
 AddTaskQAHighPtDeDx.C:52
 AddTaskQAHighPtDeDx.C:53
 AddTaskQAHighPtDeDx.C:54
 AddTaskQAHighPtDeDx.C:55
 AddTaskQAHighPtDeDx.C:56
 AddTaskQAHighPtDeDx.C:57
 AddTaskQAHighPtDeDx.C:58
 AddTaskQAHighPtDeDx.C:59
 AddTaskQAHighPtDeDx.C:60
 AddTaskQAHighPtDeDx.C:61
 AddTaskQAHighPtDeDx.C:62
 AddTaskQAHighPtDeDx.C:63
 AddTaskQAHighPtDeDx.C:64
 AddTaskQAHighPtDeDx.C:65
 AddTaskQAHighPtDeDx.C:66
 AddTaskQAHighPtDeDx.C:67
 AddTaskQAHighPtDeDx.C:68
 AddTaskQAHighPtDeDx.C:69
 AddTaskQAHighPtDeDx.C:70
 AddTaskQAHighPtDeDx.C:71
 AddTaskQAHighPtDeDx.C:72
 AddTaskQAHighPtDeDx.C:73
 AddTaskQAHighPtDeDx.C:74
 AddTaskQAHighPtDeDx.C:75
 AddTaskQAHighPtDeDx.C:76
 AddTaskQAHighPtDeDx.C:77
 AddTaskQAHighPtDeDx.C:78
 AddTaskQAHighPtDeDx.C:79
 AddTaskQAHighPtDeDx.C:80
 AddTaskQAHighPtDeDx.C:81
 AddTaskQAHighPtDeDx.C:82
 AddTaskQAHighPtDeDx.C:83
 AddTaskQAHighPtDeDx.C:84
 AddTaskQAHighPtDeDx.C:85
 AddTaskQAHighPtDeDx.C:86
 AddTaskQAHighPtDeDx.C:87
 AddTaskQAHighPtDeDx.C:88
 AddTaskQAHighPtDeDx.C:89
 AddTaskQAHighPtDeDx.C:90
 AddTaskQAHighPtDeDx.C:91
 AddTaskQAHighPtDeDx.C:92
 AddTaskQAHighPtDeDx.C:93
 AddTaskQAHighPtDeDx.C:94
 AddTaskQAHighPtDeDx.C:95
 AddTaskQAHighPtDeDx.C:96
 AddTaskQAHighPtDeDx.C:97
 AddTaskQAHighPtDeDx.C:98
 AddTaskQAHighPtDeDx.C:99
 AddTaskQAHighPtDeDx.C:100
 AddTaskQAHighPtDeDx.C:101
 AddTaskQAHighPtDeDx.C:102
 AddTaskQAHighPtDeDx.C:103
 AddTaskQAHighPtDeDx.C:104
 AddTaskQAHighPtDeDx.C:105
 AddTaskQAHighPtDeDx.C:106
 AddTaskQAHighPtDeDx.C:107
 AddTaskQAHighPtDeDx.C:108
 AddTaskQAHighPtDeDx.C:109
 AddTaskQAHighPtDeDx.C:110
 AddTaskQAHighPtDeDx.C:111