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);
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);
115 fCorrCanvas = CreateCanvas("Correlations", "Multiplicity Correlations");
116 fCorrCanvas->Divide(2, 3);
118 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcNch"));
119 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
121 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzeroNch"));
122 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
124 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrSpdTpcNch"));
125 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
127 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzemNch"));
128 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
130 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcVzero"));
131 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
133 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzemVzero"));
134 AddHistogramToCanvas(twoDf, fCorrCanvas, cd);
140 fEtCorrCanvas = CreateCanvas("E_{T} corr", "E_{T} Correlations");
141 fEtCorrCanvas->Divide(2, 3);
143 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrZdcTotEvsPhosTotEt"));
144 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
146 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrZdcTotEvsEmcalTotEt"));
147 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
149 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrZdcTotEvsTotEt"));
150 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
152 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzerovsPhosTotEt"));
153 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
155 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzerovsEmcalTotEt"));
156 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
158 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzerovsTotEt"));
159 AddHistogramToCanvas(twoDf, fEtCorrCanvas, cd);
163 if (!fZdcVzeroSpdCorrCanvas)
165 fZdcVzeroSpdCorrCanvas = CreateCanvas("ZDC/V0 vs SPD", "ZDC/V0 vs. SPD");
166 fZdcVzeroSpdCorrCanvas->Divide(2, 3);
169 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzeroSpd"));
170 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
172 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzeroASpd"));
173 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
175 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrVzeroCSpd"));
176 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
178 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcSpd"));
179 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
181 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcASpd"));
182 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
184 twoDf = dynamic_cast<TH2F*>(hlist->FindObject("fCorrEzdcCSpd"));
185 AddHistogramToCanvas(twoDf, fZdcVzeroSpdCorrCanvas, cd);
189 std::cout << "ERROR: This block does not contain what you think it contains!" << std::endl;
194 std::cout << "ERROR: There is no TList object in the block" << std::endl;
200 void AliHLTEveMultCorr::AddHistogramsToCanvas(AliHLTHOMERBlockDesc* /*block*/, TCanvas* /*canvas*/, Int_t& /*cdCount*/)
204 void AliHLTEveMultCorr::AddHistogramToCanvas(TH1* hist, TCanvas* canvas, Int_t& cdCount)
208 if (!strcmp(hist->ClassName(), "TH1F"))
211 dynamic_cast<TH1F*>(hist)->Draw();
213 else if (!strcmp(hist->ClassName(), "TH2F"))
216 dynamic_cast<TH2F*>(hist)->Draw("COLZ");
220 std::cout << "I don't want histograms of type " << hist->ClassName() << std::endl;
225 std::cout << "ERROR (AddHistogramsToCanvas): You gave me a null pointer" << std::endl;