fMC(0),
fTrackCuts(0),
fTrackCutsITS(0),
- fTrigger(0),
fNEventAll(0),
fNEventSel(0),
fPtAll(0),
fPtSel(0),
fPtAllminPtTPCvsPtAll(0),
fPtAllminPtTPCvsPtAllNPointTPC(0),
+ fPtAllminPtTPCvsPtAllNPointTPCS(0),
fPtAllminPtTPCvsPtAllDCAR(0),
fPtAllminPtTPCvsPtAllDCAZ(0),
fPtAllminPtTPCvsPtAllPhi(0),
fPtSelITSouter(0),
fPtITSouterminPtTPCvsPtAll(0),
fPtITSouterminPtTPCvsPtAllNPointTPC(0),
+ fPtITSouterminPtTPCvsPtAllNPointTPCS(0),
fPtITSouterminPtTPCvsPtAllDCAR(0),
fPtITSouterminPtTPCvsPtAllDCAZ(0),
fPtITSouterminPtTPCvsPtAllPhi(0),
fPtSelITS(0),
fPtITSminPtTPCvsPtITS(0),
fPtITSminPtTPCvsPtITSNPointTPC(0),
+ fPtITSminPtTPCvsPtITSNPointTPCS(0),
fPtITSminPtTPCvsPtITSDCAR(0),
fPtITSminPtTPCvsPtITSDCAZ(0),
fPtITSminPtTPCvsPtITSPhi(0),
fPtITSminPtTPCvsPtITSRel1PtUncertainty(0),
fPtITSminPtTPCvsPtITSChi2PerNClusTPC(0),
fPtITSminPtTPCvsPtITSChi2PerNClusITS(0),
- fPtOuterPtInner(0),
fPtRel1PtUncertaintyChi2PerClusTPC(0),
- fHistListITS(0)
+ fPtNPointTPCSChi2PerClusTPC(0),
+ fPtNPointTPCSRel1PtUncertainty(0),
+ fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel(0),
+ fHistListITS(0),
+ fPtCosmicCandidates(0),
+ fDeltaPtCosmicCandidates(0),
+ fDeltaPhi(0),
+ fDeltaEta(0),
+ fHistListCosmics(0)
{
}
fMC(0),
fTrackCuts(),
fTrackCutsITS(),
- fTrigger(0),
fNEventAll(0),
fNEventSel(0),
fPtAll(0),
fPtSel(0),
fPtAllminPtTPCvsPtAll(0),
fPtAllminPtTPCvsPtAllNPointTPC(0),
+ fPtAllminPtTPCvsPtAllNPointTPCS(0),
fPtAllminPtTPCvsPtAllDCAR(0),
fPtAllminPtTPCvsPtAllDCAZ(0),
fPtAllminPtTPCvsPtAllPhi(0),
fPtSelITSouter(0),
fPtITSouterminPtTPCvsPtAll(0),
fPtITSouterminPtTPCvsPtAllNPointTPC(0),
+ fPtITSouterminPtTPCvsPtAllNPointTPCS(0),
fPtITSouterminPtTPCvsPtAllDCAR(0),
fPtITSouterminPtTPCvsPtAllDCAZ(0),
fPtITSouterminPtTPCvsPtAllPhi(0),
fPtSelITS(0),
fPtITSminPtTPCvsPtITS(0),
fPtITSminPtTPCvsPtITSNPointTPC(0),
+ fPtITSminPtTPCvsPtITSNPointTPCS(0),
fPtITSminPtTPCvsPtITSDCAR(0),
fPtITSminPtTPCvsPtITSDCAZ(0),
fPtITSminPtTPCvsPtITSPhi(0),
fPtITSminPtTPCvsPtITSRel1PtUncertainty(0),
fPtITSminPtTPCvsPtITSChi2PerNClusTPC(0),
fPtITSminPtTPCvsPtITSChi2PerNClusITS(0),
- fPtOuterPtInner(0),
fPtRel1PtUncertaintyChi2PerClusTPC(0),
- fHistListITS(0)
+ fPtNPointTPCSChi2PerClusTPC(0),
+ fPtNPointTPCSRel1PtUncertainty(0),
+ fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel(0),
+ fHistListITS(0),
+ fPtCosmicCandidates(0),
+ fDeltaPtCosmicCandidates(0),
+ fDeltaPhi(0),
+ fDeltaEta(0),
+ fHistListCosmics(0)
{
//
// Constructor. Initialization of Inputs and Outputs
DefineOutput(1, TList::Class());
// Output slot #2 writes into a TList
DefineOutput(2, TList::Class());
+ // Output slot #3 writes into a TList
+ DefineOutput(3, TList::Class());
}
//________________________________________________________________________
fHistListTPC = new TList();
OpenFile(2);
fHistListITS = new TList();
+ OpenFile(3);
+ fHistListCosmics = new TList();
+
Int_t fgkNPhiBins=18;
Float_t kMinPhi = 0.;
Float_t fgkChi2PerClusMin = 0.;
Float_t fgkChi2PerClusMax = 3.5;
Int_t fgkChi2PerClusBins = (int)(fgkChi2PerClusMax*10.);
-
+
Int_t fgkResPtBins=80;
fHistList->Add(fPtAll);
fPtSel = new TH1F("fPtSel","PtSel",fgkNPtBins, fgkPtMin, fgkPtMax);
fHistList->Add(fPtSel);
-
+
fPtAllminPtTPCvsPtAll = new TH2F("fPtAllminPtTPCvsPtAll","PtAllminPtTPCvsPtAll",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.);
fPtAllminPtTPCvsPtAll->SetXTitle("p_{t}^{Global}");
fPtAllminPtTPCvsPtAll->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtAllminPtTPCvsPtAllNPointTPC->SetZTitle("N_{point,TPC}");
fHistList->Add(fPtAllminPtTPCvsPtAllNPointTPC);
+ fPtAllminPtTPCvsPtAllNPointTPCS = new TH3F("fPtAllminPtTPCvsPtAllNPointTPCS","PtAllminPtTPCvsPtAllNPointTPCS",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,100,0.,1.);
+ fPtAllminPtTPCvsPtAllNPointTPCS->SetXTitle("p_{t}^{Global}");
+ fPtAllminPtTPCvsPtAllNPointTPCS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
+ fPtAllminPtTPCvsPtAllNPointTPCS->SetZTitle("N_{point,TPC}^{Shared}/N_{point,TPC}");
+ fHistList->Add(fPtAllminPtTPCvsPtAllNPointTPCS);
+
fPtAllminPtTPCvsPtAllDCAR = new TH3F("fPtAllminPtTPCvsPtAllDCAR","PtAllminPtTPCvsPtAllDCAR",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,80,-0.2,0.2);
fPtAllminPtTPCvsPtAllDCAR->SetXTitle("p_{t}^{Global}");
fPtAllminPtTPCvsPtAllDCAR->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtAllminPtTPCvsPtAllChi2PerNClusTPC = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusTPC","PtAllminPtTPCvsPtAllChi2PerNClusTPC",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,fgkChi2PerClusBins,fgkChi2PerClusMin,fgkChi2PerClusMax);
fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
- fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetZTitle("#chi^{2}/NClusTPC");
+ fPtAllminPtTPCvsPtAllChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusTPC);
fPtAllminPtTPCvsPtAllChi2PerNClusITS = new TH3F("fPtAllminPtTPCvsPtAllChi2PerNClusITS","PtAllminPtTPCvsPtAllChi2PerNClusITS",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,fgkChi2PerClusBins,fgkChi2PerClusMin,fgkChi2PerClusMax);
fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
- fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetZTitle("#chi^{2}/NClusITS");
+ fPtAllminPtTPCvsPtAllChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
fHistList->Add(fPtAllminPtTPCvsPtAllChi2PerNClusITS);
fEtaPhiOutliers = new TH2F("fEtaPhiOutliers","PtAllminPtTPCvsPtAll",20, -1.,1.,fgkNPhiBins,kMinPhi,kMaxPhi);
fPtITSouterminPtTPCvsPtAllNPointTPC->SetZTitle("N_{point,TPC}");
fHistList->Add(fPtITSouterminPtTPCvsPtAllNPointTPC);
+ fPtITSouterminPtTPCvsPtAllNPointTPCS = new TH3F("fPtITSouterminPtTPCvsPtAllNPointTPCS","PtAllminPtTPCvsPtAllNPointTPCS",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,100,0.,1.);
+ fPtITSouterminPtTPCvsPtAllNPointTPCS->SetXTitle("p_{t}^{Global}");
+ fPtITSouterminPtTPCvsPtAllNPointTPCS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
+ fPtITSouterminPtTPCvsPtAllNPointTPCS->SetZTitle("N_{point,TPC}^{Shared}/N_{point,TPC}");
+ fHistList->Add(fPtITSouterminPtTPCvsPtAllNPointTPCS);
+
fPtITSouterminPtTPCvsPtAllDCAR = new TH3F("fPtITSouterminPtTPCvsPtAllDCAR","PtAllminPtTPCvsPtAllDCAR",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,80,-0.2,0.2);
fPtITSouterminPtTPCvsPtAllDCAR->SetXTitle("p_{t}^{Global}");
fPtITSouterminPtTPCvsPtAllDCAR->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC","PtAllminPtTPCvsPtAllChi2PerNClusTPC",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,35,0.,3.5);
fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
- fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetZTitle("#chi^{2}/NClusTPC");
+ fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC);
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITS","PtAllminPtTPCvsPtAllChi2PerNClusITS",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,35,0.,3.5);
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
- fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetZTitle("#chi^{2}/NClusITS");
+ fPtITSouterminPtTPCvsPtAllChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITS);
//As function of ITS layers
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSPD = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSPD","PtAllminPtTPCvsPtAllChi2PerNClusITS_NoSPD",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,fgkChi2PerClusBins,fgkChi2PerClusMin,fgkChi2PerClusMax);
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSPD->SetXTitle("p_{t}^{Global}");
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSPD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
- fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSPD->SetZTitle("#chi^{2}/NPointITS");
+ fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSPD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSPD);
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSDD = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSDD","PtAllminPtTPCvsPtAllChi2PerNClusITS_NoSDD",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,fgkChi2PerClusBins,fgkChi2PerClusMin,fgkChi2PerClusMax);
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSDD->SetXTitle("p_{t}^{Global}");
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSDD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
- fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSDD->SetZTitle("#chi^{2}/NPointITS");
+ fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSDD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSDD);
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSSD = new TH3F("fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSSD","PtAllminPtTPCvsPtAllChi2PerNClusITS_NoSSD",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,fgkChi2PerClusBins,fgkChi2PerClusMin,fgkChi2PerClusMax);
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSSD->SetXTitle("p_{t}^{Global}");
fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSSD->SetYTitle("(1/p_{t}^{ITSouter}-1/p_{t}^{TPCinner})/(1/p_{t}^{ITSouter})");
- fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSSD->SetZTitle("#chi^{2}/NPointITS");
+ fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSSD->SetZTitle("#chi^{2}/(2*NPointITS-5)");
fHistList->Add(fPtITSouterminPtTPCvsPtAllChi2PerNClusITS_NoSSD);
fHistListITS->Add(fPtSelITS);
fPtITSminPtTPCvsPtITS = new TH2F("fPtITSminPtTPCvsPtITS","PtITSminPtTPCvsPtITS",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.);
- fPtITSminPtTPCvsPtITS->SetXTitle("p_{t}^{ITS}");
- fPtITSminPtTPCvsPtITS->SetYTitle("(1/p_{t}^{ITS}-1/p_{t}^{TPC})/(1/p_{t}^{ITS})");
+ fPtITSminPtTPCvsPtITS->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fHistListITS->Add(fPtITSminPtTPCvsPtITS);
fPtITSminPtTPCvsPtITSNPointTPC = new TH3F("fPtITSminPtTPCvsPtITSNPointTPC","PtITSminPtTPCvsPtITSNPointTPC",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,160,0.5,160.5);
- fPtITSminPtTPCvsPtITSNPointTPC->SetXTitle("p_{t}^{ITSrefit}");
- fPtITSminPtTPCvsPtITSNPointTPC->SetYTitle("(1/p_{t}^{ITSrefit}-1/p_{t}^{TPC})/(1/p_{t}^{ITSrefit})");
+ fPtITSminPtTPCvsPtITSNPointTPC->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSNPointTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtITSminPtTPCvsPtITSNPointTPC->SetZTitle("N_{point,TPC}");
fHistListITS->Add(fPtITSminPtTPCvsPtITSNPointTPC);
-
+
+ fPtITSminPtTPCvsPtITSNPointTPCS = new TH3F("fPtITSminPtTPCvsPtITSNPointTPCS","PtITSminPtTPCvsPtITSNPointTPCS",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,100,0.,1.);
+ fPtITSminPtTPCvsPtITSNPointTPCS->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSNPointTPCS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
+ fPtITSminPtTPCvsPtITSNPointTPCS->SetZTitle("N_{point,TPC}^{Shared}/N_{point,TPC}");
+ fHistListITS->Add(fPtITSminPtTPCvsPtITSNPointTPCS);
+
fPtITSminPtTPCvsPtITSDCAR = new TH3F("fPtITSminPtTPCvsPtITSDCAR","PtITSminPtTPCvsPtITSDCAR",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,80,-0.2,0.2);
- fPtITSminPtTPCvsPtITSDCAR->SetXTitle("p_{t}^{ITSrefit}");
- fPtITSminPtTPCvsPtITSDCAR->SetYTitle("(1/p_{t}^{ITSrefit}-1/p_{t}^{TPC})/(1/p_{t}^{ITSrefit})");
+ fPtITSminPtTPCvsPtITSDCAR->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSDCAR->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtITSminPtTPCvsPtITSDCAR->SetZTitle("DCA_{R}");
fHistListITS->Add(fPtITSminPtTPCvsPtITSDCAR);
fPtITSminPtTPCvsPtITSDCAZ = new TH3F("fPtITSminPtTPCvsPtITSDCAZ","PtITSminPtTPCvsPtITSDCAZ",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,80,-2.,2.);
- fPtITSminPtTPCvsPtITSDCAZ->SetXTitle("p_{t}^{ITSrefit}");
- fPtITSminPtTPCvsPtITSDCAZ->SetYTitle("(1/p_{t}^{ITSrefit}-1/p_{t}^{TPC})/(1/p_{t}^{ITSrefit})");
+ fPtITSminPtTPCvsPtITSDCAZ->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSDCAZ->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtITSminPtTPCvsPtITSDCAZ->SetZTitle("DCA_{Z}");
fHistListITS->Add(fPtITSminPtTPCvsPtITSDCAZ);
fPtITSminPtTPCvsPtITSPhi = new TH3F("fPtITSminPtTPCvsPtITSPhi","PtITSminPtTPCvsPtITSPhi",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,fgkNPhiBins,kMinPhi,kMaxPhi);
- fPtITSminPtTPCvsPtITSPhi->SetXTitle("p_{t}^{ITSrefit}");
- fPtITSminPtTPCvsPtITSPhi->SetYTitle("(1/p_{t}^{ITSrefit}-1/p_{t}^{TPC})/(1/p_{t}^{ITSrefit})");
+ fPtITSminPtTPCvsPtITSPhi->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSPhi->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtITSminPtTPCvsPtITSPhi->SetZTitle("#phi");
fHistListITS->Add(fPtITSminPtTPCvsPtITSPhi);
fPtITSminPtTPCvsPtITSNPointITS = new TH3F("fPtITSminPtTPCvsPtITSNPointITS","PtITSminPtTPCvsPtITSNPointITS",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,9,-0.5,8.5);
- fPtITSminPtTPCvsPtITSNPointITS->SetXTitle("p_{t}^{ITSrefit}");
- fPtITSminPtTPCvsPtITSNPointITS->SetYTitle("(1/p_{t}^{ITSrefit}-1/p_{t}^{TPC})/(1/p_{t}^{ITSrefit})");
+ fPtITSminPtTPCvsPtITSNPointITS->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSNPointITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtITSminPtTPCvsPtITSNPointITS->SetZTitle("N_{point,ITS}");
fHistListITS->Add(fPtITSminPtTPCvsPtITSNPointITS);
fPtITSminPtTPCvsPtITSNSigmaToVertex = new TH3F("fPtITSminPtTPCvsPtITSNSigmaToVertex","PtITSminPtTPCvsPtITSNSigmaToVertex",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,40,0.,8.);
- fPtITSminPtTPCvsPtITSNSigmaToVertex->SetXTitle("p_{t}^{ITS}");
- fPtITSminPtTPCvsPtITSNSigmaToVertex->SetYTitle("(1/p_{t}^{ITS}-1/p_{t}^{TPC})/(1/p_{t}^{ITS})");
+ fPtITSminPtTPCvsPtITSNSigmaToVertex->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSNSigmaToVertex->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtITSminPtTPCvsPtITSNSigmaToVertex->SetZTitle("N#sigma to vertex");
fHistListITS->Add(fPtITSminPtTPCvsPtITSNSigmaToVertex);
fPtITSminPtTPCvsPtITSChi2C = new TH3F("fPtITSminPtTPCvsPtITSChi2C","PtITSminPtTPCvsPtITSChi2C",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,20,0.,10.);
- fPtITSminPtTPCvsPtITSChi2C->SetXTitle("p_{t}^{ITS}");
- fPtITSminPtTPCvsPtITSChi2C->SetYTitle("(1/p_{t}^{ITS}-1/p_{t}^{TPC})/(1/p_{t}^{ITS})");
+ fPtITSminPtTPCvsPtITSChi2C->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSChi2C->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtITSminPtTPCvsPtITSChi2C->SetZTitle("Constrained #chi^{2}");
fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2C);
fPtITSminPtTPCvsPtITSRel1PtUncertainty = new TH3F("fPtITSminPtTPCvsPtITSRel1PtUncertainty","PtITSminPtTPCvsPtITSRel1PtUncertainty",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,30,0.,0.3);
- fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetXTitle("p_{t}^{ITS}");
- fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetYTitle("(1/p_{t}^{ITS}-1/p_{t}^{TPC})/(1/p_{t}^{ITS})");
+ fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
fPtITSminPtTPCvsPtITSRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
fHistListITS->Add(fPtITSminPtTPCvsPtITSRel1PtUncertainty);
fPtITSminPtTPCvsPtITSChi2PerNClusTPC = new TH3F("fPtITSminPtTPCvsPtITSChi2PerNClusTPC","PtITSminPtTPCvsPtITSChi2PerNClusTPC",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,35,0.,3.5);
- fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetXTitle("p_{t}^{ITS}");
- fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetYTitle("(1/p_{t}^{ITS}-1/p_{t}^{TPC})/(1/p_{t}^{ITS})");
- fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetZTitle("#chi^{2}/NClusTPC");
+ fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
+ fPtITSminPtTPCvsPtITSChi2PerNClusTPC->SetZTitle("#chi^{2}/(2*NClusTPC-5)");
fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2PerNClusTPC);
fPtITSminPtTPCvsPtITSChi2PerNClusITS = new TH3F("fPtITSminPtTPCvsPtITSChi2PerNClusITS","PtITSminPtTPCvsPtITSChi2PerNClusITS",fgkNPtBins, fgkPtMin,fgkPtMax,fgkResPtBins,-1.,1.,35,0.,3.5);
- fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetXTitle("p_{t}^{ITS}");
- fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetYTitle("(1/p_{t}^{ITS}-1/p_{t}^{TPC})/(1/p_{t}^{ITS})");
- fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetZTitle("#chi^{2}/NClusITS");
+ fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetXTitle("p_{t}^{Global}");
+ fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetYTitle("(1/p_{t}^{Global}-1/p_{t}^{TPC})/(1/p_{t}^{Global})");
+ fPtITSminPtTPCvsPtITSChi2PerNClusITS->SetZTitle("#chi^{2}/(2*NClusITS-5)");
fHistListITS->Add(fPtITSminPtTPCvsPtITSChi2PerNClusITS);
- fPtOuterPtInner = new TH2F("fPtOuterPtInner","fPtOuterPtInner",fgkNPtBins, fgkPtMin,fgkPtMax,fgkNPtBins, fgkPtMin,fgkPtMax);
- fPtOuterPtInner->SetXTitle("p_{t}^{inner}");
- fPtOuterPtInner->SetYTitle("p_{t}^{outer}");
- fHistListITS->Add(fPtOuterPtInner);
-
fPtRel1PtUncertaintyChi2PerClusTPC = new TH3F("fPtRel1PtUncertaintyChi2PerClusTPC","PtITSminPtTPCvsPtITSRel1PtUncertainty",fgkNPtBins, fgkPtMin,fgkPtMax,30,0.,0.3,35,0.,3.5);
fPtRel1PtUncertaintyChi2PerClusTPC->SetXTitle("p_{t}^{global}");
fPtRel1PtUncertaintyChi2PerClusTPC->SetYTitle("Rel1PtUncertainty");
- fPtRel1PtUncertaintyChi2PerClusTPC->SetZTitle("#chi^{2}/N_{clusters}^{TPC}");
+ fPtRel1PtUncertaintyChi2PerClusTPC->SetZTitle("#chi^{2}/(2*N_{clusters}^{TPC}-5)");
fHistListITS->Add(fPtRel1PtUncertaintyChi2PerClusTPC);
+ fPtNPointTPCSChi2PerClusTPC = new TH3F("fPtNPointTPCSChi2PerClusTPC","PtITSminPtTPCvsPtITSNPointTPCS",fgkNPtBins, fgkPtMin,fgkPtMax,100,0.,1.,35,0.,3.5);
+ fPtNPointTPCSChi2PerClusTPC->SetXTitle("p_{t}^{global}");
+ fPtNPointTPCSChi2PerClusTPC->SetYTitle("N_{Point,TPC}^{Shared}/N_{Point,TPC}");
+ fPtNPointTPCSChi2PerClusTPC->SetZTitle("#chi^{2}/(2*N_{clusters}^{TPC}-5)");
+ fHistListITS->Add(fPtNPointTPCSChi2PerClusTPC);
+
+ fPtNPointTPCSRel1PtUncertainty = new TH3F("fPtNPointTPCSRel1PtUncertainty","PtITSminPtTPCvsPtITSNPointTPCS",fgkNPtBins, fgkPtMin,fgkPtMax,100,0.,1.,30,0.,0.3);
+ fPtNPointTPCSRel1PtUncertainty->SetXTitle("p_{t}^{global}");
+ fPtNPointTPCSRel1PtUncertainty->SetYTitle("N_{Point,TPC}^{Shared}/N_{Point,TPC}");
+ fPtNPointTPCSRel1PtUncertainty->SetZTitle("Rel1PtUncertainty");
+ fHistListITS->Add(fPtNPointTPCSRel1PtUncertainty);
+
+ fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel = new TH3F("fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel","PtITSminPtTPCvsPtITSRel1PtUncertainty",fgkNPtBins, fgkPtMin,fgkPtMax,30,0.,0.3,35,0.,3.5);
+ fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel->SetXTitle("p_{t}^{global}");
+ fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel->SetYTitle("Rel1PtUncertainty");
+ fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel->SetZTitle("#chi^{2}/(2*N_{clusters}^{TPC}-5)");
+ fHistListITS->Add(fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel);
+
fPtAllTPC = new TH1F("fPtAllTPC","PtAll",fgkNPtBins, fgkPtMin, fgkPtMax);
fHistListTPC->Add(fPtAllTPC);
fPtSelTPC = new TH1F("fPtSelTPC","PtSel",fgkNPtBins, fgkPtMin, fgkPtMax);
fPtSelTPCITS = new TH1F("fPtSelTPCITS","PtSel",fgkNPtBins, fgkPtMin, fgkPtMax);
fHistListTPC->Add(fPtSelTPCITS);
+ //****************************************************************************************************************//
+ // Cosmic Candidates //
+ //****************************************************************************************************************//
+ fPtCosmicCandidates = new TH1F("fPtCosmicCandidates","fPtCosmicCandidates",fgkNPtBins, fgkPtMin, fgkPtMax);
+ fHistListCosmics->Add(fPtCosmicCandidates);
+ fDeltaPtCosmicCandidates = new TH1F("fDeltaPtCosmicCandidates","fDeltaPtCosmicCandidates",fgkNPtBins, -50., 50.);
+ fHistListCosmics->Add(fDeltaPtCosmicCandidates);
+ fDeltaPhi = new TH1F("fDeltaPhi","fDeltaPhi",fgkNPhiBins*2,-1*kMaxPhi,kMaxPhi);
+ fHistListCosmics->Add(fDeltaPhi);
+ fDeltaEta = new TH1F("fDeltaEta","fDeltaEta",20, -2.,2.);
+ fHistListCosmics->Add(fDeltaEta);
+
TH1::AddDirectory(oldStatus);
}
PostData(0, fHistList);
PostData(1, fHistListTPC);
PostData(2, fHistListITS);
+ PostData(3, fHistListCosmics);
return;
}
PostData(0, fHistList);
PostData(1, fHistListTPC);
PostData(2, fHistListITS);
+ PostData(3, fHistListCosmics);
return;
}
PostData(0, fHistList);
PostData(1, fHistListTPC);
PostData(2, fHistListITS);
+ PostData(3, fHistListCosmics);
return;
}
PostData(0, fHistList);
PostData(1, fHistListTPC);
PostData(2, fHistListITS);
+ PostData(3, fHistListCosmics);
return;
}
PostData(0, fHistList);
PostData(1, fHistListTPC);
PostData(2, fHistListITS);
+ PostData(3, fHistListCosmics);
return;
}
PostData(0, fHistList);
PostData(1, fHistListTPC);
PostData(2, fHistListITS);
+ PostData(3, fHistListCosmics);
return;
}
if(!fESD->GetNumberOfTracks() || fESD->GetNumberOfTracks()<2){
PostData(0, fHistList);
PostData(1, fHistListTPC);
PostData(2, fHistListITS);
+ PostData(3, fHistListCosmics);
return;
}
Int_t nTracks = fESD->GetNumberOfTracks();
fPtAll->Fill(pt);
fPtAllTPC->Fill(ptTPC);
-
+
+
if (fTrackCuts->AcceptTrack(track)) {
+ Bool_t cosmic = kFALSE;
+ if(pt>6.) { cosmic = IsCosmic(track,iTrack,6.); }
+ // if(cosmic) continue;
+
fPtSel->Fill(pt);
fPtSelTPC->Fill(ptTPC);
if(ptTPC==0. || pt==0.) continue;
fPtAllminPtTPCvsPtAll->Fill(pt,(1./pt-1./ptTPC)/(1./pt) );
- fPtAllminPtTPCvsPtAllNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->GetTPCNcls());
+ fPtAllminPtTPCvsPtAllNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nClustersTPC);
+ if(nClustersTPC>0.) fPtAllminPtTPCvsPtAllNPointTPCS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->GetTPCnclsS()/nClustersTPC);
fPtAllminPtTPCvsPtAllDCAR->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dca2D);
fPtAllminPtTPCvsPtAllDCAZ->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dcaZ);
fPtAllminPtTPCvsPtAllPhi->Fill(pt,(1./pt-1./ptTPC)/(1./pt),phi);
if(ptITSouter==0.) continue;
fPtSelITSouter->Fill(ptITSouter);
fPtITSouterminPtTPCvsPtAll->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter) );
- fPtITSouterminPtTPCvsPtAllNPointTPC->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),track->GetTPCNcls());
+ fPtITSouterminPtTPCvsPtAllNPointTPC->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),nClustersTPC);
+ if(nClustersTPC>0.) fPtITSouterminPtTPCvsPtAllNPointTPCS->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),track->GetTPCnclsS()/nClustersTPC);
fPtITSouterminPtTPCvsPtAllDCAR->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),dca2D);
fPtITSouterminPtTPCvsPtAllDCAZ->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),dcaZ);
fPtITSouterminPtTPCvsPtAllPhi->Fill(pt,(1./ptITSouter-1./ptTPC)/(1./ptITSouter),phi);
fPtSelITS->Fill(pt);
fPtSelTPCITS->Fill(ptTPC);
fPtITSminPtTPCvsPtITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt) );
- fPtITSminPtTPCvsPtITSNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->GetTPCNcls());
+ fPtITSminPtTPCvsPtITSNPointTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nClustersTPC);
+ if(nClustersTPC>0.) fPtITSminPtTPCvsPtITSNPointTPCS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),track->GetTPCnclsS()/nClustersTPC);
fPtITSminPtTPCvsPtITSDCAR->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dca2D);
fPtITSminPtTPCvsPtITSDCAZ->Fill(pt,(1./pt-1./ptTPC)/(1./pt),dcaZ);
fPtITSminPtTPCvsPtITSPhi->Fill(pt,(pt-ptTPC)/(pt),phi);
fPtITSminPtTPCvsPtITSNSigmaToVertex->Fill(pt,(1./pt-1./ptTPC)/(1./pt),nSigmaToVertex);
fPtITSminPtTPCvsPtITSChi2C->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2C);
fPtITSminPtTPCvsPtITSRel1PtUncertainty->Fill(pt,(1./pt-1./ptTPC)/(1./pt),relUncertainty1Pt);
- // fPtOuterPtInner->Fill(trackInner->Pt(),trackOuter->Pt());
- fPtRel1PtUncertaintyChi2PerClusTPC->Fill(pt,relUncertainty1Pt,chi2PerClusterTPC);
fPtITSminPtTPCvsPtITSChi2PerNClusTPC->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerClusterTPC);
if(nPointITS>3) fPtITSminPtTPCvsPtITSChi2PerNClusITS->Fill(pt,(1./pt-1./ptTPC)/(1./pt),chi2PerNPointITS);
+
+ fPtRel1PtUncertaintyChi2PerClusTPC->Fill(pt,relUncertainty1Pt,chi2PerClusterTPC);
+ fPtNPointTPCSChi2PerClusTPC->Fill(pt,track->GetTPCnclsS()/nClustersTPC,chi2PerClusterTPC);
+ fPtNPointTPCSRel1PtUncertainty->Fill(pt,track->GetTPCnclsS()/nClustersTPC,relUncertainty1Pt);
+ if(track->GetTPCnclsS()/nClustersTPC>0.05) fPtRel1PtUncertaintyChi2PerClusTPC_SharedSel->Fill(pt,relUncertainty1Pt,chi2PerClusterTPC);
}//fTrackCutsITS loop
}//ESD track loop
PostData(0, fHistList);
PostData(1, fHistListTPC);
PostData(2, fHistListITS);
+ PostData(3, fHistListCosmics);
+
+}
+//________________________________________________________________________
+Bool_t AliPWG4HighPtQATPConly::IsCosmic(const AliESDtrack *track1 , Int_t trackNumber, Double_t ptMin)
+{
+ Bool_t candidate = kFALSE;
+ Bool_t candidate2 = kFALSE;
+ if(!track1) return candidate;
+
+ Int_t nTracks = fESD->GetNumberOfTracks();
+
+ for (Int_t iTrack = trackNumber+1; iTrack < nTracks; iTrack++) {
+ candidate2 = kFALSE;
+ AliESDtrack *track2 = fESD->GetTrack(iTrack);
+ if(!track2) continue;
+ if(!(fTrackCuts->AcceptTrack(track2))) continue;
+ if(track2->Pt()<ptMin) continue;
+
+ //Check if same charge
+ if( (track1->GetSign()*track2->GetSign()) < 0. ) continue;
+
+ //Check if back-to-back
+ Double_t mom1[3],mom2[3];
+ track1->GetPxPyPz(mom1);
+ track2->GetPxPyPz(mom2);
+ Double_t cosTheta = (mom1[0]*mom2[0]+mom1[1]*mom2[1]+mom1[2]*mom2[2])/( TMath::Sqrt(mom1[0]*mom1[0]+mom1[1]*mom1[1]+mom1[2]*mom1[2])*TMath::Sqrt(mom2[0]*mom2[0]+mom2[1]*mom2[1]+mom2[2]*mom2[2]) );
+ Double_t theta = TMath::ACos(cosTheta);
+ if(TMath::Abs(TMath::Pi()-theta)<fMaxCosmicAngle) { candidate = kTRUE; candidate2 = kTRUE;}
+
+ if(candidate2) {
+ fDeltaPtCosmicCandidates->Fill(track1->Pt()-track2->Pt());
+ fDeltaPhi->Fill(track1->Phi()-track2->Phi());
+ fDeltaPhi->Fill(track1->Eta()-track2->Eta());
+ }
+ }
+
+ if(candidate) {
+ fPtCosmicCandidates->Fill(track1->Pt());
+ }
+
+ return candidate;
}
+
//________________________________________________________________________
void AliPWG4HighPtQATPConly::Terminate(Option_t *)
{