#include "AliESDCentrality.h"
#include <iostream>
+#include "AliAnalysisMultPbCentralitySelector.h"
using namespace std;
AliAnalysisTaskMultPbTracks::AliAnalysisTaskMultPbTracks()
: AliAnalysisTaskSE("TaskMultPbTracks"),
- fESD(0),fHistoManager(0),fCentrBin(0),fCentralityEstimator(0),fTrackCuts(0),fTrackCutsNoDCA(0),fIsMC(0)
+ fESD(0),fHistoManager(0),fCentrSelector(0),fTrackCuts(0),fTrackCutsNoDCA(0),fIsMC(0)
{
// constructor
DefineOutput(1, AliAnalysisMultPbTrackHistoManager::Class());
DefineOutput(2, AliESDtrackCuts::Class());
- // DefineOutput(3, AliAnalysisMultPbCentralitySelector::Class());
+ DefineOutput(3, AliAnalysisMultPbCentralitySelector::Class());
fHistoManager = new AliAnalysisMultPbTrackHistoManager("histoManager","Hitograms, Multiplicity, Track analysis");
if(fIsMC) fHistoManager->SetSuffix("MC");
}
AliAnalysisTaskMultPbTracks::AliAnalysisTaskMultPbTracks(const char * name)
: AliAnalysisTaskSE(name),
- fESD(0),fHistoManager(0),fCentrBin(0),fCentralityEstimator(0),fTrackCuts(0),fTrackCutsNoDCA(0),fIsMC(0)
+ fESD(0),fHistoManager(0),fCentrSelector(0),fTrackCuts(0),fTrackCutsNoDCA(0),fIsMC(0)
{
//
// Standard constructur which should be used
DefineOutput(1, AliAnalysisMultPbTrackHistoManager::Class());
DefineOutput(2, AliESDtrackCuts::Class());
- // DefineOutput(3, AliAnalysisMultPbCentralitySelector::Class());
+ DefineOutput(3, AliAnalysisMultPbCentralitySelector::Class());
fHistoManager = new AliAnalysisMultPbTrackHistoManager("histoManager","Hitograms, Multiplicity, Track analysis");
if(fIsMC) fHistoManager->SetSuffix("MC");
}
AliAnalysisTaskMultPbTracks::AliAnalysisTaskMultPbTracks(const AliAnalysisTaskMultPbTracks& obj) :
- AliAnalysisTaskSE(obj) ,fESD (0), fHistoManager(0), fCentrBin(0), fCentralityEstimator(0),fTrackCuts(0),fTrackCutsNoDCA(0),fIsMC(0)
+ AliAnalysisTaskSE(obj) ,fESD (0), fHistoManager(0), fCentrSelector(0), fTrackCuts(0),fTrackCutsNoDCA(0),fIsMC(0)
{
//copy ctor
fESD = obj.fESD ;
fHistoManager= obj.fHistoManager;
- fCentrBin = obj.fCentrBin;
- fCentralityEstimator = obj.fCentralityEstimator;
fTrackCuts = obj.fTrackCuts;
fTrackCutsNoDCA = obj.fTrackCutsNoDCA;
+ fCentrSelector = obj.fCentrSelector;
}
/* PostData(0) is taken care of by AliAnalysisTaskSE */
PostData(1,fHistoManager);
PostData(2,fTrackCuts);
- // PostData(3,fCentralityEstimator);
+ PostData(3,fCentrSelector);
// Cache histogram pointers
static TH3D * hTracks [AliAnalysisMultPbTrackHistoManager::kNHistos];
hDCA[AliAnalysisMultPbTrackHistoManager::kHistoRecSecMat] = fHistoManager->GetHistoDCA(AliAnalysisMultPbTrackHistoManager::kHistoRecSecMat );
hDCA[AliAnalysisMultPbTrackHistoManager::kHistoRecSecWeak] = fHistoManager->GetHistoDCA(AliAnalysisMultPbTrackHistoManager::kHistoRecSecWeak);
- hNTracks[AliAnalysisMultPbTrackHistoManager::kHistoGen] = fHistoManager->GetHistoMult(AliAnalysisMultPbTrackHistoManager::kHistoGen );
+ hNTracks[AliAnalysisMultPbTrackHistoManager::kHistoGen] = fHistoManager->GetHistoMult(AliAnalysisMultPbTrackHistoManager::kHistoGen );
+ hNTracks[AliAnalysisMultPbTrackHistoManager::kHistoRec] = fHistoManager->GetHistoMult(AliAnalysisMultPbTrackHistoManager::kHistoRec );
fESD = dynamic_cast<AliESDEvent*>(fInputEvent);
if (strcmp(fESD->ClassName(),"AliESDEvent")) {
fHistoManager->GetHistoStats()->Fill(AliAnalysisMultPbTrackHistoManager::kStatAll);
// Centrality selection
- // Bool_t isCentralitySelected = fCentrSelector->IsSelected(fESD);
- // if(!isCentralitySelected) return;
-
- AliESDCentrality *centrality = fESD->GetCentrality();
- if(!centrality) {
- AliFatal("Centrality object not available");
- }
- else {
- Int_t centrBin = centrality->GetCentralityClass5(fCentralityEstimator.Data()) ;
+ Bool_t isCentralitySelected = fCentrSelector->IsCentralityBinSelected(fESD,fTrackCuts);
+ if(!isCentralitySelected) return;
+
+ // AliESDCentrality *centrality = fESD->GetCentrality();
+ // if(!centrality) {
+ // AliFatal("Centrality object not available");
+ // }
+ // else {
+ // Int_t centrBin = centrality->GetCentralityClass5(fCentralityEstimator.Data()) ;
- if (centrBin != fCentrBin && fCentrBin != -1) return;
- }
+ // if (centrBin != fCentrBin && fCentrBin != -1) return;
+ // }
fHistoManager->GetHistoStats()->Fill(AliAnalysisMultPbTrackHistoManager::kStatCentr);
// loop on tracks
Int_t ntracks = fESD->GetNumberOfTracks();
-
+ Int_t acceptedTracks = 0;
for (Int_t itrack = 0; itrack<ntracks; itrack++) {
AliESDtrack * esdTrack = fESD->GetTrack(itrack);
Bool_t accepted = fTrackCuts->AcceptTrack(esdTrack);
Bool_t acceptedNoDCA = fTrackCutsNoDCA->AcceptTrack(esdTrack);
+ if(accepted) acceptedTracks++;
+
// Compute weighted offset
// TODO: other choiches for the DCA?
Double_t b = fESD->GetMagneticField();
}
+ // cout << acceptedTracks << endl;
+
+ hNTracks[AliAnalysisMultPbTrackHistoManager::kHistoRec] ->Fill(acceptedTracks);
}