1 #ifndef ALIANALYSISTASKSEDSTARSPECTRA_H
2 #define ALIANALYSISTASKSEDSTARSPECTRA_H
3 /**************************************************************************
4 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
6 * Author: The ALICE Off-line Project. *
7 * Contributors are mentioned in the code where appropriate. *
9 * Permission to use, copy, modify and distribute this software and its *
10 * documentation strictly for non-commercial purposes is hereby granted *
11 * without fee, provided that the above copyright notice appears in all *
12 * copies and that both the copyright notice and this permission notice *
13 * appear in the supporting documentation. The authors make no claims *
14 * about the suitability of this software for any purpose. It is *
15 * provided "as is" without express or implied warranty. *
16 **************************************************************************/
22 #include <THnSparse.h>
24 #include "AliAnalysisTaskSE.h"
26 class AliRDHFCutsDStartoKpipi;
27 class AliNormalizationCounter;
29 class AliAnalysisTaskSEDStarSpectra : public AliAnalysisTaskSE
34 AliAnalysisTaskSEDStarSpectra();
35 AliAnalysisTaskSEDStarSpectra(const Char_t* name,AliRDHFCutsDStartoKpipi* cuts);
36 virtual ~AliAnalysisTaskSEDStarSpectra();
38 // Implementation of interface methods
39 virtual void UserCreateOutputObjects();
41 virtual void LocalInit() {Init();}
42 virtual void UserExec(Option_t *option);
43 virtual void Terminate(Option_t *option);
46 //Background simulation
47 void SideBandBackground(AliAODRecoCascadeHF *part, AliRDHFCutsDStartoKpipi *cuts, Int_t isSel, TList *listout);
48 void WrongSignForDStar(AliAODRecoCascadeHF *part, AliRDHFCutsDStartoKpipi *cuts, TList *listout);
50 void FillSpectrum(AliAODRecoCascadeHF *part, Int_t isDStar, AliRDHFCutsDStartoKpipi *cuts, Int_t isSel, TList *listout);
51 void DefineHistograms();
52 Int_t CheckOrigin(TClonesArray* arrayMC, const AliAODMCParticle *mcPartCandidate) const;
53 void CreateImpactParameterHistos();
56 void SetAnalysisType(Int_t anaType) {fAnalysis = anaType;}
57 void PrintAnalysisType() {printf("Analysis type: %d\n(0: Heidelberg\t1: Utrecht)",fAnalysis);}
59 void SetMC(Bool_t theMCon) {fUseMCInfo = theMCon;}
60 Bool_t GetMC() const {return fUseMCInfo;}
62 void SetRareSearch(Bool_t theRareOn) {fDoSearch = theRareOn;}
63 Bool_t GetRareSearch() const {return fDoSearch;}
65 void SetDoImpactParameterHistos(Bool_t doImp=kTRUE){fDoImpParDstar=doImp;}
66 Bool_t GetDoImpactParameterHistos() const {return fDoImpParDstar;}
68 Float_t GetTrueImpactParameterD0(const AliAODMCHeader *mcHeader, TClonesArray* arrayMC, const AliAODMCParticle *partDp) const;
70 void SetDoDStarVsY(Bool_t theDStarVsY) {fDoDStarVsY = theDStarVsY;}
74 AliAnalysisTaskSEDStarSpectra(const AliAnalysisTaskSEDStarSpectra &source);
75 AliAnalysisTaskSEDStarSpectra& operator=(const AliAnalysisTaskSEDStarSpectra& source);
77 Int_t fEvents; // n. of events
78 Int_t fAnalysis; // 0: HD; 1: UU;
79 Double_t fD0Window; // select width on D0Mass
80 Double_t fPeakWindow; // select width on DstarMass
81 Bool_t fUseMCInfo; // Use MC info
82 Bool_t fDoSearch; // Rare mesons
83 TList *fOutput; //! User output
84 TList *fOutputAll; //! User output2
85 TList *fOutputPID; //! User output3
86 Int_t fNSigma; // n sigma for kaon PID
87 AliRDHFCutsDStartoKpipi *fCuts; // Cuts - sent to output slot 3
88 // define the histograms
91 TH1F *fDeltaMassD1; //!
92 AliNormalizationCounter *fCounter;//!Counter for normalization slot 4
93 Bool_t fDoImpParDstar; // imppar studies
94 Int_t fNImpParBins; // nunber of bins in impact parameter histos
95 Float_t fLowerImpPar; // lower limit in impact parameter (um)
96 Float_t fHigherImpPar; // higher limit in impact parameter (um)
97 Bool_t fDoDStarVsY; // flag to enable D* vs y
99 THnSparseF *fHistMassPtImpParTCDs[5];//! histograms for impact paramter studies
101 ClassDef(AliAnalysisTaskSEDStarSpectra,9); // class for D* spectra