Configuration macro for the LHC10a6 train
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Feb 2010 15:15:45 +0000 (15:15 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Feb 2010 15:15:45 +0000 (15:15 +0000)
PWG2/FEMTOSCOPY/macros/Train/PWG2TrainLHC10a6/ConfigFemtoAnalysis.C [new file with mode: 0644]

diff --git a/PWG2/FEMTOSCOPY/macros/Train/PWG2TrainLHC10a6/ConfigFemtoAnalysis.C b/PWG2/FEMTOSCOPY/macros/Train/PWG2TrainLHC10a6/ConfigFemtoAnalysis.C
new file mode 100644 (file)
index 0000000..960c8a6
--- /dev/null
@@ -0,0 +1,360 @@
+/*********************************************************************
+ *                                                                   *
+ * ConfigFemtoAnalysis.C - configuration macro for the femtoscopic   *
+ * analysis, meant as a QA process for two-particle effects          *
+ *                                                                   *
+ * Author: Adam Kisiel (Adam.Kisiel@cern.ch)                         *
+ *                                                                   *
+ *********************************************************************/
+
+#if !defined(__CINT__) || defined(__MAKECINT_)
+#include "AliFemtoManager.h"
+#include "AliFemtoEventReaderESDChain.h"
+#include "AliFemtoEventReaderESDChainKine.h"
+#include "AliFemtoSimpleAnalysis.h"
+#include "AliFemtoBasicEventCut.h"
+#include "AliFemtoESDTrackCut.h"
+#include "AliFemtoCorrFctn.h"
+#include "AliFemtoCutMonitorParticleYPt.h"
+#include "AliFemtoCutMonitorParticleVertPos.h"
+#include "AliFemtoCutMonitorParticleMomRes.h"
+#include "AliFemtoCutMonitorEventMult.h"
+#include "AliFemtoCutMonitorEventVertex.h"
+#include "AliFemtoShareQualityTPCEntranceSepPairCut.h"
+#include "AliFemtoQinvCorrFctn.h"
+#include "AliFemtoShareQualityCorrFctn.h"
+#include "AliFemtoTPCInnerCorrFctn.h"
+#include "AliFemtoVertexMultAnalysis.h"
+#include "AliFemtoCorrFctn3DSpherical.h"
+#include "AliFemtoChi2CorrFctn.h"
+#include "AliFemtoCorrFctnTPCNcls.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 "AliFemtoCorrFctnDEtaDPhi.h"
+#include "AliFemtoBPLCMS3DCorrFctn.h"
+#endif
+
+//________________________________________________________________________
+AliFemtoManager* ConfigFemtoAnalysis() {
+
+  double PionMass = 0.13956995;
+  double KaonMass = 0.493677;
+       
+  // Switches for QA analyses
+  int runPositiveTPCQA = 1;
+  int runNegativeTPCQA = 1;
+
+  int runktdep = 1;
+  int run3d = 0;
+  
+  int runtype = 0; // Types 0 - global, 1 - ITS only
+  int isrealdata = 0;
+
+  AliFemtoEventReaderESDChain* Reader=new AliFemtoEventReaderESDChain();
+  Reader->SetConstrained(true);
+  Reader->SetUseTPCOnly(false);
+  if (runtype == 0)
+    Reader->SetReadTrackType(AliFemtoEventReaderESDChain::kGlobal);
+  else if (runtype == 1)
+    Reader->SetReadTrackType(AliFemtoEventReaderESDChain::kITSOnly);
+  if (isrealdata)
+    Reader->SetUsePhysicsSelection(kTRUE);
+  else
+    Reader->SetUsePhysicsSelection(kFALSE);
+
+  AliFemtoManager* Manager=new AliFemtoManager();
+  Manager->SetEventReader(Reader);
+
+  // *** Third QA task - HBT analysis with all pair cuts off, TPC only ***
+  // *** Begin pion-pion (positive) analysis ***
+  if (runPositiveTPCQA) {
+    AliFemtoVertexMultAnalysis *anpiptpc = new AliFemtoVertexMultAnalysis(6, -10.0, 10.0, 1, 0, 10000);
+    anpiptpc->SetNumEventsToMix(10);
+    anpiptpc->SetMinSizePartCollection(2);
+
+    AliFemtoBasicEventCut* mecpiptpc = new AliFemtoBasicEventCut();
+    mecpiptpc->SetEventMult(0,100000);
+    mecpiptpc->SetVertZPos(-1000,1000);
+
+    AliFemtoCutMonitorEventMult *cutPassEvMpiptpc = new AliFemtoCutMonitorEventMult("cutPasspiptpc");
+    AliFemtoCutMonitorEventMult *cutFailEvMpiptpc = new AliFemtoCutMonitorEventMult("cutFailpiptpc");
+    mecpiptpc->AddCutMonitor(cutPassEvMpiptpc, cutFailEvMpiptpc);
+
+    AliFemtoCutMonitorEventVertex *cutPassEvVpiptpc = new AliFemtoCutMonitorEventVertex("cutPasspiptpc");
+    AliFemtoCutMonitorEventVertex *cutFailEvVpiptpc = new AliFemtoCutMonitorEventVertex("cutFailpiptpc");
+    mecpiptpc->AddCutMonitor(cutPassEvVpiptpc, cutFailEvVpiptpc);
+       
+    AliFemtoESDTrackCut* dtcpiptpc = new AliFemtoESDTrackCut();
+    //     dtcpiptpc->SetPidProbPion(0.0,1.001);
+    //     dtcpiptpc->SetPidProbMuon(0.0,1.0);
+    //     dtcpiptpc->SetPidProbKaon(0.0,1.0);
+    //     dtcpiptpc->SetPidProbProton(0.0,1.0);
+    dtcpiptpc->SetCharge(1.0);
+    dtcpiptpc->SetPt(0.05,10.0);
+    dtcpiptpc->SetMass(PionMass);
+    // Track quality cuts
+    if (runtype == 0) {
+      dtcpiptpc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
+      //    dtcpiptpc->SetStatus(AliESDtrack::kTPCrefit);
+      //    dtcpiptpc->SetStatus(AliESDtrack::kITSrefit);
+      dtcpiptpc->SetminTPCncls(50);
+      dtcpiptpc->SetRemoveKinks(kTRUE);
+      dtcpiptpc->SetLabel(kFALSE);
+      //    dtcpiptpc->SetMaxITSChiNdof(6.0);
+      dtcpiptpc->SetMaxTPCChiNdof(6.0);
+      dtcpiptpc->SetMaxImpactXY(0.2);
+      dtcpiptpc->SetMaxImpactZ(0.25);
+      dtcpiptpc->SetMaxSigmaToVertex(6.0);
+    }
+    else if (runtype == 1) {
+      //      dtcpiptpc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
+      //    dtcpiptpc->SetStatus(AliESDtrack::kTPCrefit);
+      dtcpiptpc->SetStatus(AliESDtrack::kITSrefit);
+      //      dtcpiptpc->SetminTPCncls(50);
+      dtcpiptpc->SetRemoveKinks(kTRUE);
+      dtcpiptpc->SetLabel(kFALSE);
+      //    dtcpiptpc->SetMaxITSChiNdof(6.0);
+      //      dtcpiptpc->SetMaxTPCChiNdof(6.0);
+      dtcpiptpc->SetMaxImpactXY(0.2);
+      dtcpiptpc->SetMaxImpactZ(0.25);
+      //      dtcpiptpc->SetMaxSigmaToVertex(6.0);
+    }
+
+    AliFemtoCutMonitorParticleYPt *cutPassYPtpiptpc = new AliFemtoCutMonitorParticleYPt("cutPasspiptpc", 0.13957);
+    AliFemtoCutMonitorParticleYPt *cutFailYPtpiptpc = new AliFemtoCutMonitorParticleYPt("cutFailpiptpc", 0.13957);
+    dtcpiptpc->AddCutMonitor(cutPassYPtpiptpc, cutFailYPtpiptpc);
+
+    AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpiptpc = new AliFemtoShareQualityTPCEntranceSepPairCut();
+    if (runtype == 0) {
+      sqpcpiptpc->SetShareQualityMax(0.0);
+      sqpcpiptpc->SetShareFractionMax(0.05);
+      sqpcpiptpc->SetRemoveSameLabel(kFALSE);
+      sqpcpiptpc->SetTPCEntranceSepMinimum(0.0);
+    }
+    else if (runtype == 1) {
+      sqpcpiptpc->SetShareQualityMax(1.0);
+      sqpcpiptpc->SetShareFractionMax(1.05);
+      sqpcpiptpc->SetRemoveSameLabel(kFALSE);
+      sqpcpiptpc->SetTPCEntranceSepMinimum(0.0);
+    }
+
+    anpiptpc->SetEventCut(mecpiptpc);
+    anpiptpc->SetFirstParticleCut(dtcpiptpc);
+    anpiptpc->SetSecondParticleCut(dtcpiptpc);
+    anpiptpc->SetPairCut(sqpcpiptpc);
+    
+    //     AliFemtoShareQualityCorrFctn *csqqinvpiptpc= new AliFemtoShareQualityCorrFctn("sqqinvcfpiptpc",40,0.0,0.4);
+    //     anpiptpc->AddCorrFctn(csqqinvpiptpc);
+
+    AliFemtoCorrFctnDirectYlm *cylmpiptpc = new AliFemtoCorrFctnDirectYlm("cylmpiptpc",3,100,0.0,1.5,1);
+    anpiptpc->AddCorrFctn(cylmpiptpc);
+    
+    AliFemtoQinvCorrFctn *cqinvpiptpc = new AliFemtoQinvCorrFctn("qinvcfpiptpc", 100,0.0,1.5);
+    anpiptpc->AddCorrFctn(cqinvpiptpc);
+
+    AliFemtoChi2CorrFctn *cchiqinvpiptpc= new AliFemtoChi2CorrFctn("chicfpiptpc",40,0.0,0.4);
+    anpiptpc->AddCorrFctn(cchiqinvpiptpc);
+
+    if (run3d) {
+      AliFemtoBPLCMS3DCorrFctn *cq3dallpiptpc = new AliFemtoBPLCMS3DCorrFctn("cq3dallpiptpc",100,-1.5,1.5);
+      anpiptpc->AddCorrFctn(cq3dallpiptpc);
+    }
+
+    if (runktdep) {
+      // Intrdouce kT binning
+      AliFemtoKTPairCut *ktpairkT1piptpc = new AliFemtoKTPairCut(0.05,0.2);
+      AliFemtoKTPairCut *ktpairkT2piptpc = new AliFemtoKTPairCut(0.3,0.4);
+      AliFemtoKTPairCut *ktpairkT3piptpc = new AliFemtoKTPairCut(0.4,0.55);
+      AliFemtoKTPairCut *ktpairkT4piptpc = new AliFemtoKTPairCut(0.55,2.0);
+      
+      AliFemtoCorrFctnDirectYlm *cylmkT1piptpc = new AliFemtoCorrFctnDirectYlm("cylmkT1piptpc",3,100,0.0,1.5,1);
+      cylmkT1piptpc->SetPairSelectionCut(ktpairkT1piptpc);
+      anpiptpc->AddCorrFctn(cylmkT1piptpc);
+      
+      AliFemtoQinvCorrFctn *cqinvkT1piptpc = new AliFemtoQinvCorrFctn("qinvcfkT1piptpc", 100,0.0,1.5);
+      cqinvkT1piptpc->SetPairSelectionCut(ktpairkT1piptpc);
+      anpiptpc->AddCorrFctn(cqinvkT1piptpc);
+      
+      AliFemtoCorrFctnDirectYlm *cylmkT2piptpc = new AliFemtoCorrFctnDirectYlm("cylmkT2piptpc",3,100,0.0,1.5,1);
+      cylmkT2piptpc->SetPairSelectionCut(ktpairkT2piptpc);
+      anpiptpc->AddCorrFctn(cylmkT2piptpc);
+      
+      AliFemtoQinvCorrFctn *cqinvkT2piptpc = new AliFemtoQinvCorrFctn("qinvcfkT2piptpc", 100,0.0,1.5);
+      cqinvkT2piptpc->SetPairSelectionCut(ktpairkT2piptpc);
+      anpiptpc->AddCorrFctn(cqinvkT2piptpc);
+      
+      AliFemtoCorrFctnDirectYlm *cylmkT3piptpc = new AliFemtoCorrFctnDirectYlm("cylmkT3piptpc",3,100,0.0,1.5,1);
+      cylmkT3piptpc->SetPairSelectionCut(ktpairkT3piptpc);
+      anpiptpc->AddCorrFctn(cylmkT3piptpc);
+      
+      AliFemtoQinvCorrFctn *cqinvkT3piptpc = new AliFemtoQinvCorrFctn("qinvcfkT3piptpc", 100,0.0,1.5);
+      cqinvkT3piptpc->SetPairSelectionCut(ktpairkT3piptpc);
+      anpiptpc->AddCorrFctn(cqinvkT3piptpc);
+      
+      AliFemtoCorrFctnDirectYlm *cylmkT4piptpc = new AliFemtoCorrFctnDirectYlm("cylmkT4piptpc",3,100,0.0,1.5,1);
+      cylmkT4piptpc->SetPairSelectionCut(ktpairkT4piptpc);
+      anpiptpc->AddCorrFctn(cylmkT4piptpc);
+      
+      AliFemtoQinvCorrFctn *cqinvkT4piptpc = new AliFemtoQinvCorrFctn("qinvcfkT4piptpc", 100,0.0,1.5);
+      cqinvkT4piptpc->SetPairSelectionCut(ktpairkT4piptpc);
+      anpiptpc->AddCorrFctn(cqinvkT4piptpc);
+    }
+    //     AliFemtoCorrFctnTPCNcls *cqtpcnclspiptpc = new AliFemtoCorrFctnTPCNcls("cqtpcnclspiptpc",40,0.0,0.4);
+    //     anpiptpc->AddCorrFctn(cqtpcnclspiptpc);
+
+    //     AliFemtoCorrFctnDEtaDPhi *cdetadphipiptpc = new AliFemtoCorrFctnDEtaDPhi("cdetadphipiptpc", 18, 20);
+    //     anpiptpc->AddCorrFctn(cdetadphipiptpc);
+
+    Manager->AddAnalysis(anpiptpc);    
+  }
+  // *** End pion-pion (positive) analysis
+
+  // *** Begin pion-pion (negative) analysis ***
+  if (runNegativeTPCQA) {
+    AliFemtoVertexMultAnalysis *anpimtpc = new AliFemtoVertexMultAnalysis(6, -10.0, 10.0, 1, 0, 10000);
+    anpimtpc->SetNumEventsToMix(10);
+    anpimtpc->SetMinSizePartCollection(2);
+
+    AliFemtoBasicEventCut* mecpimtpc = new AliFemtoBasicEventCut();
+    mecpimtpc->SetEventMult(0,100000);
+    mecpimtpc->SetVertZPos(-1000,1000);
+       
+    AliFemtoESDTrackCut* dtcpimtpc = new AliFemtoESDTrackCut();
+    //     dtcpimtpc->SetPidProbPion(0.0,1.001);
+    //     dtcpimtpc->SetPidProbMuon(0.0,1.0);
+    //     dtcpimtpc->SetPidProbKaon(0.0,1.0);
+    //     dtcpimtpc->SetPidProbProton(0.0,1.0);
+    dtcpimtpc->SetCharge(-1.0);
+    dtcpimtpc->SetPt(0.05,10.0);
+    dtcpimtpc->SetMass(PionMass);
+    // Track quality cuts
+    if (runtype == 0) {
+      dtcpimtpc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
+      //    dtcpimtpc->SetStatus(AliESDtrack::kTPCrefit);
+      //dtcpimtpc->SetStatus(AliESDtrack::kITSrefit);
+      dtcpimtpc->SetminTPCncls(50);
+      dtcpimtpc->SetRemoveKinks(kTRUE);
+      dtcpimtpc->SetLabel(kFALSE);
+      //     dtcpimtpc->SetMaxITSChiNdof(6.0);
+      dtcpimtpc->SetMaxTPCChiNdof(6.0);
+      dtcpimtpc->SetMaxImpactXY(0.2);
+      dtcpimtpc->SetMaxImpactZ(0.25);
+      dtcpimtpc->SetMaxSigmaToVertex(6.0);
+    }
+    else if (runtype == 1) {
+      //      dtcpimtpc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
+      //    dtcpimtpc->SetStatus(AliESDtrack::kTPCrefit);
+      dtcpimtpc->SetStatus(AliESDtrack::kITSrefit);
+      //    dtcpimtpc->SetminTPCncls(50);
+      dtcpimtpc->SetRemoveKinks(kTRUE);
+      dtcpimtpc->SetLabel(kFALSE);
+      //     dtcpimtpc->SetMaxITSChiNdof(6.0);
+      //     dtcpimtpc->SetMaxTPCChiNdof(6.0);
+      dtcpimtpc->SetMaxImpactXY(0.2);
+      dtcpimtpc->SetMaxImpactZ(0.25);
+      //      dtcpimtpc->SetMaxSigmaToVertex(6.0);
+    }
+    
+    AliFemtoCutMonitorParticleYPt *cutPassYPtpimtpc = new AliFemtoCutMonitorParticleYPt("cutPasspimtpc", 0.13957);
+    AliFemtoCutMonitorParticleYPt *cutFailYPtpimtpc = new AliFemtoCutMonitorParticleYPt("cutFailpimtpc", 0.13957);
+    dtcpimtpc->AddCutMonitor(cutPassYPtpimtpc, cutFailYPtpimtpc);
+
+    AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpimtpc = new AliFemtoShareQualityTPCEntranceSepPairCut();
+    if (runtype == 0) {
+      sqpcpimtpc->SetShareQualityMax(0.0);
+      sqpcpimtpc->SetShareFractionMax(0.05);
+      sqpcpimtpc->SetRemoveSameLabel(kFALSE);
+      sqpcpimtpc->SetTPCEntranceSepMinimum(0.0);
+    }
+    else if (runtype == 1) {
+      sqpcpimtpc->SetShareQualityMax(1.0);
+      sqpcpimtpc->SetShareFractionMax(1.05);
+      sqpcpimtpc->SetRemoveSameLabel(kFALSE);
+      sqpcpimtpc->SetTPCEntranceSepMinimum(0.0);
+    }
+    anpimtpc->SetEventCut(mecpimtpc);
+    anpimtpc->SetFirstParticleCut(dtcpimtpc);
+    anpimtpc->SetSecondParticleCut(dtcpimtpc);
+    anpimtpc->SetPairCut(sqpcpimtpc);
+    
+    //     AliFemtoShareQualityCorrFctn *csqqinvpimtpc= new AliFemtoShareQualityCorrFctn("sqqinvcfpimtpc",40,0.0,0.4);
+    //     anpimtpc->AddCorrFctn(csqqinvpimtpc);
+
+    AliFemtoCorrFctnDirectYlm *cylmpimtpc = new AliFemtoCorrFctnDirectYlm("cylmpimtpc",3,100,0.0,1.5,1);
+    anpimtpc->AddCorrFctn(cylmpimtpc);
+    
+    AliFemtoQinvCorrFctn *cqinvpimtpc = new AliFemtoQinvCorrFctn("qinvcfpimtpc", 100,0.0,1.5);
+    anpimtpc->AddCorrFctn(cqinvpimtpc);
+
+    AliFemtoChi2CorrFctn *cchiqinvpimtpc= new AliFemtoChi2CorrFctn("chicfpimtpc",40,0.0,0.4);
+    anpimtpc->AddCorrFctn(cchiqinvpimtpc);
+
+    if (run3d) {
+      AliFemtoBPLCMS3DCorrFctn *cq3dallpimtpc = new AliFemtoBPLCMS3DCorrFctn("cq3dallpimtpc",100,-1.5,1.5);
+      anpimtpc->AddCorrFctn(cq3dallpimtpc);
+    }
+
+    // Intrdouce kT binning
+    if (runktdep) {
+      // Intrdouce kT binning
+      AliFemtoKTPairCut *ktpairkT1pimtpc = new AliFemtoKTPairCut(0.05,0.3);
+      AliFemtoKTPairCut *ktpairkT2pimtpc = new AliFemtoKTPairCut(0.3,0.4);
+      AliFemtoKTPairCut *ktpairkT3pimtpc = new AliFemtoKTPairCut(0.4,0.55);
+      AliFemtoKTPairCut *ktpairkT4pimtpc = new AliFemtoKTPairCut(0.55,2.0);
+      
+      AliFemtoCorrFctnDirectYlm *cylmkT1pimtpc = new AliFemtoCorrFctnDirectYlm("cylmkT1pimtpc",3,100,0.0,1.5,1);
+      cylmkT1pimtpc->SetPairSelectionCut(ktpairkT1pimtpc);
+      anpimtpc->AddCorrFctn(cylmkT1pimtpc);
+      
+      AliFemtoQinvCorrFctn *cqinvkT1pimtpc = new AliFemtoQinvCorrFctn("qinvcfkT1pimtpc", 100,0.0,1.5);
+      cqinvkT1pimtpc->SetPairSelectionCut(ktpairkT1pimtpc);
+      anpimtpc->AddCorrFctn(cqinvkT1pimtpc);
+      
+      AliFemtoCorrFctnDirectYlm *cylmkT2pimtpc = new AliFemtoCorrFctnDirectYlm("cylmkT2pimtpc",3,100,0.0,1.5,1);
+      cylmkT2pimtpc->SetPairSelectionCut(ktpairkT2pimtpc);
+      anpimtpc->AddCorrFctn(cylmkT2pimtpc);
+      
+      AliFemtoQinvCorrFctn *cqinvkT2pimtpc = new AliFemtoQinvCorrFctn("qinvcfkT2pimtpc", 100,0.0,1.5);
+      cqinvkT2pimtpc->SetPairSelectionCut(ktpairkT2pimtpc);
+      anpimtpc->AddCorrFctn(cqinvkT2pimtpc);
+      
+      AliFemtoCorrFctnDirectYlm *cylmkT3pimtpc = new AliFemtoCorrFctnDirectYlm("cylmkT3pimtpc",3,100,0.0,1.5,1);
+      cylmkT3pimtpc->SetPairSelectionCut(ktpairkT3pimtpc);
+      anpimtpc->AddCorrFctn(cylmkT3pimtpc);
+      
+      AliFemtoQinvCorrFctn *cqinvkT3pimtpc = new AliFemtoQinvCorrFctn("qinvcfkT3pimtpc", 100,0.0,1.5);
+      cqinvkT3pimtpc->SetPairSelectionCut(ktpairkT3pimtpc);
+      anpimtpc->AddCorrFctn(cqinvkT3pimtpc);
+      
+      AliFemtoCorrFctnDirectYlm *cylmkT4pimtpc = new AliFemtoCorrFctnDirectYlm("cylmkT4pimtpc",3,100,0.0,1.5,1);
+      cylmkT4pimtpc->SetPairSelectionCut(ktpairkT4pimtpc);
+      anpimtpc->AddCorrFctn(cylmkT4pimtpc);
+      
+      AliFemtoQinvCorrFctn *cqinvkT4pimtpc = new AliFemtoQinvCorrFctn("qinvcfkT4pimtpc", 100,0.0,1.5);
+      cqinvkT4pimtpc->SetPairSelectionCut(ktpairkT4pimtpc);
+      anpimtpc->AddCorrFctn(cqinvkT4pimtpc);
+    }
+    //     AliFemtoCorrFctnTPCNcls *cqtpcnclspimtpc = new AliFemtoCorrFctnTPCNcls("cqtpcnclspimtpc",40,0.0,0.4);
+    //     anpimtpc->AddCorrFctn(cqtpcnclspimtpc);
+
+    //     AliFemtoCorrFctnDEtaDPhi *cdetadphipimtpc = new AliFemtoCorrFctnDEtaDPhi("cdetadphipimtpc", 18, 20);
+    //     anpimtpc->AddCorrFctn(cdetadphipimtpc);
+
+    Manager->AddAnalysis(anpimtpc);    
+  }
+  // *** End pion-pion (negative) analysis
+
+  return Manager;
+}                         
+