#ifndef __CINT__
+#include <AliRsnCutTrackQuality.h>
#endif
Int_t AddRsnDaughterCutsPhiNsigma(AliPID::EParticleType type1,AliPID::EParticleType type2,TString opt,Bool_t isRsnMini=kFALSE,AliRsnInputHandler *rsnIH=0,AliAnalysisTaskSE *task=0)
{
Bool_t valid = kTRUE;
Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
+ Int_t useCommonQualityCut = AliAnalysisManager::GetGlobalInt("rsnCommonQualityCut",valid);
+
Bool_t usePPCut = kFALSE;
Double_t nSigmaTPC=3.0;
Double_t nSigmaTOF=3.0;
Double_t etaRange=0.8;
+ Double_t trackPtMin=0.;
+ Double_t trackPtMax=1.e10;
Bool_t useTPC_K=kFALSE;
Bool_t useTOF_K=kFALSE;
+ Bool_t useTrackPtCut=kFALSE;
if (opt.Contains("qualityonly")) {
useTPC_K=kFALSE;
if (opt.Contains("KTOFnsig25")) nSigmaTOF = 2.5;
if (opt.Contains("KTOFnsig30")) nSigmaTOF = 3.0;
+ if (opt.Contains("trackPt")) {
+ useTrackPtCut = kTRUE;
+ if (opt.Contains("trackPtMin02")) trackPtMin = 0.2;
+ if (opt.Contains("trackPtMin05")) trackPtMin = 0.5;
+
+ if (opt.Contains("trackPtMax18")) trackPtMax = 1.8;
+ if (opt.Contains("trackPtMax20")) trackPtMax = 2.0;
+ if (opt.Contains("trackPtMax25")) trackPtMax = 2.5;
+ }
+
Bool_t usePDG=kFALSE;
if (opt.Contains("pdg")) {
Printf("Using PDG");
Bool_t useEta = kFALSE;
if (opt.Contains("eta")) {
+ if(opt.Contains("eta08")) etaRange=0.8;
+ if(opt.Contains("eta07")) etaRange=0.7;
+ if(opt.Contains("eta06")) etaRange=0.6;
Printf("Using ETA range (%.2f,%.2f)",-etaRange,etaRange);
useEta = kTRUE;
}
AliRsnCutSet *cuts = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
TString scheme="";
-
- AliRsnCutTrackQuality *qualityCut = new AliRsnCutTrackQuality("cutQuatityK");
- qualityCut->SetDefaults2010();
+ AliRsnCutTrackQuality *qualityCut = new AliRsnCutTrackQuality("cutQualityK");
+ if (useCommonQualityCut>=0) {
+ qualityCut->SetAODTestFilterBit(useCommonQualityCut);
+ } else {
+ qualityCut->SetDefaults2010();
+ }
cuts->AddCut(qualityCut);
if (!scheme.IsNull()) scheme += "&";
scheme += qualityCut->GetName();
if (!scheme.IsNull()) scheme += "&";
scheme += cutKTOF->GetName();
}
-
+
if (useEta) {
Printf("Adding ETA ...");
AliRsnValueDaughter *valEta = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kEta);
if (!scheme.IsNull()) scheme += "&";
scheme += cutEta->GetName();
}
+
+ if (useTrackPtCut) {
+ Printf("Adding Pt min=%.3f max=%.3f ...",trackPtMin,trackPtMax);
+ AliRsnValueDaughter *valTrackPt = new AliRsnValueDaughter(Form("val%sTrackPt%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kPt);
+
+ AliRsnCutValue *cutTrackPt = new AliRsnCutValue(Form("cut%sTrackPt%s",AliPID::ParticleName(type1),opt.Data()),trackPtMin,trackPtMax);
+ cutTrackPt->SetTargetType(AliRsnTarget::kDaughter);
+ cutTrackPt->SetValueObj(valTrackPt);
+ cuts->AddCut(cutTrackPt);
+ if (!scheme.IsNull()) scheme += "&";
+ scheme += cutTrackPt->GetName();
+ }
+
if (usePDG) {
Printf("Adding PDG ...");
AliRsnCutPID *cutPDG = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type1),opt.Data()),type1,0.0,kTRUE);
AddMonitorOutput(cuts->GetMonitorOutput(),opt);
}
if (isRsnMini) {
- AliRsnMiniAnalysisTask *taskRsnMini = (AliRsnMiniAnalysisTask*)task;
+ AliRsnMiniAnalysisTask *taskRsnMini = (AliRsnMiniAnalysisTask *)task;
if (taskRsnMini) {
taskRsnMini->AddTrackCuts(cuts);
}
#include <PWGLF/RESONANCES/AliRsnMiniMonitor.h>
#include <PWGLF/RESONANCES/AliRsnValueEvent.h>
#include <AliRsnMiniMonitorTask.h>
+#include <TROOT.h>
#endif
Bool_t RsnConfig(AliAnalysisTaskSE *task,Bool_t isMC,Bool_t isMixing,AliRsnInputHandler *rsnIH=0,TList *listRsn=0) {
if (!RsnLoadMacroFromConfig("AddRsnCommonPairCuts.C")) return kFALSE;
AliRsnCutSet *commonPairCuts = AddRsnCommonPairCuts();
-
+
TIter next(listRsn);
TNamed *rsnObj=0;
TString rsnName,rsnNameOpt,rsnNameOptFull,rsnCutName,rsnCutOpt,rsnCutNameOptFull;
if (!valid) lego_path = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
if (!gSystem->AccessPathName(macro.Data())) {
- gROOT->LoadMacro(macro.Data());
- Printf("Macro loaded from %s/%s ...",gSystem->pwd(),macro.Data());
+ Int_t ret = gROOT->LoadMacro(macro.Data());
+ Printf("Macro loaded from %s/%s [%d]...",gSystem->pwd(),macro.Data(),ret);
return kTRUE;
}
// dEdx tpc
AliRsnValueDaughter *axisMomTPC = new AliRsnValueDaughter("pTPC", AliRsnValueDaughter::kPtpc);
AliRsnValueDaughter *axisSigTPC = new AliRsnValueDaughter("sTPC", AliRsnValueDaughter::kTPCsignal);
- axisMomTPC->SetBins(0.0,5.0,0.01);
+ //axisMomTPC->SetBins(0.0,5.0,0.01);
+ axisMomTPC->SetBins(0.0,12.0,0.05);
axisSigTPC->SetBins(0.0,500.0,2.0);
// output: 2D histogram of TPC signal vs. TPC momentum
// dEdx tpc
AliRsnValueDaughter *axisMomTPCForTOF = new AliRsnValueDaughter("pTPC", AliRsnValueDaughter::kPtpc);
AliRsnValueDaughter *axisSigTOF = new AliRsnValueDaughter("sTOF", AliRsnValueDaughter::kTOFsignal);
- axisMomTPCForTOF->SetBins(0.0,5.0,0.01);
- axisSigTOF->SetBins(0.0,500.0,2.0);
+ //axisMomTPCForTOF->SetBins(0.0,5.0,0.01);
+ //axisSigTOF->SetBins(0.0,500.0,2.0);
+ axisMomTPCForTOF->SetBins(0.0,12.0,0.05);
+ axisSigTOF->SetBins(0.0,5.e5,1.e3);
// output: 2D histogram of TPC signal vs. TPC momentum
- AliRsnListOutput *outMonitordEdxTOF = new AliRsnListOutput("Edx", AliRsnListOutput::kHistoDefault);
+ AliRsnListOutput *outMonitordEdxTOF = new AliRsnListOutput("TOF", AliRsnListOutput::kHistoDefault);
outMonitordEdxTOF->AddValue(axisMomTPCForTOF);
outMonitordEdxTOF->AddValue(axisSigTOF);
// Momentum
AliRsnValueDaughter *axisMomP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kP);
- axisMomP->SetBins(0.0,5.0,0.01);
+ //axisMomP->SetBins(0.0,5.0,0.01);
+ axisMomP->SetBins(0.0,12.0,0.05);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorP = new AliRsnListOutput("P", AliRsnListOutput::kHistoDefault);
if (useMCMon) {
AliRsnValueDaughter *axisMomPMC = new AliRsnValueDaughter("pMC", AliRsnValueDaughter::kP);
axisMomPMC->SetUseMCInfo(kTRUE);
- axisMomPMC->SetBins(0.0,5.0,0.01);
+ //axisMomPMC->SetBins(0.0,5.0,0.01);
+ axisMomPMC->SetBins(0.0,12.0,0.05);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorPMC = new AliRsnListOutput("PMC", AliRsnListOutput::kHistoDefault);
// Momentum Pt
AliRsnValueDaughter *axisMomPt = new AliRsnValueDaughter("pt", AliRsnValueDaughter::kPt);
- axisMomPt->SetBins(0.0,5.0,0.01);
+ //axisMomPt->SetBins(0.0,5.0,0.01);
+ axisMomPt->SetBins(0.0,12.0,0.05);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorPt = new AliRsnListOutput("Pt", AliRsnListOutput::kHistoDefault);
// Momentum Pt
AliRsnValueDaughter *axisMomPtMC = new AliRsnValueDaughter("ptMC", AliRsnValueDaughter::kPt);
axisMomPtMC->SetUseMCInfo(kTRUE);
- axisMomPtMC->SetBins(0.0,5.0,0.01);
+ //axisMomPtMC->SetBins(0.0,5.0,0.01);
+ axisMomPtMC->SetBins(0.0,12.0,0.05);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorPtMC = new AliRsnListOutput("PtMC", AliRsnListOutput::kHistoDefault);
if (mon) mon->Add(outMonitorEtaMC);
if (lm) lm->AddOutput(outMonitorEtaMC);
}
+
+ AliRsnValueDaughter *axisPtBig = new AliRsnValueDaughter("pt", AliRsnValueDaughter::kPt);
+ axisPtBig->SetBins(0.0,12.0,0.5);
+
// kTOFnsigmaK
AliRsnValueDaughter *axisTPCnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTPCnsigmaK);
axisTPCnsigmaK->SetBins(1001,-100,100);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorTPCnsigmaK = new AliRsnListOutput("TPC_nsigma", AliRsnListOutput::kHistoDefault);
outMonitorTPCnsigmaK->AddValue(axisTPCnsigmaK);
+ outMonitorTPCnsigmaK->AddValue(axisPtBig);
// add outputs to loop
if (mon) mon->Add(outMonitorTPCnsigmaK);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorTPCnsigmaPi = new AliRsnListOutput("TPC_nsigma", AliRsnListOutput::kHistoDefault);
outMonitorTPCnsigmaPi->AddValue(axisTPCnsigmaPi);
+ outMonitorTPCnsigmaPi->AddValue(axisPtBig);
// add outputs to loop
if (mon) mon->Add(outMonitorTPCnsigmaPi);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorTPCnsigmaP = new AliRsnListOutput("TPC_nsigma", AliRsnListOutput::kHistoDefault);
outMonitorTPCnsigmaP->AddValue(axisTPCnsigmaP);
+ outMonitorTPCnsigmaP->AddValue(axisPtBig);
// add outputs to loop
if (mon) mon->Add(outMonitorTPCnsigmaP);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorTOFnsigmaK = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
outMonitorTOFnsigmaK->AddValue(axisTOFnsigmaK);
+ outMonitorTOFnsigmaK->AddValue(axisPtBig);
// add outputs to loop
if (mon) mon->Add(outMonitorTOFnsigmaK);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorTOFnsigmaPi = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
outMonitorTOFnsigmaPi->AddValue(axisTOFnsigmaPi);
+ outMonitorTOFnsigmaPi->AddValue(axisPtBig);
// add outputs to loop
if (mon) mon->Add(outMonitorTOFnsigmaPi);
// output: 2D histogram of TPC signal vs. TPC momentum
AliRsnListOutput *outMonitorTOFnsigmaP = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
outMonitorTOFnsigmaP->AddValue(axisTOFnsigmaP);
+ outMonitorTOFnsigmaP->AddValue(axisPtBig);
// add outputs to loop
if (mon) mon->Add(outMonitorTOFnsigmaP);
outMonitorPTvsMult->AddValue(ve1);
if (mon) mon->Add(outMonitorPTvsMult);
if (lm) lm->AddOutput(outMonitorPTvsMult);
-
-
-// if (lm) lm->SetTrueMC(kTRUE);
+
+// AliRsnListOutput *outMonitorMult = new AliRsnListOutput("EventMult",AliRsnListOutput::kHistoDefault);
+//
+// AliRsnValueEvent *ve1Multi = new AliRsnValueEvent("centrality",AliRsnValueEvent::kCentralityV0);
+// ve1Multi->SetBins(0.0,100,10.0);
+// outMonitorMult->AddValue(ve1Multi);
+// if (mon) mon->Add(outMonitorMult);
+// if (lm) lm->AddOutput(outMonitorMult);
}
void AddMonitorOutputMini(AliRsnMiniMonitorTask *task,Int_t listID1,TString name = "",Char_t charge='0')