updates from Ashutosh for pion femtoscopy analysis
authormaszyman <maszyman@cern.ch>
Mon, 5 May 2014 13:18:08 +0000 (15:18 +0200)
committermaszyman <maszyman@cern.ch>
Mon, 5 May 2014 13:18:08 +0000 (15:18 +0200)
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoCorrFctn3DLCMSSym.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoCorrFctn3DLCMSSym.h
PWGCF/FEMTOSCOPY/macros/Train/AshutoshPionFemtoscopy/ConfigFemtoAnalysis.C

index 9d6926d..c84b90c 100644 (file)
@@ -9,6 +9,7 @@
 ///////////////////////////////////////////////////////////////////////////
 
 #include "AliFemtoCorrFctn3DLCMSSym.h"
+
 #include <cstdio>
 
 #ifdef __ROOT__ 
@@ -20,38 +21,57 @@ AliFemtoCorrFctn3DLCMSSym::AliFemtoCorrFctn3DLCMSSym(char* title, const int& nbi
   :
   AliFemtoCorrFctn(),
   fNumerator(0),
-  fDenominator(0)
+  fDenominator(0),
+  fNumeratorW(0),
+  fDenominatorW(0)
 {
   // Basic constructor
 
   // set up numerator
   char tTitNum[101] = "Num";
   strncat(tTitNum,title, 100);
-  fNumerator = new TH3F(tTitNum,title,nbins,-QHi,QHi,nbins,-QHi,QHi,nbins/2,0.0,QHi);
+  fNumerator = new TH3F(tTitNum,title,nbins,-QHi,QHi,nbins,-QHi,QHi,nbins,-QHi,QHi);
   // set up denominator
   char tTitDen[101] = "Den";
   strncat(tTitDen,title, 100);
-  fDenominator = new TH3F(tTitDen,title,nbins,-QHi,QHi,nbins,-QHi,QHi,nbins/2,0.0,QHi);
+  fDenominator = new TH3F(tTitDen,title,nbins,-QHi,QHi,nbins,-QHi,QHi,nbins,-QHi,QHi);
+//Weighted by qinv histos
+  // set up numerator
+  char tTitNumW[101] = "NumWqinv";
+  strncat(tTitNumW,title, 100);
+  fNumeratorW = new TH3F(tTitNumW,title,nbins,-QHi,QHi,nbins,-QHi,QHi,nbins,-QHi,QHi);
+  // set up denominator
+  char tTitDenW[101] = "DenWqinv";
+  strncat(tTitDenW,title, 100);
+  fDenominatorW = new TH3F(tTitDenW,title,nbins,-QHi,QHi,nbins,-QHi,QHi,nbins,-QHi,QHi);
 
   // to enable error bar calculation...
   fNumerator->Sumw2();
   fDenominator->Sumw2();
+  fNumeratorW->Sumw2();
+  fDenominatorW->Sumw2();
 }
 
 AliFemtoCorrFctn3DLCMSSym::AliFemtoCorrFctn3DLCMSSym(const AliFemtoCorrFctn3DLCMSSym& aCorrFctn) :
   AliFemtoCorrFctn(aCorrFctn),
   fNumerator(0),
-  fDenominator(0)
+  fDenominator(0),
+  fNumeratorW(0),
+  fDenominatorW(0)
 {
   // Copy constructor
   fNumerator = new TH3F(*aCorrFctn.fNumerator);
   fDenominator = new TH3F(*aCorrFctn.fDenominator);
+  fNumeratorW = new TH3F(*aCorrFctn.fNumeratorW);
+  fDenominatorW = new TH3F(*aCorrFctn.fDenominatorW);
 }
 //____________________________
 AliFemtoCorrFctn3DLCMSSym::~AliFemtoCorrFctn3DLCMSSym(){
   // Destructor
   delete fNumerator;
   delete fDenominator;
+  delete fNumeratorW;
+  delete fDenominatorW;
 }
 //_________________________
 AliFemtoCorrFctn3DLCMSSym& AliFemtoCorrFctn3DLCMSSym::operator=(const AliFemtoCorrFctn3DLCMSSym& aCorrFctn)
@@ -64,7 +84,10 @@ AliFemtoCorrFctn3DLCMSSym& AliFemtoCorrFctn3DLCMSSym::operator=(const AliFemtoCo
   fNumerator = new TH3F(*aCorrFctn.fNumerator);
   if (fDenominator) delete fDenominator;
   fDenominator = new TH3F(*aCorrFctn.fDenominator);
-
+  if (fNumeratorW) delete fNumeratorW;
+  fNumeratorW = new TH3F(*aCorrFctn.fNumeratorW);
+  if (fDenominatorW) delete fDenominatorW;
+  fDenominatorW = new TH3F(*aCorrFctn.fDenominatorW);
   return *this;
 }
 
@@ -73,6 +96,8 @@ void AliFemtoCorrFctn3DLCMSSym::WriteOutHistos(){
   // Write out all histograms to file
   fNumerator->Write();
   fDenominator->Write();
+  fNumeratorW->Write();
+  fDenominatorW->Write();
 }
 //______________________________
 TList* AliFemtoCorrFctn3DLCMSSym::GetOutputList()
@@ -82,6 +107,8 @@ TList* AliFemtoCorrFctn3DLCMSSym::GetOutputList()
 
   tOutputList->Add(fNumerator); 
   tOutputList->Add(fDenominator);  
+  tOutputList->Add(fNumeratorW); 
+  tOutputList->Add(fDenominatorW);  
 
   return tOutputList;
 }
@@ -126,12 +153,13 @@ void AliFemtoCorrFctn3DLCMSSym::AddRealPair( AliFemtoPair* pair){
   double qOut = (pair->QOutCMS());
   double qSide = (pair->QSideCMS());
   double qLong = (pair->QLongCMS());
+  double qqinv = (pair->QInv());
 
-  if (qLong > 0.0)
     fNumerator->Fill(qOut,qSide,qLong);
-  else
-    fNumerator->Fill(-qOut,-qSide,-qLong);
-    
+    fNumeratorW->Fill(qOut,qSide,qLong,qqinv);
+
+
+   
 }
 //____________________________
 void AliFemtoCorrFctn3DLCMSSym::AddMixedPair( AliFemtoPair* pair){
@@ -143,11 +171,13 @@ void AliFemtoCorrFctn3DLCMSSym::AddMixedPair( AliFemtoPair* pair){
   double qOut = (pair->QOutCMS());
   double qSide = (pair->QSideCMS());
   double qLong = (pair->QLongCMS());
+  double qqqinv = (pair->QInv());
 
-  if (qLong > 0.0)
     fDenominator->Fill(qOut,qSide,qLong,1.0);
-  else
-    fDenominator->Fill(-qOut,-qSide,-qLong,1.0);
+    fDenominatorW->Fill(qOut,qSide,qLong,qqqinv);
+
+
 }
 
 
index 561d68c..12e2984 100644 (file)
@@ -11,6 +11,7 @@
 #include "AliFemtoCorrFctn.h"
 #include "AliFemtoPairCut.h"
 #include "TH3F.h"
+//#include "TArrayD.h"
 
 class AliFemtoCorrFctn3DLCMSSym : public AliFemtoCorrFctn {
 public:
@@ -28,6 +29,9 @@ public:
 
   TH3F* Numerator();
   TH3F* Denominator();
+  TH3F* NumeratorW();//Weighed by qinv
+  TH3F* DenominatorW();
+
 
   void WriteOutHistos();
   virtual TList* GetOutputList();
@@ -36,7 +40,8 @@ private:
 
   TH3F* fNumerator;         // numerator
   TH3F* fDenominator;       // denominator
-
+  TH3F* fNumeratorW;         // numerator
+  TH3F* fDenominatorW;       // denominator
 #ifdef __ROOT__
   ClassDef(AliFemtoCorrFctn3DLCMSSym, 1)
 #endif
@@ -44,6 +49,7 @@ private:
 
 inline  TH3F* AliFemtoCorrFctn3DLCMSSym::Numerator(){return fNumerator;}
 inline  TH3F* AliFemtoCorrFctn3DLCMSSym::Denominator(){return fDenominator;}
-
+inline  TH3F* AliFemtoCorrFctn3DLCMSSym::NumeratorW(){return fNumeratorW;}
+inline  TH3F* AliFemtoCorrFctn3DLCMSSym::DenominatorW(){return fDenominatorW;}
 #endif
 
index 655af48..cb6d5fa 100644 (file)
@@ -57,15 +57,15 @@ AliFemtoManager* ConfigFemtoAnalysis() {
   double KaonMass = 0.493677;
        
   //multiplicity bins
-  int runmults[10] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0};
-  int multbins[11] = {0, 100, 200, 300, 600, 800, 500, 600, 700, 800, 900};
+  int runmults[10] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int multbins[11] = {0, 50, 200, 300, 600, 800, 500, 600, 700, 800, 900};
 
   int runch[2] = {1, 1};
   const char *chrgs[2] = { "pip", "pim" };
   
   int runktdep = 1;
-  double ktrng[8] = {0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1.0};
-
+  //double ktrng[2] = {0.2, 0.3};
+double ktrng[8] = {0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1.0};
   int run3d = 1; // Do 3D cartesian analysis?
   int runshlcms = 1;
 
@@ -144,7 +144,7 @@ AliFemtoManager* ConfigFemtoAnalysis() {
          mecetaphitpc[aniter] = new AliFemtoBasicEventCut();
          mecetaphitpc[aniter]->SetEventMult(0,10000);
          mecetaphitpc[aniter]->SetVertZPos(-10,10);
-
+         
          cutPassEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutPass%stpcM%i", chrgs[ichg], imult),500);
          cutFailEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutFail%stpcM%i", chrgs[ichg], imult),500);
          mecetaphitpc[aniter]->AddCutMonitor(cutPassEvMetaphitpc[aniter], cutFailEvMetaphitpc[aniter]);
@@ -186,10 +186,9 @@ AliFemtoManager* ConfigFemtoAnalysis() {
          dtc1etaphitpc[aniter]->SetLabel(kFALSE);
          
          //primary particles: hits in ITS + DCA cut
-         dtc1etaphitpc[aniter]->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
-                                        AliESDtrackCuts::kAny);
-         //dtc1etaphitpc[aniter]->SetMaxImpactZ(3.0);
-         //dtc1etaphitpc[aniter]->SetMaxImpactXY(2.4);
+        // dtc1etaphitpc[aniter]->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
+        dtc1etaphitpc[aniter]->SetMaxImpactZ(3.0);
+        dtc1etaphitpc[aniter]->SetMaxImpactXY(2.4);
          //dtc1etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0105, 0.0350, -1.1);
          //dtc1etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
          //dtc1etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
@@ -239,27 +238,7 @@ AliFemtoManager* ConfigFemtoAnalysis() {
          anetaphitpc[aniter]->SetSecondParticleCut(dtc1etaphitpc[aniter]);
          anetaphitpc[aniter]->SetPairCut(sqpcetaphitpc[aniter]);
          
-         //Correlation functions
-
-         //Spherical harmonics (without kT bins)
-         //cylmetaphitpc[aniter] = new AliFemtoCorrFctnDirectYlm(Form("cylm%stpcM%i", chrgs[ichg], imult),3,nbinssh,0.0,shqmax,runshlcms);
-         //anetaphitpc[aniter]->AddCorrFctn(cylmetaphitpc[aniter]);
-
-         //Qinv (without kT bins)
-         //cqinvkttpc[aniter] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
-         //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[aniter]);
-
-         //3D cartesian (without kT bins)
-        /* if(run3d){
-           cq3dlcmskttpc[aniter] = new AliFemtoCorrFctn3DLCMSSym(Form("cq3d%stpcM%i", chrgs[ichg], imult),100,0.5);
-           anetaphitpc[aniter]->AddCorrFctn(cq3dlcmskttpc[aniter]);
-         }*/
          
-         // cqinvnclstpc[aniter] = new AliFemtoCorrFctnTPCNcls(Form("cqinvncls%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
-         // anetaphitpc[aniter]->AddCorrFctn(cqinvnclstpc[aniter]);
-
-         // cqinvchi2tpc[aniter] = new AliFemtoChi2CorrFctn(Form("cqinvchi2%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
-         // anetaphitpc[aniter]->AddCorrFctn(cqinvchi2tpc[aniter]);
 
          if (runktdep) {
            int ktm;
@@ -267,29 +246,10 @@ AliFemtoManager* ConfigFemtoAnalysis() {
              ktm = aniter*7 + ikt;
              ktpcuts[ktm] = new AliFemtoKTPairCut(ktrng[ikt], ktrng[ikt+1]);
              
-             /*cylmkttpc[ktm] = new AliFemtoCorrFctnDirectYlm(Form("cylm%stpcM%ikT%i", chrgs[ichg], imult, ikt),3,
-                                                    nbinssh, 0.0, shqmax, runshlcms);
-             cylmkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
-             anetaphitpc[aniter]->AddCorrFctn(cylmkttpc[ktm]);*/
-             
-             cqinvkttpc[ktm] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0, shqmax);
-             cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
-             anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]);
-             //cqinvkttpc[ktm] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0, shqmax);
-             //cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
-             //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]);
-
-             //cqinvsqtpc[ktm] = new AliFemtoShareQualityCorrFctn(Form("cqinvsq%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0,shqmax);
-             //cqinvsqtpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
-             //anetaphitpc[aniter]->AddCorrFctn(cqinvsqtpc[ktm]);
 
-             //cqinvinnertpc[ktm] = new AliFemtoTPCInnerCorrFctn(Form("cqinvinner%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0,shqmax);
-             //cqinvinnertpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
-             //cqinvinnertpc[ktm]->SetRadius(1.2);
-             //anetaphitpc[aniter]->AddCorrFctn(cqinvinnertpc[ktm]);
 
              if (run3d) {
-               //              cq3dlcmskttpc[ktm] = new AliFemtoCorrFctn3DLCMSSym(Form("cq3d%stpcM%ikT%i", chrgs[ichg], imult, ikt),60,(imult>3)?((imult>6)?((imult>7)?0.6:0.4):0.25):0.15);
+
                cq3dlcmskttpc[ktm] = new AliFemtoCorrFctn3DLCMSSym(Form("cq3d%stpcM%ikT%i", chrgs[ichg], imult, ikt),100,0.5);
                cq3dlcmskttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
                anetaphitpc[aniter]->AddCorrFctn(cq3dlcmskttpc[ktm]);
@@ -297,8 +257,7 @@ AliFemtoManager* ConfigFemtoAnalysis() {
            }
          }
          
-         //cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),39, 39);
-         //anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]);
+       
          
          Manager->AddAnalysis(anetaphitpc[aniter]);    
        }
@@ -309,4 +268,3 @@ AliFemtoManager* ConfigFemtoAnalysis() {
 
   return Manager;
 }
-