1 #include "AliHLTEveMultCorr.h"
6 #include "AliHLTHOMERBlockDesc.h"
9 AliHLTEveMultCorr::AliHLTEveMultCorr(const char* name): AliHLTEveBase(name)
15 ,fZdcVzeroSpdCorrCanvas(0)
20 AliHLTEveMultCorr::~AliHLTEveMultCorr()
24 void AliHLTEveMultCorr::ResetElements()
29 void AliHLTEveMultCorr::UpdateElements()
31 fVzeroMultCanvas->Update();
32 fZdcMultCanvas->Update();
33 fTpcMultCanvas->Update();
34 fCorrCanvas->Update();
35 fEtCorrCanvas->Update();
36 fZdcVzeroSpdCorrCanvas->Update();
40 void AliHLTEveMultCorr::ProcessBlock(AliHLTHOMERBlockDesc* block)
42 TList *hlist = dynamic_cast<TList*>(block->GetTObject());
46 if (hlist->Contains("fVzeroMult")) // These are the correlation histograms
52 //VZERO multiplicity hists
53 if (!fVzeroMultCanvas)
55 fVzeroMultCanvas = CreateCanvas("V0 Mult", "V0 Multiplicities");
56 fVzeroMultCanvas->Divide(2, 2);
58 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fVzeroMult"));
59 AddHistogramToCanvas(oneDf, fVzeroMultCanvas, cd);
61 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fVzeroMultAC"));
62 AddHistogramToCanvas(twoDf, fVzeroMultCanvas, cd);
64 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fVzeroFlaggedMult"));
65 AddHistogramToCanvas(oneDf, fVzeroMultCanvas, cd);
67 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fVzeroFlaggedMultAC"));
68 AddHistogramToCanvas(twoDf, fVzeroMultCanvas, cd);
71 //ZDC multiplicity hists
74 fZdcMultCanvas = CreateCanvas("ZDC Mult", "ZDC Multiplicities");
75 fZdcMultCanvas->Divide(2, 4);
77 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fZdcEzdc"));
78 AddHistogramToCanvas(oneDf, fZdcMultCanvas, cd);
80 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fZdcEzn"));
81 AddHistogramToCanvas(oneDf, fZdcMultCanvas, cd);
83 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fZdcEzp"));
84 AddHistogramToCanvas(oneDf, fZdcMultCanvas, cd);
86 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fZdcEzem"));
87 AddHistogramToCanvas(oneDf, fZdcMultCanvas, cd);
89 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fZdcNpart"));
90 AddHistogramToCanvas(oneDf, fZdcMultCanvas, cd);
92 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fZdcB"));
93 AddHistogramToCanvas(oneDf, fZdcMultCanvas, cd);
95 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fZdcEzemEzdc"));
96 AddHistogramToCanvas(twoDf, fZdcMultCanvas, cd);
102 fTpcMultCanvas = CreateCanvas("TPC Mult", "TPC Multiplicities");
103 fTpcMultCanvas->Divide(2, 2);
105 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fTpcNch2"));
106 AddHistogramToCanvas(oneDf, fTpcMultCanvas, cd);
108 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fTpcNch3"));
109 AddHistogramToCanvas(oneDf, fTpcMultCanvas, cd);
111 oneDf = dynamic_cast<TH1F*>(hlist->FindObject("fSpdNClusters"));
113 AddHistogramToCanvas(oneDf, fTpcMultCanvas, cd);
119 fCorrCanvas = CreateCanvas("Correlations", "Multiplicity Correlations");
120 fCorrCanvas->Divide(2, 3);
122 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcNch"));
123 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
125 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzeroNch"));
126 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
128 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrSpdTpcNch"));
129 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
131 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzemNch"));
132 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
134 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcVzero"));
135 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
137 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzemVzero"));
138 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
144 fEtCorrCanvas = CreateCanvas("E_{T} corr", "E_{T} Correlations");
145 fEtCorrCanvas->Divide(2, 3);
147 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrZdcTotEvsPhosTotEt"));
148 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
150 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrZdcTotEvsEmcalTotEt"));
151 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
153 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrZdcTotEvsTotEt"));
154 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
156 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzerovsPhosTotEt"));
157 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
159 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzerovsEmcalTotEt"));
160 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
162 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzerovsTotEt"));
163 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
167 if (!fZdcVzeroSpdCorrCanvas)
169 fZdcVzeroSpdCorrCanvas = CreateCanvas("ZDC/V0 vs SPD", "ZDC/V0 vs. SPD");
170 fZdcVzeroSpdCorrCanvas->Divide(2, 3);
173 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzeroSpd"));
174 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
176 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzeroASpd"));
177 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
179 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzeroCSpd"));
180 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
182 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcSpd"));
183 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
185 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcASpd"));
186 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
188 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcCSpd"));
189 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
193 std::cout << "ERROR: This block does not contain what you think it contains!" << std::endl;
198 std::cout << "ERROR: There is no TList object in the block" << std::endl;
204 void AliHLTEveMultCorr::AddHistogramsToCanvas(AliHLTHOMERBlockDesc* /*block*/, TCanvas* /*canvas*/, Int_t& /*cdCount*/)
208 void AliHLTEveMultCorr::AddHistogramToCanvas(TH1* hist, TCanvas* canvas, Int_t& cdCount)
212 if (!strcmp(hist->ClassName(), "TH1F"))
215 TPad * pad = dynamic_cast<TPad*>(canvas->cd(cdCount));
217 dynamic_cast<TH1F*>(hist)->Draw();
219 else if (!strcmp(hist->ClassName(), "TH2F"))
222 dynamic_cast<TH2F*>(hist)->Draw("COLZ");
226 std::cout << "I don't want histograms of type " << hist->ClassName() << std::endl;
231 std::cout << "ERROR (AddHistogramsToCanvas): You gave me a null pointer" << std::endl;