#include "AliGenEventHeader.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
+#include "AliGenEventHeaderTunedPbPb.h"
ClassImp(AliForwardMCFlowTaskQC)
#if 0
fBinsForwardTR(), // List of FMDTR analysis objects
fBinsCentralTR(), // List of SPDTR analysis objects
fBinsMC(), // List of MC particle analysis objects
+ fAODMCHeader(), // MC Header
fHistdNdedpMC(), // MC particle d^2N/detadphi histogram
fHistFMDMCCorr(), // FMD MC correlation
fHistSPDMCCorr(), // SPD MC correlation
fBinsForwardTR(), // List of FMDTR analysis objects
fBinsCentralTR(), // List of SPDTR analysis objects
fBinsMC(), // List of MC particles analysis objects
+ fAODMCHeader(0), // MC Header
fHistdNdedpMC(), // MC particles d^2N/detadphi histogram
fHistFMDMCCorr(), // FMD MC correlation
fHistSPDMCCorr(), // SPD MC correlation
fBinsForwardTR(), // List of FMDTR analysis objects
fBinsCentralTR(), // List of SPDTR analysis objects
fBinsMC(), // List of MC particles analysis objects
+ fAODMCHeader(o.fAODMCHeader), // MC Header
fHistdNdedpMC(o.fHistdNdedpMC), // MC particles d^2N/detadphi histogram
fHistFMDMCCorr(o.fHistFMDMCCorr), // FMD MC correlation
fHistSPDMCCorr(o.fHistSPDMCCorr), // SPD MC correlation
// o Object to copy from
//
if (&o == this) return *this;
+ fAODMCHeader = o.fAODMCHeader;
fHistdNdedpMC = o.fHistdNdedpMC;
fHistFMDMCCorr = o.fHistFMDMCCorr;
fHistSPDMCCorr = o.fHistSPDMCCorr;
return;
}
//_____________________________________________________________________
+Bool_t AliForwardMCFlowTaskQC::CheckEvent(const AliAODForwardMult* aodfm)
+{
+ //
+ // Function to check that an AOD event meets the cuts
+ //
+ // Parameters:
+ // AliAODForwardMult: forward mult object with trigger and vertex info
+ //
+ // Return: false if there is no trigger or if the centrality or vertex
+ // is out of range. Otherwise true.
+ //
+ fAODMCHeader = static_cast<AliAODMCHeader*>(fAOD->FindListObject(AliAODMCHeader::StdBranchName()));
+ return AliForwardFlowTaskQC::CheckEvent(aodfm);
+}
+//_____________________________________________________________________
Bool_t AliForwardMCFlowTaskQC::CheckTrigger(const AliAODForwardMult* aodfm) const
{
//
//
// Returns true when centrality is set.
//
-// fCent = 2.5;
-// return kTRUE;
- if (fUseImpactPar) {
- fCent = GetCentFromB();
- if (fCentAxis->GetXmin() > fCent || fCent >= fCentAxis->GetXmax()) {
- fHistEventSel->Fill(kInvCent);
- return kFALSE;
- }
- if (fCent != 0) return kTRUE;
- else {
- fHistEventSel->Fill(kNoCent);
- return kFALSE;
- }
- } else
- return AliForwardFlowTaskQC::GetCentrality(aodfm);
+ AliGenEventHeaderTunedPbPb* header =
+ dynamic_cast<AliGenEventHeaderTunedPbPb*>(fAODMCHeader->GetCocktailHeader(0));
+ if (header) fCent = header->GetCentrality();
+ else if (fUseImpactPar) fCent = GetCentFromB();
+ else return AliForwardFlowTaskQC::GetCentrality(aodfm);
+
+ if (fCentAxis->GetXmin() > fCent || fCent >= fCentAxis->GetXmax()) {
+ fHistEventSel->Fill(kInvCent);
+ return kFALSE;
+ }
+ if (fCent != 0) return kTRUE;
+ else {
+ fHistEventSel->Fill(kNoCent);
+ return kFALSE;
+ }
}
//_____________________________________________________________________
Bool_t AliForwardMCFlowTaskQC::GetVertex(const AliAODForwardMult* aodfm)
// Returns true if vertex is determined
//
if (fUseMCVertex) {
- AliAODMCHeader* header =
- static_cast<AliAODMCHeader*>(fAOD->FindListObject(AliAODMCHeader::StdBranchName()));
- if (header) {
- fVtx = header->GetVtxZ();
+ if (fAODMCHeader) {
+ fVtx = fAODMCHeader->GetVtxZ();
if (fVtx < fVtxAxis->GetXmin() || fVtx > fVtxAxis->GetXmax()) {
fHistEventSel->Fill(kInvVtx);
return kFALSE;
//retreive MC particles from event
TClonesArray* mcArray =
- static_cast<TClonesArray*>(fAOD->FindListObject(
- AliAODMCParticle::StdBranchName()));
+ static_cast<TClonesArray*>(fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
if(!mcArray){
AliWarning("No MC array found in AOD. Try making it again.");
return kFALSE;
}
- AliAODMCHeader* header =
- static_cast<AliAODMCHeader*>(fAOD->FindListObject(
- AliAODMCHeader::StdBranchName()));
- if (!header)
- AliWarning("No header file found.");
+ if (!fAODMCHeader) AliWarning("No MC header found.");
Int_t ntracks = mcArray->GetEntriesFast();
// Double_t rp = -1, b = -1;
- if (header) {
+ if (fAODMCHeader) {
// rp = header->GetReactionPlaneAngle();
// b = header->GetImpactParameter();
- if (header->GetNCocktailHeaders() > 1) {
- ntracks = header->GetCocktailHeader(0)->NProduced();
+ if (fAODMCHeader->GetNCocktailHeaders() > 1) {
+ ntracks = fAODMCHeader->GetCocktailHeader(0)->NProduced();
}
}
// Get centrality from MC impact parameter.
//
Double_t cent = -1.;
- AliAODMCHeader* header =
- static_cast<AliAODMCHeader*>(fAOD->FindListObject(AliAODMCHeader::
- StdBranchName()));
- if (!header) return cent;
- Double_t b = header->GetImpactParameter();
+ if (!fAODMCHeader) return cent;
+ Double_t b = fAODMCHeader->GetImpactParameter();
cent = fImpactParToCent->Eval(b);
return cent;
#include "AliForwardFlowTaskQC.h"
#include "AliForwardFlowWeights.h"
class TGraph;
+class AliAODMCHeader;
/**
* Calculate the flow in the forward regions using the Q cumulants method
* Finalize analysis
*/
void Finalize();
+ /**
+ * Check AODevent object for trigger, vertex and centrality
+ * uses aod header if object is null
+ * returns true if event is OK
+ *
+ * @param aodfm AliAODForwardMult object
+ *
+ * @return Bool_t
+ */
+ virtual Bool_t CheckEvent(const AliAODForwardMult* aodfm);
/**
* Check trigger from AODForwardMult object
* returns true if B trigger is present
TList fBinsForwardTR; // List with FMDTR VertexBin objects
TList fBinsCentralTR; // List with SPDTR VertexBin objects
TList fBinsMC; // List with MC VertexBin objects
+ AliAODMCHeader* fAODMCHeader; // MC header object
TH2D fHistdNdedpMC; // d^2N/detadphi MC particles histogram
TH2D* fHistFMDMCCorr; // Diagnostics for mult. corr. between FMD and MC
TH2D* fHistSPDMCCorr; // Diagnostics for mult. corr. between SPD and MC
Int_t fAddType; // Add flow type #
Int_t fAddOrder; // Add flow order
- ClassDef(AliForwardMCFlowTaskQC, 4); // FMD MC analysis task
+ ClassDef(AliForwardMCFlowTaskQC, 5); // FMD MC analysis task
};
#endif