ROOT logo
AliAnalysisTaskHFE* ConfigHFETRDpbpb(Bool_t useMC=kFALSE, Bool_t beauty=kFALSE, UChar_t Sample=10,
				     UChar_t TPCcl=70, UChar_t TPCclPID = 80,
				     Double_t TPCclRatio = 0.6, Double_t TPCclshared = 1.1,
				     UChar_t ITScl=3,  Double_t ITSchi2perclusters=99999999.,
				     Double_t dcaxy=1000.0, Double_t dcaz=2000.0,
				     Double_t TPCs=0., Double_t TPCu=3.09,
				     Double_t TOFs=3.,Double_t IpSig=3., TString appendix,
				     UChar_t TRDtl = 5,UChar_t TRDeff = 2,Bool_t TRDonFlyCut = kFALSE, Bool_t TRDexactTracklets = kFALSE){
  //
  // HFE standard task configuration
  //
    Bool_t kAnalyseTaggedTracks = kTRUE;

    Float_t eeff[6] = {0.7, 0.75, 0.8, 0.85, 0.9, 0.95};
    Int_t eeffint[6] = {70, 75, 80, 85, 90, 95};
    if(TRDeff >= 6 || TRDtl < 4 || TRDtl > 6) return NULL;

  AliHFEcuts *hfecuts = new AliHFEcuts(appendix,"HFE cuts pbpb TOF TPC TRD");
  hfecuts->CreateStandardCuts();

  hfecuts->SetMinNClustersTPC(TPCcl);
  hfecuts->SetMinNClustersTPCPID(TPCclPID);
  hfecuts->SetMinRatioTPCclusters(TPCclRatio);
  hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
  hfecuts->SetFractionOfSharedTPCClusters(TPCclshared);

  hfecuts->SetMinNClustersITS(ITScl);
  hfecuts->SetMaxChi2perClusterITS(ITSchi2perclusters);
  hfecuts->SetCutITSpixel(AliHFEextraCuts::kFirst);
  hfecuts->SetCheckITSLayerStatus(kFALSE);

  hfecuts->SetIPcutParam(0,0,0,IpSig,kTRUE);
  if(useMC && beauty) hfecuts->SetProductionVertex(0,100,0,100);

  hfecuts->SetMaxImpactParam(dcaxy,dcaz);

  hfecuts->SetMinNTrackletsTRD(TRDtl, TRDexactTracklets);   // number of trd tracklets


  // event cuts
  hfecuts->SetUseMixedVertex(kTRUE);
  hfecuts->SetVertexRange(10.);

  // others
  hfecuts->SetTOFPIDStep(kTRUE);
  //hfecuts->SetMaxChi2perClusterITS(36);
  //hfecuts->SetTOFMISMATCHStep(kTRUE);
  //hfecuts->SetTPCPIDCleanUpStep(kTRUE);
  hfecuts->SetQAOn();

  AliAnalysisTaskHFE *task = new AliAnalysisTaskHFE(appendix);
  task->SetHFECuts(hfecuts);
  task->SetPbPbAnalysis(kTRUE);
  task->SetRemovePileUp(kTRUE);
  task->GetPIDQAManager()->SetHighResolutionHistos();
  
  // Define Variables
  Double_t ptbinning[36] = {0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 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., 10., 12., 14., 16., 18., 20.};
  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};
  AliHFEvarManager *vm = task->GetVarManager();
  //vm->AddVariable("pt");
  //vm->AddVariable("eta");
  vm->AddVariable("pt", 35, ptbinning);
  vm->AddVariable("eta", 16, etabinning);
  vm->AddVariable("phi");
  vm->AddVariable("charge");
  vm->AddVariable("source");
  vm->AddVariable("centrality");

  // no background function for TRD PbPb analysis at the moment
  /*
  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);
  pid->AddDetector("TOF", 0);
 // pid->AddDetector("TRD", 2); // adjust order
 // pid->AddDetector("TPC", 1);
  pid->AddDetector("TRD", 1); // adjust order
  pid->AddDetector("TPC", 2);

  //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]=TPCs;   // 0.16; // cut tuned for 0-10%
    params_centr_5_10[0]=TPCs;  // 0.16; // cut tuned for 0-10%
    params_centr_10_20[0]=TPCs; // 0.29;
    params_centr_20_30[0]=TPCs; // 0.38;
    params_centr_per[0]=TPCs;   // 0.44;
    char *cutmodel;
    cutmodel="pol0";
    
    
    for(Int_t a=0;a<11;a++)
      {
	if(a>3)  pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_per,TPCu);
	if(a==0) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_0_5,TPCu);    //  0-5%
	if(a==1) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_5_10,TPCu);    //  5-10%
	if(a==2) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_10_20,TPCu);    //  10-20%
	if(a==3) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_20_30,TPCu);    //  20-30%
      }
  }
  pid->ConfigureTOF(TOFs);


  // adjust
  AliHFEpidTRD *trdpid = pid->GetDetPID(AliHFEpid::kTRDpid);
  trdpid->SetRenormalizeElPi();
  trdpid->SetElectronEfficiency(eeff[TRDeff]);   // efficiency
  trdpid->SetNTracklets(TRDtl);      // ntracklets threshold
  //trdpid->SetCutNTracklets(TRDtl, TRDexactTracklets);
  AliOADBContainer *cont = new AliOADBContainer("TRDthresholds");
  cont->InitFromFile(Form("%s/util/hfe/TRD.OADBThresholds.root", gSystem->Getenv("TRAIN_ROOT")),"TRDthresholds");
  trdpid->SetOADBThresholds(cont);
  if(TRDonFlyCut) trdpid->SelectCutOnTheFly(kTRUE);


  if(kAnalyseTaggedTracks)
  {
      // V0 tagged tracks
      AliHFEcuts *v0trackCuts = new AliHFEcuts("V0trackCuts", "Track Cuts for tagged track Analysis");
      v0trackCuts->CreateStandardCuts();

      v0trackCuts->SetMinNClustersTPC(TPCcl);
      v0trackCuts->SetMinNClustersTPCPID(TPCclPID);
      v0trackCuts->SetFractionOfSharedTPCClusters(TPCclshared);
      v0trackCuts->SetMinRatioTPCclusters(TPCclRatio);
      v0trackCuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
      v0trackCuts->SetMinNClustersITS(1);
      v0trackCuts->SetMaxChi2perClusterITS(ITSchi2perclusters);
      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();
      v0trackCuts->SetMinNTrackletsTRD(TRDtl); // condition for TRD tracklets

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