3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
\r
4 * See cxx source for full Copyright notice */
\r
7 //_________________________________________________________________________
\r
9 // Class for the electron identification and B-tagging.
\r
10 // Clusters from EMCAL matched to tracks are selected
\r
11 // and kept in the AOD. Few histograms produced.
\r
14 //-- Author T.R.P-R.Aronsson
\r
16 // --- ROOT system ---
\r
22 // --- ANALYSIS system ---
\r
23 #include "AliAnaPartCorrBaseClass.h"
\r
25 class AliAODMCParticle;
\r
26 class AliCaloTrackReader;
\r
30 class AliAnaBtag : public AliAnaPartCorrBaseClass {
\r
33 AliAnaBtag() ; // default ctor
\r
34 virtual ~AliAnaBtag() ; //virtual dtor
\r
36 AliAnaBtag(const AliAnaBtag & g) ; // cpy ctor
\r
37 AliAnaBtag & operator = (const AliAnaBtag & g) ;//cpy assignment
\r
41 TList * GetCreateOutputObjects();
\r
45 void MakeAnalysisFillAOD() ;
\r
46 void MakeAnalysisFillHistograms() ;
\r
49 Int_t GetDVMBtag(AliAODTrack * tr, Int_t &pairs, Int_t &start, Int_t &stop);//Main tagger
\r
51 //Temporary local method to get DCA
\r
52 Bool_t GetDCA(const AliAODTrack* tr,Double_t imp[2], Double_t cov[3]);
\r
53 Bool_t PhotonicV0(Int_t trackId); //check with V0 list
\r
55 //used with the jet tracks to tag bjets
\r
56 Bool_t CheckIfBjet(const AliAODTrack* track);
\r
57 Bool_t IsMcBJet(Double_t x, Double_t y);
\r
58 Bool_t IsMcDJet(Double_t x, Double_t y);
\r
62 Double_t GetDrCut() const { return fDrCut; }
\r
63 Double_t GetPairDcaCut() const { return fPairDcaCut; }
\r
64 Double_t GetDecayLenCut() const { return fDecayLenCut; }
\r
65 Double_t GetImpactCut() const { return fImpactCut; }
\r
66 Double_t GetAssocPtCut() const { return fAssocPtCut; }
\r
67 Double_t GetMassCut() const { return fMassCut; }
\r
68 Double_t GetSdcaCut() const { return fSdcaCut; }
\r
69 Int_t GetITSCut() const { return fITSCut; }
\r
70 Int_t GetNTagTrackCut() const { return fNTagTrkCut; }
\r
71 Double_t GetIPSigCut() const { return fIPSigCut; }
\r
74 void SetWriteNtuple(Int_t w) { fWriteNtuple = w; }
\r
75 void SetDrCut(Double_t dr) { fDrCut = dr; }
\r
76 void SetPairDcaCut(Double_t pdca) { fPairDcaCut = pdca; }
\r
77 void SetDecayLenCut(Double_t dlen) { fDecayLenCut = dlen; }
\r
78 void SetImpactCut(Double_t imp) { fImpactCut = imp; }
\r
79 void SetAssocPtCut(Double_t pt) { fAssocPtCut = pt; }
\r
80 void SetMassCut(Double_t mass) { fMassCut = mass; }
\r
81 void SetSdcaCut(Double_t sdca) { fSdcaCut = sdca; }
\r
82 void SetITSCut(Int_t its) { fITSCut = its; }
\r
83 void SetNTagTrackCut(Int_t ntr) { fNTagTrkCut = ntr; }
\r
84 void SetIPSigCut(Double_t ips) { fIPSigCut = ips; }
\r
87 void InitParameters();
\r
88 void Terminate(TList * outputList);
\r
91 //For DVM B-tag method
\r
92 Double_t ComputeSignDca(AliAODTrack *tr, AliAODTrack *tr2 , Double_t &masscut, Double_t &pdcacut, Double_t &massphoton, Double_t &decay);
\r
94 AliAODMCParticle* GetMCParticle(Int_t part);
\r
99 Int_t fWriteNtuple; //Will always be no, but might be set to yes in config file.
\r
100 TNtuple * electrons; //Electrons
\r
101 TNtuple * pairs; //Pairs to the electrons
\r
103 Int_t fEventNumber; // For Ntuple to label events (starts at 0)
\r
109 Double_t fDrCut; //max dR
\r
110 Double_t fPairDcaCut; //max pair-DCA
\r
111 Double_t fDecayLenCut; //max 3d-decaylength
\r
112 Double_t fImpactCut; //max track impact param
\r
113 Double_t fAssocPtCut; //min associated pt
\r
114 Double_t fMassCut; //min Minv cut
\r
115 Double_t fSdcaCut; //min signDca
\r
116 Int_t fITSCut; //min ITS hits (both)
\r
118 Int_t fNTagTrkCut; //min number of tracks required for IP sig tag
\r
119 Double_t fIPSigCut; //min IP significance cut
\r
121 Double_t fJetEtaCut; //max eta for jets
\r
122 Double_t fJetPhiMin; //min phi for jets
\r
123 Double_t fJetPhiMax; //max phi for jets
\r
128 TH1F * fhEmcalElectrons; //All electrons, as id:ed by EMCAL
\r
129 TH1F * fhTRDElectrons; //Electrons from TRD
\r
130 TH1F * fhTPCElectrons; //Electrons from TPC
\r
131 TH1F * fhEmcalMCE; //All electrons, as id:ed by EMCAL MC
\r
132 TH1F * fhTRDMCE; //Electrons from TRD MC
\r
133 TH1F * fhTPCMCE; //Electrons from TPC MC
\r
134 TH1F * fhEmcalMCEFake; //All electrons, as id:ed by EMCAL MC, fake
\r
135 TH1F * fhTRDMCEFake; //Electrons from TRD MC, fake
\r
136 TH1F * fhTPCMCEFake; //Electrons from TPC MC, fake
\r
137 TH1F * fhEmcalMCP; //Pions, as id:ed by EMCAL
\r
138 TH1F * fhTRDMCP; //Pions from TRD
\r
139 TH1F * fhTPCMCP; //Pions from TPC
\r
140 TH1F * fhEmcalMCK; //Kaons from EMCAL
\r
141 TH1F * fhTRDMCK; //Kaons from TRD
\r
142 TH1F * fhTPCMCK; //Kaons from TPC
\r
143 TH1F * fhSpecies; //PDG of id:ed electrons
\r
144 TH1F * fhDVM1; //initial b-tag dvm1
\r
145 TH1F * fhDVM2; //initial b-tag dvm2
\r
146 TH1F * fhNVTX; //NVtx of all btags
\r
147 TH1F * fhNVTXMC; //NVtx of MC btags
\r
148 TH2F * fhJets; //All jets 2d
\r
149 TH2F * fhJetsAllEtaPhi; //Eta phi for all jets
\r
150 TH2F * fhJetsLeadingBElectronEtaPhi; //deta dphi btw leading jet and bele
\r
151 TH2F * fhDVM1EtaPhi; //eta phi for b-electrons
\r
152 TH2F * fhBJetElectronDetaDphi; //eta phi for jet with b-electrons
\r
153 TH2F * fhClusterMap; //2D eta-phi of EMCAL clusters
\r
154 TH1F * fhClusterEnergy; //cluster E of EMCAL
\r
155 TH1F * fhTestalle; //Temp histo for EMCAL cluster energy
\r
156 TH1F * fhResidual; //Residuals from trackmatching
\r
157 TH1F * fhPairPt; //Pairs
\r
160 //Analysis of electrons
\r
161 TH2F * fhElectrons;
\r
162 //Analysis for tracks from esd/aod
\r
166 ClassDef(AliAnaBtag,2)
\r
171 #endif//ALIANABTAG_H
\r