AliPWG4HighPtQAMC::AliPWG4HighPtQAMC(): AliAnalysisTask("AliPWG4HighPtQAMC", ""),
fESD(0),
+ fMC(0),
fTrackCuts(0),
fTrackCutsITS(0),
+ fPtMax(100.),
fNEventAll(0),
fNEventSel(0),
fPtAll(0),
AliPWG4HighPtQAMC::AliPWG4HighPtQAMC(const char *name):
AliAnalysisTask(name, ""),
fESD(0),
+ fMC(0),
fTrackCuts(),
fTrackCutsITS(),
+ fPtMax(100.),
fNEventAll(0),
fNEventSel(0),
fPtAll(0),
//________________________________________________________________________
void AliPWG4HighPtQAMC::ConnectInputData(Option_t *)
{
- // Connect ESD here
+ // Connect ESD and MC event handler here
// Called once
AliDebug(2,Form(">> AliPWG4HighPtSpectra::ConnectInputData \n"));
TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
if (!tree) {
- AliDebug(2,Form("ERROR: Could not read chain from input slot 0"));
- } else {
-
- AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
-
- if (!esdH) {
- AliDebug(2,Form("ERROR: Could not get ESDInputHandler"));
- } else
- fESD = esdH->GetEvent();
+ AliDebug(2,Form( "ERROR: Could not read chain from input slot 0 \n"));
+ return;
}
+
+ AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
+
+ if (!esdH) {
+ AliDebug(2,Form("ERROR: Could not get ESDInputHandler"));
+ return;
+ } else
+ fESD = esdH->GetEvent();
+
+ AliMCEventHandler *eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
+ if (!eventHandler) {
+ AliDebug(2,Form( "ERROR: Could not retrieve MC event handler \n"));
+ }
+ else
+ fMC = eventHandler->MCEvent();
+
}
//________________________________________________________________________
Int_t fgkNPtBins=98;
Float_t fgkPtMin=2.;
- Float_t fgkPtMax=100.;
+ Float_t fgkPtMax=fPtMax;
Int_t fgkResPtBins=80;
fNEventAll = new TH1F("fNEventAll","NEventAll",1,-0.5,0.5);
// Main loop
// Called for each event
AliDebug(2,Form(">> AliPWG4HighPtQATPConly::Exec \n"));
-
// All events without selection
fNEventAll->Fill(0.);
if (!fESD) {
- AliDebug(2,Form("ERROR: fESD not available"));
+ AliDebug(2,Form("ERROR: fESD not available\n"));
PostData(0, fHistList);
PostData(1, fHistListITS);
return;
return;
}
- AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
- if (!eventHandler) {
- AliDebug(2,Form("ERROR: Could not retrieve MC event handler"));
- PostData(0, fHistList);
- PostData(1, fHistListITS);
- return;
- }
-
- AliMCEvent* mcEvent = eventHandler->MCEvent();
- if (!mcEvent) {
- AliDebug(2,Form("ERROR: Could not retrieve MC event"));
- PostData(0, fHistList);
- PostData(1, fHistListITS);
- return;
- }
-
- AliDebug(2,Form("MC particles: %d", mcEvent->GetNumberOfTracks()));
-
- if (!fESD) {
- AliDebug(2,Form("ERROR: fESD not available"));
+ AliStack* stack = 0x0;
+
+ if(fMC) {
+ AliDebug(2,Form("MC particles: %d", fMC->GetNumberOfTracks()));
+ stack = fMC->Stack(); //Particles Stack
+ AliDebug(2,Form("MC particles stack: %d", stack->GetNtrack()));
+ } else {
+ AliDebug(2,Form("ERROR: Could not retrieve MC eventHandler"));
PostData(0, fHistList);
PostData(1, fHistListITS);
return;
}
- AliStack* stack = mcEvent->Stack(); //Particles Stack
-
- AliDebug(2,Form("MC particles stack: %d", stack->GetNtrack()));
-
const AliESDVertex *vtx = fESD->GetPrimaryVertex();
// Need vertex cut
TString vtxName(vtx->GetName());
double primVtx[3];
vtx->GetXYZ(primVtx);
- // printf("primVtx: %g %g %g \n",primVtx[0],primVtx[1],primVtx[2]);
if(TMath::Sqrt(primVtx[0]*primVtx[0] + primVtx[1]*primVtx[1])>1. || TMath::Abs(primVtx[2]>10.)){
// Post output data
PostData(0, fHistList);
}
Int_t nTracks = fESD->GetNumberOfTracks();
- AliDebug(2,Form("nTracks %d", nTracks));
+ AliDebug(2,Form("nTracks ESD%d", nTracks));
int nMCtracks = stack->GetNtrack();