leadingpTBins[i] = 0.5 * i;
// pT,lead binning 2
- const Int_t kNLeadingpTBins2 = 9;
- Double_t leadingpTBins2[] = { 0.5, 1.0, 2.0, 3.0, 4.0, 6.0, 8.0, 10.0, 15.0, 20.0 };
+ const Int_t kNLeadingpTBins2 = 8;
+ Double_t leadingpTBins2[] = { 0.5, 1.0, 2.0, 3.0, 4.0, 6.0, 8.0, 10.0, 15.0 };
// phi,lead; this binning starts at -pi/2 and is modulo 3
const Int_t kNLeadingPhiSpacing = 72;
// vtx-z axis
const Int_t kNVertexBins = 7;
Double_t vertexBins[] = { -7, -5, -3, -1, 1, 3, 5, 7 };
+ const Int_t kNVertexBins2 = 10;
+ Double_t vertexBins2[] = { -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10 };
- Bool_t useVtxAxis = kFALSE;
+ Int_t useVtxAxis = 0;
Bool_t useTTRBinning = kFALSE;
Bool_t useCourseCentralityBinning = kFALSE;
else if (TString(reqHist).BeginsWith("NumberDensityPhiCentrality"))
{
if (TString(reqHist).Contains("Vtx"))
- useVtxAxis = kTRUE;
+ useVtxAxis = 1;
+ if (TString(reqHist).Contains("Vtx10"))
+ useVtxAxis = 2;
if (TString(reqHist).Contains("TTR"))
useTTRBinning = kTRUE;
if (TString(reqHist).Contains("Course"))
trackBins[4] = (useTTRBinning) ? leadingPhiBinsTTR : leadingPhiBins;
trackAxisTitle[4] = "#Delta#varphi (rad.)";
- if (useVtxAxis)
+ if (useVtxAxis > 0)
{
nTrackVars = 6;
- iTrackBin[5] = kNVertexBins;
- trackBins[5] = vertexBins;
+ iTrackBin[5] = (useVtxAxis == 1) ? kNVertexBins : kNVertexBins2;
+ trackBins[5] = (useVtxAxis == 1) ? vertexBins : vertexBins2;
trackAxisTitle[5] = "z-vtx (cm)";
}
}
MultiplyHistograms(grid, target, trackCorrection, var1, var2);
- Printf("AliUEHist::CorrectTracks: Corrected from %f to %f entries. Correction histogram: %f entries (integral: %f)", entriesBefore, target->GetEntries(), (trackCorrection) ? trackCorrection->GetEntries() : -1.0, (trackCorrection) ? trackCorrection->Integral() : -1.0);
+ Printf("AliUEHist::CorrectTracks: Corrected from %f (step %d) to %f (step %d) entries. Correction histogram: %f entries (integral: %f)", entriesBefore, step1, target->GetEntries(), step2, (trackCorrection) ? trackCorrection->GetEntries() : -1.0, (trackCorrection) ? trackCorrection->Integral() : -1.0);
}
//____________________________________________________________________
MultiplyHistograms(grid->GetGrid(), target->GetGrid(), eventCorrection, var1, var2);
- Printf("AliUEHist::CorrectEvents: Corrected from %f to %f entries. Correction histogram: %f entries (integral: %f)", entriesBefore, target->GetEntries(), (eventCorrection) ? eventCorrection->GetEntries() : -1.0, (eventCorrection) ? eventCorrection->Integral() : -1.0);
+ Printf("AliUEHist::CorrectEvents: Corrected from %f (step %d) to %f (step %d) entries. Correction histogram: %f entries (integral: %f)", entriesBefore, step1, target->GetEntries(), step2, (eventCorrection) ? eventCorrection->GetEntries() : -1.0, (eventCorrection) ? eventCorrection->Integral() : -1.0);
}
//____________________________________________________________________
if (fTrackHist[0]->GetNVar() <= 5)
{
// do corrections copying between steps
+ CFStep step = kCFStepReconstructed;
+// CFStep step = kCFStepBiasStudy;
// copy
- CorrectTracks(kCFStepReconstructed, kCFStepTracked, 0, -1);
- CorrectEvents(kCFStepReconstructed, kCFStepTracked, 0, -1);
+ CorrectTracks(step, kCFStepTracked, 0, -1);
+ CorrectEvents(step, kCFStepTracked, 0, -1);
// Dont use eta in the following, because it is a Delta-eta axis
}
}
- new TCanvas; correlatedContamination->DrawCopy("COLZ");
+// new TCanvas; correlatedContamination->DrawCopy("COLZ");
// CorrectCorrelatedContamination(kCFStepTrackedOnlyPrim, 0, correlatedContamination);
Printf("\n\n\nWARNING ---> SKIPPING CorrectCorrelatedContamination\n\n\n");
// in bins of pT and centrality
TH1* efficiencyCorrection = corrections->GetTrackingEfficiencyCorrectionCentrality();
- new TCanvas; efficiencyCorrection->DrawCopy("COLZ");
+// new TCanvas; efficiencyCorrection->DrawCopy("COLZ");
// use kCFStepAnaTopology as a temporary step
CorrectTracks(kCFStepTrackedOnlyPrim, kCFStepAnaTopology, efficiencyCorrection, 1, 3);
delete efficiencyCorrection;
// in bins of p,T
TH1* contamination = corrections->GetTrackingContamination(1);
- if (1)
+ if (0)
{
Printf("Applying contamination enhancement");
for (Int_t step=0; step<fEventHist->GetNStep(); step++)
{
- Printf("Copying step %d", step);
+ Printf("Ev: Copying step %d", step);
THnSparse* target = fEventHist->GetGrid(step)->GetGrid();
THnSparse* source = from->fEventHist->GetGrid(step)->GetGrid();
target->Reset();
target->RebinnedAdd(source);
}
+
+ for (Int_t step=0; step<fTrackHistEfficiency->GetNStep(); step++)
+ {
+ Printf("Eff: Copying step %d", step);
+ THnSparse* target = fTrackHistEfficiency->GetGrid(step)->GetGrid();
+ THnSparse* source = from->fTrackHistEfficiency->GetGrid(step)->GetGrid();
+
+ target->Reset();
+ target->RebinnedAdd(source);
+ }
}
//____________________________________________________________________
#include "AliEventPoolManager.h"
#include "AliESDZDC.h"
+#include "AliESDtrackCuts.h"
////////////////////////////////////////////////////////////////////////
// Initialize class to handle histograms
TString histType = "4R";
- if (fUseVtxAxis)
+ if (fUseVtxAxis == 1)
histType = "5R";
+ else if (fUseVtxAxis == 2)
+ histType = "6R";
if (fCourseCentralityBinning)
histType += "C";
fHistos = new AliUEHistograms("AliUEHistogramsSame", histType);
fListOfHistos->Add(new TH1F("eventStat", ";;events", 4, -0.5, 3.5));
fListOfHistos->Add(new TH2F("mixedDist", ";centrality;tracks;events", 101, 0, 101, 200, 0, fMixingTracks * 1.5));
fListOfHistos->Add(new TH1F("pids", ";pdg;tracks", 2001, -1000.5, 1000.5));
+ fListOfHistos->Add(new TH2F("referenceMultiplicity", ";centrality;tracks;events", 101, 0, 101, 200, 0, 400));
PostData(0,fListOfHistos);
delete tracks;
return;
}
+
+ // reference multiplicity
+ Int_t referenceMultiplicity = -1;
+ if (fESD)
+ referenceMultiplicity = AliESDtrackCuts::GetReferenceMultiplicity(fESD);
+ ((TH2F*) fListOfHistos->FindObject("referenceMultiplicity"))->Fill(centrality, referenceMultiplicity);
// create a list of reduced objects. This speeds up processing and reduces memory consumption for the event pool
TObjArray* tracksClone = CloneAndReduceTrackList(tracks);
virtual void SetCompareCentralities(Bool_t flag) { fCompareCentralities = flag; }
virtual void SetTwoTrackEfficiencyStudy(Bool_t flag) { fTwoTrackEfficiencyStudy = flag; }
virtual void SetTwoTrackEfficiencyCut(Float_t value = 0.02) { fTwoTrackEfficiencyCut = value; }
- virtual void SetUseVtxAxis(Bool_t flag) { fUseVtxAxis = flag; }
+ virtual void SetUseVtxAxis(Int_t flag) { fUseVtxAxis = flag; }
virtual void SetCourseCentralityBinning(Bool_t flag) { fCourseCentralityBinning = flag; }
virtual void SetSkipTrigger(Bool_t flag) { fSkipTrigger = flag; }
virtual void SetInjectedSignals(Bool_t flag) { fInjectedSignals = flag; }
Bool_t fCompareCentralities; // use the z vtx axis for a centrality comparison
Bool_t fTwoTrackEfficiencyStudy; // two-track efficiency study on
Float_t fTwoTrackEfficiencyCut; // enable two-track efficiency cut
- Bool_t fUseVtxAxis; // use z vtx as axis (needs 7 times more memory!)
+ Int_t fUseVtxAxis; // use z vtx as axis (needs 7-10 times more memory!)
Bool_t fCourseCentralityBinning; // less centrality bins
Bool_t fSkipTrigger; // skip trigger selection
Bool_t fInjectedSignals; // check header to skip injected signals in MC
Bool_t fFillpT; // fill sum pT instead of number density
- ClassDef( AliAnalysisTaskPhiCorrelations, 14); // Analysis task for delta phi correlations
+ ClassDef( AliAnalysisTaskPhiCorrelations, 15); // Analysis task for delta phi correlations
};
class AliDPhiBasicParticle : public AliVParticle
-AliAnalysisTaskPhiCorrelations *AddTaskPhiCorrelations(Int_t analysisMode = 0, Bool_t ppRun = kFALSE, const char* outputFileName = 0, Bool_t eventMixing = kTRUE, Bool_t zVtxAxis = kFALSE, const char* containerName = "histosPhiCorrelations", const char* folderName = "PWG4_PhiCorrelations")\r
+AliAnalysisTaskPhiCorrelations *AddTaskPhiCorrelations(Int_t analysisMode = 0, Bool_t ppRun = kFALSE, const char* outputFileName = 0, Bool_t eventMixing = kTRUE, Int_t zVtxAxis = 0, const char* containerName = "histosPhiCorrelations", const char* folderName = "PWG4_PhiCorrelations")\r
{\r
// Get the pointer to the existing analysis manager via the static access method.\r
//==============================================================================\r
\r
Printf("AddTaskPhiCorrelations:\n\n\n++++++++++ Using bit %d ++++++++++++\n\n\n", bit);\r
\r
- ana->SetTrackEtaCut(1.0);\r
-// ana->SetTrackEtaCut(0.8);\r
- ana->SetPtMin(0.15);\r
-// ana->SetPtMin(1.0);\r
+ ana->SetTrackEtaCut(0.9);\r
+\r
+ ana->SetPtMin(0.5);\r
+\r
//ana->SetEventSelectionBit(AliAnalysisHelperJetTasks::kIsPileUp);\r
ana->SetReduceMemoryFootprint(kTRUE);\r
//ana->SetSelectCharge(2);\r
ana->SetEventMixing(eventMixing);\r
ana->SetUseVtxAxis(zVtxAxis);\r
\r
+ ana->SetZVertex(10);\r
+ \r
// ana->SetSkipTrigger(kTRUE);\r
// ana->SetTriggerRestrictEta(0.5);\r
// ana->SetEtaOrdering(kTRUE);\r
\r
// ana->SetFillpT(kTRUE);\r
\r
+// ana->SetInjectedSignals(kTRUE);\r
+// ana->SetRejectCentralityOutliers();\r
+ \r
+ //pA\r
+/* ana->SetEventSelectionBit(AliVEvent::kCINT5);\r
+ ana->SetTwoTrackEfficiencyCut();\r
+ ana->SetStepsFillSkip(kFALSE, kTRUE);*/\r
+// ana->SetCentralityMethod("ZNA_MANUAL");\r
+// ana->SetCentralityMethod("TRACKS_MANUAL");\r
+// ana->SetCourseCentralityBinning(kTRUE); \r
+// ana->SetMixingTracks(1);\r
+ \r
if (0)\r
{\r
Printf("AddTaskPhiCorrelations:\n\n\n++++++++++ Using SPD centrality selection ++++++++++++\n\n\n");\r