ROOT logo
#ifndef __CINT__
#include <Rtypes.h>
#endif
Int_t AddRsnDaughterCutsKStarNsigma(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);
   Int_t useCommonQualityCut = AliAnalysisManager::GetGlobalInt("rsnCommonQualityCut",valid);

   Bool_t usePPCut = kFALSE;

   if (isPP && (opt.Contains("usePP"))) usePPCut = kTRUE;


   // === USER HAS TO SET CORRECT NUMBER OF CUTS SETS =====
   Int_t numberOfCuts = 2;

   //---------------------------------------------
   //  Define single cutsP
   //---------------------------------------------

   Printf("AddRsnDaughterCutsKStarNsigma Option : %s",opt.Data());


   // default values
   Double_t nSigmaTPC_Pi=3.0;
   Double_t nSigmaTPC_K=3.0;
   Double_t nSigmaTOF_Pi=3.0;
   Double_t nSigmaTOF_K=3.0;
   Double_t etaRange=0.8;

   Bool_t useTPC_Pi=kFALSE;
   Bool_t useTOF_Pi=kFALSE;
   Bool_t useTPC_K=kFALSE;
   Bool_t useTOF_K=kFALSE;

   if (opt.Contains("qualityonly")) {
      useTPC_Pi=kFALSE;
      useTOF_Pi=kFALSE;
      useTPC_K=kFALSE;
      useTOF_K=kFALSE;
   } else if (!opt.Contains("nsig")) {
      useTPC_Pi=kTRUE;
      useTOF_Pi=kTRUE;
      useTPC_K=kTRUE;
      useTOF_K=kTRUE;
   }

   if (opt.Contains("PiTPCnsig")) useTPC_Pi=kTRUE;
   if (opt.Contains("PiTOFnsig")) useTOF_Pi=kTRUE;
   if (opt.Contains("KTPCnsig"))  useTPC_K=kTRUE;
   if (opt.Contains("KTOFnsig"))  useTOF_K=kTRUE;

   if (opt.Contains("PiTPCnsig10")) nSigmaTPC_Pi = 1.0;
   if (opt.Contains("PiTPCnsig15")) nSigmaTPC_Pi = 1.5;
   if (opt.Contains("PiTPCnsig20")) nSigmaTPC_Pi = 2.0;
   if (opt.Contains("PiTPCnsig25")) nSigmaTPC_Pi = 2.5;
   if (opt.Contains("PiTPCnsig30")) nSigmaTPC_Pi = 3.0;

   if (opt.Contains("KTPCnsig10")) nSigmaTPC_K = 1.0;
   if (opt.Contains("KTPCnsig15")) nSigmaTPC_K = 1.5;
   if (opt.Contains("KTPCnsig20")) nSigmaTPC_K = 2.0;
   if (opt.Contains("KTPCnsig25")) nSigmaTPC_K = 2.5;
   if (opt.Contains("KTPCnsig30")) nSigmaTPC_K = 3.0;

   if (opt.Contains("PiTOFnsig10")) nSigmaTOF_Pi = 1.0;
   if (opt.Contains("PiTOFnsig15")) nSigmaTOF_Pi = 1.5;
   if (opt.Contains("PiTOFnsig20")) nSigmaTOF_Pi = 2.0;
   if (opt.Contains("PiTOFnsig25")) nSigmaTOF_Pi = 2.5;
   if (opt.Contains("PiTOFnsig30")) nSigmaTOF_Pi = 3.0;

   if (opt.Contains("KTOFnsig10")) nSigmaTOF_K = 1.0;
   if (opt.Contains("KTOFnsig15")) nSigmaTOF_K = 1.5;
   if (opt.Contains("KTOFnsig20")) nSigmaTOF_K = 2.0;
   if (opt.Contains("KTOFnsig25")) nSigmaTOF_K = 2.5;
   if (opt.Contains("KTOFnsig30")) nSigmaTOF_K = 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;
   }

   // KAON SETTINGS =======================================
   TString scheme="";
   TString cutname = "K_Kstar";
   if (!opt.IsNull()) cutname += Form("_%s",opt.Data());
   AliRsnCutSet *cutsK = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);

   AliRsnCutTrackQuality *qualityCutK = new AliRsnCutTrackQuality("cutQuatityK");
   if (useCommonQualityCut>=0) {
      qualityCutK->SetAODTestFilterBit(useCommonQualityCut);
   } else {
      qualityCutK->SetDefaults2010();
   }
   cutsK->AddCut(qualityCutK);
   if (!scheme.IsNull()) scheme += "&";
   scheme += qualityCutK->GetName();

   if (useTPC_K) {
      AliRsnCutPIDNSigma *cutKTPC = new AliRsnCutPIDNSigma("cutNSigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
      cutKTPC->SinglePIDRange(nSigmaTPC_K);
      cutsK->AddCut(cutKTPC);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutKTPC->GetName();
   }

   if (useTOF_K) {
      AliRsnCutPIDNSigma *cutKTOF = new AliRsnCutPIDNSigma("cutNSigmaTOFK",AliPID::kKaon,AliRsnCutPIDNSigma::kTOF);
      cutKTOF->SinglePIDRange(nSigmaTOF_K);
      cutsK->AddCut(cutKTOF);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutKTOF->GetName();
   }
   if (useEta) {
      AliRsnValueDaughter *valEtaK = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type2),opt.Data()),AliRsnValueDaughter::kEta);
      AliRsnCutValue *cutEtaK = new AliRsnCutValue(Form("cut%sETA%s",AliPID::ParticleName(type2),opt.Data()),-etaRange,etaRange);
      cutEtaK->SetTargetType(AliRsnTarget::kDaughter);
      cutEtaK->SetValueObj(valEtaK);
      cutsK->AddCut(cutEtaK);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutEtaK->GetName();
   }
   if (usePDG) {
      AliRsnCutPID *cutPDGK = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type2),opt.Data()),type2,0.0,kTRUE);
      cutsK->AddCut(cutPDGK);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutPDGK->GetName();
   }

   Printf ("CUT Scheme for KAON is '%s'",scheme.Data());
   cutsK->SetCutScheme(scheme.Data());

   // END KAON =======================================

   // Pion SETTINGS ===========================================

   scheme="";
   cutname = "Pi_Kstar";
   if (!opt.IsNull()) cutname += Form("_%s",opt.Data());
   AliRsnCutSet *cutsP = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);

   AliRsnCutTrackQuality *qualityCutPi = new AliRsnCutTrackQuality("cutQuatityPi");
   if (useCommonQualityCut>=0) {
      qualityCutPi->SetAODTestFilterBit(useCommonQualityCut);
   } else {
      qualityCutPi->SetDefaults2010();
   }
   cutsP->AddCut(qualityCutPi);
   if (!scheme.IsNull()) scheme += "&";
   scheme += qualityCutPi->GetName();
   if (useTPC_Pi) {
      AliRsnCutPIDNSigma *cutPiTPC = new AliRsnCutPIDNSigma("cutNSigmaTPCPi",AliPID::kPion,AliRsnCutPIDNSigma::kTPC);
      cutPiTPC->SinglePIDRange(nSigmaTPC_Pi);
      cutsP->AddCut(cutPiTPC);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutPiTPC->GetName();
   }
   if (useTOF_Pi) {
      AliRsnCutPIDNSigma *cutPiTOF = new AliRsnCutPIDNSigma("cutNSigmaTOFPi",AliPID::kPion,AliRsnCutPIDNSigma::kTOF);
      cutPiTOF->SinglePIDRange(nSigmaTOF_Pi);
      cutsP->AddCut(cutPiTOF);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutPiTOF->GetName();
   }
   if (useEta) {
      AliRsnValueDaughter *valEtaP = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kEta);
      AliRsnCutValue *cutEtaP = new AliRsnCutValue(Form("cut%sETA%s",AliPID::ParticleName(type1),opt.Data()),-etaRange,etaRange);
      cutEtaP->SetTargetType(AliRsnTarget::kDaughter);
      cutEtaP->SetValueObj(valEtaP);
      cutsP->AddCut(cutEtaP);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutEtaP->GetName();
   }
   if (usePDG) {
      AliRsnCutPID *cutPDGP = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type1),opt.Data()),type1,0.0,kTRUE);
      cutsP->AddCut(cutPDGP);
      if (!scheme.IsNull()) scheme += "&";
      scheme += cutPDGP->GetName();
   }

   Printf ("CUT Scheme for PION is '%s'",scheme.Data());
   cutsP->SetCutScheme(scheme.Data());

   // END PROTON =======================================



   if (opt.Contains("mon")) {
      AddMonitorOutput(cutsP->GetMonitorOutput(),opt);
      AddMonitorOutput(cutsK->GetMonitorOutput(),opt);
   }
   if (isRsnMini) {
      AliRsnMiniAnalysisTask *taskRsnMini = dynamic_cast<AliRsnMiniAnalysisTask *>(task);
      if (taskRsnMini) {
         taskRsnMini->AddTrackCuts(cutsK);
         taskRsnMini->AddTrackCuts(cutsP);

      }
   } else {
      AliRsnDaughterSelector *sel = rsnIH->GetSelector();
//       sel->SetLabelCheck(kFALSE);
      sel->Add(cutsP, kTRUE);
      sel->Add(cutsK, kTRUE);
   }
   return numberOfCuts;

}
 AddRsnDaughterCutsKStarNsigma.C:1
 AddRsnDaughterCutsKStarNsigma.C:2
 AddRsnDaughterCutsKStarNsigma.C:3
 AddRsnDaughterCutsKStarNsigma.C:4
 AddRsnDaughterCutsKStarNsigma.C:5
 AddRsnDaughterCutsKStarNsigma.C:6
 AddRsnDaughterCutsKStarNsigma.C:7
 AddRsnDaughterCutsKStarNsigma.C:8
 AddRsnDaughterCutsKStarNsigma.C:9
 AddRsnDaughterCutsKStarNsigma.C:10
 AddRsnDaughterCutsKStarNsigma.C:11
 AddRsnDaughterCutsKStarNsigma.C:12
 AddRsnDaughterCutsKStarNsigma.C:13
 AddRsnDaughterCutsKStarNsigma.C:14
 AddRsnDaughterCutsKStarNsigma.C:15
 AddRsnDaughterCutsKStarNsigma.C:16
 AddRsnDaughterCutsKStarNsigma.C:17
 AddRsnDaughterCutsKStarNsigma.C:18
 AddRsnDaughterCutsKStarNsigma.C:19
 AddRsnDaughterCutsKStarNsigma.C:20
 AddRsnDaughterCutsKStarNsigma.C:21
 AddRsnDaughterCutsKStarNsigma.C:22
 AddRsnDaughterCutsKStarNsigma.C:23
 AddRsnDaughterCutsKStarNsigma.C:24
 AddRsnDaughterCutsKStarNsigma.C:25
 AddRsnDaughterCutsKStarNsigma.C:26
 AddRsnDaughterCutsKStarNsigma.C:27
 AddRsnDaughterCutsKStarNsigma.C:28
 AddRsnDaughterCutsKStarNsigma.C:29
 AddRsnDaughterCutsKStarNsigma.C:30
 AddRsnDaughterCutsKStarNsigma.C:31
 AddRsnDaughterCutsKStarNsigma.C:32
 AddRsnDaughterCutsKStarNsigma.C:33
 AddRsnDaughterCutsKStarNsigma.C:34
 AddRsnDaughterCutsKStarNsigma.C:35
 AddRsnDaughterCutsKStarNsigma.C:36
 AddRsnDaughterCutsKStarNsigma.C:37
 AddRsnDaughterCutsKStarNsigma.C:38
 AddRsnDaughterCutsKStarNsigma.C:39
 AddRsnDaughterCutsKStarNsigma.C:40
 AddRsnDaughterCutsKStarNsigma.C:41
 AddRsnDaughterCutsKStarNsigma.C:42
 AddRsnDaughterCutsKStarNsigma.C:43
 AddRsnDaughterCutsKStarNsigma.C:44
 AddRsnDaughterCutsKStarNsigma.C:45
 AddRsnDaughterCutsKStarNsigma.C:46
 AddRsnDaughterCutsKStarNsigma.C:47
 AddRsnDaughterCutsKStarNsigma.C:48
 AddRsnDaughterCutsKStarNsigma.C:49
 AddRsnDaughterCutsKStarNsigma.C:50
 AddRsnDaughterCutsKStarNsigma.C:51
 AddRsnDaughterCutsKStarNsigma.C:52
 AddRsnDaughterCutsKStarNsigma.C:53
 AddRsnDaughterCutsKStarNsigma.C:54
 AddRsnDaughterCutsKStarNsigma.C:55
 AddRsnDaughterCutsKStarNsigma.C:56
 AddRsnDaughterCutsKStarNsigma.C:57
 AddRsnDaughterCutsKStarNsigma.C:58
 AddRsnDaughterCutsKStarNsigma.C:59
 AddRsnDaughterCutsKStarNsigma.C:60
 AddRsnDaughterCutsKStarNsigma.C:61
 AddRsnDaughterCutsKStarNsigma.C:62
 AddRsnDaughterCutsKStarNsigma.C:63
 AddRsnDaughterCutsKStarNsigma.C:64
 AddRsnDaughterCutsKStarNsigma.C:65
 AddRsnDaughterCutsKStarNsigma.C:66
 AddRsnDaughterCutsKStarNsigma.C:67
 AddRsnDaughterCutsKStarNsigma.C:68
 AddRsnDaughterCutsKStarNsigma.C:69
 AddRsnDaughterCutsKStarNsigma.C:70
 AddRsnDaughterCutsKStarNsigma.C:71
 AddRsnDaughterCutsKStarNsigma.C:72
 AddRsnDaughterCutsKStarNsigma.C:73
 AddRsnDaughterCutsKStarNsigma.C:74
 AddRsnDaughterCutsKStarNsigma.C:75
 AddRsnDaughterCutsKStarNsigma.C:76
 AddRsnDaughterCutsKStarNsigma.C:77
 AddRsnDaughterCutsKStarNsigma.C:78
 AddRsnDaughterCutsKStarNsigma.C:79
 AddRsnDaughterCutsKStarNsigma.C:80
 AddRsnDaughterCutsKStarNsigma.C:81
 AddRsnDaughterCutsKStarNsigma.C:82
 AddRsnDaughterCutsKStarNsigma.C:83
 AddRsnDaughterCutsKStarNsigma.C:84
 AddRsnDaughterCutsKStarNsigma.C:85
 AddRsnDaughterCutsKStarNsigma.C:86
 AddRsnDaughterCutsKStarNsigma.C:87
 AddRsnDaughterCutsKStarNsigma.C:88
 AddRsnDaughterCutsKStarNsigma.C:89
 AddRsnDaughterCutsKStarNsigma.C:90
 AddRsnDaughterCutsKStarNsigma.C:91
 AddRsnDaughterCutsKStarNsigma.C:92
 AddRsnDaughterCutsKStarNsigma.C:93
 AddRsnDaughterCutsKStarNsigma.C:94
 AddRsnDaughterCutsKStarNsigma.C:95
 AddRsnDaughterCutsKStarNsigma.C:96
 AddRsnDaughterCutsKStarNsigma.C:97
 AddRsnDaughterCutsKStarNsigma.C:98
 AddRsnDaughterCutsKStarNsigma.C:99
 AddRsnDaughterCutsKStarNsigma.C:100
 AddRsnDaughterCutsKStarNsigma.C:101
 AddRsnDaughterCutsKStarNsigma.C:102
 AddRsnDaughterCutsKStarNsigma.C:103
 AddRsnDaughterCutsKStarNsigma.C:104
 AddRsnDaughterCutsKStarNsigma.C:105
 AddRsnDaughterCutsKStarNsigma.C:106
 AddRsnDaughterCutsKStarNsigma.C:107
 AddRsnDaughterCutsKStarNsigma.C:108
 AddRsnDaughterCutsKStarNsigma.C:109
 AddRsnDaughterCutsKStarNsigma.C:110
 AddRsnDaughterCutsKStarNsigma.C:111
 AddRsnDaughterCutsKStarNsigma.C:112
 AddRsnDaughterCutsKStarNsigma.C:113
 AddRsnDaughterCutsKStarNsigma.C:114
 AddRsnDaughterCutsKStarNsigma.C:115
 AddRsnDaughterCutsKStarNsigma.C:116
 AddRsnDaughterCutsKStarNsigma.C:117
 AddRsnDaughterCutsKStarNsigma.C:118
 AddRsnDaughterCutsKStarNsigma.C:119
 AddRsnDaughterCutsKStarNsigma.C:120
 AddRsnDaughterCutsKStarNsigma.C:121
 AddRsnDaughterCutsKStarNsigma.C:122
 AddRsnDaughterCutsKStarNsigma.C:123
 AddRsnDaughterCutsKStarNsigma.C:124
 AddRsnDaughterCutsKStarNsigma.C:125
 AddRsnDaughterCutsKStarNsigma.C:126
 AddRsnDaughterCutsKStarNsigma.C:127
 AddRsnDaughterCutsKStarNsigma.C:128
 AddRsnDaughterCutsKStarNsigma.C:129
 AddRsnDaughterCutsKStarNsigma.C:130
 AddRsnDaughterCutsKStarNsigma.C:131
 AddRsnDaughterCutsKStarNsigma.C:132
 AddRsnDaughterCutsKStarNsigma.C:133
 AddRsnDaughterCutsKStarNsigma.C:134
 AddRsnDaughterCutsKStarNsigma.C:135
 AddRsnDaughterCutsKStarNsigma.C:136
 AddRsnDaughterCutsKStarNsigma.C:137
 AddRsnDaughterCutsKStarNsigma.C:138
 AddRsnDaughterCutsKStarNsigma.C:139
 AddRsnDaughterCutsKStarNsigma.C:140
 AddRsnDaughterCutsKStarNsigma.C:141
 AddRsnDaughterCutsKStarNsigma.C:142
 AddRsnDaughterCutsKStarNsigma.C:143
 AddRsnDaughterCutsKStarNsigma.C:144
 AddRsnDaughterCutsKStarNsigma.C:145
 AddRsnDaughterCutsKStarNsigma.C:146
 AddRsnDaughterCutsKStarNsigma.C:147
 AddRsnDaughterCutsKStarNsigma.C:148
 AddRsnDaughterCutsKStarNsigma.C:149
 AddRsnDaughterCutsKStarNsigma.C:150
 AddRsnDaughterCutsKStarNsigma.C:151
 AddRsnDaughterCutsKStarNsigma.C:152
 AddRsnDaughterCutsKStarNsigma.C:153
 AddRsnDaughterCutsKStarNsigma.C:154
 AddRsnDaughterCutsKStarNsigma.C:155
 AddRsnDaughterCutsKStarNsigma.C:156
 AddRsnDaughterCutsKStarNsigma.C:157
 AddRsnDaughterCutsKStarNsigma.C:158
 AddRsnDaughterCutsKStarNsigma.C:159
 AddRsnDaughterCutsKStarNsigma.C:160
 AddRsnDaughterCutsKStarNsigma.C:161
 AddRsnDaughterCutsKStarNsigma.C:162
 AddRsnDaughterCutsKStarNsigma.C:163
 AddRsnDaughterCutsKStarNsigma.C:164
 AddRsnDaughterCutsKStarNsigma.C:165
 AddRsnDaughterCutsKStarNsigma.C:166
 AddRsnDaughterCutsKStarNsigma.C:167
 AddRsnDaughterCutsKStarNsigma.C:168
 AddRsnDaughterCutsKStarNsigma.C:169
 AddRsnDaughterCutsKStarNsigma.C:170
 AddRsnDaughterCutsKStarNsigma.C:171
 AddRsnDaughterCutsKStarNsigma.C:172
 AddRsnDaughterCutsKStarNsigma.C:173
 AddRsnDaughterCutsKStarNsigma.C:174
 AddRsnDaughterCutsKStarNsigma.C:175
 AddRsnDaughterCutsKStarNsigma.C:176
 AddRsnDaughterCutsKStarNsigma.C:177
 AddRsnDaughterCutsKStarNsigma.C:178
 AddRsnDaughterCutsKStarNsigma.C:179
 AddRsnDaughterCutsKStarNsigma.C:180
 AddRsnDaughterCutsKStarNsigma.C:181
 AddRsnDaughterCutsKStarNsigma.C:182
 AddRsnDaughterCutsKStarNsigma.C:183
 AddRsnDaughterCutsKStarNsigma.C:184
 AddRsnDaughterCutsKStarNsigma.C:185
 AddRsnDaughterCutsKStarNsigma.C:186
 AddRsnDaughterCutsKStarNsigma.C:187
 AddRsnDaughterCutsKStarNsigma.C:188
 AddRsnDaughterCutsKStarNsigma.C:189
 AddRsnDaughterCutsKStarNsigma.C:190
 AddRsnDaughterCutsKStarNsigma.C:191
 AddRsnDaughterCutsKStarNsigma.C:192
 AddRsnDaughterCutsKStarNsigma.C:193
 AddRsnDaughterCutsKStarNsigma.C:194
 AddRsnDaughterCutsKStarNsigma.C:195
 AddRsnDaughterCutsKStarNsigma.C:196
 AddRsnDaughterCutsKStarNsigma.C:197
 AddRsnDaughterCutsKStarNsigma.C:198
 AddRsnDaughterCutsKStarNsigma.C:199
 AddRsnDaughterCutsKStarNsigma.C:200
 AddRsnDaughterCutsKStarNsigma.C:201
 AddRsnDaughterCutsKStarNsigma.C:202
 AddRsnDaughterCutsKStarNsigma.C:203
 AddRsnDaughterCutsKStarNsigma.C:204
 AddRsnDaughterCutsKStarNsigma.C:205
 AddRsnDaughterCutsKStarNsigma.C:206
 AddRsnDaughterCutsKStarNsigma.C:207
 AddRsnDaughterCutsKStarNsigma.C:208
 AddRsnDaughterCutsKStarNsigma.C:209
 AddRsnDaughterCutsKStarNsigma.C:210
 AddRsnDaughterCutsKStarNsigma.C:211
 AddRsnDaughterCutsKStarNsigma.C:212
 AddRsnDaughterCutsKStarNsigma.C:213
 AddRsnDaughterCutsKStarNsigma.C:214
 AddRsnDaughterCutsKStarNsigma.C:215
 AddRsnDaughterCutsKStarNsigma.C:216
 AddRsnDaughterCutsKStarNsigma.C:217
 AddRsnDaughterCutsKStarNsigma.C:218
 AddRsnDaughterCutsKStarNsigma.C:219