ROOT logo
AliAnalysisTaskHFE* ConfigHFECalSys_PbPb(Bool_t useMC, int TPCclust, int Nits, int ITSstat, double nSigMim, double Mimeop, double Maxeop, int PIDorder){
  //
  // HFE standard task configuration
  //

  cout << "==== Summary of cuts  ===== " << endl;
  cout << "TPC ; " << TPCclust << endl;
  cout << "ITS ; " << Nits << endl;
  cout << "PID ; " << nSigMim << " ; " << Mimeop << " ; " << Maxeop << endl;

  AliHFEcuts *hfecuts = new AliHFEcuts("hfeCuts","HFE Standard Cuts for EMCal");
  hfecuts->CreateStandardCuts();
  //hfecuts->SetMinNClustersTPC(120);
  hfecuts->SetMinNClustersTPC(TPCclust);
  hfecuts->SetMinRatioTPCclusters(0.6);
  hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);

  //hfecuts->SetMinNClustersITS(3);
  hfecuts->SetMinNClustersITS(Nits);
  hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny);
  if(ITSstat==1)hfecuts->SetCutITSpixel(AliHFEextraCuts::kFirst);
  hfecuts->SetCheckITSLayerStatus(kFALSE);

  //hfecuts->UnsetVertexRequirement();
  hfecuts->SetMaxImpactParam(3.,3.);
  hfecuts->SetPtRange(2.0,60.0);

  hfecuts->SetVertexRange(10.);
  //hfecuts->SetMaxChi2perClusterITS(36);
  //hfecuts->SetSigmaToVertex(10);
  //hfecuts->SetTOFPIDStep(kTRUE);
  //hfecuts->SetTOFMISMATCHStep(kTRUE);
  //hfecuts->SetTPCPIDCleanUpStep(kTRUE);
  hfecuts->SetQAOn();
  //hfecuts->SetMinNTrackletsTRD(5);

  AliAnalysisTaskHFE *task = new AliAnalysisTaskHFE("HFEanalysisStandardEMCal");
  task->SetHFECuts(hfecuts);
  task->SetPbPbAnalysis(kTRUE);
  //task->SetRemovePileUp(kTRUE);
  task->GetPIDQAManager()->SetHighResolutionHistos();

  // Define Variables
  AliHFEvarManager *vm = task->GetVarManager();
  //vm->AddVariable("pt");
  //vm->AddVariable("eta");
  
  const Double_t ptbinning[50] = {1., 1.1, 1.2, 1.3, 1.4, 
                                  1.5, 1.75, 2., 2.25, 2.5, 
                                  2.75, 3., 3.5, 4., 4.5, 
                                  5., 5.5, 6., 7., 8., 
                                  9., 10., 11., 12., 13., 
                                  14., 15., 16., 17., 18.,
                                  20., 22., 24., 26., 28.,
                                  30., 32., 34., 36., 38.,
				  40., 45., 50., 55., 60.,
			          65., 70., 80., 90., 100}; 

  const Double_t etabinning[17] = {-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8}; 

  vm->AddVariable("pt", 49, ptbinning);
  vm->AddVariable("eta", 16, etabinning);
  vm->AddVariable("phi");
  vm->AddVariable("charge");
  vm->AddVariable("source");
  vm->AddVariable("centrality");
  /*
  if(!useMC){

      for(Int_t a=0;a<12;a++)
      {
	  TF1 *hBackground = new TF1("hadronicBackgroundFunction","TMath::Exp([0]/x + [1])", 0., 20.);
	  hBackground->SetParameter(0, -43.87);
	  hBackground->SetParameter(1, 2.85);
	  task->SetBackGroundFactorsFunction(hBackground,a);
      }


  }
  */
  // Define PID
  AliHFEpid *pid = task->GetPID();
  if(useMC) pid->SetHasMCData(kTRUE);

  if(PIDorder == 0)
     {
      pid->AddDetector("EMCAL", 1);
      pid->AddDetector("TPC", 0);
     }
  else if
    {
     pid->AddDetector("EMCAL", 0);
     pid->AddDetector("TPC", 1);
   }

//  pid->ConfigureTPCrejection();

  if(!useMC){

      Double_t params_centr_0_5[1];
      Double_t params_centr_5_10[1];
      Double_t params_centr_10_20[1];
      Double_t params_centr_20_30[1];
      Double_t params_centr_per[1];
      //params_centr_0_5[0]=0.16;  // cut tuned for 0-10%
      //params_centr_5_10[0]=0.16; // cut tuned for 0-10%
      //params_centr_10_20[0]=0.29;
      //params_centr_20_30[0]=0.38;
      //params_centr_per[0]=0.44;
      /*
      params_centr_0_5[0]=-1.5;  // cut tuned for 0-10%
      params_centr_5_10[0]=-1.5; // cut tuned for 0-10%
      params_centr_10_20[0]=-1.5;
      params_centr_20_30[0]=-1.5;
      params_centr_per[0]=-1.5;
      */
      params_centr_0_5[0] = nSigMim;  // cut tuned for 0-10%
      params_centr_5_10[0] = nSigMim; // cut tuned for 0-10%
      params_centr_10_20[0] = nSigMim;
      params_centr_20_30[0] = nSigMim;
      params_centr_per[0] = nSigMim;


      char *cutmodel;
      cutmodel="pol0";


      for(Int_t a=0;a<11;a++)
      {
	  if(a>3)  pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_per,3.0);
	  if(a==0) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_0_5,3.0);    //  0-5%
	  if(a==1) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_5_10,3.0);    //  5-10%
	  if(a==2) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_10_20,3.0);    //  10-20%
	  if(a==3) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_20_30,3.0);    //  20-30%
      }


  }


  // V0 tagged tracks
  AliHFEcuts *v0trackCuts = new AliHFEcuts("V0trackCuts", "Track Cuts for tagged track Analysis");
  v0trackCuts->CreateStandardCuts();
  //v0trackCuts->SetMinNClustersTPC(120);
  v0trackCuts->SetMinNClustersTPC(TPCclust);
  v0trackCuts->SetMinRatioTPCclusters(0.6);
  v0trackCuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
  v0trackCuts->SetMinNClustersITS(1);
  v0trackCuts->SetCutITSpixel(AliHFEextraCuts::kAny);
  v0trackCuts->SetCheckITSLayerStatus(kFALSE);
  v0trackCuts->UnsetVertexRequirement();
  //v0trackCuts->SetMaxChi2perClusterITS(36);
  //hfecuts->SetSigmaToVertex(10);
  v0trackCuts->SetTOFPIDStep(kTRUE);
//  v0trackCuts->SetTOFMISMATCHStep(kTRUE);
  //v0trackCuts->SetTPCPIDCleanUpStep(kTRUE);
  v0trackCuts->SetQAOn();
  
  task->SwitchOnPlugin(AliAnalysisTaskHFE::kTaggedTrackAnalysis);
  task->SetTaggedTrackCuts(v0trackCuts);
  task->SetCleanTaggedTrack(kFALSE);
  
  // change E/p cuts
  AliHFEpidEMCAL *emcpid = pid->AliHFEpid::GetDetPID(AliHFEpid::kEMCALpid);
  emcpid->SetEoPMax(Maxeop);
  emcpid->SetEoPMim(Mimeop);

  // QA
  task->SetQAOn(AliAnalysisTaskHFE::kPIDqa);
//  task->SetFillSignalOnly(kFALSE);    // for DE pluging for MC
  task->SetQAOn(AliAnalysisTaskHFE::kMCqa);
  //task->SwitchOnPlugin(AliAnalysisTaskHFE::kIsElecBackGround);
  //task->SwitchOnPlugin(AliAnalysisTaskHFE::kSecVtx);
  task->SwitchOnPlugin(AliAnalysisTaskHFE::kDEstep);



  printf("*************************************\n");
  printf("Configuring standard Task:\n");
  task->Print();
  pid->PrintStatus();
  printf("*************************************\n"); 
  return task;
}
 ConfigHFECalSys_PbPb.C:1
 ConfigHFECalSys_PbPb.C:2
 ConfigHFECalSys_PbPb.C:3
 ConfigHFECalSys_PbPb.C:4
 ConfigHFECalSys_PbPb.C:5
 ConfigHFECalSys_PbPb.C:6
 ConfigHFECalSys_PbPb.C:7
 ConfigHFECalSys_PbPb.C:8
 ConfigHFECalSys_PbPb.C:9
 ConfigHFECalSys_PbPb.C:10
 ConfigHFECalSys_PbPb.C:11
 ConfigHFECalSys_PbPb.C:12
 ConfigHFECalSys_PbPb.C:13
 ConfigHFECalSys_PbPb.C:14
 ConfigHFECalSys_PbPb.C:15
 ConfigHFECalSys_PbPb.C:16
 ConfigHFECalSys_PbPb.C:17
 ConfigHFECalSys_PbPb.C:18
 ConfigHFECalSys_PbPb.C:19
 ConfigHFECalSys_PbPb.C:20
 ConfigHFECalSys_PbPb.C:21
 ConfigHFECalSys_PbPb.C:22
 ConfigHFECalSys_PbPb.C:23
 ConfigHFECalSys_PbPb.C:24
 ConfigHFECalSys_PbPb.C:25
 ConfigHFECalSys_PbPb.C:26
 ConfigHFECalSys_PbPb.C:27
 ConfigHFECalSys_PbPb.C:28
 ConfigHFECalSys_PbPb.C:29
 ConfigHFECalSys_PbPb.C:30
 ConfigHFECalSys_PbPb.C:31
 ConfigHFECalSys_PbPb.C:32
 ConfigHFECalSys_PbPb.C:33
 ConfigHFECalSys_PbPb.C:34
 ConfigHFECalSys_PbPb.C:35
 ConfigHFECalSys_PbPb.C:36
 ConfigHFECalSys_PbPb.C:37
 ConfigHFECalSys_PbPb.C:38
 ConfigHFECalSys_PbPb.C:39
 ConfigHFECalSys_PbPb.C:40
 ConfigHFECalSys_PbPb.C:41
 ConfigHFECalSys_PbPb.C:42
 ConfigHFECalSys_PbPb.C:43
 ConfigHFECalSys_PbPb.C:44
 ConfigHFECalSys_PbPb.C:45
 ConfigHFECalSys_PbPb.C:46
 ConfigHFECalSys_PbPb.C:47
 ConfigHFECalSys_PbPb.C:48
 ConfigHFECalSys_PbPb.C:49
 ConfigHFECalSys_PbPb.C:50
 ConfigHFECalSys_PbPb.C:51
 ConfigHFECalSys_PbPb.C:52
 ConfigHFECalSys_PbPb.C:53
 ConfigHFECalSys_PbPb.C:54
 ConfigHFECalSys_PbPb.C:55
 ConfigHFECalSys_PbPb.C:56
 ConfigHFECalSys_PbPb.C:57
 ConfigHFECalSys_PbPb.C:58
 ConfigHFECalSys_PbPb.C:59
 ConfigHFECalSys_PbPb.C:60
 ConfigHFECalSys_PbPb.C:61
 ConfigHFECalSys_PbPb.C:62
 ConfigHFECalSys_PbPb.C:63
 ConfigHFECalSys_PbPb.C:64
 ConfigHFECalSys_PbPb.C:65
 ConfigHFECalSys_PbPb.C:66
 ConfigHFECalSys_PbPb.C:67
 ConfigHFECalSys_PbPb.C:68
 ConfigHFECalSys_PbPb.C:69
 ConfigHFECalSys_PbPb.C:70
 ConfigHFECalSys_PbPb.C:71
 ConfigHFECalSys_PbPb.C:72
 ConfigHFECalSys_PbPb.C:73
 ConfigHFECalSys_PbPb.C:74
 ConfigHFECalSys_PbPb.C:75
 ConfigHFECalSys_PbPb.C:76
 ConfigHFECalSys_PbPb.C:77
 ConfigHFECalSys_PbPb.C:78
 ConfigHFECalSys_PbPb.C:79
 ConfigHFECalSys_PbPb.C:80
 ConfigHFECalSys_PbPb.C:81
 ConfigHFECalSys_PbPb.C:82
 ConfigHFECalSys_PbPb.C:83
 ConfigHFECalSys_PbPb.C:84
 ConfigHFECalSys_PbPb.C:85
 ConfigHFECalSys_PbPb.C:86
 ConfigHFECalSys_PbPb.C:87
 ConfigHFECalSys_PbPb.C:88
 ConfigHFECalSys_PbPb.C:89
 ConfigHFECalSys_PbPb.C:90
 ConfigHFECalSys_PbPb.C:91
 ConfigHFECalSys_PbPb.C:92
 ConfigHFECalSys_PbPb.C:93
 ConfigHFECalSys_PbPb.C:94
 ConfigHFECalSys_PbPb.C:95
 ConfigHFECalSys_PbPb.C:96
 ConfigHFECalSys_PbPb.C:97
 ConfigHFECalSys_PbPb.C:98
 ConfigHFECalSys_PbPb.C:99
 ConfigHFECalSys_PbPb.C:100
 ConfigHFECalSys_PbPb.C:101
 ConfigHFECalSys_PbPb.C:102
 ConfigHFECalSys_PbPb.C:103
 ConfigHFECalSys_PbPb.C:104
 ConfigHFECalSys_PbPb.C:105
 ConfigHFECalSys_PbPb.C:106
 ConfigHFECalSys_PbPb.C:107
 ConfigHFECalSys_PbPb.C:108
 ConfigHFECalSys_PbPb.C:109
 ConfigHFECalSys_PbPb.C:110
 ConfigHFECalSys_PbPb.C:111
 ConfigHFECalSys_PbPb.C:112
 ConfigHFECalSys_PbPb.C:113
 ConfigHFECalSys_PbPb.C:114
 ConfigHFECalSys_PbPb.C:115
 ConfigHFECalSys_PbPb.C:116
 ConfigHFECalSys_PbPb.C:117
 ConfigHFECalSys_PbPb.C:118
 ConfigHFECalSys_PbPb.C:119
 ConfigHFECalSys_PbPb.C:120
 ConfigHFECalSys_PbPb.C:121
 ConfigHFECalSys_PbPb.C:122
 ConfigHFECalSys_PbPb.C:123
 ConfigHFECalSys_PbPb.C:124
 ConfigHFECalSys_PbPb.C:125
 ConfigHFECalSys_PbPb.C:126
 ConfigHFECalSys_PbPb.C:127
 ConfigHFECalSys_PbPb.C:128
 ConfigHFECalSys_PbPb.C:129
 ConfigHFECalSys_PbPb.C:130
 ConfigHFECalSys_PbPb.C:131
 ConfigHFECalSys_PbPb.C:132
 ConfigHFECalSys_PbPb.C:133
 ConfigHFECalSys_PbPb.C:134
 ConfigHFECalSys_PbPb.C:135
 ConfigHFECalSys_PbPb.C:136
 ConfigHFECalSys_PbPb.C:137
 ConfigHFECalSys_PbPb.C:138
 ConfigHFECalSys_PbPb.C:139
 ConfigHFECalSys_PbPb.C:140
 ConfigHFECalSys_PbPb.C:141
 ConfigHFECalSys_PbPb.C:142
 ConfigHFECalSys_PbPb.C:143
 ConfigHFECalSys_PbPb.C:144
 ConfigHFECalSys_PbPb.C:145
 ConfigHFECalSys_PbPb.C:146
 ConfigHFECalSys_PbPb.C:147
 ConfigHFECalSys_PbPb.C:148
 ConfigHFECalSys_PbPb.C:149
 ConfigHFECalSys_PbPb.C:150
 ConfigHFECalSys_PbPb.C:151
 ConfigHFECalSys_PbPb.C:152
 ConfigHFECalSys_PbPb.C:153
 ConfigHFECalSys_PbPb.C:154
 ConfigHFECalSys_PbPb.C:155
 ConfigHFECalSys_PbPb.C:156
 ConfigHFECalSys_PbPb.C:157
 ConfigHFECalSys_PbPb.C:158
 ConfigHFECalSys_PbPb.C:159
 ConfigHFECalSys_PbPb.C:160
 ConfigHFECalSys_PbPb.C:161
 ConfigHFECalSys_PbPb.C:162
 ConfigHFECalSys_PbPb.C:163
 ConfigHFECalSys_PbPb.C:164
 ConfigHFECalSys_PbPb.C:165
 ConfigHFECalSys_PbPb.C:166
 ConfigHFECalSys_PbPb.C:167
 ConfigHFECalSys_PbPb.C:168
 ConfigHFECalSys_PbPb.C:169
 ConfigHFECalSys_PbPb.C:170
 ConfigHFECalSys_PbPb.C:171
 ConfigHFECalSys_PbPb.C:172
 ConfigHFECalSys_PbPb.C:173
 ConfigHFECalSys_PbPb.C:174
 ConfigHFECalSys_PbPb.C:175
 ConfigHFECalSys_PbPb.C:176
 ConfigHFECalSys_PbPb.C:177
 ConfigHFECalSys_PbPb.C:178
 ConfigHFECalSys_PbPb.C:179
 ConfigHFECalSys_PbPb.C:180
 ConfigHFECalSys_PbPb.C:181
 ConfigHFECalSys_PbPb.C:182
 ConfigHFECalSys_PbPb.C:183
 ConfigHFECalSys_PbPb.C:184
 ConfigHFECalSys_PbPb.C:185