00001
00002
00003
00004
00005
00006
00008
00009
00010
00011
00013
00014 #include <Stiostream.h>
00015 #include <stdlib.h>
00016 #include <math.h>
00017 #include "StMaker.h"
00018 #include "StFlowPhiWgtMaker.h"
00019 #include "StFlowMaker/StFlowMaker.h"
00020 #include "StFlowMaker/StFlowEvent.h"
00021 #include "StFlowMaker/StFlowConstants.h"
00022 #include "StFlowMaker/StFlowSelection.h"
00023 #include "PhysicalConstants.h"
00024 #include "TFile.h"
00025 #include "TString.h"
00026 #include "TH1.h"
00027 #include "TOrdCollection.h"
00028 #include "StMessMgr.h"
00029 #include "TText.h"
00030 #define PR(x) cout << "##### FlowPhiWgt: " << (#x) << " = " << (x) << endl;
00031
00032 ClassImp(StFlowPhiWgtMaker)
00033
00034
00035
00036 StFlowPhiWgtMaker::StFlowPhiWgtMaker(const Char_t* name): StMaker(name),
00037 MakerName(name) {
00038 pFlowSelect = new StFlowSelection();
00039 }
00040
00041
00042
00043 StFlowPhiWgtMaker::~StFlowPhiWgtMaker() {
00044 }
00045
00046
00047
00048 Int_t StFlowPhiWgtMaker::Make() {
00049
00050
00051
00052 StFlowMaker* pFlowMaker = NULL;
00053 pFlowMaker = (StFlowMaker*)GetMaker("Flow");
00054 if (pFlowMaker) pFlowEvent = pFlowMaker->FlowEventPointer();
00055 if (pFlowEvent && pFlowSelect->Select(pFlowEvent)) {
00056 FillParticleHistograms();
00057 } else {
00058 gMessMgr->Info("##### FlowPhiWgt: FlowEvent pointer null");
00059 return kStOK;
00060 }
00061 if (Debug()) StMaker::PrintInfo();
00062
00063 return kStOK;
00064 }
00065
00066
00067
00068 Int_t StFlowPhiWgtMaker::Init() {
00069
00070
00071 TString* fileName;
00072 for (int n = 1; n < nCens; n++) {
00073 fileName = new TString("flowPhiWgt");
00074 *fileName += n;
00075 fileName->Append(".root");
00076 phiWgtFile[n] = new TFile(fileName->Data(), "RECREATE");
00077 delete fileName;
00078 }
00079
00080
00081 const float phiMin = 0.;
00082 const float phiMax = twopi;
00083 TString* histTitle;
00084
00085
00086 mHistZDCSMDPsiWgtEast = new TH1F("Flow_ZDCSMDPsiWgtEast","Flow_ZDCSMDPsiWgtEast",
00087 Flow::zdcsmd_nPsiBins,-twopi/2.,twopi/2.);
00088 mHistZDCSMDPsiWgtWest = new TH1F("Flow_ZDCSMDPsiWgtWest","Flow_ZDCSMDPsiWgtWest",
00089 Flow::zdcsmd_nPsiBins,-twopi/2.,twopi/2.);
00090
00091
00092 for (int n = 1; n < nCens; n++) {
00093 phiWgtFile[n]->cd();
00094
00095
00096 for (int k = 0; k < Flow::nSels; k++) {
00097
00098
00099 for (int j = 0; j < 2; j++) {
00100
00101
00102
00103 histTitle = new TString("Flow_Phi_FarEast_Sel");
00104 *histTitle += k+1;
00105 histTitle->Append("_Har");
00106 *histTitle += j+1;
00107 hist[k].histCen[n].histHar[j].mHistPhiFarEast =
00108 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBins, phiMin, phiMax);
00109 hist[k].histCen[n].histHar[j].mHistPhiFarEast->SetXTitle
00110 ("Azimuthal Angles (rad)");
00111 hist[k].histCen[n].histHar[j].mHistPhiFarEast->SetYTitle("Counts");
00112 delete histTitle;
00113
00114
00115 histTitle = new TString("Flow_Phi_East_Sel");
00116 *histTitle += k+1;
00117 histTitle->Append("_Har");
00118 *histTitle += j+1;
00119 hist[k].histCen[n].histHar[j].mHistPhiEast =
00120 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBins, phiMin, phiMax);
00121 hist[k].histCen[n].histHar[j].mHistPhiEast->SetXTitle
00122 ("Azimuthal Angles (rad)");
00123 hist[k].histCen[n].histHar[j].mHistPhiEast->SetYTitle("Counts");
00124 delete histTitle;
00125
00126
00127 histTitle = new TString("Flow_Phi_West_Sel");
00128 *histTitle += k+1;
00129 histTitle->Append("_Har");
00130 *histTitle += j+1;
00131 hist[k].histCen[n].histHar[j].mHistPhiWest =
00132 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBins, phiMin, phiMax);
00133 hist[k].histCen[n].histHar[j].mHistPhiWest->SetXTitle
00134 ("Azimuthal Angles (rad)");
00135 hist[k].histCen[n].histHar[j].mHistPhiWest->SetYTitle("Counts");
00136 delete histTitle;
00137
00138
00139 histTitle = new TString("Flow_Phi_FarWest_Sel");
00140 *histTitle += k+1;
00141 histTitle->Append("_Har");
00142 *histTitle += j+1;
00143 hist[k].histCen[n].histHar[j].mHistPhiFarWest =
00144 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBins, phiMin, phiMax);
00145 hist[k].histCen[n].histHar[j].mHistPhiFarWest->SetXTitle
00146 ("Azimuthal Angles (rad)");
00147 hist[k].histCen[n].histHar[j].mHistPhiFarWest->SetYTitle("Counts");
00148 delete histTitle;
00149
00150
00151 histTitle = new TString("Flow_Phi_FtpcFarEast_Sel");
00152 *histTitle += k+1;
00153 histTitle->Append("_Har");
00154 *histTitle += j+1;
00155 hist[k].histCen[n].histHar[j].mHistPhiFtpcFarEast =
00156 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBinsFtpc, phiMin, phiMax);
00157 hist[k].histCen[n].histHar[j].mHistPhiFtpcFarEast->SetXTitle
00158 ("Azimuthal Angles (rad)");
00159 hist[k].histCen[n].histHar[j].mHistPhiFtpcFarEast->SetYTitle("Counts");
00160 delete histTitle;
00161
00162
00163 histTitle = new TString("Flow_Phi_FtpcEast_Sel");
00164 *histTitle += k+1;
00165 histTitle->Append("_Har");
00166 *histTitle += j+1;
00167 hist[k].histCen[n].histHar[j].mHistPhiFtpcEast =
00168 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBinsFtpc, phiMin, phiMax);
00169 hist[k].histCen[n].histHar[j].mHistPhiFtpcEast->SetXTitle
00170 ("Azimuthal Angles (rad)");
00171 hist[k].histCen[n].histHar[j].mHistPhiFtpcEast->SetYTitle("Counts");
00172 delete histTitle;
00173
00174
00175 histTitle = new TString("Flow_Phi_FtpcWest_Sel");
00176 *histTitle += k+1;
00177 histTitle->Append("_Har");
00178 *histTitle += j+1;
00179 hist[k].histCen[n].histHar[j].mHistPhiFtpcWest =
00180 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBinsFtpc, phiMin, phiMax);
00181 hist[k].histCen[n].histHar[j].mHistPhiFtpcWest->SetXTitle
00182 ("Azimuthal Angles (rad)");
00183 hist[k].histCen[n].histHar[j].mHistPhiFtpcWest->SetYTitle("Counts");
00184 delete histTitle;
00185
00186
00187 histTitle = new TString("Flow_Phi_FtpcFarWest_Sel");
00188 *histTitle += k+1;
00189 histTitle->Append("_Har");
00190 *histTitle += j+1;
00191 hist[k].histCen[n].histHar[j].mHistPhiFtpcFarWest =
00192 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBinsFtpc, phiMin, phiMax);
00193 hist[k].histCen[n].histHar[j].mHistPhiFtpcFarWest->SetXTitle
00194 ("Azimuthal Angles (rad)");
00195 hist[k].histCen[n].histHar[j].mHistPhiFtpcFarWest->SetYTitle("Counts");
00196 delete histTitle;
00197
00198
00199
00200
00201 histTitle = new TString("Flow_Phi_Weight_FarEast_Sel");
00202 *histTitle += k+1;
00203 histTitle->Append("_Har");
00204 *histTitle += j+1;
00205 hist[k].histCen[n].histHar[j].mHistPhiWgtFarEast =
00206 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBins, phiMin, phiMax);
00207 hist[k].histCen[n].histHar[j].mHistPhiWgtFarEast->Sumw2();
00208 hist[k].histCen[n].histHar[j].mHistPhiWgtFarEast->SetXTitle
00209 ("Azimuthal Angles (rad)");
00210 hist[k].histCen[n].histHar[j].mHistPhiWgtFarEast->SetYTitle("PhiWgt");
00211 delete histTitle;
00212
00213
00214 histTitle = new TString("Flow_Phi_Weight_East_Sel");
00215 *histTitle += k+1;
00216 histTitle->Append("_Har");
00217 *histTitle += j+1;
00218 hist[k].histCen[n].histHar[j].mHistPhiWgtEast =
00219 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBins, phiMin, phiMax);
00220 hist[k].histCen[n].histHar[j].mHistPhiWgtEast->Sumw2();
00221 hist[k].histCen[n].histHar[j].mHistPhiWgtEast->SetXTitle
00222 ("Azimuthal Angles (rad)");
00223 hist[k].histCen[n].histHar[j].mHistPhiWgtEast->SetYTitle("PhiWgt");
00224 delete histTitle;
00225
00226
00227 histTitle = new TString("Flow_Phi_Weight_West_Sel");
00228 *histTitle += k+1;
00229 histTitle->Append("_Har");
00230 *histTitle += j+1;
00231 hist[k].histCen[n].histHar[j].mHistPhiWgtWest =
00232 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBins, phiMin, phiMax);
00233 hist[k].histCen[n].histHar[j].mHistPhiWgtWest->Sumw2();
00234 hist[k].histCen[n].histHar[j].mHistPhiWgtWest->SetXTitle
00235 ("Azimuthal Angles (rad)");
00236 hist[k].histCen[n].histHar[j].mHistPhiWgtWest->SetYTitle("PhiWgt");
00237 delete histTitle;
00238
00239
00240 histTitle = new TString("Flow_Phi_Weight_FarWest_Sel");
00241 *histTitle += k+1;
00242 histTitle->Append("_Har");
00243 *histTitle += j+1;
00244 hist[k].histCen[n].histHar[j].mHistPhiWgtFarWest =
00245 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBins, phiMin, phiMax);
00246 hist[k].histCen[n].histHar[j].mHistPhiWgtFarWest->Sumw2();
00247 hist[k].histCen[n].histHar[j].mHistPhiWgtFarWest->SetXTitle
00248 ("Azimuthal Angles (rad)");
00249 hist[k].histCen[n].histHar[j].mHistPhiWgtFarWest->SetYTitle("PhiWgt");
00250 delete histTitle;
00251
00252
00253 histTitle = new TString("Flow_Phi_Weight_FtpcFarEast_Sel");
00254 *histTitle += k+1;
00255 histTitle->Append("_Har");
00256 *histTitle += j+1;
00257 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarEast =
00258 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBinsFtpc, phiMin, phiMax);
00259 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarEast->Sumw2();
00260 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarEast->SetXTitle
00261 ("Azimuthal Angles (rad)");
00262 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarEast->SetYTitle("PhiWgt");
00263 delete histTitle;
00264
00265
00266 histTitle = new TString("Flow_Phi_Weight_FtpcEast_Sel");
00267 *histTitle += k+1;
00268 histTitle->Append("_Har");
00269 *histTitle += j+1;
00270 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcEast =
00271 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBinsFtpc, phiMin, phiMax);
00272 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcEast->Sumw2();
00273 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcEast->SetXTitle
00274 ("Azimuthal Angles (rad)");
00275 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcEast->SetYTitle("PhiWgt");
00276 delete histTitle;
00277
00278
00279 histTitle = new TString("Flow_Phi_Weight_FtpcWest_Sel");
00280 *histTitle += k+1;
00281 histTitle->Append("_Har");
00282 *histTitle += j+1;
00283 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcWest =
00284 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBinsFtpc, phiMin, phiMax);
00285 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcWest->Sumw2();
00286 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcWest->SetXTitle
00287 ("Azimuthal Angles (rad)");
00288 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcWest->SetYTitle("PhiWgt");
00289 delete histTitle;
00290
00291
00292 histTitle = new TString("Flow_Phi_Weight_FtpcFarWest_Sel");
00293 *histTitle += k+1;
00294 histTitle->Append("_Har");
00295 *histTitle += j+1;
00296 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarWest =
00297 new TH1D(histTitle->Data(), histTitle->Data(), Flow::nPhiBinsFtpc, phiMin, phiMax);
00298 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarWest->Sumw2();
00299 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarWest->SetXTitle
00300 ("Azimuthal Angles (rad)");
00301 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarWest->SetYTitle("PhiWgt");
00302 delete histTitle;
00303
00304 }
00305 }
00306 }
00307
00308 gMessMgr->SetLimit("##### FlowPhiWgt", 2);
00309 gMessMgr->Info("##### FlowPhiWgt: $Id: StFlowPhiWgtMaker.cxx,v 1.7 2004/12/09 23:47:09 posk Exp $");
00310
00311 return StMaker::Init();
00312 }
00313
00314
00315
00316 void StFlowPhiWgtMaker::FillParticleHistograms() {
00317
00318
00319 mHistZDCSMDPsiWgtEast->Fill(pFlowEvent->ZDCSMD_PsiEst());
00320 mHistZDCSMDPsiWgtWest->Fill(pFlowEvent->ZDCSMD_PsiWst());
00321
00322
00323
00324
00325 int iCen = pFlowEvent->Centrality();
00326 if (!iCen) { return; }
00327 Float_t vertexZ = pFlowEvent->VertexPos().z();
00328
00329
00330 StFlowTrackCollection* pFlowTracks = pFlowEvent->TrackCollection();
00331 StFlowTrackIterator itr;
00332
00333 for (itr = pFlowTracks->begin(); itr != pFlowTracks->end(); itr++) {
00334 StFlowTrack* pFlowTrack = *itr;
00335
00336 float phi = pFlowTrack->Phi();
00337 if (phi < 0.) phi += twopi;
00338 float eta = pFlowTrack->Eta();
00339 float pt = pFlowTrack->Pt();
00340 float zFirstPoint = 0.;
00341 float zLastPoint = 0.;
00342 if (pFlowEvent->FirstLastPoints()) {
00343 zFirstPoint = pFlowTrack->ZFirstPoint();
00344 zLastPoint = pFlowTrack->ZLastPoint();
00345 }
00346 StTrackTopologyMap map = pFlowTrack->TopologyMap();
00347
00348 for (int k = 0; k < Flow::nSels; k++) {
00349 pFlowSelect->SetSelection(k);
00350 for (int j = 0; j < 2; j++) {
00351 bool oddHar = (j+1) % 2;
00352 pFlowSelect->SetHarmonic(j);
00353 if (pFlowSelect->Select(pFlowTrack)) {
00354
00355 StDetectorId detId;
00356 Bool_t kTpcFarEast = kFALSE;
00357 Bool_t kTpcEast = kFALSE;
00358 Bool_t kTpcWest = kFALSE;
00359 Bool_t kTpcFarWest = kFALSE;
00360 Bool_t kFtpcFarEast = kFALSE;
00361 Bool_t kFtpcEast = kFALSE;
00362 Bool_t kFtpcWest = kFALSE;
00363 Bool_t kFtpcFarWest = kFALSE;
00364 if (map.hasHitInDetector(kTpcId) || (map.data(0) == 0 && map.data(1) == 0)) {
00365
00366 detId = kTpcId;
00367
00368 if (pFlowEvent->FirstLastPoints()) {
00369 if (zFirstPoint > 0. && zLastPoint > 0.) {
00370 kTpcFarWest = kTRUE;
00371 } else if (zFirstPoint > 0. && zLastPoint < 0.) {
00372 kTpcWest = kTRUE;
00373 } else if (zFirstPoint < 0. && zLastPoint > 0.) {
00374 kTpcEast = kTRUE;
00375 } else {
00376 kTpcFarEast = kTRUE;
00377 }
00378 } else {
00379 if (eta > 0. && vertexZ > 0.) {
00380 kTpcFarWest = kTRUE;
00381 } else if (eta > 0. && vertexZ < 0.) {
00382 kTpcWest = kTRUE;
00383 } else if (eta < 0. && vertexZ > 0.) {
00384 kTpcEast = kTRUE;
00385 } else {
00386 kTpcFarEast = kTRUE;
00387 }
00388 }
00389 } else if (map.trackFtpcEast()) {
00390 detId = kFtpcEastId;
00391 if (vertexZ > 0.) {
00392 kFtpcEast = kTRUE;
00393 } else {
00394 kFtpcFarEast = kTRUE;
00395 }
00396 } else if (map.trackFtpcWest()) {
00397 detId = kFtpcWestId;
00398 if (vertexZ > 0.) {
00399 kFtpcFarWest = kTRUE;
00400 } else {
00401 kFtpcWest = kTRUE;
00402 }
00403 } else {
00404 detId = kUnknownId;
00405 }
00406
00407
00408 float wt = 1.;
00409 if (pFlowEvent->PtWgt()) {
00410 wt *= (pt < pFlowEvent->PtWgtSaturation()) ? pt : pFlowEvent->PtWgtSaturation();
00411 }
00412 float etaAbs = fabs(eta);
00413 if (pFlowEvent->EtaWgt() && oddHar && etaAbs > 1.) { wt *= etaAbs; }
00414
00415
00416 if (kFtpcFarEast) {
00417 hist[k].histCen[iCen].histHar[j].mHistPhiFtpcFarEast->Fill(phi,wt);
00418 } else if (kFtpcEast) {
00419 hist[k].histCen[iCen].histHar[j].mHistPhiFtpcEast->Fill(phi,wt);
00420 } else if (kFtpcWest) {
00421 hist[k].histCen[iCen].histHar[j].mHistPhiFtpcWest->Fill(phi,wt);
00422 } else if (kFtpcFarWest) {
00423 hist[k].histCen[iCen].histHar[j].mHistPhiFtpcFarWest->Fill(phi,wt);
00424 } else if (kTpcFarEast){
00425 hist[k].histCen[iCen].histHar[j].mHistPhiFarEast->Fill(phi,wt);
00426 } else if (kTpcEast){
00427 hist[k].histCen[iCen].histHar[j].mHistPhiEast->Fill(phi,wt);
00428 } else if (kTpcWest){
00429 hist[k].histCen[iCen].histHar[j].mHistPhiWest->Fill(phi,wt);
00430 } else if (kTpcFarWest){
00431 hist[k].histCen[iCen].histHar[j].mHistPhiFarWest->Fill(phi,wt);
00432 }
00433
00434 }
00435 }
00436 }
00437 }
00438
00439 }
00440
00441
00442
00443 Int_t StFlowPhiWgtMaker::Finish() {
00444
00445
00446
00447 TOrdCollection* phiWgtHistNames[nCens];
00448 for (int n = 1; n < nCens; n++) {
00449 phiWgtHistNames[n] = new TOrdCollection(Flow::nSels*2 + 2);
00450 }
00451
00452 cout << endl << "##### PhiWgt Maker:" << endl;
00453
00454 for (int n = 1; n < nCens; n++) {
00455 for (int k = 0; k < Flow::nSels; k++) {
00456 for (int j = 0; j < 2; j++) {
00457
00458 double meanFarEast = hist[k].histCen[n].histHar[j].mHistPhiFarEast->
00459 Integral() / (double)Flow::nPhiBins;
00460 double meanEast = hist[k].histCen[n].histHar[j].mHistPhiEast->
00461 Integral() / (double)Flow::nPhiBins;
00462 double meanWest = hist[k].histCen[n].histHar[j].mHistPhiWest->
00463 Integral() / (double)Flow::nPhiBins;
00464 double meanFarWest = hist[k].histCen[n].histHar[j].mHistPhiFarWest->
00465 Integral() / (double)Flow::nPhiBins;
00466 double meanFtpcFarEast = hist[k].histCen[n].histHar[j].mHistPhiFtpcFarEast->
00467 Integral() / (double)Flow::nPhiBinsFtpc;
00468 double meanFtpcEast = hist[k].histCen[n].histHar[j].mHistPhiFtpcEast->
00469 Integral() / (double)Flow::nPhiBinsFtpc;
00470 double meanFtpcWest = hist[k].histCen[n].histHar[j].mHistPhiFtpcWest->
00471 Integral() / (double)Flow::nPhiBinsFtpc;
00472 double meanFtpcFarWest = hist[k].histCen[n].histHar[j].mHistPhiFtpcFarWest->
00473 Integral() / (double)Flow::nPhiBinsFtpc;
00474
00475
00476 for (int i = 0; i < Flow::nPhiBins; i++) {
00477 hist[k].histCen[n].histHar[j].mHistPhiWgtFarEast->
00478 SetBinContent(i+1,meanFarEast);
00479 hist[k].histCen[n].histHar[j].mHistPhiWgtFarEast->
00480 SetBinError(i+1, 0.);
00481 hist[k].histCen[n].histHar[j].mHistPhiWgtEast->
00482 SetBinContent(i+1, meanEast);
00483 hist[k].histCen[n].histHar[j].mHistPhiWgtEast->
00484 SetBinError(i+1, 0.);
00485 hist[k].histCen[n].histHar[j].mHistPhiWgtWest->
00486 SetBinContent(i+1, meanWest);
00487 hist[k].histCen[n].histHar[j].mHistPhiWgtWest->
00488 SetBinError(i+1, 0.);
00489 hist[k].histCen[n].histHar[j].mHistPhiWgtFarWest->
00490 SetBinContent(i+1,meanFarWest);
00491 hist[k].histCen[n].histHar[j].mHistPhiWgtFarWest->
00492 SetBinError(i+1, 0.);
00493 }
00494
00495
00496 for (int i = 0; i < Flow::nPhiBinsFtpc; i++) {
00497 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarEast->
00498 SetBinContent(i+1, meanFtpcFarEast);
00499 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarEast->
00500 SetBinError(i+1, 0.);
00501 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcEast->
00502 SetBinContent(i+1, meanFtpcEast);
00503 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcEast->
00504 SetBinError(i+1, 0.);
00505 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcWest->
00506 SetBinContent(i+1, meanFtpcWest);
00507 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcWest->
00508 SetBinError(i+1, 0.);
00509 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarWest->
00510 SetBinContent(i+1, meanFtpcFarWest);
00511 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarWest->
00512 SetBinError(i+1, 0.);
00513 }
00514
00515
00516 hist[k].histCen[n].histHar[j].mHistPhiWgtFarEast->
00517 Divide(hist[k].histCen[n].histHar[j].mHistPhiFarEast);
00518 phiWgtHistNames[n]->AddLast(hist[k].histCen[n].histHar[j].mHistPhiWgtFarEast);
00519 hist[k].histCen[n].histHar[j].mHistPhiWgtEast->
00520 Divide(hist[k].histCen[n].histHar[j].mHistPhiEast);
00521 phiWgtHistNames[n]->AddLast(hist[k].histCen[n].histHar[j].mHistPhiWgtEast);
00522 hist[k].histCen[n].histHar[j].mHistPhiWgtWest->
00523 Divide(hist[k].histCen[n].histHar[j].mHistPhiWest);
00524 phiWgtHistNames[n]->AddLast(hist[k].histCen[n].histHar[j].mHistPhiWgtWest);
00525 hist[k].histCen[n].histHar[j].mHistPhiWgtFarWest->
00526 Divide(hist[k].histCen[n].histHar[j].mHistPhiFarWest);
00527 phiWgtHistNames[n]->AddLast(hist[k].histCen[n].histHar[j].mHistPhiWgtFarWest);
00528
00529
00530 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarEast->
00531 Divide(hist[k].histCen[n].histHar[j].mHistPhiFtpcFarEast);
00532 phiWgtHistNames[n]->AddLast(hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarEast);
00533 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcEast->
00534 Divide(hist[k].histCen[n].histHar[j].mHistPhiFtpcEast);
00535 phiWgtHistNames[n]->AddLast(hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcEast);
00536 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcWest->
00537 Divide(hist[k].histCen[n].histHar[j].mHistPhiFtpcWest);
00538 phiWgtHistNames[n]->AddLast(hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcWest);
00539 hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarWest->
00540 Divide(hist[k].histCen[n].histHar[j].mHistPhiFtpcFarWest);
00541 phiWgtHistNames[n]->AddLast(hist[k].histCen[n].histHar[j].mHistPhiWgtFtpcFarWest);
00542 }
00543 }
00544 phiWgtHistNames[n]->AddLast(mHistZDCSMDPsiWgtEast);
00545 phiWgtHistNames[n]->AddLast(mHistZDCSMDPsiWgtWest);
00546 }
00547
00548
00549
00550 TText* textInfo = 0;
00551 if (pFlowEvent->FirstLastPoints()) {
00552 char chInfo[400];
00553 sprintf(chInfo, "%s%d%s%d%s", " pt weight= ", pFlowEvent->PtWgt(),
00554 ", eta weight= ", pFlowEvent->EtaWgt(), "\n");
00555 textInfo = new TText(0,0,chInfo);
00556 }
00557
00558
00559 for (int n = 1; n < nCens; n++) {
00560 phiWgtFile[n]->cd();
00561 if (pFlowEvent->FirstLastPoints()) { textInfo->Write("info"); }
00562 phiWgtHistNames[n]->Write();
00563 phiWgtFile[n]->Close();
00564 delete phiWgtHistNames[n];
00565 }
00566
00567 if (pFlowEvent->FirstLastPoints()) delete textInfo;
00568
00569 delete pFlowSelect;
00570
00571 return StMaker::Finish();
00572 }
00573
00574
00575
00577
00578
00579
00580
00581
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605