]>
Commit | Line | Data |
---|---|---|
7dd391ec | 1 | #ifndef ALIANALYSISTASKDIMUONCFCONTAINERBUILDER_H |
2 | #define ALIANALYSISTASKDIMUONCFCONTAINERBUILDER_H | |
3 | ||
27de2dfb | 4 | /* $Id$ */ |
5 | ||
7dd391ec | 6 | #include "AliAnalysisTaskSE.h" |
7dd391ec | 7 | #include "TString.h" |
7dd391ec | 8 | |
9 | // Analysis task for the building of a dimuon CF container | |
10 | // Also some single-muon variables are stored | |
11 | // L. Bianchi - Universita' & INFN Torino | |
12 | ||
8320cad2 | 13 | class AliCFContainer; |
14 | class AliCFManager; | |
7dd391ec | 15 | |
16 | class AliAnalysisTaskDimuonCFContainerBuilder : public AliAnalysisTaskSE { | |
17 | public: | |
18 | ||
19 | AliAnalysisTaskDimuonCFContainerBuilder(); | |
20 | AliAnalysisTaskDimuonCFContainerBuilder(const Char_t* name, Bool_t readaod, Bool_t readMC, Bool_t isaccept, Double_t beamEn); | |
21 | AliAnalysisTaskDimuonCFContainerBuilder& operator= (const AliAnalysisTaskDimuonCFContainerBuilder& c); | |
22 | AliAnalysisTaskDimuonCFContainerBuilder(const AliAnalysisTaskDimuonCFContainerBuilder& c); | |
23 | virtual ~AliAnalysisTaskDimuonCFContainerBuilder(); | |
24 | ||
25 | // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects | |
26 | void UserExec(Option_t *option); | |
27 | void Terminate(Option_t *); | |
28 | void UserCreateOutputObjects(); | |
29 | ||
30 | // CORRECTION FRAMEWORK RELATED FUNCTIONS | |
31 | void SetCFManager(AliCFManager* const io) {fCFManager = io;} // global correction manager | |
32 | AliCFManager * GetCFManager() const {return fCFManager;} // get corr manager | |
33 | void SetQAList(TList* const list) {fQAHistList = list;} | |
34 | ||
35 | // Setters and Getters | |
36 | Bool_t IsReadAODData () const {return fReadAODData;} | |
37 | void SetReadAODData (Bool_t flag=kTRUE) {fReadAODData=flag;} | |
38 | void SetReadMCinfo (Bool_t flag=kTRUE) {fReadMCInfo=flag;} | |
39 | void SetIsAccProd (Bool_t flag=kTRUE) {fIsAccProduction=flag;} | |
40 | void SetBeamEnergy (Double_t en) {fBeamEnergy=en;} | |
41 | void SetChi2Limits (Double_t chi2track[]) {fChi2Track[0]=chi2track[0];fChi2Track[1]=chi2track[1];} | |
42 | void SetChi2MatchLimits (Double_t chi2match[]) {fChi2MatchTrig[0]=chi2match[0];fChi2MatchTrig[1]=chi2match[1];} | |
43 | void SetPtSingMuLimits (Double_t PtSingle[]) {fPtSingMuCut[0]=PtSingle[0];fPtSingMuCut[1]=PtSingle[1];} | |
44 | void SetThetaSingMuLimits (Double_t ThetaSingle[]) {fThetaSingMuCut[0]=ThetaSingle[0];fThetaSingMuCut[1]=ThetaSingle[1];} | |
45 | void SetZprimVertLimits (Double_t Zprimvtx[]) {fzPrimVertexSPD[0]=Zprimvtx[0];fzPrimVertexSPD[1]=Zprimvtx[1];} | |
46 | void SetCutonZvtxSPD (Bool_t cut=kFALSE) {fCutOnzVtxSPD=cut;} | |
b0c84a07 | 47 | void SetNContributorsLimits (Int_t NContr[]) {fNContributors[0]=NContr[0];fNContributors[1]=NContr[1];} |
7dd391ec | 48 | void SetCutonNContributors (Bool_t cut=kFALSE) {fCutOnNContributors=cut;} |
49 | void SetDistinguishTrigClass(Bool_t dist=kFALSE) {fDistinguishTrigClass=dist;} | |
50 | void SetTrigClassMuonName (TString name = "CMU") {fTrigClassMuon=name;} | |
51 | void SetTrigClassInteracName(TString name = "CINT") {fTrigClassInteraction=name;} | |
52 | void SetTrigClassMuonSideName(TString name[4]) {for(Int_t i=0;i<4;i++) fTrigClassMuonSide[i]=name[i];} | |
53 | void SetTrigClassInteracSideName(TString name[4]) {for(Int_t i=0;i<4;i++) fTrigClassInteractionSide[i]=name[i];} | |
54 | ||
55 | protected: | |
56 | ||
57 | Bool_t fReadAODData ; // flag for AOD/ESD input files | |
58 | Bool_t fReadMCInfo ; // flag for reading MC info (ESD->Kinematics, AOD->MCbranch) | |
59 | Bool_t fIsAccProduction ; // flag to activate in case of acceptance MC production (in this case fReadMCInfo==kTRUE) | |
60 | AliCFManager *fCFManager ; // pointer to the CF manager | |
61 | TList *fQAHistList ; // list of QA histograms | |
62 | Double_t fNevt ; // event counter | |
63 | Double_t fBeamEnergy ; // Energy of the beam (required for the CS angle) | |
64 | TList *fOutput ; // list of TH in output | |
65 | ||
66 | // CUTS ON TRACKS | |
67 | Double_t fChi2Track[2] ; // Cut on chi2 of the tracks ([0]==chi2min, [1]==chi2max) | |
68 | Double_t fChi2MatchTrig[2] ; // Cut on chi2matchtrigger of the tracks ([0]==chi2Matchmin, [1]==chi2Matchmax) | |
69 | Double_t fPtSingMuCut[2] ; // Cut on pt of single-mu tracks ([0]==ptmin, [1]==ptmax) | |
70 | Double_t fThetaSingMuCut[2] ; // Cut on polar angle (wrt beam axis) of single-mu tracks ([0]==thetamin, [1]==thetamax) | |
71 | ||
72 | // CUTS ON EVENT | |
73 | Double_t fzPrimVertexSPD[2] ; // Cut on the z coordinate of the primary vertex in SPD (full ITS for AODs) | |
74 | Bool_t fCutOnzVtxSPD ; // flag to activate the cut on the z of the primary vertex | |
75 | Int_t fNContributors[2] ; // Cut on NContributors in SPD | |
76 | Bool_t fCutOnNContributors ; // flag to activate the cut on NContributors in SPD | |
77 | ||
78 | // CUTS ON THE FIRED TRIGGER CLASS | |
79 | TString fTrigClassMuon ; // name of the muon trigger class (CMU by default) | |
80 | TString fTrigClassInteraction ; // name of the interaction trigger class (CINT by default) | |
81 | TString fTrigClassMuonSide[4] ; // name of the muon trigger classes containing the side | |
82 | TString fTrigClassInteractionSide[4];// name of the interaction trigger classes containing the side | |
83 | Bool_t fDistinguishTrigClass ; // flag to activate the cut on the fired trigger class | |
84 | ||
85 | ||
86 | ||
8320cad2 | 87 | Double_t Imass (Double_t e1, Double_t px1, Double_t py1, Double_t pz1, Double_t e2, Double_t px2, Double_t py2, Double_t pz2) const; |
88 | Double_t Rap (Double_t e, Double_t pz) const; | |
7dd391ec | 89 | |
8320cad2 | 90 | Double_t CostCS (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2); |
91 | Double_t CostHE (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2); | |
92 | Double_t PhiCS (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2); | |
93 | Double_t PhiHE (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2); | |
7dd391ec | 94 | |
95 | ClassDef(AliAnalysisTaskDimuonCFContainerBuilder,1); | |
96 | }; | |
97 | ||
98 | #endif |