//________________________________________________________________________
AliAnalysisTaskBF::AliAnalysisTaskBF(const char *name)
- : AliAnalysisTaskSE(name),
- fBalance(0),
- fList(0),
- fHistEventStats(0),
- fESDtrackCuts(0),
- fVxMax(0.3),
- fVyMax(0.3),
- fVzMax(10.) {
+: AliAnalysisTaskSE(name),
+ fBalance(0),
+ fList(0),
+ fHistEventStats(0),
+ fHistVx(0),
+ fHistVy(0),
+ fHistVz(0),
+ fESDtrackCuts(0),
+ fUseOfflineTrigger(kFALSE),
+ fVxMax(0.3),
+ fVyMax(0.3),
+ fVzMax(10.) {
// Constructor
// Define input and output slots here
fBalance->SetInterval(-0.9,0.9);
}
+ //QA list
fList = new TList();
fList->SetName("listQA");
+ //Event stats.
TString gCutName[4] = {"Total","Offline trigger",
"Vertex","Analyzed"};
fHistEventStats = new TH1F("fHistEventStats",
fHistEventStats->GetXaxis()->SetBinLabel(i,gCutName[i-1].Data());
fList->Add(fHistEventStats);
+ //Vertex distributions
+ fHistVx = new TH1F("fHistVx","Primary vertex distribution - x coordinate;V_{x} (cm);Entries",100,-0.5,0.5);
+ fList->Add(fHistVx);
+ fHistVy = new TH1F("fHistVy","Primary vertex distribution - y coordinate;V_{y} (cm);Entries",100,-0.5,0.5);
+ fList->Add(fHistVy);
+ fHistVz = new TH1F("fHistVz","Primary vertex distribution - z coordinate;V_{z} (cm);Entries",100,-20.,20.);
+ fList->Add(fHistVz);
+
if(fESDtrackCuts) fList->Add(fESDtrackCuts);
// Post output data.
}
fHistEventStats->Fill(1); //all events
- Bool_t isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+ Bool_t isSelected = kTRUE;
+ if(fUseOfflineTrigger)
+ isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
if(isSelected) {
fHistEventStats->Fill(2); //triggered events
if(TMath::Abs(vertex->GetYv()) < fVyMax) {
if(TMath::Abs(vertex->GetZv()) < fVzMax) {
fHistEventStats->Fill(4); //analayzed events
-
- Printf("There are %d tracks in this event", gESD->GetNumberOfTracks());
+ fHistVx->Fill(vertex->GetXv());
+ fHistVy->Fill(vertex->GetYv());
+ fHistVz->Fill(vertex->GetZv());
+
+ //Printf("There are %d tracks in this event", gESD->GetNumberOfTracks());
for (Int_t iTracks = 0; iTracks < gESD->GetNumberOfTracks(); iTracks++) {
AliESDtrack* track = gESD->GetTrack(iTracks);
if (!track) {
#include <TObjArray.h>
#include <TGraphErrors.h>
#include <TString.h>
+#include <TH1F.h>
#include "AliVParticle.h"
#include "AliMCParticle.h"
TObject(),
fAnalysisLevel("ESD"), fNumberOfBins(0),
fAnalysisType(0), fAnalyzedEvents(0), fP2Start(0),
- fP2Stop(0), fP2Step(0), fNn(0), fNp(0) {
+ fP2Stop(0), fP2Step(0), fNn(0), fNp(0),
+ fHistfNnn(new TH1F("fHistfNnn","(--) component;;Entries",
+ fNumberOfBins,fP2Start,fP2Stop)),
+ fHistfNpp(new TH1F("fHistfNpp","(++) component;;Entries",
+ fNumberOfBins,fP2Start,fP2Stop)),
+ fHistfNpn(new TH1F("fHistfNpn","(+-) component;;Entries",
+ fNumberOfBins,fP2Start,fP2Stop)) {
// Default constructor
for(Int_t i = 0; i < MAXIMUM_NUMBER_OF_STEPS; i++) {
fNpp[i] = .0;
fB[i] = 0.0;
ferror[i] = 0.0;
}
+
+ switch(fAnalysisType) {
+ case 0:
+ fHistfNnn->GetXaxis()->SetTitle("#Delta y");
+ fHistfNpp->GetXaxis()->SetTitle("#Delta y");
+ fHistfNpn->GetXaxis()->SetTitle("#Delta y");
+ break;
+ case 1:
+ fHistfNnn->GetXaxis()->SetTitle("#Delta #eta");
+ fHistfNpp->GetXaxis()->SetTitle("#Delta #eta");
+ fHistfNpn->GetXaxis()->SetTitle("#Delta #eta");
+ break;
+ case 2:
+ fHistfNnn->GetXaxis()->SetTitle("q_{long} (GeV/c)");
+ fHistfNpp->GetXaxis()->SetTitle("q_{long} (GeV/c)");
+ fHistfNpn->GetXaxis()->SetTitle("q_{long} (GeV/c)");
+ break;
+ case 3:
+ fHistfNnn->GetXaxis()->SetTitle("q_{out} (GeV/c)");
+ fHistfNpp->GetXaxis()->SetTitle("q_{out} (GeV/c)");
+ fHistfNpn->GetXaxis()->SetTitle("q_{out} (GeV/c)");
+ break;
+ case 4:
+ fHistfNnn->GetXaxis()->SetTitle("q_{side} (GeV/c)");
+ fHistfNpp->GetXaxis()->SetTitle("q_{side} (GeV/c)");
+ fHistfNpn->GetXaxis()->SetTitle("q_{side} (GeV/c)");
+ break;
+ case 5:
+ fHistfNnn->GetXaxis()->SetTitle("q_{inv.} (GeV/c)");
+ fHistfNpp->GetXaxis()->SetTitle("q_{inv.} (GeV/c)");
+ fHistfNpn->GetXaxis()->SetTitle("q_{inv.} (GeV/c)");
+ break;
+ case 6:
+ fHistfNnn->GetXaxis()->SetTitle("#Delta #phi");
+ fHistfNpp->GetXaxis()->SetTitle("#Delta #phi");
+ fHistfNpn->GetXaxis()->SetTitle("#Delta #phi");
+ break;
+ default:
+ break;
+ }
}
//____________________________________________________________________//
fNumberOfBins(p2Bins), fAnalysisType(0),
fAnalyzedEvents(0), fP2Start(p2Start), fP2Stop(p2Stop),
fP2Step(TMath::Abs(fP2Start - fP2Stop) / (Double_t)fNumberOfBins),
- fNn(0), fNp(0) {
+ fNn(0), fNp(0),
+ fHistfNnn(new TH1F("fHistfNnn","(--) component;;Entries",
+ fNumberOfBins,fP2Start,fP2Stop)),
+ fHistfNpp(new TH1F("fHistfNpp","(++) component;;Entries",
+ fNumberOfBins,fP2Start,fP2Stop)),
+ fHistfNpn(new TH1F("fHistfNpn","(+-) component;;Entries",
+ fNumberOfBins,fP2Start,fP2Stop)) {
// Constructor
for(Int_t i = 0; i < MAXIMUM_NUMBER_OF_STEPS; i++) {
fNpp[i] = .0;
fB[i] = 0.0;
ferror[i] = 0.0;
}
+
+ switch(fAnalysisType) {
+ case 0:
+ fHistfNnn->GetXaxis()->SetTitle("#Delta y");
+ fHistfNpp->GetXaxis()->SetTitle("#Delta y");
+ fHistfNpn->GetXaxis()->SetTitle("#Delta y");
+ break;
+ case 1:
+ fHistfNnn->GetXaxis()->SetTitle("#Delta #eta");
+ fHistfNpp->GetXaxis()->SetTitle("#Delta #eta");
+ fHistfNpn->GetXaxis()->SetTitle("#Delta #eta");
+ break;
+ case 2:
+ fHistfNnn->GetXaxis()->SetTitle("q_{long} (GeV/c)");
+ fHistfNpp->GetXaxis()->SetTitle("q_{long} (GeV/c)");
+ fHistfNpn->GetXaxis()->SetTitle("q_{long} (GeV/c)");
+ break;
+ case 3:
+ fHistfNnn->GetXaxis()->SetTitle("q_{out} (GeV/c)");
+ fHistfNpp->GetXaxis()->SetTitle("q_{out} (GeV/c)");
+ fHistfNpn->GetXaxis()->SetTitle("q_{out} (GeV/c)");
+ break;
+ case 4:
+ fHistfNnn->GetXaxis()->SetTitle("q_{side} (GeV/c)");
+ fHistfNpp->GetXaxis()->SetTitle("q_{side} (GeV/c)");
+ fHistfNpn->GetXaxis()->SetTitle("q_{side} (GeV/c)");
+ break;
+ case 5:
+ fHistfNnn->GetXaxis()->SetTitle("q_{inv.} (GeV/c)");
+ fHistfNpp->GetXaxis()->SetTitle("q_{inv.} (GeV/c)");
+ fHistfNpn->GetXaxis()->SetTitle("q_{inv.} (GeV/c)");
+ break;
+ case 6:
+ fHistfNnn->GetXaxis()->SetTitle("#Delta #phi");
+ fHistfNpp->GetXaxis()->SetTitle("#Delta #phi");
+ fHistfNpn->GetXaxis()->SetTitle("#Delta #phi");
+ break;
+ default:
+ break;
+ }
}
//____________________________________________________________________//
fP2Stop(balance.fP2Stop),
fP2Step(balance.fP2Step),
fNn(balance.fNn),
- fNp(balance.fNp) {
+ fNp(balance.fNp),
+ fHistfNnn(balance.fHistfNnn),
+ fHistfNpp(balance.fHistfNpp),
+ fHistfNpn(balance.fHistfNpn) {
//copy constructor
for(Int_t i = 0; i < MAXIMUM_NUMBER_OF_STEPS; i++) {
fNpp[i] = .0;
//____________________________________________________________________//
AliBalance::~AliBalance() {
// Destructor
+ if(fHistfNnn) delete fHistfNnn;
+ if(fHistfNpp) delete fHistfNpp;
+ if(fHistfNpn) delete fHistfNpn;
}
//____________________________________________________________________//
}
//____________________________________________________________________//
-const char* AliBalance::GetAnalysisType() {
+void AliBalance::PrintAnalysisSettings() {
//0:y - 1:eta - 2:Qlong - 3:Qout - 4:Qside - 5:Qinv - 6:phi
TString analysisType;
switch(fAnalysisType) {
default:
break;
}
- analysisType += "\nInterval: ";
- analysisType += fP2Start; analysisType += " - "; analysisType += fP2Stop;
- analysisType += "\nSteps: "; analysisType += fP2Step;
- analysisType += "\nBins: "; analysisType += fNumberOfBins;
-
- return analysisType.Data();
+
+ Printf("======================================");
+ Printf("Analysis level: %s",fAnalysisLevel.Data());
+ Printf("Analysis type: %s",analysisType.Data());
+ Printf("Analyzed interval (min.): %lf",fP2Start);
+ Printf("Analyzed interval (max.): %lf",fP2Stop);
+ Printf("Number of bins: %d",fNumberOfBins);
+ Printf("Step: %lf",fP2Step);
+ Printf("======================================");
}
//____________________________________________________________________//
gr->GetYaxis()->SetTitle("B(#Delta #eta)");
}
if(fAnalysisType==2) {
- gr->GetXaxis()->SetTitle("Q_{long} [GeV]");
- gr->GetYaxis()->SetTitle("B(Q_{long})");
+ gr->GetXaxis()->SetTitle("q_{long} (GeV/c)");
+ gr->GetYaxis()->SetTitle("B(q_{long}) [(GeV/c)^{-1}]");
}
if(fAnalysisType==3) {
- gr->GetXaxis()->SetTitle("Q_{out} [GeV]");
- gr->GetYaxis()->SetTitle("B(Q_{out})");
+ gr->GetXaxis()->SetTitle("q_{out} (GeV/c)");
+ gr->GetYaxis()->SetTitle("B(q_{out}) [(GeV/c)^{-1}]");
}
if(fAnalysisType==4) {
- gr->GetXaxis()->SetTitle("Q_{side} [GeV]");
- gr->GetYaxis()->SetTitle("B(Q_{side})");
+ gr->GetXaxis()->SetTitle("q_{side} (GeV/c)");
+ gr->GetYaxis()->SetTitle("B(q_{side}) [(GeV/c)^{-1}]");
}
if(fAnalysisType==5) {
- gr->GetXaxis()->SetTitle("Q_{inv} [GeV]");
- gr->GetYaxis()->SetTitle("B(Q_{inv})");
+ gr->GetXaxis()->SetTitle("q_{inv} (GeV/c)");
+ gr->GetYaxis()->SetTitle("B(q_{inv}) [(GeV/c)^{-1}]");
}
if(fAnalysisType==6) {
gr->GetXaxis()->SetTitle("#Delta #phi");