ROOT logo
AliAnalysisTaskHFEQA* ConfigHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem = 2, Int_t icent = 2,Bool_t tpconlydo = kTRUE,Bool_t trdonlydo = kTRUE,Bool_t toftpcdo = kTRUE,Bool_t tpctrddo = kTRUE,Bool_t tpcemcaldo = kTRUE){
  
  //***************************************//
  //        Setting up the HFE cuts        //
  //***************************************//

  AliHFEcuts *hfecuts = new AliHFEcuts("HFEcuts","HFE cuts");
  hfecuts->CreateStandardCuts();
  hfecuts->SetMinNClustersTPC(100);
  hfecuts->SetMinNClustersTPCPID(80);
  hfecuts->SetMinNClustersITS(3);
  hfecuts->SetMinRatioTPCclusters(0.6);
  hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
  hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny);
  hfecuts->SetCheckITSLayerStatus(kFALSE);
  hfecuts->SetEtaRange(-0.8,0.8);
  hfecuts->SetRejectKinkDaughters();
  hfecuts->SetAcceptKinkMothers();
  if(isAOD) hfecuts->SetAODFilterBit(4);
  
  hfecuts->SetMaxImpactParam(1.,2.);
  hfecuts->SetUseMixedVertex(kTRUE);
  hfecuts->SetVertexRange(10.);
  hfecuts->SetPtRange(0.1,100.);
  // New pPb cuts (February 2013)
  hfecuts->SetUseCorrelationVertex();
  hfecuts->SetSPDVtxResolutionCut();
  //hfecuts->SetpApileupCut();

  //***************************************//
  //        Setting up the task            //
  //***************************************//

  AliAnalysisTaskHFEQA *task = new AliAnalysisTaskHFEQA("taskHFEQA");
  printf("task %p\n", task);
  task->SetHFECuts(hfecuts);
  
  // Collision system
  if (icollisionsystem == 2) task->SetPbPbAnalysis();
  else if (icollisionsystem == 1) task->SetpPbAnalysis();
  else if (icollisionsystem == 0) task->SetppAnalysis();


  // Determine the centrality estimator
  task->SetCentralityEstimator("V0A");
  if (icent == 2) task->SetCentralityEstimator("V0M");
  else if (icent == 3) task->SetCentralityEstimator("CL1");
  else if (icent == 4) task->SetCentralityEstimator("ZNA");

  
  //***************************************//
  //          Configure the PID            //
  //***************************************//

  if(tpconlydo) {
    task->SetDoTPConly(kTRUE);
  }
  if(trdonlydo) {
    task->SetDoTRDonly(kTRUE);
    task->GetPIDQAManagerTRDonly()->SetHighResolutionHistos();
  }
  if(toftpcdo) {
    task->SetDoTOFTPC(kTRUE);
    task->GetPIDQAManagerTOFTPC()->SetHighResolutionHistos();
  }
  if(tpctrddo) {
    task->SetDoTPCTRD(kTRUE);
    task->GetPIDQAManagerTPCTRD()->SetHighResolutionHistos();
  }
  if(tpcemcaldo) {
    task->SetDoTPCEMCal(kTRUE);
    task->GetPIDQAManagerTPCEMCal()->SetHighResolutionHistos();
  }

  AliHFEpid *pidTPConly = task->GetPIDTPConly();
  if(useMC) pidTPConly->SetHasMCData(kTRUE);
  pidTPConly->AddDetector("TPC", 0);

  AliHFEpid *pidTOFTPC = task->GetPIDTOFTPC();
  if(useMC) pidTOFTPC->SetHasMCData(kTRUE);
  pidTOFTPC->AddDetector("TOF", 0);
  pidTOFTPC->AddDetector("TPC", 1);
  pidTOFTPC->ConfigureTOF(3.);

  AliHFEpid *pidTPCTRD = task->GetPIDTPCTRD();
  if(useMC) pidTPCTRD->SetHasMCData(kTRUE);
  pidTPCTRD->AddDetector("TPC", 0);
  pidTPCTRD->AddDetector("TRD", 1);

  AliHFEpid *pidTPCEMCal = task->GetPIDTPCEMCal();
  if(useMC) pidTPCEMCal->SetHasMCData(kTRUE);
  pidTPCEMCal->AddDetector("EMCAL", 1);
  pidTPCEMCal->AddDetector("TPC", 0);
  

  // TPC PID
  Double_t paramsTPCdEdxcutlowEMCal[12] ={-3.0, -3.0, -3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0};
  Double_t paramsTPCdEdxcutlow[12] ={0.0, 0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
  Double_t paramsTPCdEdxcuthigh[12] ={3.0, 3.0, 3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0};
  char *cutmodel;
  cutmodel="pol0";
  for(Int_t a=0;a<11;a++){
    Double_t tpcparamlowEMCal[1]={paramsTPCdEdxcutlowEMCal[a]};
    Double_t tpcparamlow[1]={paramsTPCdEdxcutlow[a]};
    Float_t tpcparamhigh=paramsTPCdEdxcuthigh[a];
    pidTPConly->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh);
    pidTOFTPC->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh);
    pidTPCTRD->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh);
    pidTPCEMCal->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlowEMCal,tpcparamhigh);
  }
  pidTPConly->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlow,paramsTPCdEdxcuthigh[0]); 
  pidTOFTPC->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlow,paramsTPCdEdxcuthigh[0]); 
  pidTPCTRD->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlow,paramsTPCdEdxcuthigh[0]); 
  pidTPCEMCal->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlowEMCal,paramsTPCdEdxcuthigh[0]); 

  // TRD
  AliHFEpidTRD *trdpid = pidTPCTRD->GetDetPID(AliHFEpid::kTRDpid);
  trdpid->SetTRD2DPID();
  trdpid->SetElectronEfficiency(0.80);   // efficiency
  trdpid->SetNTracklets(6);      // ntracklets threshold
  trdpid->SetCutNTracklets(6, kTRUE);

  // TRD only
  AliHFEpid *pidTRDonly = task->GetPIDTRDonly();
  if(useMC) pidTRDonly->SetHasMCData(kTRUE);
  pidTRDonly->AddDetector("TRD", 0);
 
  AliHFEpidTRD *trdonlypid = pidTRDonly->GetDetPID(AliHFEpid::kTRDpid);
  trdonlypid->SetTRD2DPID();
  trdonlypid->SetElectronEfficiency(0.80);   // efficiency
  trdonlypid->SetNTracklets(6);      // ntracklets threshold
  trdonlypid->SetCutNTracklets(6, kTRUE);

  // change E/p cuts
  AliHFEpidEMCAL *emcpid = pidTPCEMCal->AliHFEpid::GetDetPID(AliHFEpid::kEMCALpid);
  emcpid->SetEoPMax(1.3);
  emcpid->SetEoPMim(0.9);

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