#include <vector>
#include "AliV0Reader.h"
#include "AliGammaConversionBGHandler.h"
-#include "TRandom.h"
+//#include "TRandom3.h"
//#include "AliCFManager.h" // for CF
//#include "AliCFContainer.h" // for CF
class TList;
class AliStack;
class AliESDtrackCuts;
+class AliTriggerAnalysis;
class AliCFManager; // for CF
class AliCFContainer; // for CF
+class TRandom3;
class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
{
public:
+ typedef enum { kProcSD, kProcDD, kProcND, kProcUnknown, kNProcs } ProcType_t;
AliAnalysisTaskGammaConversion();
AliAnalysisTaskGammaConversion(const char* name);
virtual ~AliAnalysisTaskGammaConversion() ;// virtual destructor
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
//virtual void ConnectInputData(Option_t * option);
-
+ void CheckMesonProcessTypeEventQuality(Int_t evtQ);
+ Int_t GetProcessType(const AliMCEvent * mcEvt) ;
void ProcessMCData();
void ProcessV0sNoCut();
void ProcessV0s();
void ProcessGammasForNeutralMesonAnalysis();
void ProcessGammasForOmegaMesonAnalysis();
- void ProcessConvPHOSGammasForNeutralMesonAnalysis();
+ // void ProcessConvPHOSGammasForNeutralMesonAnalysis();
void RecalculateV0ForGamma();
// for CF
void SetCFManager(AliCFManager * const io) {fCFManager = io;};
void FillAODWithConversionGammas();
// end AOD
- static Bool_t IsGoodImpPar(AliESDtrack *const track);
+ static Bool_t IsGoodImpPar(const AliESDtrack *const track);
// for GammaJetAnalysis
void ProcessGammasForGammaJetAnalysis();
void CalculateBackground();
void SetWriteNtuple(Bool_t writeNtuple){fWriteNtuple = writeNtuple;}
void FillNtuple();
- Double_t GetMCOpeningAngle(TParticle* const daughter0, TParticle* const daughter1) const;
+ Double_t GetMCOpeningAngle(const TParticle* const daughter0,const TParticle* const daughter1) const;
void CheckV0Efficiency();
void SetDeltaAODFileName(TString fn) { fKFDeltaAODFileName = fn; };
//////////////////Chi_c Analysis////////////////////////////
- void GetPID(AliESDtrack *track, Stat_t &pid, Stat_t &weight);
- double GetSigmaToVertex(AliESDtrack* t);
+ void GetPID(const AliESDtrack *track, Stat_t &pid, Stat_t &weight);
+ double GetSigmaToVertex(const AliESDtrack* t);
void ElectronBackground(TString hBg, TClonesArray e);
void FillAngle(TString histoName,TClonesArray const tlVeNeg, TClonesArray const tlVePos);
void FillElectronInvMass(TString histoName, TClonesArray const negativeElectron, TClonesArray const positiveElectron);
void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
- void MoveParticleAccordingToVertex(AliKFParticle *particle,AliGammaConversionBGHandler::GammaConversionVertex *vertex);
+ void MoveParticleAccordingToVertex(AliKFParticle * particle,const AliGammaConversionBGHandler::GammaConversionVertex *vertex);
void SetApplyChi2Cut(Bool_t flag){fApplyChi2Cut = flag;}
void SetDoRotation(Bool_t flag){fDoRotation = flag;}
- void SetPMDegreesBG(Int_t deg){nDegreesPMBackground=deg;}
+ void SetPMDegreesBG(Int_t deg){fNDegreesPMBackground=deg;}
- void SetNumberOfRotationsBG(Int_t nRot){nRandomEventsForBG=nRot;}
+ void SetNumberOfRotationsBG(Int_t nRot){fNRandomEventsForBG=nRot;}
void RotateKFParticle(AliKFParticle * kfParticle,Double_t angle);
void SetCheckBGProbability(Bool_t flag){fCheckBGProbability = flag;}
+ void SetRemovePileUp(Bool_t removePileUp) { fRemovePileUp = removePileUp; }
+
+ void SetSelectV0AND(Bool_t selectV0AND) { fSelectV0AND = selectV0AND; }
+ void SetUseMultiplicity(Int_t useMultiplicity) {fUseMultiplicity=useMultiplicity;}
+ void SetUseMultiplicityBin(Int_t useMultiplicityBin) {fUseMultiplicityBin=useMultiplicityBin;}
+ Int_t CalculateMultiplicityBin();
private:
AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented
AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented
/// Add reconstructed pions to aod
- void AddPionToAOD(AliKFParticle * pionkf, Double_t mass, Int_t daughter1, Int_t daughter2);
- void AddOmegaToAOD(AliKFParticle * pionkf, Double_t mass, Int_t daughter1, Int_t daughter2);
+ 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{
kStepLikeSign = 3,
kStepTPCRefit = 4,
kStepKinks = 5,
- kStepdEdx_electronselection = 6,
- kStepdEdx_pionrejection = 7,
+ kStepdEdxElectronSelection = 6,
+ kStepdEdxPpionRejection = 7,
kStepNContributors = 8,
kStepTPCPID = 9,
kStepR = 10,
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
- Bool_t fUseTrackMultiplicityForBG;
- Bool_t fMoveParticleAccordingToVertex;
- Bool_t fApplyChi2Cut;
- Int_t nRandomEventsForBG;
- Int_t nDegreesPMBackground;
- Bool_t fDoRotation;
- Bool_t fCheckBGProbability;
+ Bool_t fUseTrackMultiplicityForBG; //flag
+ Bool_t fMoveParticleAccordingToVertex; //flag
+ Bool_t fApplyChi2Cut; //flag
+ Int_t fNRandomEventsForBG; //number of random events to use in rotation method
+ 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
-
- ClassDef(AliAnalysisTaskGammaConversion, 12); // Analysis task for gamma conversions
+ 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;
+ ClassDef(AliAnalysisTaskGammaConversion, 15); // Analysis task for gamma conversions
};
#endif //ALIANALYSISTASKGAMMA_H