\r
//_________________________________________________________________________\r
//\r
-// Class for the electron identification and b-tagging.\r
+// Class for the electron identification and B-tagging.\r
// Clusters from EMCAL matched to tracks\r
// and kept in the AOD. Few histograms produced.\r
//\r
-// -- Author: T.R.P-R.Aronsson (Yale) J.L. Klay (Cal Poly), M. Heinz (Yale)\r
+// -- Author: T.R.P.Aronsson (Yale) J.L. Klay (Cal Poly), M. Heinz (Yale)\r
//////////////////////////////////////////////////////////////////////////////\r
\r
// --- ROOT system --- \r
#include <TH2F.h>\r
#include <TH3F.h>\r
#include <TParticle.h>\r
-#include <TNtuple.h>\r
#include <TClonesArray.h>\r
//#include <TObjString.h>\r
//#include <Riostream.h>\r
fpOverEmin(0.),fpOverEmax(0.),fResidualCut(0.),fMinClusEne(0.),\r
fDrCut(0.),fPairDcaCut(0.),fDecayLenCut(0.),fImpactCut(0.),\r
fAssocPtCut(0.),fMassCut(0.),fSdcaCut(0.),fITSCut(0),\r
- fNTagTrkCut(0),fIPSigCut(0.),fJetEtaCut(0.3),fJetPhiMin(1.8),fJetPhiMax(2.9),fWriteNtuple(0),\r
-\r
- fEleNtuple(0),\r
+ fNTagTrkCut(0),fIPSigCut(0.),fJetEtaCut(0.3),fJetPhiMin(1.8),fJetPhiMax(2.9),\r
fhEmcalElectrons(0),fhTRDElectrons(0),fhTPCElectrons(0),fhDVM1(0),fhDVM2(0),fhJets(0),fhJetsAllEtaPhi(0),fhJetsLeadingBElectronEtaPhi(0),fhDVM1EtaPhi(0),fhBJetElectronDetaDphi(0),fhClusterEnergy(0),fhTestalle(0),fhResidual(0),fhElectrons(0),fhTracks(0)\r
{\r
//default ctor\r
//Initialize parameters\r
InitParameters();\r
\r
-}\r
-/*\r
-//____________________________________________________________________________\r
-AliAnaBtag::AliAnaBtag(const AliAnaBtag & g) \r
- : AliAnaPartCorrBaseClass(g),fCalorimeter(g.fCalorimeter),\r
- fpOverEmin(g.fpOverEmin),fpOverEmax(g.fpOverEmax),\r
- fResidualCut(g.fResidualCut),fMinClusEne(g.fMinClusEne),\r
- fDrCut(g.fDrCut),fPairDcaCut(g.fPairDcaCut),fDecayLenCut(g.fDecayLenCut),fImpactCut(g.fImpactCut),\r
- fAssocPtCut(g.fAssocPtCut),fMassCut(g.fMassCut),fSdcaCut(g.fSdcaCut),fITSCut(g.fITSCut),\r
- fNTagTrkCut(g.fNTagTrkCut),fIPSigCut(g.fIPSigCut),\r
- fJetEtaCut(g.fJetEtaCut),fJetPhiMin(g.fJetPhiMin),fJetPhiMax(g.fJetPhiMax),\r
- fWriteNtuple(g.fWriteNtuple),\r
-\r
- fEleNtuple(g.fEleNtuple),\r
- fhEmcalElectrons(g.fhEmcalElectrons),fhTRDElectrons(g.fhTRDElectrons),fhTPCElectrons(g.fhTPCElectrons),fhDVM1(g.fhDVM1),fhDVM2(g.fhDVM2),fhJets(g.fhJets),fhJetsAllEtaPhi(g.fhJetsAllEtaPhi),fhJetsLeadingBElectronEtaPhi(g.fhJetsLeadingBElectronEtaPhi),fhDVM1EtaPhi(g.fhDVM1EtaPhi),fhBJetElectronDetaDphi(g.fhBJetElectronDetaDphi),fhClusterEnergy(g.fhClusterEnergy),fhTestalle(g.fhTestalle),fhResidual(g.fhResidual),fhElectrons(g.fhElectrons),fhTracks(g.fhTracks)\r
-{\r
- // cpy ctor\r
- \r
}\r
\r
-//_________________________________________________________________________\r
-AliAnaBtag & AliAnaBtag::operator = (const AliAnaBtag & g)\r
-{\r
- // assignment operator\r
- \r
- if(&g == this) return *this;\r
- fCalorimeter = g.fCalorimeter;\r
- fpOverEmin = g.fpOverEmin;\r
- fpOverEmax = g.fpOverEmax;\r
- fResidualCut = g.fResidualCut;\r
- fMinClusEne = g.fMinClusEne;\r
- fDrCut = g.fDrCut;\r
- fPairDcaCut = g.fPairDcaCut;\r
- fDecayLenCut = g.fDecayLenCut;\r
- fImpactCut = g.fImpactCut;\r
- fAssocPtCut = g.fAssocPtCut;\r
- fMassCut = g.fMassCut;\r
- fSdcaCut = g.fSdcaCut;\r
- fITSCut = g.fITSCut;\r
- fNTagTrkCut = g.fNTagTrkCut;\r
- fIPSigCut = g.fIPSigCut;\r
- fJetEtaCut = g.fJetEtaCut;\r
- fJetPhiMin = g.fJetPhiMin;\r
- fJetPhiMax = g.fJetPhiMax;\r
- fWriteNtuple = g.fWriteNtuple;\r
-\r
- fEleNtuple = g.fEleNtuple; \r
-\r
- fhEmcalElectrons = g.fhEmcalElectrons;\r
- fhTRDElectrons = g.fhTRDElectrons;\r
- fhTPCElectrons = g.fhTPCElectrons;\r
- fhDVM1 = g.fhDVM1;\r
- fhDVM2 = g.fhDVM2;\r
- fhJets = g.fhJets;\r
- fhJetsAllEtaPhi = g.fhJetsAllEtaPhi;\r
- fhJetsLeadingBElectronEtaPhi = g.fhJetsLeadingBElectronEtaPhi;\r
- fhDVM1EtaPhi = g.fhDVM1EtaPhi;\r
- fhBJetElectronDetaDphi = g.fhBJetElectronDetaDphi;\r
- fhClusterEnergy = g.fhClusterEnergy;\r
- fhTestalle = g.fhTestalle;\r
- fhResidual = g.fhResidual;\r
- fhElectrons = g.fhElectrons;\r
- fhTracks = g.fhTracks;\r
- return *this;\r
- \r
-}\r
-*/\r
//____________________________________________________________________________\r
AliAnaBtag::~AliAnaBtag() \r
{\r
outputContainer->SetName("ElectronHistos") ; \r
\r
\r
- if(IsDataMC()){\r
-\r
- //electron ntuple for further analysis\r
- if(fWriteNtuple) {\r
- fEleNtuple = new TNtuple("EleNtuple","Electron Ntuple","fluff");\r
- outputContainer->Add(fEleNtuple) ;\r
- }\r
-\r
-\r
-\r
- }//Histos with MC\r
-\r
-\r
- fhEmcalElectrons = new TH1F("fhEmcalElectrons","",400,0,400);\r
+ fhEmcalElectrons = new TH1F("fhEmcalElectrons","",400,0,400);\r
outputContainer->Add(fhEmcalElectrons);\r
\r
fhTRDElectrons = new TH1F("fhTRDElectrons","",400,0,400);\r
fhJets = new TH2F("fhJets","",400,0,400,20,0,20);\r
outputContainer->Add(fhJets);\r
\r
-\r
- //Big one:\r
- //1 is All Jets\r
- //2 empty\r
- //3 Jets within pt 10 cut\r
- //4 Jets With geometric cut\r
- //5 Leading jet\r
- //6 DVM jet\r
- //9 All identified tracks as electrons\r
- //10 is all track Pt()\r
- //11 Tracks "in"\r
- //12 is Cluster energy plot\r
-\r
-\r
-\r
-\r
fhJetsAllEtaPhi = new TH2F("fhJetsAllEtaPhi","",100,-2,2,100,-2,8);\r
outputContainer->Add(fhJetsAllEtaPhi);\r
\r
for(Int_t iclus = 0; iclus < ntot; iclus++) {\r
AliAODCaloCluster * clus = (AliAODCaloCluster*) (cl->At(iclus));\r
if(!clus) continue;\r
- //Double_t x[3];\r
- //clus->GetPosition(x);\r
- //if(clus->E()>3.) fhJets->Fill(clus->E(),12);\r
fhClusterEnergy->Fill(clus->E());\r
}\r
}\r
minPt = track->Pt();\r
}\r
\r
- \r
- \r
- if(fWriteNtuple) {\r
- fEleNtuple->Fill(1);\r
- }\r
\r
} else {\r
//unmatched\r
}\r
\r
\r
-//__________________________________________________________________\r
-//PhotonicPrim() removed, it's shit.\r
-\r
//__________________________________________________________________\r
Bool_t AliAnaBtag::PhotonicV0(Int_t id) \r
{\r
//to decide whether it is an MC B-jet\r
Bool_t bjet=kFALSE;\r
\r
- // printf("MTH: McStack ,nparticles=%d \n", stack->GetNtrack() );\r
-\r
AliStack* stack = 0x0;\r
\r
for(Int_t ipart = 0; ipart < 100; ipart++) {\r
void MakeAnalysisFillHistograms() ; \r
\r
//B-tagging\r
- Int_t GetDVMBtag(AliAODTrack * tr); //returns # tracks from secvtx\r
+ Int_t GetDVMBtag(AliAODTrack * tr);//Main tagger\r
\r
- //Temporary local method to get DCA because AliAODTrack is stupid\r
+ //Temporary local method to get DCA\r
Bool_t GetDCA(const AliAODTrack* tr,Double_t imp[2], Double_t cov[3]);\r
Bool_t PhotonicV0(Int_t trackId); //check with V0 list\r
\r
- //check if track has been flagged as a non-photonic or DVM electron\r
//used with the jet tracks to tag bjets\r
Bool_t CheckIfBjet(const AliAODTrack* track);\r
Bool_t IsMcBJet(Double_t x, Double_t y);\r
TString GetCalorimeter() const {return fCalorimeter ; }\r
Double_t GetpOverEmin() const {return fpOverEmin ; }\r
Double_t GetpOverEmax() const {return fpOverEmax ; }\r
- Bool_t GetWriteNtuple() const {return fWriteNtuple ; }\r
\r
Double_t GetDrCut() const { return fDrCut; }\r
Double_t GetPairDcaCut() const { return fPairDcaCut; }\r
void SetpOverEmin(Double_t min) {fpOverEmin = min ; }\r
void SetpOverEmax(Double_t max) {fpOverEmax = max ; }\r
void SetResidualCut(Double_t cut) {fResidualCut = cut ; }\r
- void SetWriteNtuple(Bool_t val) {fWriteNtuple = val ; }\r
\r
void SetDrCut(Double_t dr) { fDrCut = dr; }\r
void SetPairDcaCut(Double_t pdca) { fPairDcaCut = pdca; }\r
Double_t fJetPhiMin; //min phi for jets\r
Double_t fJetPhiMax; //max phi for jets\r
\r
- Bool_t fWriteNtuple; //flag for filling ntuple or not\r
\r
-\r
- ///////////////////////////////////////\r
- //Output histograms and Ntuples\r
-\r
- TNtuple * fEleNtuple; //Ntuple for electrons if neede\r
-\r
-\r
+ \r
+ //Histograms\r
TH1F * fhEmcalElectrons; //All electrons, as id:ed by EMCAL\r
TH1F * fhTRDElectrons; //Electrons from TRD\r
TH1F * fhTPCElectrons; //Electrons from TPC\r
TH2F * fhDVM1EtaPhi; //eta phi for b-electrons\r
TH2F * fhBJetElectronDetaDphi; //eta phi for jet with b-electrons\r
TH1F * fhClusterEnergy; //cluster E of EMCAL\r
- TH1F * fhTestalle;\r
+ TH1F * fhTestalle; //Temp histo for EMCAL cluster energy\r
TH1F * fhResidual; //Residuals from trackmatching\r
\r
//Analysis of electrons\r
TH2F * fhTracks;\r
\r
\r
- ClassDef(AliAnaBtag,12)\r
+ ClassDef(AliAnaBtag,2)\r
\r
} ;\r
\r