]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaBtag.h
Fix for the problem during PbPb run of Nov 2010 (Indra)
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaBtag.h
1 #ifndef ALIANABTAG_H\r
2 #define ALIANABTAG_H\r
3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *\r
4  * See cxx source for full Copyright notice     */\r
5 /* $Id:  $ */\r
6 \r
7 //_________________________________________________________________________\r
8 //\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
12 //\r
13 \r
14 //-- Author T.R.P-R.Aronsson\r
15 \r
16 // --- ROOT system ---\r
17 class TH2F ;\r
18 class TString ;\r
19 class TNtuple ;\r
20 class TH3F;\r
21 \r
22 // --- ANALYSIS system ---\r
23 #include "AliAnaPartCorrBaseClass.h"\r
24 \r
25 class AliAODMCParticle;\r
26 class AliCaloTrackReader;\r
27 class AliAODTrack;\r
28 class TList ;\r
29 \r
30 class AliAnaBtag : public AliAnaPartCorrBaseClass {\r
31 \r
32 public: \r
33   AliAnaBtag() ; // default ctor\r
34   virtual ~AliAnaBtag() ; //virtual dtor\r
35 private:\r
36         AliAnaBtag(const AliAnaBtag & g) ; // cpy ctor\r
37         AliAnaBtag & operator = (const AliAnaBtag & g) ;//cpy assignment\r
38         \r
39 public:\r
40         \r
41   TList *  GetCreateOutputObjects();\r
42 \r
43   //Main functions\r
44   void Init();\r
45   void MakeAnalysisFillAOD()  ;\r
46   void MakeAnalysisFillHistograms() ; \r
47   \r
48   //B-tagging\r
49   Int_t GetDVMBtag(AliAODTrack * tr, Int_t &pairs, Int_t &start, Int_t &stop);//Main tagger\r
50 \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
54 \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
59 \r
60 \r
61 \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
72 \r
73 \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
85 \r
86 \r
87   void InitParameters();\r
88   void Terminate(TList * outputList);\r
89          \r
90   private:\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
93 \r
94   AliAODMCParticle* GetMCParticle(Int_t part);\r
95 \r
96 \r
97   private:\r
98   //NTuples!\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
102   TNtuple * events;\r
103   Int_t fEventNumber;    // For Ntuple to label events (starts at 0)\r
104   Int_t fNElec;\r
105   Int_t fNElecEv;\r
106   Int_t fNPair;\r
107 \r
108   //DVM B-tagging\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
117   //IP Sig B-tagging\r
118   Int_t    fNTagTrkCut;  //min number of tracks required for IP sig tag\r
119   Double_t fIPSigCut;    //min IP significance cut\r
120 \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
124 \r
125   \r
126   \r
127   //Histograms\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
158 \r
159 \r
160   //Analysis of electrons\r
161   TH2F * fhElectrons;\r
162   //Analysis for tracks from esd/aod\r
163   TH2F * fhTracks;\r
164 \r
165 \r
166   ClassDef(AliAnaBtag,2)\r
167 \r
168 } ;\r
169  \r
170 \r
171 #endif//ALIANABTAG_H\r
172 \r
173 \r
174 \r