AliAnalysisEt::AliAnalysisEt() :
fHistogramNameSuffix("")
+ ,fCuts(0)
,fPdgDB(0)
,fPiPlusCode(0)
,fPiMinusCode(0)
,fMultiplicity(0)
,fChargedMultiplicity(0)
,fNeutralMultiplicity(0)
- ,fEtaCut(EtCommonCuts::kEtaCut)
- ,fEtaCutAcc(0)
- ,fPhiCutAccMin(0)
- ,fPhiCutAccMax(360.)
- ,fDetectorRadius(460.)
- ,fVertexXCut(0)
- ,fVertexYCut(0)
- ,fVertexZCut(0)
- ,fIPxyCut(0)
- ,fIPzCut(0)
- ,fClusterEnergyCut(EtCommonCuts::kClusterEnergyCut)
- ,fTrackPtCut(EtCommonCuts::kTrackPtCut)
- ,fSingleCellEnergyCut(0)
+ ,fBaryonEt(0)
+ ,fAntiBaryonEt(0)
+ ,fMesonEt(0)
+ ,fBaryonEtAcc(0)
+ ,fAntiBaryonEtAcc(0)
+ ,fMesonEtAcc(0)
+ ,fProtonEt(0)
+ ,fChargedKaonEt(0)
+ ,fMuonEt(0)
+ ,fElectronEt(0)
+ ,fProtonEtAcc(0)
+ ,fChargedKaonEtAcc(0)
+ ,fMuonEtAcc(0)
+ ,fElectronEtAcc(0)
+ ,fEtaCut(0)
+ ,fEtaCutAcc(0)
+ ,fPhiCutAccMin(0)
+ ,fPhiCutAccMax(0)
+ ,fDetectorRadius(0)
+ ,fClusterEnergyCut(0)
+ ,fSingleCellEnergyCut(0)
,fHistEt(0)
,fHistChargedEt(0)
,fHistNeutralEt(0)
,fHistBaryonEtAcc(0)
,fHistAntiBaryonEtAcc(0)
,fHistMesonEtAcc(0)
+ ,fHistProtonEt(0)
+ ,fHistChargedKaonEt(0)
+ ,fHistMuonEt(0)
+ ,fHistElectronEt(0)
+ ,fHistProtonEtAcc(0)
+ ,fHistChargedKaonEtAcc(0)
+ ,fHistMuonEtAcc(0)
+ ,fHistElectronEtAcc(0)
+ ,fHistEtRecvsEtMC(0)
,fHistTMDeltaR(0)
{
-
}
AliAnalysisEt::~AliAnalysisEt()
list->Add(fHistAntiBaryonEtAcc);
list->Add(fHistMesonEtAcc);
+ list->Add(fHistProtonEtAcc);
+ list->Add(fHistChargedKaonEtAcc);
+ list->Add(fHistMuonEtAcc);
+ list->Add(fHistElectronEtAcc);
+
+ list->Add(fHistEtRecvsEtMC);
+
list->Add(fHistTMDeltaR);
}
void AliAnalysisEt::Init()
-{// set up cuts and PDG info
- fVertexXCut = EtReconstructedCuts::kVertexXCut;
- fVertexYCut = EtReconstructedCuts::kVertexYCut;
- fVertexZCut = EtReconstructedCuts::kVertexZCut;
- fIPxyCut = EtReconstructedCuts::kIPxyCut;
- fIPzCut = EtReconstructedCuts::kIPzCut;
-
- if(!fPdgDB) fPdgDB = new TDatabasePDG();
- SetParticleCodes();
+{// clear variables, set up cuts and PDG info
+ ResetEventValues();
}
void AliAnalysisEt::CreateHistograms()
histname = "fHistMesonEtAcc" + fHistogramNameSuffix;
fHistMesonEtAcc = new TH1F(histname.Data(), "E_{T} for mesons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+ histname = "fHistProtonEt" + fHistogramNameSuffix;
+ fHistProtonEt = new TH1F(histname.Data(), "E_{T} for (anti-)protons", nbinsEt, minEt, maxEt);
+
+ histname = "fHistKaonEt" + fHistogramNameSuffix;
+ fHistChargedKaonEt = new TH1F(histname.Data(), "E_{T} for charged kaons", nbinsEt, minEt, maxEt);
+
+ histname = "fHistMuonEt" + fHistogramNameSuffix;
+ fHistMuonEt = new TH1F(histname.Data(), "E_{T} for muons", nbinsEt, minEt, maxEt);
+
+ histname = "fHistElectronEt" + fHistogramNameSuffix;
+ fHistElectronEt = new TH1F(histname.Data(), "E_{T} for electrons/positrons", nbinsEt, minEt, maxEt);
+
+ histname = "fHistProtonEtAcc" + fHistogramNameSuffix;
+ fHistProtonEtAcc = new TH1F(histname.Data(), "E_{T} for (anti-)protons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+ histname = "fHistKaonEtAcc" + fHistogramNameSuffix;
+ fHistChargedKaonEtAcc = new TH1F(histname.Data(), "E_{T} for charged kaons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+ histname = "fHistMuonEtAcc" + fHistogramNameSuffix;
+ fHistMuonEtAcc = new TH1F(histname.Data(), "E_{T} for muons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+ histname = "fHistElectronEtAcc" + fHistogramNameSuffix;
+ fHistElectronEtAcc = new TH1F(histname.Data(), "E_{T} for electrons/positrons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+ histname = "fHistEtRecvsEtMC" + fHistogramNameSuffix;
+ fHistEtRecvsEtMC = new TH2F(histname.Data(), "Reconstructed E_{t} vs MC E_{t}", nbinsEt, minEt, maxEt, nbinsEt, minEt, maxEt);
+
//
histname = "fHistTMDeltaR" + fHistogramNameSuffix;
fHistTMDeltaR = new TH1F(histname.Data(), "#Delta R for calorimeter clusters", 200, 0, 50);
fHistTMDeltaR;
*/
+ fHistProtonEt->Fill(fProtonEt);
+ fHistChargedKaonEt->Fill(fChargedKaonEt);
+ fHistMuonEt->Fill(fMuonEt);
+ fHistElectronEt->Fill(fElectronEt);
+
+ fHistProtonEtAcc->Fill(fProtonEtAcc);
+ fHistChargedKaonEtAcc->Fill(fChargedKaonEtAcc);
+ fHistMuonEtAcc->Fill(fMuonEtAcc);
+ fHistElectronEtAcc->Fill(fElectronEtAcc);
}
+
Int_t AliAnalysisEt::AnalyseEvent(AliVEvent *event)
-{
- //this line is basically here to eliminate a compiler warning that event is not used. Making it a virtual function did not work with the plugin.
- cout<<"This event has "<<event->GetNumberOfTracks()<<" tracks"<<endl;
+{ //this line is basically here to eliminate a compiler warning that event is not used. Making it a virtual function did not work with the plugin.
+ cout << "This event has " << event->GetNumberOfTracks() << " tracks" << endl;
+ ResetEventValues();
return 0;
}
void AliAnalysisEt::ResetEventValues()
{ // clear
- fTotEt = 0;
- fTotEtAcc = 0;
- fTotNeutralEt = 0;
- fTotNeutralEtAcc = 0;
- fTotChargedEt = 0;
- fTotChargedEtAcc = 0;
- fMultiplicity = 0;
- fChargedMultiplicity = 0;
- fNeutralMultiplicity = 0;
-
- if(!fPdgDB) fPdgDB = new TDatabasePDG();
-
- if(fPiPlusCode==0){
+ fTotEt = 0;
+ fTotEtAcc = 0;
+ fTotNeutralEt = 0;
+ fTotNeutralEtAcc = 0;
+ fTotChargedEt = 0;
+ fTotChargedEtAcc = 0;
+ fMultiplicity = 0;
+ fChargedMultiplicity = 0;
+ fNeutralMultiplicity = 0;
+ fBaryonEt = 0;
+ fAntiBaryonEt = 0;
+ fMesonEt = 0;
+ fBaryonEtAcc = 0;
+ fAntiBaryonEtAcc = 0;
+ fMesonEtAcc = 0;
+ fProtonEt = 0;
+ fChargedKaonEt = 0;
+ fMuonEt = 0;
+ fElectronEt = 0;
+ fProtonEtAcc = 0;
+ fChargedKaonEtAcc = 0;
+ fMuonEtAcc = 0;
+
+ if (!fCuts || !fPdgDB || fPiPlusCode==0) { // some Init's needed
+ cout << __FILE__ << ":" << __LINE__ << " : Init " << endl;
+ if (!fCuts) {
+ cout << " setting up Cuts " << endl;
+ fCuts = new AliAnalysisEtCuts();
+ }
+ if(!fPdgDB) {
+ cout << " setting up PdgDB " << endl;
+ fPdgDB = new TDatabasePDG();
+ }
+
+ if (fPiPlusCode==0) {
SetParticleCodes();
}
+ }
+ return;
}
+
void AliAnalysisEt::SetParticleCodes()
{ // set PDG info
fPionMass = fPdgDB->GetParticle("pi+")->Mass();