Просмотр исходного кода

Separated systematic study & standard flow calculation due to cluster resource limitations.

Peter Parfenov лет назад: 4
Родитель
Сommit
2be2fbe35c
4 измененных файлов с 3007 добавлено и 407 удалено
  1. 32 407
      FemtoDstAnalyzer_FlowPIDHadrons.C
  2. 2818 0
      FemtoDstAnalyzer_FlowPIDsys1.C
  3. 3 0
      bin/CMakeLists.txt
  4. 154 0
      bin/flowPIDsys.cpp

+ 32 - 407
FemtoDstAnalyzer_FlowPIDHadrons.C

@@ -1102,12 +1102,12 @@ void FemtoDstAnalyzer_FlowPIDHadrons(const Char_t *inFile = "st_physics_12150008
   TProfile2D *p_v2run_ZDC_East[3][16];
   TProfile2D *p_v2run_ZDC_West[3][16];
 
-  TProfile2D *p_v2_sys_Nhits_EP[3][NEtaGaps][16][2]; // runId vs pt
-  TProfile2D *p_v3_sys_Nhits_EP[3][NEtaGaps][16][2]; // runId vs pt
-  TProfile2D *p_v2_sys_DCA_EP[3][NEtaGaps][16][2]; // runId vs pt
-  TProfile2D *p_v3_sys_DCA_EP[3][NEtaGaps][16][2]; // runId vs pt
-  TProfile2D *p_v2_sys_Eta_EP[3][NEtaGaps][16]; // runId vs pt
-  TProfile2D *p_v3_sys_Eta_EP[3][NEtaGaps][16]; // runId vs pt
+//  TProfile2D *p_v2_sys_Nhits_EP[3][NEtaGaps][16][2]; // runId vs pt
+//  TProfile2D *p_v3_sys_Nhits_EP[3][NEtaGaps][16][2]; // runId vs pt
+//  TProfile2D *p_v2_sys_DCA_EP[3][NEtaGaps][16][2]; // runId vs pt
+//  TProfile2D *p_v3_sys_DCA_EP[3][NEtaGaps][16][2]; // runId vs pt
+//  TProfile2D *p_v2_sys_Eta_EP[3][NEtaGaps][16]; // runId vs pt
+//  TProfile2D *p_v3_sys_Eta_EP[3][NEtaGaps][16]; // runId vs pt
 
   for (int iPID = 0; iPID < 3; iPID++)
   {
@@ -1122,32 +1122,32 @@ void FemtoDstAnalyzer_FlowPIDHadrons(const Char_t *inFile = "st_physics_12150008
                                                        Form("p_v3_run_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
                                                        fNBins, runId_min - 0.5, runId_max + 0.5, 100, 0.15, 5.15);
 
-        p_v2_sys_Eta_EP[iPID][iGap][iCent] = new TProfile2D(Form("p_v2_sys_Eta_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
-                                                       Form("p_v2_sys_Eta_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
-                                                       fNBins, runId_min - 0.5, runId_max + 0.5, 100, 0.15, 5.15);
-        p_v3_sys_Eta_EP[iPID][iGap][iCent] = new TProfile2D(Form("p_v3_sys_Eta_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
-                                                       Form("p_v3_sys_Eta_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
-                                                       fNBins, runId_min - 0.5, runId_max + 0.5, 100, 0.15, 5.15);
-        for (int iCut = 0; iCut < 2; iCut++)
-        {
-          p_v2_sys_Nhits_EP[iPID][iGap][iCent][iCut] = new TProfile2D(
-              Form("p_v2_sys_Nhits_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut),
-              Form("p_v2_sys_Nhits_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut), fNBins, runId_min - 0.5,
-              runId_max + 0.5, 100, 0.15, 5.15);
-          p_v3_sys_Nhits_EP[iPID][iGap][iCent][iCut] = new TProfile2D(
-              Form("p_v3_sys_Nhits_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut),
-              Form("p_v3_sys_Nhits_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut), fNBins, runId_min - 0.5,
-              runId_max + 0.5, 100, 0.15, 5.15);
-
-          p_v2_sys_DCA_EP[iPID][iGap][iCent][iCut] = new TProfile2D(
-              Form("p_v2_sys_DCA_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut),
-              Form("p_v2_sys_DCA_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut), fNBins, runId_min - 0.5,
-              runId_max + 0.5, 100, 0.15, 5.15);
-          p_v3_sys_DCA_EP[iPID][iGap][iCent][iCut] = new TProfile2D(
-              Form("p_v3_sys_DCA_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut),
-              Form("p_v3_sys_DCA_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut), fNBins, runId_min - 0.5,
-              runId_max + 0.5, 100, 0.15, 5.15);
-        }
+//        p_v2_sys_Eta_EP[iPID][iGap][iCent] = new TProfile2D(Form("p_v2_sys_Eta_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
+//                                                       Form("p_v2_sys_Eta_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
+//                                                       fNBins, runId_min - 0.5, runId_max + 0.5, 100, 0.15, 5.15);
+//        p_v3_sys_Eta_EP[iPID][iGap][iCent] = new TProfile2D(Form("p_v3_sys_Eta_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
+//                                                       Form("p_v3_sys_Eta_EP_particle%i_gap%i_cent%i", iPID, iGap, iCent),
+//                                                       fNBins, runId_min - 0.5, runId_max + 0.5, 100, 0.15, 5.15);
+//        for (int iCut = 0; iCut < 2; iCut++)
+//        {
+//          p_v2_sys_Nhits_EP[iPID][iGap][iCent][iCut] = new TProfile2D(
+//              Form("p_v2_sys_Nhits_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut),
+//              Form("p_v2_sys_Nhits_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut), fNBins, runId_min - 0.5,
+//              runId_max + 0.5, 100, 0.15, 5.15);
+//          p_v3_sys_Nhits_EP[iPID][iGap][iCent][iCut] = new TProfile2D(
+//              Form("p_v3_sys_Nhits_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut),
+//              Form("p_v3_sys_Nhits_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut), fNBins, runId_min - 0.5,
+//              runId_max + 0.5, 100, 0.15, 5.15);
+//
+//          p_v2_sys_DCA_EP[iPID][iGap][iCent][iCut] = new TProfile2D(
+//              Form("p_v2_sys_DCA_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut),
+//              Form("p_v2_sys_DCA_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut), fNBins, runId_min - 0.5,
+//              runId_max + 0.5, 100, 0.15, 5.15);
+//          p_v3_sys_DCA_EP[iPID][iGap][iCent][iCut] = new TProfile2D(
+//              Form("p_v3_sys_DCA_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut),
+//              Form("p_v3_sys_DCA_EP_particle%i_gap%i_cent%i_sys%i", iPID, iGap, iCent, iCut), fNBins, runId_min - 0.5,
+//              runId_max + 0.5, 100, 0.15, 5.15);
+//        }
         if (iGap == 0)
         {
           p_v2run_BBC[iPID][iCent] = new TProfile2D(Form("p_v2_run_BBC_particle%i_cent%i", iPID, iCent),
@@ -2149,364 +2149,7 @@ void FemtoDstAnalyzer_FlowPIDHadrons(const Char_t *inFile = "st_physics_12150008
         }
       }
 
-      // SYSTEMATICS
-      // Nhits & DCA variation
-      for (int iCut = 0; iCut<2; iCut++)
-      {
-        // Nhits
-        if (isGoodTrackFlowPIDsys_Nhits(femtoTrack, energy, pVtx,iCut))
-          //&& isGoodPID(femtoTrack))
-        {
-
-          weight = GetWeight(femtoTrack);
-
-          for (int iGap = 0; iGap < NEtaGaps; iGap++)
-          {
-            res2EPsqr = p_res2_EP[iGap]->GetBinContent(p_res2_EP[iGap]->FindBin(event->cent16()));
-            res2EP = TMath::Sqrt(res2EPsqr);
-            res3EPsqr = p_res3_EP[iGap]->GetBinContent(p_res3_EP[iGap]->FindBin(event->cent16()));
-            res3EP = TMath::Sqrt(res3EPsqr);
-
-            //Loop over particle species (pi,K,p)
-            i_part = -1;
-            //TPC-only
-
-            if (!femtoTrack->isTofTrack())
-            {
-              //pion id
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 0.6 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 2)
-              {
-                i_part = 0;
-              }
-              // kaon id
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 0.5 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 2)
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.4 && femtoTrack->ptot() < 0.9 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 2)
-              {
-                i_part = 2;
-              }
-              //pion id
-              if (femtoTrack->ptot() >= 0.6 && femtoTrack->ptot() < 0.7 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) > 2)
-              {
-                i_part = 0;
-              }
-              // kaon id
-              if (femtoTrack->ptot() >= 0.5 && femtoTrack->ptot() < 0.7 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) > 3)
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.9 && femtoTrack->ptot() < 1.2 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) > 3)
-              {
-                i_part = 2;
-              }
-            }
-
-            //TPC+TOF
-
-            if (isGoodPID(femtoTrack))
-            {
-              // pion id - asymmetry cut
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 3 &&
-                  femtoTrack->massSqr() >= -0.15 && femtoTrack->massSqr() < 0.1)// &&
-              {
-                i_part = 0;
-              }
-              // kaon id - asymmetry cut
-              if (femtoTrack->pt() >= 0.2 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 3 &&
-                  femtoTrack->massSqr() >= 0.2 && femtoTrack->massSqr() < 0.32)// &&
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.4 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 3 &&
-                  femtoTrack->massSqr() >= 0.75 && femtoTrack->massSqr() < 1.2)// &&
-              {
-                i_part = 2;
-              }
-
-            }
-            //}
-
-            if (i_part == -1) continue;
-
-            //EAST
-            //if (track->eta() > -1.*cutEta && track->eta() < 0.)
-            if (femtoTrack->eta() > -1. * cutEta && femtoTrack->eta() < -1. * cutEtaGap.at(iGap))
-            {
-              flow2EP = TMath::Cos(2. * (femtoTrack->phi() - Psi2WestEP[iGap])) / res2EP;
-              flow3EP = TMath::Cos(3. * (femtoTrack->phi() - Psi3WestEP[iGap])) / res3EP;
-
-              p_v2_sys_Nhits_EP[i_part][iGap][(Int_t) event->cent16()][iCut]->Fill(event->runId(), femtoTrack->pt(), flow2EP,
-                                                                      weight);
-              p_v3_sys_Nhits_EP[i_part][iGap][(Int_t) event->cent16()][iCut]->Fill(event->runId(), femtoTrack->pt(), flow3EP,
-                                                                      weight);
-            }
-            //WEST
-            if (femtoTrack->eta() < 1. * cutEta && femtoTrack->eta() > 1. * cutEtaGap.at(iGap))
-            {
-              flow2EP = TMath::Cos(2. * (femtoTrack->phi() - Psi2EastEP[iGap])) / res2EP;
-              flow3EP = TMath::Cos(3. * (femtoTrack->phi() - Psi3EastEP[iGap])) / res3EP;
-
-              p_v2_sys_Nhits_EP[i_part][iGap][(Int_t) event->cent16()][iCut]->Fill(event->runId(), femtoTrack->pt(), flow2EP,
-                                                                      weight);
-              p_v3_sys_Nhits_EP[i_part][iGap][(Int_t) event->cent16()][iCut]->Fill(event->runId(), femtoTrack->pt(), flow3EP,
-                                                                      weight);
-            }
-          }
-        }
-
-        // DCA
-        if (isGoodTrackFlowPIDsys_DCA(femtoTrack, energy, pVtx,iCut))
-          //&& isGoodPID(femtoTrack))
-        {
-
-          weight = GetWeight(femtoTrack);
-
-          for (int iGap = 0; iGap < NEtaGaps; iGap++)
-          {
-            res2EPsqr = p_res2_EP[iGap]->GetBinContent(p_res2_EP[iGap]->FindBin(event->cent16()));
-            res2EP = TMath::Sqrt(res2EPsqr);
-            res3EPsqr = p_res3_EP[iGap]->GetBinContent(p_res3_EP[iGap]->FindBin(event->cent16()));
-            res3EP = TMath::Sqrt(res3EPsqr);
-
-            //Loop over particle species (pi,K,p)
-            i_part = -1;
-            //TPC-only
-
-            if (!femtoTrack->isTofTrack())
-            {
-              //pion id
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 0.6 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 2)
-              {
-                i_part = 0;
-              }
-              // kaon id
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 0.5 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 2)
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.4 && femtoTrack->ptot() < 0.9 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 2)
-              {
-                i_part = 2;
-              }
-              //pion id
-              if (femtoTrack->ptot() >= 0.6 && femtoTrack->ptot() < 0.7 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) > 2)
-              {
-                i_part = 0;
-              }
-              // kaon id
-              if (femtoTrack->ptot() >= 0.5 && femtoTrack->ptot() < 0.7 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) > 3)
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.9 && femtoTrack->ptot() < 1.2 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) > 3)
-              {
-                i_part = 2;
-              }
-            }
-
-            //TPC+TOF
-
-            if (isGoodPID(femtoTrack))
-            {
-              // pion id - asymmetry cut
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 3 &&
-                  femtoTrack->massSqr() >= -0.15 && femtoTrack->massSqr() < 0.1)// &&
-              {
-                i_part = 0;
-              }
-              // kaon id - asymmetry cut
-              if (femtoTrack->pt() >= 0.2 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 3 &&
-                  femtoTrack->massSqr() >= 0.2 && femtoTrack->massSqr() < 0.32)// &&
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.4 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 3 &&
-                  femtoTrack->massSqr() >= 0.75 && femtoTrack->massSqr() < 1.2)// &&
-              {
-                i_part = 2;
-              }
-
-            }
-            //}
-
-            if (i_part == -1) continue;
-
-            //EAST
-            //if (track->eta() > -1.*cutEta && track->eta() < 0.)
-            if (femtoTrack->eta() > -1. * cutEta && femtoTrack->eta() < -1. * cutEtaGap.at(iGap))
-            {
-              flow2EP = TMath::Cos(2. * (femtoTrack->phi() - Psi2WestEP[iGap])) / res2EP;
-              flow3EP = TMath::Cos(3. * (femtoTrack->phi() - Psi3WestEP[iGap])) / res3EP;
-
-              p_v2_sys_DCA_EP[i_part][iGap][(Int_t) event->cent16()][iCut]->Fill(event->runId(), femtoTrack->pt(), flow2EP,
-                                                                      weight);
-              p_v3_sys_DCA_EP[i_part][iGap][(Int_t) event->cent16()][iCut]->Fill(event->runId(), femtoTrack->pt(), flow3EP,
-                                                                      weight);
-            }
-            //WEST
-            if (femtoTrack->eta() < 1. * cutEta && femtoTrack->eta() > 1. * cutEtaGap.at(iGap))
-            {
-              flow2EP = TMath::Cos(2. * (femtoTrack->phi() - Psi2EastEP[iGap])) / res2EP;
-              flow3EP = TMath::Cos(3. * (femtoTrack->phi() - Psi3EastEP[iGap])) / res3EP;
-
-              p_v2_sys_DCA_EP[i_part][iGap][(Int_t) event->cent16()][iCut]->Fill(event->runId(), femtoTrack->pt(), flow2EP,
-                                                                      weight);
-              p_v3_sys_DCA_EP[i_part][iGap][(Int_t) event->cent16()][iCut]->Fill(event->runId(), femtoTrack->pt(), flow3EP,
-                                                                      weight);
-            }
-          }
-        }
-      }
-
-      // Eta variation
-      if (isGoodTrackFlowPIDsys_Eta(femtoTrack, energy, pVtx,0))
-          //&& isGoodPID(femtoTrack))
-        {
-
-          weight = GetWeight(femtoTrack);
-
-          for (int iGap = 0; iGap < NEtaGaps; iGap++)
-          {
-            res2EPsqr = p_res2_EP[iGap]->GetBinContent(p_res2_EP[iGap]->FindBin(event->cent16()));
-            res2EP = TMath::Sqrt(res2EPsqr);
-            res3EPsqr = p_res3_EP[iGap]->GetBinContent(p_res3_EP[iGap]->FindBin(event->cent16()));
-            res3EP = TMath::Sqrt(res3EPsqr);
-
-            //Loop over particle species (pi,K,p)
-            i_part = -1;
-            //TPC-only
 
-            if (!femtoTrack->isTofTrack())
-            {
-              //pion id
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 0.6 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 2)
-              {
-                i_part = 0;
-              }
-              // kaon id
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 0.5 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 2)
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.4 && femtoTrack->ptot() < 0.9 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 2)
-              {
-                i_part = 2;
-              }
-              //pion id
-              if (femtoTrack->ptot() >= 0.6 && femtoTrack->ptot() < 0.7 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) > 2)
-              {
-                i_part = 0;
-              }
-              // kaon id
-              if (femtoTrack->ptot() >= 0.5 && femtoTrack->ptot() < 0.7 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) > 3)
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.9 && femtoTrack->ptot() < 1.2 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 2 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) > 3)
-              {
-                i_part = 2;
-              }
-            }
-
-            //TPC+TOF
-
-            if (isGoodPID(femtoTrack))
-            {
-              // pion id - asymmetry cut
-              if (femtoTrack->ptot() >= 0.2 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaPion()) < 3 &&
-                  femtoTrack->massSqr() >= -0.15 && femtoTrack->massSqr() < 0.1)// &&
-              {
-                i_part = 0;
-              }
-              // kaon id - asymmetry cut
-              if (femtoTrack->pt() >= 0.2 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaKaon()) < 3 &&
-                  femtoTrack->massSqr() >= 0.2 && femtoTrack->massSqr() < 0.32)// &&
-              {
-                i_part = 1;
-              }
-              // proton id
-              if (femtoTrack->ptot() >= 0.4 && femtoTrack->ptot() < 3.4 &&
-                  TMath::Abs(femtoTrack->nSigmaProton()) < 3 &&
-                  femtoTrack->massSqr() >= 0.75 && femtoTrack->massSqr() < 1.2)// &&
-              {
-                i_part = 2;
-              }
-
-            }
-            //}
-
-            if (i_part == -1) continue;
-
-            //EAST
-            //if (track->eta() > -1.*cutEta && track->eta() < 0.)
-            if (femtoTrack->eta() > -1. * cutEta && femtoTrack->eta() < -1. * cutEtaGap.at(iGap))
-            {
-              flow2EP = TMath::Cos(2. * (femtoTrack->phi() - Psi2WestEP[iGap])) / res2EP;
-              flow3EP = TMath::Cos(3. * (femtoTrack->phi() - Psi3WestEP[iGap])) / res3EP;
-
-              p_v2_sys_Eta_EP[i_part][iGap][(Int_t) event->cent16()]->Fill(event->runId(), femtoTrack->pt(), flow2EP,
-                                                                      weight);
-              p_v3_sys_Eta_EP[i_part][iGap][(Int_t) event->cent16()]->Fill(event->runId(), femtoTrack->pt(), flow3EP,
-                                                                      weight);
-            }
-            //WEST
-            if (femtoTrack->eta() < 1. * cutEta && femtoTrack->eta() > 1. * cutEtaGap.at(iGap))
-            {
-              flow2EP = TMath::Cos(2. * (femtoTrack->phi() - Psi2EastEP[iGap])) / res2EP;
-              flow3EP = TMath::Cos(3. * (femtoTrack->phi() - Psi3EastEP[iGap])) / res3EP;
-
-              p_v2_sys_Eta_EP[i_part][iGap][(Int_t) event->cent16()]->Fill(event->runId(), femtoTrack->pt(), flow2EP,
-                                                                      weight);
-              p_v3_sys_Eta_EP[i_part][iGap][(Int_t) event->cent16()]->Fill(event->runId(), femtoTrack->pt(), flow3EP,
-                                                                      weight);
-            }
-          }
-        }
 
     }
 
@@ -2543,24 +2186,6 @@ void FemtoDstAnalyzer_FlowPIDHadrons(const Char_t *inFile = "st_physics_12150008
       p_v2run_ZDC_West[iPID][iCent]->Write();
     }
   }
-  for (int iPID = 0; iPID < 3; iPID++)
-  {
-    for (int iGap = 0; iGap < NEtaGaps; iGap++)
-    {
-      for (int iCent = 0; iCent < 16; iCent++)
-      {
-        p_v2_sys_Eta_EP[iPID][iGap][iCent]->Write();
-        p_v3_sys_Eta_EP[iPID][iGap][iCent]->Write();
-        for (int iCut=0; iCut<2; iCut++)
-        {
-          p_v2_sys_Nhits_EP[iPID][iGap][iCent][iCut]->Write();
-          p_v3_sys_Nhits_EP[iPID][iGap][iCent][iCut]->Write();
-          p_v2_sys_DCA_EP[iPID][iGap][iCent][iCut]->Write();
-          p_v3_sys_DCA_EP[iPID][iGap][iCent][iCut]->Write();
-        }
-      }
-    }
-  }
 
   output->Close();
 

Разница между файлами не показана из-за своего большого размера
+ 2818 - 0
FemtoDstAnalyzer_FlowPIDsys1.C


+ 3 - 0
bin/CMakeLists.txt

@@ -32,6 +32,9 @@ target_link_libraries(flowCH ${ST_FEMTO_DST} ${ROOT_LIBRARIES})
 add_executable(flowPID flowPID.cpp)
 target_link_libraries(flowPID ${ST_FEMTO_DST} ${ROOT_LIBRARIES})
 
+add_executable(flowPIDsys flowPIDsys.cpp)
+target_link_libraries(flowPIDsys ${ST_FEMTO_DST} ${ROOT_LIBRARIES})
+
 # Additional options
 add_executable(pid pid.cpp)
 target_link_libraries(pid ${ST_FEMTO_DST} ${ROOT_LIBRARIES})

+ 154 - 0
bin/flowPIDsys.cpp

@@ -0,0 +1,154 @@
+#include <iostream>
+#include <stdlib.h>
+#include "FemtoDstAnalyzer_FlowPIDsys1.C"
+
+int main(int argc, char** argv)
+{
+  TString inFileName, outFileName, reCentFileName, shiftFileName, resFileName, pidFileName, gainFileName, recBBCFileName, shiftBBCFile, recZDCFileName, shiftZDCFile, resFitFileName;
+  Float_t energy;
+  if (argc < 13)
+  {
+    std::cerr << "./flowPIDsys -i INPUTFILE -o OUTPUTFILE -reCent RECENTERINGFILE -shift SHIFTCORRFILE -resolution RESOLUTIONFILE -pid PIDFITFILE  -gain GAINFILE -reCentBBC RECENTERINGFILE -shiftBBC SHIFTCORRFILE -reCentZDC RECENTERINGFILE -shiftZDC SHIFTCORRFILE -resFit RESOLUTIONFITFILE" << std::endl;
+    return 10;
+  }
+
+  for (int i=1;i<argc;i++)
+  {
+    if (std::string(argv[i]) != "-i" &&
+        std::string(argv[i]) != "-o" &&
+        std::string(argv[i]) != "-reCent" &&
+        std::string(argv[i]) != "-shift" &&
+        std::string(argv[i]) != "-resolution" &&
+        std::string(argv[i]) != "-pid" &&
+        std::string(argv[i]) != "-gain" &&
+        std::string(argv[i]) != "-reCentBBC" &&
+        std::string(argv[i]) != "-shiftBBC" &&
+        std::string(argv[i]) != "-reCentZDC" &&
+        std::string(argv[i]) != "-shiftZDC" &&
+        std::string(argv[i]) != "-resFit")
+    {
+      std::cerr << "\nUnknown parameter: " << argv[i] << std::endl;
+      return 11;
+    }
+    else
+    {
+      if (std::string(argv[i]) == "-i" && i != argc-1)
+      {
+        inFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-i" && i == argc-1)
+      {
+        std::cerr << "\nInput file was not specified!" << std::endl;
+	return 12;
+      }
+      if (std::string(argv[i]) == "-o" && i != argc-1)
+      {
+        outFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-o" && i == argc-1)
+      {
+        std::cerr << "\nOutput file was not specified!" << std::endl;
+	return 13;
+      }
+      if (std::string(argv[i]) == "-reCent" && i != argc-1)
+      {
+        reCentFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-reCent" && i == argc-1)
+      {
+        std::cerr << "\nOutput file was not specified!" << std::endl;
+	return 13;
+      }
+      if (std::string(argv[i]) == "-shift" && i != argc-1)
+      {
+        shiftFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-shift" && i == argc-1)
+      {
+        std::cerr << "\nOutput file was not specified!" << std::endl;
+	return 13;
+      }
+      if (std::string(argv[i]) == "-resolution" && i != argc-1)
+      {
+        resFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-resolution" && i == argc-1)
+      {
+        std::cerr << "\nOutput file was not specified!" << std::endl;
+	return 13;
+      }
+      if (std::string(argv[i]) == "-pid" && i != argc-1)
+      {
+        pidFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-pid" && i == argc-1)
+      {
+        std::cerr << "\nOutput file was not specified!" << std::endl;
+	return 13;
+      }
+      if (std::string(argv[i]) == "-gain" && i != argc - 1)
+      {
+        gainFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-gain" && i == argc - 1)
+      {
+        std::cerr << "\nGain file was not specified!" << std::endl;
+        return 13;
+      }
+      if (std::string(argv[i]) == "-reCentBBC" && i != argc - 1)
+      {
+        recBBCFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-reCentBBC" && i == argc - 1)
+      {
+        std::cerr << "\nRecentering file for BBC was not specified!" << std::endl;
+        return 13;
+      }
+      if (std::string(argv[i]) == "-shiftBBC" && i != argc - 1)
+      {
+        shiftBBCFile = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-shiftBBC" && i == argc - 1)
+      {
+        std::cerr << "\nShiftCorr file for BBC was not specified!" << std::endl;
+        return 13;
+      }
+      if (std::string(argv[i]) == "-reCentZDC" && i != argc - 1)
+      {
+        recZDCFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-reCentZDC" && i == argc - 1)
+      {
+        std::cerr << "\nRecentering file for ZDC was not specified!" << std::endl;
+        return 13;
+      }
+      if (std::string(argv[i]) == "-shiftZDC" && i != argc - 1)
+      {
+        shiftZDCFile = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-shiftZDC" && i == argc - 1)
+      {
+        std::cerr << "\nShiftCorr file for ZDC was not specified!" << std::endl;
+        return 13;
+      }
+      if (std::string(argv[i]) == "-resFit" && i != argc-1)
+      {
+        resFitFileName = TString(argv[++i]);
+      }
+      if (std::string(argv[i]) == "-resFit" && i == argc-1)
+      {
+        std::cerr << "\nOutput file was not specified!" << std::endl;
+	return 13;
+      }
+    }
+  }
+  if (inFileName == "" || outFileName == "" || reCentFileName == "" || shiftFileName == "" || resFileName == "" || pidFileName == "" || gainFileName == "" || recBBCFileName == "" || shiftBBCFile == "" || resFitFileName == "" || recZDCFileName == "" || shiftZDCFile == "")
+  {
+    std::cerr << "\nInput/Output file has not been set properly!" << std::endl;
+    return 14;
+  }
+
+  FemtoDstAnalyzer_FlowPIDsys1(inFileName.Data(),outFileName.Data(),reCentFileName.Data(),shiftFileName.Data(),resFileName.Data(), gainFileName.Data(), recBBCFileName.Data(), shiftBBCFile.Data(), recZDCFileName.Data(), shiftZDCFile.Data(), resFitFileName.Data(),pidFileName.Data());
+
+  return 0;
+}