#include <vector>
#include "AliV0Reader.h"
#include "AliGammaConversionBGHandler.h"
-//#include "TRandom3.h"
+#include "TRandom3.h"
+#include "TF1.h"
+#include "AliMultiplicity.h"
//#include "AliCFManager.h" // for CF
//#include "AliCFContainer.h" // for CF
+#include "AliAODConversionMother.h"
-class AliGammaConversionAODObject;
+
+class AliAODPWG4Particle;
+class AliAODConversionPhoton;
+class AliAODConversionMother;
+class AliKFConversionPhoton;
+class AliKFConversionMother;
class TNtuple;
class AliGammaConversionHistograms;
class AliESDv0;
class AliCFManager; // for CF
class AliCFContainer; // for CF
class TRandom3;
+class TF1;
class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
{
void ProcessGammasForNeutralMesonAnalysis();
void ProcessGammasForOmegaMesonAnalysis();
// void ProcessConvPHOSGammasForNeutralMesonAnalysis();
- void RecalculateV0ForGamma();
+// void RecalculateV0ForGamma();
// for CF
void SetCFManager(AliCFManager * const io) {fCFManager = io;};
AliCFManager *GetCFManager() const {return fCFManager;}
void SetAODBranchName(TString name) {fAODBranchName = name ;}
void SetForceAOD(Bool_t forceAOD ) { fKFForceAOD = forceAOD; }
void FillAODWithConversionGammas();
+ void AddGammaToAOD(AliKFConversionPhoton * kfParticle);
+ // void AddPionToAOD(AliKFConversionMother * kfParticle);
+ // void AddOmegaToAOD(AliKFParticle * kfParticle, Int_t daughter1, Int_t daughter2);
+ void TagDaughter(Int_t gammaIndex);
+
// end AOD
static Bool_t IsGoodImpPar(const AliESDtrack *const track);
Double_t GetMCOpeningAngle(const TParticle* const daughter0,const TParticle* const daughter1) const;
void CheckV0Efficiency();
void SetDeltaAODFileName(TString fn) { fKFDeltaAODFileName = fn; };
-
+ void SetCreateAOD(Bool_t doAod) { fKFCreateAOD = doAod; };
+ TString GetDeltaAODFileName() const { return fKFDeltaAODFileName; };
//////////////////Chi_c Analysis////////////////////////////
void GetPID(const AliESDtrack *track, Stat_t &pid, Stat_t &weight);
double GetSigmaToVertex(const AliESDtrack* t);
void SetSelectV0AND(Bool_t selectV0AND) { fSelectV0AND = selectV0AND; }
void SetUseMultiplicity(Int_t useMultiplicity) {fUseMultiplicity=useMultiplicity;}
void SetUseMultiplicityBin(Int_t useMultiplicityBin) {fUseMultiplicityBin=useMultiplicityBin;}
+ void SetUseHBTMultiplicity(Int_t useHBTMultiplicity) {fUseHBTMultiplicity=useHBTMultiplicity;}
+ void SetUseHBTMultiplicityBin(Int_t useHBTMultiplicityBin) {fUseHBTMultiplicityBin=useHBTMultiplicityBin;}
+
Int_t CalculateMultiplicityBin();
void SetUseCentrality(Int_t useCentrality) {fUseCentrality=useCentrality;}
void SetUseCentralityBin(Int_t useCentralityBin) {fUseCentralityBin=useCentralityBin;}
AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented
AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented
- /// Add reconstructed pions to aod
- void AddPionToAOD(const AliKFParticle * const pionkf, Double_t mass, Int_t daughter1, Int_t daughter2);
- void AddOmegaToAOD(const AliKFParticle * const omegakf, Double_t mass, Int_t daughter1, Int_t daughter2);
// for CF
enum{
TClonesArray * fPreviousEventTLVPosElectronTClone; //! transient
// vector<AliKFParticle> fKFReconstructedGammas; // vector containing all reconstructed gammas
- vector<Int_t> fElectronv1; // vector containing index of electron 1
- vector<Int_t> fElectronv2; // vector containing index of electron 2
-
- vector<Int_t> fGammav1; // vector containing index of gamma 1
- vector<Int_t> fGammav2; // vector containing index of gamma 2
-
- vector<Int_t> fElectronRecalculatedv1; // vector containing index of electron 1
- vector<Int_t> fElectronRecalculatedv2; // vector containing index of electron 2
// AliESDpid * fESDpid; // esd pid
Bool_t fDoCF; //! transient
TClonesArray * fAODGamma; //TClonesArray for gammas to put in AOD
- TClonesArray * fAODPi0; //TTClonesArray for Pi0s to put in AOD
- TClonesArray * fAODOmega; //TTClonesArray for omegas to put in AOD
+ //TClonesArray * fAODPi0; //TTClonesArray for Pi0s to put in AOD
+ //TClonesArray * fAODOmega; //TTClonesArray for omegas to put in AOD
TString fAODBranchName; // New AOD branch name
+ Bool_t fKFCreateAOD; //Create the AOD tclones? (regardless if storing or not)
+
Bool_t fKFForceAOD; //Set the Analysis Manager FillAOD variable to true every event
TString fKFDeltaAODFileName; //! File name for delta AOD (if any)
Bool_t fDoNeutralMesonV0MCCheck; //flag
Int_t fNDegreesPMBackground; // number of degree window to rotate particles for rotation method
Bool_t fDoRotation; //flag
Bool_t fCheckBGProbability; //flag
- vector<Int_t>fKFReconstructedGammasV0Index; // index of the reconstructed v0s
+// vector<Int_t>fKFReconstructedGammasV0Index; // index of the reconstructed v0s
Bool_t fRemovePileUp; // Remove Pile Up
Bool_t fSelectV0AND; // Select V0AND
AliTriggerAnalysis *fTriggerAnalysis; //! Trigger Analysis for Normalisation
Int_t fMultiplicity;
Int_t fUseMultiplicity;
Int_t fUseMultiplicityBin;
+ Int_t fUseHBTMultiplicity;
+ Int_t fUseHBTMultiplicityBin;
Int_t fUseCentrality;
Int_t fUseCentralityBin;
- ClassDef(AliAnalysisTaskGammaConversion, 16); // Analysis task for gamma conversions
+ TRandom3 fRandom;
+ ClassDef(AliAnalysisTaskGammaConversion, 20); // Analysis task for gamma conversions
};
#endif //ALIANALYSISTASKGAMMA_H