From 9a7fa795b04fed93cea14b4119c5dab18a581ed5 Mon Sep 17 00:00:00 2001 From: majanik Date: Mon, 28 Jul 2014 19:03:32 +0200 Subject: [PATCH] Untriggered DEtaDPhi: config for Kinematics train + correction to corr. fun. --- .../AliFemtoCorrFctnDEtaDPhiCorrections.cxx | 8 +- .../2014/Train1Kine/ConfigFemtoAnalysis.C | 410 ++++++++++++++++++ 2 files changed, 414 insertions(+), 4 deletions(-) create mode 100644 PWGCF/FEMTOSCOPY/macros/Train/DEtaDPhi/2014/Train1Kine/ConfigFemtoAnalysis.C diff --git a/PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoCorrFctnDEtaDPhiCorrections.cxx b/PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoCorrFctnDEtaDPhiCorrections.cxx index 3621224636a..b64bfe63f04 100644 --- a/PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoCorrFctnDEtaDPhiCorrections.cxx +++ b/PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoCorrFctnDEtaDPhiCorrections.cxx @@ -392,7 +392,7 @@ void AliFemtoCorrFctnDEtaDPhiCorrections::AddRealPair( AliFemtoPair* pair){ double vert2[3]; pair->Track2()->Track()->GetPrimaryVertex(vert2); - double corrweight=0; double corrweightpT1=1; double corrweightpT2=1; + double corrweight=0; //double corrweightpT1=1; double corrweightpT2=1; //if (fIfCorrection) corrweight = CalculateCorrectionWeight(pt1, pt2); if (fIfCorrection) { @@ -401,11 +401,11 @@ void AliFemtoCorrFctnDEtaDPhiCorrections::AddRealPair( AliFemtoPair* pair){ else if(fCorr1D) { corrweight = CalculateCorrectionWeight(pt1, pt2); - corrweightpT1 = CalculateCorrectionWeight(pt1); - corrweightpT2 = CalculateCorrectionWeight(pt2); + //corrweightpT1 = CalculateCorrectionWeight(pt1); + //corrweightpT2 = CalculateCorrectionWeight(pt2); } - fPtSumDist->Fill(pt1*corrweightpT1+pt2*corrweightpT2); + fPtSumDist->Fill(pt1+pt2,corrweight); /* double ptmin = pt1>pt2 ? pt2 : pt1; double cosphi = (px1*px2 + py1*py2 + pz1*pz2)/ diff --git a/PWGCF/FEMTOSCOPY/macros/Train/DEtaDPhi/2014/Train1Kine/ConfigFemtoAnalysis.C b/PWGCF/FEMTOSCOPY/macros/Train/DEtaDPhi/2014/Train1Kine/ConfigFemtoAnalysis.C new file mode 100644 index 00000000000..15003984e0e --- /dev/null +++ b/PWGCF/FEMTOSCOPY/macros/Train/DEtaDPhi/2014/Train1Kine/ConfigFemtoAnalysis.C @@ -0,0 +1,410 @@ +#if !defined(__CINT__) || defined(__MAKECINT_) +#include "AliFemtoManager.h" +#include "AliFemtoEventReaderESDChain.h" +#include "AliFemtoEventReaderESDChainKine.h" +#include "AliFemtoEventReaderAODChain.h" +#include "AliFemtoSimpleAnalysis.h" +#include "AliFemtoBasicEventCut.h" +#include "AliFemtoESDTrackCut.h" +#include "AliFemtoCorrFctn.h" +#include "AliFemtoCutMonitorParticleYPt.h" +#include "AliFemtoCutMonitorParticleVertPos.h" +#include "AliFemtoCutMonitorParticleMomRes.h" +#include "AliFemtoCutMonitorParticlePID.h" +#include "AliFemtoCutMonitorEventMult.h" +#include "AliFemtoCutMonitorEventVertex.h" +#include "AliFemtoShareQualityTPCEntranceSepPairCut.h" +#include "AliFemtoPairCutAntiGamma.h" +#include "AliFemtoPairCutRadialDistance.h" +#include "AliFemtoQinvCorrFctn.h" +#include "AliFemtoCorrFctnNonIdDR.h" +#include "AliFemtoShareQualityCorrFctn.h" +#include "AliFemtoTPCInnerCorrFctn.h" +#include "AliFemtoVertexMultAnalysis.h" +#include "AliFemtoCorrFctn3DSpherical.h" +#include "AliFemtoChi2CorrFctn.h" +#include "AliFemtoCorrFctnTPCNcls.h" +#include "AliFemtoBPLCMS3DCorrFctn.h" +#include "AliFemtoCorrFctn3DLCMSSym.h" +#include "AliFemtoModelBPLCMSCorrFctn.h" +#include "AliFemtoModelCorrFctn3DSpherical.h" +#include "AliFemtoModelGausLCMSFreezeOutGenerator.h" +#include "AliFemtoModelGausRinvFreezeOutGenerator.h" +#include "AliFemtoModelManager.h" +#include "AliFemtoModelWeightGeneratorBasic.h" +#include "AliFemtoModelWeightGeneratorLednicky.h" +#include "AliFemtoCorrFctnDirectYlm.h" +#include "AliFemtoModelCorrFctnDirectYlm.h" +#include "AliFemtoModelCorrFctnSource.h" +#include "AliFemtoCutMonitorParticlePtPDG.h" +#include "AliFemtoKTPairCut.h" +#include "AliFemtoPairCutPt.h" +#endif + +//________________________________________________________________________ +AliFemtoManager* ConfigFemtoAnalysis(const char* params) { + + double PionMass = 0.13956995; + double KaonMass = 0.493677; + double ProtonMass = 0.938272013; + + const int numOfMultBins = 5; + const int numOfChTypes = 13; + const int numOfkTbins = 5; + + char *parameter[20]; + if(strlen(params)!=0) + { + parameter[0] = strtok(params, ","); // Splits spaces between words in params + cout<<"Parameter [0] (filterbit):"<mfit ITS+TPC + int owncuts = 1; + int owndca = 1; + + int gammacut = 0; // cut na ee z gamma + + double shqmax = 0.5; + int nbinssh = 100; + + // AliFemtoEventReaderESDChain *Reader = new AliFemtoEventReaderESDChain(); + // Reader->SetUseMultiplicity(AliFemtoEventReaderESDChain::kReferenceITSTPC); + + //AliFemtoEventReaderAODChain *Reader = new AliFemtoEventReaderAODChain(); + //Reader->SetFilterMask(96); + //Reader->SetDCAglobalTrack(kTRUE); //false for FB7, true for the rest //we do not use DCA at all + //Reader->SetUseMultiplicity(AliFemtoEventReaderAOD::kReference); + + // Reader->SetMinPlpContribSPD(3); + // Reader->SetIsPileUpEvent(kTRUE); + + AliFemtoEventReaderKinematicsChain* Reader=new AliFemtoEventReaderKinematicsChain(); + + AliFemtoManager* Manager = new AliFemtoManager(); + Manager->SetEventReader(Reader); + + AliFemtoVertexMultAnalysis *anetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoBasicEventCut *mecetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorEventMult *cutPassEvMetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorEventMult *cutFailEvMetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorEventVertex *cutPassEvVetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorEventVertex *cutFailEvVetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoMCTrackCut *dtc1etaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoMCTrackCut *dtc2etaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoMCTrackCut *dtc3etaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticleYPt *cutPass1YPtetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticleYPt *cutFail1YPtetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticlePID *cutPass1PIDetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticlePID *cutFail1PIDetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticleYPt *cutPass2YPtetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticleYPt *cutFail2YPtetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticlePID *cutPass2PIDetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticlePID *cutFail2PIDetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticleYPt *cutPass3YPtetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticleYPt *cutFail3YPtetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticlePID *cutPass3PIDetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoCutMonitorParticlePID *cutFail3PIDetaphitpc[numOfMultBins*numOfChTypes]; + // AliFemtoShareQualityTPCEntranceSepPairCut *sqpcetaphitpcsame[numOfMultBins*numOfChTypes]; + //AliFemtoPairCutAntiGamma *sqpcetaphitpc[numOfMultBins*numOfChTypes]; + //AliFemtoPairCutRadialDistance *sqpcetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoPairCutAntiGamma *sqpcetaphitpc[numOfMultBins*numOfChTypes]; + // AliFemtoChi2CorrFctn *cchiqinvetaphitpc[numOfMultBins*numOfChTypes]; + AliFemtoPairCutPt *ktpcuts[numOfMultBins*numOfChTypes*numOfkTbins]; + AliFemtoQinvCorrFctn *cqinvkttpc[numOfMultBins*numOfChTypes*numOfkTbins]; + AliFemtoQinvCorrFctn *cqinvtpc[numOfMultBins*numOfChTypes]; + AliFemtoCorrFctnDEtaDPhi *cdedpetaphi[numOfMultBins*numOfChTypes]; + AliFemtoCorrFctnDEtaDPhi *cdedpetaphiPt[numOfMultBins*numOfChTypes*numOfkTbins]; + + + // *** Third QA task - HBT analysis with all pair cuts off, TPC only *** + // *** Begin pion-pion (positive) analysis *** + int aniter = 0; + + for (int imult = 0; imult < numOfMultBins; imult++) + { + if (runmults[imult]) + { + for (int ichg = 0; ichg < numOfChTypes; ichg++) + { + if (runch[ichg]) + { + + aniter = ichg * numOfMultBins + imult; + anetaphitpc[aniter] = new AliFemtoVertexMultAnalysis(zvertbino, -10.0, 10.0, multbino, multbins[imult], multbins[imult+1]); + anetaphitpc[aniter]->SetNumEventsToMix(10); + anetaphitpc[aniter]->SetMinSizePartCollection(1); + anetaphitpc[aniter]->SetVerboseMode(kTRUE);//~~~~~~~~~~~~~~~~ + + //*** Event cut *** + mecetaphitpc[aniter] = new AliFemtoBasicEventCut(); + mecetaphitpc[aniter]->SetEventMult(0.001,100000); + mecetaphitpc[aniter]->SetVertZPos(-10,10);//cm + + //****** event monitors ********** + cutPassEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutPass%stpcM%i", chrgs[ichg], imult)); + cutFailEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutFail%stpcM%i", chrgs[ichg], imult)); + mecetaphitpc[aniter]->AddCutMonitor(cutPassEvMetaphitpc[aniter], cutFailEvMetaphitpc[aniter]); + + //cutPassEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutPass%stpcM%i", chrgs[ichg], imult)); + //cutFailEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutFail%stpcM%i", chrgs[ichg], imult)); + //mecetaphitpc[aniter]->AddCutMonitor(cutPassEvVetaphitpc[aniter], cutFailEvVetaphitpc[aniter]); + + + // ***** single particle track cuts ********* + dtc1etaphitpc[aniter] = new AliFemtoMCTrackCut(); + dtc2etaphitpc[aniter] = new AliFemtoMCTrackCut(); + dtc3etaphitpc[aniter] = new AliFemtoMCTrackCut(); + + dtc1etaphitpc[aniter]->SetCharge(1.0); + dtc2etaphitpc[aniter]->SetCharge(-1.0); + + dtc1etaphitpc[aniter]->SetEta(-0.8,0.8); + dtc2etaphitpc[aniter]->SetEta(-0.8,0.8); + dtc3etaphitpc[aniter]->SetEta(-0.8,0.8); + + // dtc1etaphitpc[aniter]->SetElectronRejection(true); + // dtc2etaphitpc[aniter]->SetElectronRejection(true); + // dtc3etaphitpc[aniter]->SetElectronRejection(true); + + if (ichg == 0 ||ichg == 1 ||ichg == 2)//protons 0-2 + { + dtc1etaphitpc[aniter]->SetPt(0.5,4); + dtc2etaphitpc[aniter]->SetPt(0.5,4); + + dtc1etaphitpc[aniter]->SetPDG(2212); + dtc2etaphitpc[aniter]->SetPDG(2212); + } + + if (ichg == 3 ||ichg == 4 ||ichg == 5)//kaons 3-5 + { + dtc1etaphitpc[aniter]->SetPt(0.3,maxPtKaons); + dtc2etaphitpc[aniter]->SetPt(0.3,maxPtKaons); + + dtc1etaphitpc[aniter]->SetPDG(321); + dtc2etaphitpc[aniter]->SetPDG(321); + + } + if (ichg == 6 ||ichg == 7 ||ichg == 8)//pions 6-8 + { + dtc1etaphitpc[aniter]->SetPt(0.2,4); + dtc2etaphitpc[aniter]->SetPt(0.2,4); + + dtc1etaphitpc[aniter]->SetPDG(211); + dtc2etaphitpc[aniter]->SetPDG(211); + } + if (ichg == 9)//all + { + dtc3etaphitpc[aniter]->SetPt(0.2,4); + } + if (ichg == 10 ||ichg == 11 ||ichg == 12)//plus,minus,mixed + { + dtc1etaphitpc[aniter]->SetPt(0.2,4); + dtc2etaphitpc[aniter]->SetPt(0.2,4); + } + + + //**************** track Monitors *************** + + + if(1)//ichg>8) + { + cutPass3YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass%stpcM%i", chrgs[ichg], imult),PionMass); + cutFail3YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail%stpcM%i", chrgs[ichg], imult),PionMass); + if(ichg==9) dtc3etaphitpc[aniter]->AddCutMonitor(cutPass3YPtetaphitpc[aniter], cutFail3YPtetaphitpc[aniter]); + if(ichg==0||ichg==3||ichg==6||ichg==10) dtc1etaphitpc[aniter]->AddCutMonitor(cutPass3YPtetaphitpc[aniter], cutFail3YPtetaphitpc[aniter]); + if(ichg==1||ichg==4||ichg==7||ichg==11) dtc2etaphitpc[aniter]->AddCutMonitor(cutPass3YPtetaphitpc[aniter], cutFail3YPtetaphitpc[aniter]); + } + + //******** Two - track cuts ************ + sqpcetaphitpc[aniter] = new AliFemtoPairCutAntiGamma(); + //sqpcetaphitpc[aniter] = new AliFemtoPairCutRadialDistance(); + sqpcetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kKine); + + /* + sqpcetaphitpc[aniter]->SetShareQualityMax(0.0); // two track cuts on splitting and merging //1- wylaczany 0 -wlaczany + sqpcetaphitpc[aniter]->SetShareFractionMax(0.05); // ile moga miec wspolnych klastrow //1 - wylaczany, 0.05 - wlaczany + sqpcetaphitpc[aniter]->SetRemoveSameLabel(kFALSE); + sqpcetaphitpc[aniter]->SetMaximumRadius(0.82); + sqpcetaphitpc[aniter]->SetMinimumRadius(0.8); + sqpcetaphitpc[aniter]->SetPhiStarDifferenceMinimum(0.02); + sqpcetaphitpc[aniter]->SetEtaDifferenceMinimum(0.02); + + if (gammacut == 0) + { + sqpcetaphitpc[aniter]->SetMaxEEMinv(0.0); + sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.0); + } + else if (gammacut == 1) + { + sqpcetaphitpc[aniter]->SetMaxEEMinv(0.002); + sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.008); + } + */ + // sqpcetaphitpc[aniter]->SetTPCEntranceSepMinimum(1.5); + // sqpcetaphitpc[aniter]->SetRadialDistanceMinimum(0.12, 0.03); + // sqpcetaphitpc[aniter]->SetEtaDifferenceMinimum(0.02); + + + + + //***** Setting cuts *********** + + + // setting event cut + anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]); + //setting single track cuts + if(ichg==0 || ichg==3 || ichg==6 || ichg==10) //positive like-sign + { + anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]); + anetaphitpc[aniter]->SetSecondParticleCut(dtc1etaphitpc[aniter]); + } + if(ichg==1 || ichg==4 || ichg==7 || ichg==11)//negative like-sign + { + anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]); + anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]); + } + if(ichg==2 || ichg==5 || ichg==8 || ichg==12)//unlike-sign + { + anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]); + anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]); + } + if(ichg==9) //all + { + anetaphitpc[aniter]->SetFirstParticleCut(dtc3etaphitpc[aniter]); + anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]); + } + + //setting two-track cuts + anetaphitpc[aniter]->SetPairCut(sqpcetaphitpc[aniter]); + + + //**** Correlation functions ******* + + cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),35, 35); + anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]); + + + if (runktdep) + { + if(ichg<=2){ + for(int kit=0;kit<=numOfkTbins;kit++) + ktrng[kit]=ktrngProton[kit]; + } + else if(ichg>2&&ichg<6){ + for(int kit=0;kit<=numOfkTbins;kit++) + ktrng[kit]=ktrngKaon[kit]; + } + else if(ichg>=6&&ichg<=8){ + for(int kit=0;kit<=numOfkTbins;kit++) + ktrng[kit]=ktrngPion[kit]; + } + else if(ichg>=9){ + for(int kit=0;kit<=numOfkTbins;kit++) + ktrng[kit]=ktrngAll[kit]; + } + + int ktm; + for (int ikt=0; ikt6)?shqmax*2.5:shqmax); + //cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]); + //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]); + + cdedpetaphiPt[ktm] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%ipT%i", chrgs[ichg], imult,ikt),35, 35); + cdedpetaphiPt[ktm]->SetPairSelectionCut(ktpcuts[ktm]); + anetaphitpc[aniter]->AddCorrFctn(cdedpetaphiPt[ktm]); + + } + } + Manager->AddAnalysis(anetaphitpc[aniter]); + } + } + } + } + return Manager; +} -- 2.43.0