#ifndef __CINT__
#include <AliRsnCutPIDNSigma.h>
#include <PWGLF/RESONANCES/AliRsnCutTrackQuality.h>
#endif
Int_t AddRsnDaughterCutsRho(AliPID::EParticleType type1,AliPID::EParticleType type2,TString opt,Bool_t isRsnMini=kFALSE,AliRsnInputHandler *rsnIH=0,AliAnalysisTaskSE *task=0)
{
if (!rsnIH) return 0;
Bool_t valid = kTRUE;
Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
Bool_t usePPCut = kFALSE;
if (isPP && (opt.Contains("usePP"))) usePPCut = kTRUE;
// === USER HAS TO SET CORRECT NUMBER OF CUTS SETS =====
Int_t numberOfCuts = 1;
//---------------------------------------------
// Define single cuts
//---------------------------------------------
Printf("AliRsnCutPIDNSigma Option : %s",opt.Data());
Double_t nSigmaTPC=3.0;
Double_t nSigmaTOF=3.0;
Double_t etaRange=0.8;
if (opt.Contains("TPCsigma1")) nSigmaTPC = 1.0;
if (opt.Contains("TPCsigma2")) nSigmaTPC = 2.0;
if (opt.Contains("TPCsigma3")) nSigmaTPC = 3.0;
if (opt.Contains("TOFsigma1")) nSigmaTOF = 1.0;
if (opt.Contains("TOFsigma2")) nSigmaTOF = 2.0;
if (opt.Contains("TOFsigma3")) nSigmaTOF = 3.0;
Bool_t usePDG=kFALSE;
if (opt.Contains("pdg")) {
Printf("Using PDG");
usePDG = kTRUE;
}
Bool_t useEta = kFALSE;
if (opt.Contains("eta")) {
Printf("Using ETA range (%.2f,%.2f)",-etaRange,etaRange);
useEta = kTRUE;
}
Bool_t usetof = kFALSE;
if(opt.Contains("tof")) {
Printf("Using tof PID range (%.2f,%.2f)",0.0,1E+20);
usetof = kTRUE;
}
Bool_t usetpc = kFALSE;
if(opt.Contains("tpc")) {
Printf("Using tpc PID range (%.2f,%.2f)",0.0,1E+20);
usetpc = kTRUE;
}
//---------------------------------------------
// Combine cuts
//---------------------------------------------
TString cutname = "pionRho";
if (!opt.IsNull()) cutname += Form("_%s",opt.Data());
AliRsnCutSet *cuts = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
TString scheme="";
AliRsnCutTrackQuality *qualityCut = new AliRsnCutTrackQuality("cutQuatity");
//qualityCut->SetDefaults2010();
//qualityCut->SetDCAZmax(0.3);
//qualityCut->SetDCARmax(0.05);
qualityCut->SetDCAZmax(0.2);
qualityCut->SetDCARmax(0.02);
qualityCut->AddStatusFlag(AliESDtrack::kTPCin , kTRUE);
qualityCut->AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);
qualityCut->AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);
qualityCut->SetPtRange(0.15, 1E+20);
qualityCut->SetEtaRange(-0.8, 0.8);
qualityCut->SetSPDminNClusters(0);
qualityCut->SetITSminNClusters(0);
qualityCut->SetITSmaxChi2(1E+20);
qualityCut->SetTPCminNClusters(80);
qualityCut->SetTPCmaxChi2(4.0);
qualityCut->SetRejectKinkDaughters();
cuts->AddCut(qualityCut);
if (!scheme.IsNull()) scheme += "&";
scheme += qualityCut->GetName();
if (usetpc) {
AliRsnCutPIDNSigma *cutPiTPC = new AliRsnCutPIDNSigma("cutPIDNSigmaTPC",AliPID::kPion,AliRsnCutPIDNSigma::kTPC);
cutPiTPC->SinglePIDRange(nSigmaTPC);
//cutPiTPC->AddPIDRange(nSigmaTPC,0.0,0.7);
cuts->AddCut(cutPiTPC);
if (!scheme.IsNull()) scheme += "&";
scheme += cutPiTPC->GetName();
}
if(usetof) {
AliRsnCutPIDNSigma *cutPiTOF = new AliRsnCutPIDNSigma("cutPIDNSigmaTOF",AliPID::kPion,AliRsnCutPIDNSigma::kTOF);
cutPiTOF->SinglePIDRange(nSigmaTOF);
//cutPiTOF->AddPIDRange(nSigmaTOF,0.7,1e20);
cuts->AddCut(cutPiTOF);
if (!scheme.IsNull()) scheme += "&";
scheme += cutPiTOF->GetName();
}
if (useEta) {
Printf("Adding ETA ...");
AliRsnValueDaughter *valEta = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kEta);
AliRsnCutValue *cutEta = new AliRsnCutValue(Form("cut%sETA%s",AliPID::ParticleName(type1),opt.Data()),-etaRange,etaRange);
cutEta->SetTargetType(AliRsnTarget::kDaughter);
cutEta->SetValueObj(valEta);
cuts->AddCut(cutEta);
if (!scheme.IsNull()) scheme += "&";
scheme += cutEta->GetName();
}
if (usePDG) {
Printf("Adding PDG ...");
AliRsnCutPID *cutPDG = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type1),opt.Data()),type1,0.0,kTRUE);
cuts->AddCut(cutPDG);
if (!scheme.IsNull()) scheme += "&";
scheme += cutPDG->GetName();
}
Printf ("CUT Scheme is '%s'",scheme.Data());
cuts->SetCutScheme(scheme.Data());
if (opt.Contains("mon")) {
AddMonitorOutput(cuts->GetMonitorOutput(),opt);
}
if (isRsnMini) {
AliRsnMiniAnalysisTask *taskRsnMini = dynamic_cast<AliRsnMiniAnalysisTask *>(task);
if (taskRsnMini) {
taskRsnMini->AddTrackCuts(cuts);
}
} else {
AliRsnDaughterSelector *sel = rsnIH->GetSelector();
// sel->SetLabelCheck(kFALSE);
sel->Add(cuts, kTRUE);
}
return numberOfCuts;
}
AddRsnDaughterCutsRho.C:1 AddRsnDaughterCutsRho.C:2 AddRsnDaughterCutsRho.C:3 AddRsnDaughterCutsRho.C:4 AddRsnDaughterCutsRho.C:5 AddRsnDaughterCutsRho.C:6 AddRsnDaughterCutsRho.C:7 AddRsnDaughterCutsRho.C:8 AddRsnDaughterCutsRho.C:9 AddRsnDaughterCutsRho.C:10 AddRsnDaughterCutsRho.C:11 AddRsnDaughterCutsRho.C:12 AddRsnDaughterCutsRho.C:13 AddRsnDaughterCutsRho.C:14 AddRsnDaughterCutsRho.C:15 AddRsnDaughterCutsRho.C:16 AddRsnDaughterCutsRho.C:17 AddRsnDaughterCutsRho.C:18 AddRsnDaughterCutsRho.C:19 AddRsnDaughterCutsRho.C:20 AddRsnDaughterCutsRho.C:21 AddRsnDaughterCutsRho.C:22 AddRsnDaughterCutsRho.C:23 AddRsnDaughterCutsRho.C:24 AddRsnDaughterCutsRho.C:25 AddRsnDaughterCutsRho.C:26 AddRsnDaughterCutsRho.C:27 AddRsnDaughterCutsRho.C:28 AddRsnDaughterCutsRho.C:29 AddRsnDaughterCutsRho.C:30 AddRsnDaughterCutsRho.C:31 AddRsnDaughterCutsRho.C:32 AddRsnDaughterCutsRho.C:33 AddRsnDaughterCutsRho.C:34 AddRsnDaughterCutsRho.C:35 AddRsnDaughterCutsRho.C:36 AddRsnDaughterCutsRho.C:37 AddRsnDaughterCutsRho.C:38 AddRsnDaughterCutsRho.C:39 AddRsnDaughterCutsRho.C:40 AddRsnDaughterCutsRho.C:41 AddRsnDaughterCutsRho.C:42 AddRsnDaughterCutsRho.C:43 AddRsnDaughterCutsRho.C:44 AddRsnDaughterCutsRho.C:45 AddRsnDaughterCutsRho.C:46 AddRsnDaughterCutsRho.C:47 AddRsnDaughterCutsRho.C:48 AddRsnDaughterCutsRho.C:49 AddRsnDaughterCutsRho.C:50 AddRsnDaughterCutsRho.C:51 AddRsnDaughterCutsRho.C:52 AddRsnDaughterCutsRho.C:53 AddRsnDaughterCutsRho.C:54 AddRsnDaughterCutsRho.C:55 AddRsnDaughterCutsRho.C:56 AddRsnDaughterCutsRho.C:57 AddRsnDaughterCutsRho.C:58 AddRsnDaughterCutsRho.C:59 AddRsnDaughterCutsRho.C:60 AddRsnDaughterCutsRho.C:61 AddRsnDaughterCutsRho.C:62 AddRsnDaughterCutsRho.C:63 AddRsnDaughterCutsRho.C:64 AddRsnDaughterCutsRho.C:65 AddRsnDaughterCutsRho.C:66 AddRsnDaughterCutsRho.C:67 AddRsnDaughterCutsRho.C:68 AddRsnDaughterCutsRho.C:69 AddRsnDaughterCutsRho.C:70 AddRsnDaughterCutsRho.C:71 AddRsnDaughterCutsRho.C:72 AddRsnDaughterCutsRho.C:73 AddRsnDaughterCutsRho.C:74 AddRsnDaughterCutsRho.C:75 AddRsnDaughterCutsRho.C:76 AddRsnDaughterCutsRho.C:77 AddRsnDaughterCutsRho.C:78 AddRsnDaughterCutsRho.C:79 AddRsnDaughterCutsRho.C:80 AddRsnDaughterCutsRho.C:81 AddRsnDaughterCutsRho.C:82 AddRsnDaughterCutsRho.C:83 AddRsnDaughterCutsRho.C:84 AddRsnDaughterCutsRho.C:85 AddRsnDaughterCutsRho.C:86 AddRsnDaughterCutsRho.C:87 AddRsnDaughterCutsRho.C:88 AddRsnDaughterCutsRho.C:89 AddRsnDaughterCutsRho.C:90 AddRsnDaughterCutsRho.C:91 AddRsnDaughterCutsRho.C:92 AddRsnDaughterCutsRho.C:93 AddRsnDaughterCutsRho.C:94 AddRsnDaughterCutsRho.C:95 AddRsnDaughterCutsRho.C:96 AddRsnDaughterCutsRho.C:97 AddRsnDaughterCutsRho.C:98 AddRsnDaughterCutsRho.C:99 AddRsnDaughterCutsRho.C:100 AddRsnDaughterCutsRho.C:101 AddRsnDaughterCutsRho.C:102 AddRsnDaughterCutsRho.C:103 AddRsnDaughterCutsRho.C:104 AddRsnDaughterCutsRho.C:105 AddRsnDaughterCutsRho.C:106 AddRsnDaughterCutsRho.C:107 AddRsnDaughterCutsRho.C:108 AddRsnDaughterCutsRho.C:109 AddRsnDaughterCutsRho.C:110 AddRsnDaughterCutsRho.C:111 AddRsnDaughterCutsRho.C:112 AddRsnDaughterCutsRho.C:113 AddRsnDaughterCutsRho.C:114 AddRsnDaughterCutsRho.C:115 AddRsnDaughterCutsRho.C:116 AddRsnDaughterCutsRho.C:117 AddRsnDaughterCutsRho.C:118 AddRsnDaughterCutsRho.C:119 AddRsnDaughterCutsRho.C:120 AddRsnDaughterCutsRho.C:121 AddRsnDaughterCutsRho.C:122 AddRsnDaughterCutsRho.C:123 AddRsnDaughterCutsRho.C:124 AddRsnDaughterCutsRho.C:125 AddRsnDaughterCutsRho.C:126 AddRsnDaughterCutsRho.C:127 AddRsnDaughterCutsRho.C:128 AddRsnDaughterCutsRho.C:129 AddRsnDaughterCutsRho.C:130 AddRsnDaughterCutsRho.C:131 AddRsnDaughterCutsRho.C:132 AddRsnDaughterCutsRho.C:133 AddRsnDaughterCutsRho.C:134 AddRsnDaughterCutsRho.C:135 AddRsnDaughterCutsRho.C:136 AddRsnDaughterCutsRho.C:137 AddRsnDaughterCutsRho.C:138 AddRsnDaughterCutsRho.C:139 AddRsnDaughterCutsRho.C:140 AddRsnDaughterCutsRho.C:141 AddRsnDaughterCutsRho.C:142 AddRsnDaughterCutsRho.C:143 AddRsnDaughterCutsRho.C:144 AddRsnDaughterCutsRho.C:145 AddRsnDaughterCutsRho.C:146 AddRsnDaughterCutsRho.C:147 AddRsnDaughterCutsRho.C:148 AddRsnDaughterCutsRho.C:149 AddRsnDaughterCutsRho.C:150 AddRsnDaughterCutsRho.C:151 AddRsnDaughterCutsRho.C:152 AddRsnDaughterCutsRho.C:153