* provided "as is" without express or implied warranty. *
**************************************************************************/
+/* $Id$ */
+
#include <TH2F.h>
#include "TROOT.h"
#include "TSystem.h"
+#include <THnSparse.h>
+
#include "AliAnalysisTaskSE.h"
-#include "AliAnalysisVertexingHF.h"
#include "AliAODEvent.h"
-#include "AliPID.h"
-
-
-class TH2F;
-class TH1I;
-class TParticle;
-class TFile;
-class TClonesArray;
-class AliCFManager;
-class AliAODRecoDecay;
-class AliAODRecoDecayHF2Prong;
-class AliAODMCParticle;
+#include "AliRDHFCutsDStartoKpipi.h"
+#include "AliNormalizationCounter.h"
-class AliAnalysisTaskSEDStarSpectra : public AliAnalysisTaskSE {
+class AliAnalysisTaskSEDStarSpectra : public AliAnalysisTaskSE
+{
public:
AliAnalysisTaskSEDStarSpectra();
- AliAnalysisTaskSEDStarSpectra(const Char_t* name);
- AliAnalysisTaskSEDStarSpectra& operator= (const AliAnalysisTaskSEDStarSpectra& c);
- AliAnalysisTaskSEDStarSpectra(const AliAnalysisTaskSEDStarSpectra& c);
+ AliAnalysisTaskSEDStarSpectra(const Char_t* name,AliRDHFCutsDStartoKpipi* cuts);
virtual ~AliAnalysisTaskSEDStarSpectra();
-
+
+ // Implementation of interface methods
virtual void UserCreateOutputObjects();
virtual void Init();
virtual void LocalInit() {Init();}
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
- //Background simulation
- void SideBandBackground(Int_t ptbin, AliAODRecoCascadeHF *part, Bool_t PIDon, Int_t nSigma, AliAnalysisVertexingHF *vhf, TList *listout);
- void WrongSignForDStar(Int_t ptbin, AliAODRecoCascadeHF *part, Bool_t PIDon, Int_t nSigma, AliAnalysisVertexingHF *vhf, TList *listout);
- //cuts
- Bool_t SingleTrackSelections(AliAODRecoDecayHF2Prong* theD0particle, AliAODTrack *track0, AliAODTrack *track1, AliAODTrack *track2);
- Bool_t SetSelections(Double_t pt);
- Bool_t SelectPID(AliAODTrack *track, AliPID::EParticleType pid, Double_t nsig);
- // histos
- void FillSpectrum(Int_t ptbin, AliAODRecoCascadeHF *part, Int_t isDStar, Bool_t PIDon, Int_t nSigma, AliAnalysisVertexingHF *vhf, TList *listout);
+
+ //Background simulation
+ void SideBandBackground(AliAODRecoCascadeHF *part, AliRDHFCutsDStartoKpipi *cuts, Int_t isSel, TList *listout);
+ void WrongSignForDStar(AliAODRecoCascadeHF *part, AliRDHFCutsDStartoKpipi *cuts, TList *listout);
+ // histos
+ void FillSpectrum(AliAODRecoCascadeHF *part, Int_t isDStar, AliRDHFCutsDStartoKpipi *cuts, Int_t isSel, TList *listout);
void DefineHistograms();
+ Int_t CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPartCandidate) const;
+ void CreateImpactParameterHistos();
+
// set analysis type
void SetAnalysisType(Int_t anaType) {fAnalysis = anaType;}
void PrintAnalysisType() {printf("Analysis type: %d\n(0: Heidelberg\t1: Utrecht)",fAnalysis);}
- // set minimum ITS clusters for the analysis
- void SetMinITSClusters(Int_t minITSClusters) {fMinITSClusters = minITSClusters;}
- Int_t GetMinITSClusters() const {return fMinITSClusters;}
- // set minimum for soft pion pt
- void SetMinITSClustersSoft(Int_t minITSClustersSoft) {fMinITSClustersSoft = minITSClustersSoft;}
- Int_t GetMinITSClustersSoft() const {return fMinITSClustersSoft;}
- // kaon PID
- void SetPID(Bool_t usePID) {fPID = usePID;}
- Int_t GetPID() const {return fPID;}
- // Set N sigmas for PID
- void SetNSigmasPID(Int_t numberOfSigmasPID) {fNSigma = numberOfSigmasPID;}
- Int_t GetNSigmasPID() const {return fNSigma;}
- // set MC usage
+ // set MC usage
void SetMC(Bool_t theMCon) {fUseMCInfo = theMCon;}
Bool_t GetMC() const {return fUseMCInfo;}
+ // set rare mesons
+ void SetRareSearch(Bool_t theRareOn) {fDoSearch = theRareOn;}
+ Bool_t GetRareSearch() const {return fDoSearch;}
+ //impact par study
+ void SetDoImpactParameterHistos(Bool_t doImp=kTRUE){fDoImpParDstar=doImp;}
+ Bool_t GetDoImpactParameterHistos(){return fDoImpParDstar;}
+
+ Float_t GetTrueImpactParameterD0(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp) const;
+
+ private:
- protected:
+ AliAnalysisTaskSEDStarSpectra(const AliAnalysisTaskSEDStarSpectra &source);
+ AliAnalysisTaskSEDStarSpectra& operator=(const AliAnalysisTaskSEDStarSpectra& source);
Int_t fEvents; // n. of events
Int_t fAnalysis; // 0: HD; 1: UU;
- AliAnalysisVertexingHF *fVHF; // Set the cuts
- AliAnalysisVertexingHF *fVHFloose; // Set the cuts
Double_t fD0Window; // select width on D0Mass
Double_t fPeakWindow; // select width on DstarMass
- Int_t fMinITSClusters; // min n. of ITS clusters for RecoDecay
- Int_t fMinITSClustersSoft; // min n. of ITS clusters for RecoDecay soft pions
Bool_t fUseMCInfo; // Use MC info
+ Bool_t fDoSearch; // Rare mesons
TList *fOutput; //! User output
- TList *fOutputSpectrum;
- TList *fOutputAll;
- TList *fOutputPID3;
- TList *fOutputPID2;
- TList *fOutputPID1;
+ TList *fOutputAll; //! User output2
+ TList *fOutputPID; //! User output3
Int_t fNSigma; // n sigma for kaon PID
- Bool_t fPID; // PID flag
- AliAODTrack* fAODTrack; //!
-
+ AliRDHFCutsDStartoKpipi *fCuts; // Cuts - sent to output slot 3
// define the histograms
TH1F *fCEvents; //!
TH2F *fTrueDiff2; //!
-
- ClassDef(AliAnalysisTaskSEDStarSpectra,6); // class for D* spectra
+ TH1F *fDeltaMassD1; //!
+ AliNormalizationCounter *fCounter;//!Counter for normalization slot 4
+ Bool_t fDoImpParDstar; // imppar studies
+ Int_t fNImpParBins; // nunber of bins in impact parameter histos
+ Float_t fLowerImpPar; // lower limit in impact parameter (um)
+ Float_t fHigherImpPar; // higher limit in impact parameter (um)
+
+ THnSparseF *fHistMassPtImpParTCDs[5];//! histograms for impact paramter studies
+
+ ClassDef(AliAnalysisTaskSEDStarSpectra,9); // class for D* spectra
};
#endif