23 #define AliAnalysisTaskZDCEP_cxx 25 #include "Riostream.h" 34 #include "TParticle.h" 38 #include "TProfile2D.h" 41 #include "TPaveLabel.h" 51 #include "THnSparse.h" 53 #include "AliAODTrack.h" 54 #include "AliAODEvent.h" 55 #include "AliAODZDC.h" 56 #include "TProfile2D.h" 57 #include "TProfile3D.h" 85 fCentralityHisto(NULL),
88 fDataSet(k2015o_pass1_pass1pidfix),
91 fbIsMagnetPolarityNegative(kFALSE),
94 for(
Int_t k=0; k<4; k++) {
102 for(
Int_t i=0; i<3; i++) {
108 for(
Int_t k=0; k<8; k++) {
112 for(
Int_t i=0; i<10; i++) {
113 for(
Int_t z=0; z<10; z++) {
114 for(
Int_t k=0; k<4; k++) {
120 for(
Int_t i=0; i<5; i++) {
124 for (
Int_t i=0; i<10; i++) {
130 for(
Int_t i=0; i<2; i++) {
138 for(
Int_t i=0; i<2; i++) {
142 for(
Int_t k=0; k<2; k++) {
189 for(
Int_t k=0; k<4; k++) {
197 for(
Int_t i=0; i<3; i++) {
203 for(
Int_t k=0; k<8; k++) {
207 for(
Int_t i=0; i<10; i++) {
208 for(
Int_t z=0; z<10; z++) {
209 for(
Int_t k=0; k<4; k++) {
215 for(
Int_t i=0; i<5; i++) {
219 for (
Int_t i=0; i<10; i++) {
225 for(
Int_t i=0; i<2; i++) {
233 for(
Int_t i=0; i<2; i++) {
237 for(
Int_t k=0; k<2; k++) {
262 DefineInput(0,TChain::Class());
263 DefineOutput(1,AliFlowEventSimple::Class());
264 DefineOutput(2,TList::Class());
298 for(
Int_t k=0; k<4; k++) {
311 for(
Int_t i=0; i<3; i++) {
319 for(
Int_t k=0; k<8; k++) {
324 for(
Int_t i=0; i<10; i++) {
325 for(
Int_t z=0; z<10; z++) {
326 for(
Int_t k=0; k<4; k++) {
333 for(
Int_t i=0; i<5; i++) {
339 Double_t DummyEZDCBins[10][11] = {{-3.000000e+02, -4.008000e+01, -2.658000e+01, -1.686000e+01, -8.520000e+00, -7.200000e-01, 7.080000e+00, 1.542000e+01, 2.520000e+01, 3.888000e+01, 3.000000e+02},{-3.000000e+02, -3.690000e+01, -2.436000e+01, -1.530000e+01, -7.560000e+00, -3.000000e-01, 6.960000e+00, 1.476000e+01, 2.388000e+01, 3.666000e+01, 3.000000e+02},{-3.000000e+02, -3.522000e+01, -2.316000e+01, -1.446000e+01, -7.020000e+00, -6.000000e-02, 6.900000e+00, 1.434000e+01, 2.310000e+01, 3.534000e+01, 3.000000e+02},{-3.000000e+02, -3.528000e+01, -2.322000e+01, -1.452000e+01, -7.080000e+00, -1.200000e-01, 6.840000e+00, 1.434000e+01, 2.310000e+01, 3.528000e+01, 3.000000e+02},{-3.000000e+02, -3.666000e+01, -2.412000e+01, -1.506000e+01, -7.320000e+00, -6.000000e-02, 7.200000e+00, 1.500000e+01, 2.412000e+01, 3.684000e+01, 3.000000e+02},{-3.000000e+02, -3.936000e+01, -2.580000e+01, -1.602000e+01, -7.680000e+00, 1.200000e-01, 7.920000e+00, 1.632000e+01, 2.616000e+01, 3.990000e+01, 3.000000e+02},{-3.000000e+02, -4.416000e+01, -2.880000e+01, -1.776000e+01, -8.280000e+00, 5.400000e-01, 9.420000e+00, 1.890000e+01, 3.000000e+01, 4.554000e+01, 3.000000e+02},{-3.000000e+02, -5.262000e+01, -3.384000e+01, -2.028000e+01, -8.700000e+00, 2.100000e+00, 1.296000e+01, 2.454000e+01, 3.816000e+01, 5.712000e+01, 3.000000e+02},{-3.000000e+02, -6.588000e+01, -4.122000e+01, -2.340000e+01, -8.160000e+00, 6.060000e+00, 2.028000e+01, 3.552000e+01, 5.340000e+01, 7.830000e+01, 3.000000e+02},{-3.000000e+02, -8.844000e+01, -5.556000e+01, -3.186000e+01, -1.158000e+01, 7.380000e+00, 2.634000e+01, 4.662000e+01, 7.038000e+01, 1.034400e+02, 3.000000e+02}};
340 for (
Int_t i=0; i<10; i++) {
341 fCRCZDCQVecDummyEZDCBins[i] =
new TH1D(Form(
"fCRCZDCQVecDummyEZDCBins[%d]",i),Form(
"fCRCZDCQVecDummyEZDCBins[%d]",i),10,DummyEZDCBins[i]);
354 TString WhichQ[] = {
"QCx",
"QCy",
"QAx",
"QAy"};
355 TString WhichCor[] = {
"QAxQCx",
"QAyQCy",
"QAxQCy",
"QCxQAy"};
356 TString WhichMP[] = {
"--",
"++"};
369 fEventCounter->GetXaxis()->SetBinLabel(4,
"vtx out-of-boundaries");
382 for(
Int_t i=0; i<2; i++) {
384 fQVecCen[
c][i] =
new TProfile(Form(
"fQVecCen[%d][%d]",
c,i),Form(
"ZDC <%s> mag.pol. %s;centrality;<%s>",WhichQ[
c].
Data(),WhichMP[i].
Data(),WhichQ[
c].
Data()),20,0.,100.);
388 fQVecVtx[
c][i] =
new TProfile3D(Form(
"fQVecVtx[%d][%d]",
c,i),Form(
"ZDC <%s> mag.pol. %s;x_{vtx} (cm);y_{vtx} (cm);z_{vtx} (cm)",WhichQ[
c].
Data(),WhichMP[i].
Data()),10,xmin,xmax,10,
ymin,
ymax,10,
zmin,
zmax);
392 fQVecCorCen[
c][i] =
new TProfile(Form(
"fQVecCorCen[%d][%d]",
c,i),Form(
"ZDC <%s> mag.pol. %s;centrality;<%s>",WhichCor[
c].
Data(),WhichMP[i].
Data(),WhichCor[
c].
Data()),20,0.,100.);
399 fQvecC2Ddis[i] =
new TH2D(Form(
"fQvecC2Ddis[%d]",i),Form(
"%s x-y distribution mag.pol. %s;x (cm);y (cm)",
"QC",WhichMP[i].
Data()),100, -2., 2. , 100., -2., 2.);
401 fQvecA2Ddis[i] =
new TH2D(Form(
"fQvecA2Ddis[%d]",i),Form(
"%s x-y distribution mag.pol. %s;x (cm);y (cm)",
"QA",WhichMP[i].
Data()),100, -2., 2. , 100., -2., 2.);
404 for(
Int_t k=0; k<2; k++) {
406 fZDCQvec2Ddis[
c][k] =
new TH2D(Form(
"fZDCQvec2Ddis[%d][%d]",
c,k),Form(
"%s x-y distribution (centrality bin %d);x (cm);y (cm)",(k==0?
"QC":
"QA"),
c),100, -2., 2. , 100., -2., 2.);
411 Int_t dRun15o[] = {244917, 244918, 244975, 244980, 244982, 244983, 245064, 245066, 245068, 246390, 246391, 246392, 246994, 246991, 246989, 246984, 246982, 246980, 246948, 246945, 246928, 246851, 246847, 246846, 246845, 246844, 246810, 246809, 246808, 246807, 246805, 246804, 246766, 246765, 246763, 246760, 246759, 246758, 246757, 246751, 246750, 246495, 246493, 246488, 246487, 246434, 246431, 246428, 246424, 246276, 246275, 246272, 246271, 246225, 246222, 246217, 246185, 246182, 246181, 246180, 246178, 246153, 246152, 246151, 246115, 246113, 246089, 246087, 246053, 246052, 246049, 246048, 246042, 246037, 246036, 246012, 246003, 246001, 245954, 245952, 245949, 245923, 245833, 245831, 245829, 245705, 245702, 245700, 245692, 245683, 245145, 245146, 245151, 245152, 245231, 245232, 245259, 245343, 245345, 245346, 245347, 245349, 245353, 245396, 245397, 245401, 245407, 245409, 245441, 245446, 245450, 245454, 245496, 245497, 245501, 245504, 245505, 245507, 245535, 245540, 245542, 245543, 245544, 245545, 245554};
412 Double_t dVtxPosX15o[] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,7.619407e-02, 7.612905e-02, 7.609009e-02, 7.610981e-02, 7.608885e-02, 7.609981e-02, 7.559263e-02, 7.563009e-02, 7.551201e-02, 7.570994e-02, 7.571927e-02, 7.575639e-02, 7.571133e-02, 7.570653e-02, 7.528412e-02, 7.535235e-02, 7.539954e-02, 7.535435e-02, 7.541641e-02, 7.543658e-02, 7.527343e-02, 7.526024e-02, 7.528295e-02, 7.533821e-02, 7.540461e-02, 7.538317e-02, 7.531677e-02, 7.539861e-02, 7.537667e-02, 7.659318e-02, 7.656796e-02, 7.662898e-02, 7.664257e-02, 7.597872e-02, 7.597437e-02, 7.599091e-02, 7.601310e-02, 7.000359e-02, 6.999659e-02, 6.992559e-02, 6.996793e-02, 7.028519e-02, 7.032696e-02, 7.033503e-02, 6.952509e-02, 6.956378e-02, 6.952446e-02, 6.959759e-02, 6.956048e-02, 6.933134e-02, 6.932882e-02, 6.939338e-02, 6.950613e-02, 6.943631e-02, 6.946196e-02, 6.950454e-02, 7.030973e-02, 7.030203e-02, 7.032272e-02, 7.030936e-02, 7.038967e-02, 7.035136e-02, 7.024752e-02, 6.942316e-02, 6.940115e-02, 6.936367e-02, 6.860689e-02, 6.881501e-02, 6.886743e-02, 6.932714e-02, 6.970325e-02, 6.966504e-02, 6.957355e-02, 6.932303e-02, 6.938184e-02, 6.944933e-02, 6.952461e-02, 6.964167e-02, 6.793435e-02, 6.802185e-02, 6.801235e-02, 6.804823e-02, 6.842972e-02, 6.839652e-02, 6.851932e-02, 6.976507e-02, 6.989692e-02, 6.994544e-02, 6.994261e-02, 6.997887e-02, 7.001687e-02, 6.934462e-02, 6.958349e-02, 6.907266e-02, 6.905944e-02, 6.895395e-02, 7.006562e-02, 7.008493e-02, 7.012736e-02, 6.964645e-02, 6.960466e-02, 6.962255e-02, 6.979086e-02, 6.985343e-02, 6.983755e-02, 6.957177e-02, 6.875991e-02, 6.871756e-02, 6.871021e-02, 6.871769e-02, 6.869493e-02, 6.874049e-02, 6.860300e-02};
413 Double_t dVtxPosY15o[] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,3.361709e-01, 3.361818e-01, 3.362205e-01, 3.363199e-01, 3.363092e-01, 3.362369e-01, 3.374328e-01, 3.374148e-01, 3.375140e-01, 3.361514e-01, 3.361743e-01, 3.362329e-01, 3.361395e-01, 3.361633e-01, 3.367675e-01, 3.366963e-01, 3.366845e-01, 3.366490e-01, 3.366937e-01, 3.366825e-01, 3.373764e-01, 3.373762e-01, 3.373721e-01, 3.373705e-01, 3.373943e-01, 3.373675e-01, 3.374071e-01, 3.373368e-01, 3.373442e-01, 3.375773e-01, 3.375333e-01, 3.377335e-01, 3.378285e-01, 3.362674e-01, 3.362492e-01, 3.362604e-01, 3.363473e-01, 3.295003e-01, 3.295046e-01, 3.295761e-01, 3.296100e-01, 3.291527e-01, 3.292071e-01, 3.290824e-01, 3.299371e-01, 3.300008e-01, 3.300078e-01, 3.300391e-01, 3.300740e-01, 3.300345e-01, 3.300776e-01, 3.301195e-01, 3.289427e-01, 3.289736e-01, 3.296084e-01, 3.297025e-01, 3.297724e-01, 3.298166e-01, 3.298278e-01, 3.298682e-01, 3.297381e-01, 3.296875e-01, 3.297720e-01, 3.298361e-01, 3.298561e-01, 3.299325e-01, 3.300111e-01, 3.301161e-01, 3.302630e-01, 3.289954e-01, 3.292915e-01, 3.293319e-01, 3.294174e-01, 3.314355e-01, 3.314431e-01, 3.316189e-01, 3.318682e-01, 3.323906e-01, 3.315020e-01, 3.312268e-01, 3.310778e-01, 3.310524e-01, 3.314478e-01, 3.312986e-01, 3.311297e-01, 3.324064e-01, 3.322524e-01, 3.322019e-01, 3.321221e-01, 3.321050e-01, 3.319118e-01, 3.317922e-01, 3.314658e-01, 3.315735e-01, 3.316331e-01, 3.316525e-01, 3.308030e-01, 3.308038e-01, 3.306947e-01, 3.305741e-01, 3.316492e-01, 3.316117e-01, 3.314973e-01, 3.314110e-01, 3.313450e-01, 3.313649e-01, 3.325841e-01, 3.324226e-01, 3.323649e-01, 3.323381e-01, 3.322566e-01, 3.322077e-01, 3.320860e-01};
414 Double_t dVtxPosZ15o[] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,5.559279e-01, 3.535446e-01, 4.846955e-01, 4.525585e-01, 3.684501e-01, 2.485494e-01, 2.372653e-01, 1.707859e-01, 3.314213e-01, 1.709195e-01, 2.209753e-01, 3.125757e-01, 3.422085e-01, 3.868156e-01, 4.859695e-01, 4.780697e-01, 4.400149e-01, 4.014992e-01, 3.049883e-01, 3.708501e-01, 3.883566e-01, 3.940632e-01, 4.197670e-01, 3.938399e-01, 3.814413e-01, 3.335539e-01, 3.181929e-01, 2.300734e-01, 2.722395e-01, 5.241033e-01, 3.225908e-01, 1.925791e-01, 1.892765e-01, 3.384066e-01, 2.026459e-01, 2.495699e-01, 3.569992e-01, 3.891381e-01, 4.603724e-01, 3.696685e-01, 3.002207e-01, 2.929533e-01, 3.095468e-01, 3.517200e-01, 2.784445e-01, 3.866626e-01, 3.058719e-01, 3.336752e-01, 3.226473e-01, 3.222815e-01, 3.428469e-01, 3.728514e-01, 2.858642e-01, 2.832485e-01, 3.378933e-01, 3.547548e-01, 3.799414e-01, 4.043543e-01, 4.314049e-01, 4.141138e-01, 3.888746e-01, 4.103586e-01, 3.871045e-01, 4.614473e-01, 4.023404e-01, 4.203531e-01, 4.401272e-01, 6.450558e-01, 6.819582e-01, 2.588529e-01, 3.693471e-01, 3.990708e-01, 3.813842e-01, 3.471682e-01, 3.356156e-01, 2.550150e-01, 3.830723e-01, 4.293259e-01, 4.723797e-01, 4.684324e-01, 4.609304e-01, 4.554974e-01, 4.523016e-01, 3.769890e-01, 4.485548e-01, 5.024484e-01, 5.200088e-01, 5.261731e-01, 5.392851e-01, 5.399264e-01, 5.155504e-01, 4.267668e-01, 5.348764e-01, 4.526746e-01, 4.045626e-01, 4.261759e-01, 5.889205e-01, 6.364843e-01, 5.896163e-01, 3.768637e-01, 4.440771e-01, 4.687029e-01, 4.794467e-01, 4.313422e-01, 3.954777e-01, 3.983129e-01, 3.608064e-01, 2.627038e-01, 3.665826e-01, 4.275667e-01, 3.335445e-01, 3.250815e-01, 3.022907e-01};
416 Int_t dRun15o_GoodMuonRuns[] = {246994, 246991, 246989, 246984, 246982, 246980, 246949, 246948, 246945, 246942, 246937, 246930, 246871, 246867, 246865, 246864, 246859, 246855, 246851, 246847, 246846, 246845, 246844, 246809, 246808, 246807, 246806, 246805, 246804, 246765, 246763, 246760, 246759, 246758, 246757, 246755, 246751, 246750, 246676, 246675, 246495, 246493, 246488, 246487, 246434, 246433, 246431, 246428, 246424, 246392, 246391, 246390, 246276, 246275, 246272, 246225, 246222, 246220, 246217, 246182, 246181, 246178, 246153, 246152, 246151, 246148, 246115, 246113, 246089, 246087, 246053, 246049, 246048, 246042, 246037, 246036, 246012, 246003, 246001, 245996, 245963, 245954, 245952, 245949, 245833, 245831, 245829, 245793, 245785, 245775, 245766, 245759, 245752, 245738, 245731, 245729, 245705, 245700, 245692, 245683, 245554, 245543, 245542, 245540, 245535, 245507, 245505, 245504, 245501, 245496, 245450, 245446, 245410, 245409, 245407, 245401, 245353, 245347, 245346, 245345, 245343, 245259, 245253, 245233, 245232, 245231, 245152, 245151, 245146, 245145, 245068, 245066, 245064, 244983, 244982, 244980, 244918};
437 fZNCTowerSpec[k] =
new TH2D(Form(
"fZNCTowerSpec[%d]",k),Form(
"fZNCTowerSpec[%d];centrality;ADC signal (a.u.);counts",k),100,0.,100.,500,0.,5.E4);
439 fZNATowerSpec[k] =
new TH2D(Form(
"fZNATowerSpec[%d]",k),Form(
"fZNATowerSpec[%d];centrality;ADC signal (a.u.);counts",k),100,0.,100.,500,0.,5.E4);
449 fQVecRbRCen[r] =
new TProfile2D(Form(
"QVecRbRCen[%d]",
fRunList[r]),Form(
"ZDC <Q_{i}> run %d;centrality;Q_{i}",
fRunList[r]),20,0.,100.,4,0.,4.);
451 fQVecRbRVtxZ[r] =
new TProfile3D(Form(
"QVecRbRVtxZ[%d]",
fRunList[r]),Form(
"ZDC <Q_{i}> run %d;centrality;vtx-z (cm);Q_{i}",
fRunList[r]),18,0.,90.,20,-10.,10.,4,0.,4.);
456 fZNCTower[r][k] =
new TProfile(Form(
"fZNCTower[%d][%d]",
fRunList[r],k),Form(
"fZNCTower[%d][%d]",
fRunList[r],k),100,0.,100.,
"s");
459 fZNATower[r][k] =
new TProfile(Form(
"fZNATower[%d][%d]",
fRunList[r],k),Form(
"fZNATower[%d][%d]",
fRunList[r],k),100,0.,100.,
"s");
477 fMultSelection = (AliMultSelection*)aod->FindListObject(
"MultSelection");
479 AliWarning(
"WARNING: AliMultSelection object not found ! \n");
483 Int_t RunNum = aod->GetRunNumber();
484 Int_t RunBin=-1, bin=0;
489 if(RunBin==-1)
return;
501 Bool_t IsGoodEvent = kTRUE;
507 fVtxPos[0] = ((AliVVertex*)aod->GetPrimaryVertexSPD())->GetX();
508 fVtxPos[1] = ((AliVVertex*)aod->GetPrimaryVertexSPD())->GetY();
509 fVtxPos[2] = ((AliVVertex*)aod->GetPrimaryVertexSPD())->GetZ();
513 AliAODZDC *aodZDC = aod->GetZDCData();
515 const Double_t * towZNCraw = aodZDC->GetZNCTowerEnergy();
516 const Double_t * towZNAraw = aodZDC->GetZNATowerEnergy();
518 for(
Int_t i=0; i<5; i++) {
519 if(towZNCraw[i]<0. || (i!=2 && towZNAraw[i]<0.)) IsGoodEvent = kFALSE;
525 Double_t Enucl = (RunNum < 209122 ? 1380. : 2511.);
526 Double_t xyZNC[2]={0.,0.}, xyZNA[2]={0.,0.};
527 Double_t towZNC[5]={0.}, towZNA[5]={0.};
534 for(
Int_t i=0; i<5; i++) {
539 for(
Int_t i=0; i<5; i++) {
544 for(
Int_t i=0; i<5; i++) {
545 if(towZNCraw[i]<0. || towZNAraw[i]<0.)
continue;
546 towZNC[i] = towZNCraw[i];
547 towZNA[i] = towZNAraw[i];
553 for(
Int_t i=0; i<5; i++) {
558 if(RunNum>=245829) towZNA[2] = 0.;
559 Double_t zncEnergy=0., znaEnergy=0.;
560 for(
Int_t i=0; i<5; i++){
561 zncEnergy += towZNC[i];
562 znaEnergy += towZNA[i];
564 if(RunNum>=245829) znaEnergy *= 8./7.;
568 const Double_t x[4] = {-1.75, 1.75, -1.75, 1.75};
569 const Double_t y[4] = {-1.75, -1.75, 1.75, 1.75};
570 Double_t numXZNC=0., numYZNC=0., denZNC=0., cZNC, wZNC, EZNC, SumEZNC=0.;
571 Double_t numXZNA=0., numYZNA=0., denZNA=0., cZNA, wZNA, EZNA, SumEZNA=0., BadChOr;
573 for(
Int_t i=0; i<4; i++){
580 numXZNC += x[i]*wZNC;
581 numYZNC += y[i]*wZNC;
586 EZNA = towZNA[0]-towZNA[1]-towZNA[3]-towZNA[4];
594 numXZNA += x[i]*wZNA;
595 numYZNA += y[i]*wZNA;
600 cZNC = 1.89358-0.71262/(nSpecnC+0.71789);
601 xyZNC[0] = cZNC*numXZNC/denZNC;
602 xyZNC[1] = cZNC*numYZNC/denZNC;
606 xyZNC[0] = xyZNC[1] = 0.;
607 IsGoodEvent = kFALSE;
611 cZNA = 1.89358-0.71262/(nSpecnA+0.71789);
612 xyZNA[0] = cZNA*numXZNA/denZNA;
613 xyZNA[1] = cZNA*numYZNA/denZNA;
617 xyZNA[0] = xyZNA[1] = 0.;
618 IsGoodEvent = kFALSE;
637 Double_t QCReR=QCRe, QCImR=QCIm, QAReR=QARe, QAImR=QAIm;
645 fZDCQHist[0] = (TProfile*)(
fZDCCalibList->FindObject(Form(
"Run %d",RunNum))->FindObject(Form(
"fCRCZDCQVecC[%d][%d]",RunNum,0)));
646 fZDCQHist[1] = (TProfile*)(
fZDCCalibList->FindObject(Form(
"Run %d",RunNum))->FindObject(Form(
"fCRCZDCQVecC[%d][%d]",RunNum,1)));
647 fZDCQHist[2] = (TProfile*)(
fZDCCalibList->FindObject(Form(
"Run %d",RunNum))->FindObject(Form(
"fCRCZDCQVecA[%d][%d]",RunNum,0)));
648 fZDCQHist[3] = (TProfile*)(
fZDCCalibList->FindObject(Form(
"Run %d",RunNum))->FindObject(Form(
"fCRCZDCQVecA[%d][%d]",RunNum,1)));
650 for(
Int_t k=0; k<4; k++) {
651 fZDCVtxHist[k] = (TProfile3D*)(
fZDCCalibList->FindObject(Form(
"Run %d",RunNum))->FindObject(Form(
"fCRCZDCQVecVtxPos540[%d][%d]",RunNum,k)));
655 fZDCCenVtxZ = (TProfile3D*)(
fZDCCalibList->FindObject(Form(
"Run %d",RunNum))->FindObject(Form(
"fCRCZDCQVecCenVtxZ[%d]",RunNum)));
658 for(
Int_t k=0; k<4; k++) {
663 for(
Int_t k=0; k<4; k++) {
669 for(
Int_t i=0; i<3; i++) {
677 for(
Int_t k=0; k<8; k++) {
705 if(AvQCRe && AvQCIm && QMC>0. && sqrt(QCRe*QCRe+QCIm*QCIm)>1.E-6) {
711 if(AvQARe && AvQAIm && QMA>0. && sqrt(QARe*QARe+QAIm*QAIm)>1.E-6) {
722 if(fVtxPosCor[0] <
fZDCVtxCenHist[fCenBin][0]->GetXaxis()->GetXmin() || fVtxPosCor[0] >
fZDCVtxCenHist[fCenBin][0]->GetXaxis()->GetXmax()) pass = kFALSE;
723 if(fVtxPosCor[1] <
fZDCVtxCenHist[fCenBin][0]->GetYaxis()->GetXmin() || fVtxPosCor[1] >
fZDCVtxCenHist[fCenBin][0]->GetYaxis()->GetXmax()) pass = kFALSE;
724 if(fVtxPosCor[2] <
fZDCVtxCenHist[fCenBin][0]->GetZaxis()->GetXmin() || fVtxPosCor[2] >
fZDCVtxCenHist[fCenBin][0]->GetZaxis()->GetXmax()) pass = kFALSE;
726 IsGoodEvent = kFALSE;
741 QCReR -=
fZDCVtxHist[0]->GetBinContent(
fZDCVtxHist[0]->FindBin(fVtxPosCor[0],fVtxPosCor[1],fVtxPosCor[2]));
742 QCImR -=
fZDCVtxHist[1]->GetBinContent(
fZDCVtxHist[1]->FindBin(fVtxPosCor[0],fVtxPosCor[1],fVtxPosCor[2]));
744 QAReR -=
fZDCVtxHist[2]->GetBinContent(
fZDCVtxHist[2]->FindBin(fVtxPosCor[0],fVtxPosCor[1],fVtxPosCor[2]));
745 QAImR -=
fZDCVtxHist[3]->GetBinContent(
fZDCVtxHist[3]->FindBin(fVtxPosCor[0],fVtxPosCor[1],fVtxPosCor[2]));
763 for (
Int_t i=0; i<3; i++) {
803 if (sqrt(QCReR*QCReR+QCImR*QCImR)<1.E-6 || sqrt(QAReR*QAReR+QAImR*QAImR)<1.E-6) {
804 IsGoodEvent = kFALSE;
814 fQVecCen[0][qb]->Fill(Centrality,QCReR);
815 fQVecCen[1][qb]->Fill(Centrality,QCImR);
816 fQVecCen[2][qb]->Fill(Centrality,QAReR);
817 fQVecCen[3][qb]->Fill(Centrality,QAImR);
824 fQVecVtx[0][qb]->Fill(fVtxPosCor[0],fVtxPosCor[1],fVtxPosCor[2],QCReR);
825 fQVecVtx[1][qb]->Fill(fVtxPosCor[0],fVtxPosCor[1],fVtxPosCor[2],QCImR);
826 fQVecVtx[2][qb]->Fill(fVtxPosCor[0],fVtxPosCor[1],fVtxPosCor[2],QAReR);
827 fQVecVtx[3][qb]->Fill(fVtxPosCor[0],fVtxPosCor[1],fVtxPosCor[2],QAImR);
829 fQVecRbRVtxZ[RunBin]->Fill(Centrality,fVtxPos[2],0.5,QCReR);
830 fQVecRbRVtxZ[RunBin]->Fill(Centrality,fVtxPos[2],1.5,QCImR);
831 fQVecRbRVtxZ[RunBin]->Fill(Centrality,fVtxPos[2],2.5,QAReR);
832 fQVecRbRVtxZ[RunBin]->Fill(Centrality,fVtxPos[2],3.5,QAImR);
864 xyZNCfinal[0]=0.; xyZNCfinal[1]=0.;
865 xyZNAfinal[0]=0.; xyZNAfinal[1]=0.;
892 if (Centrality>0. && Centrality<5.) CenBin=0;
893 if (Centrality>5. && Centrality<10.) CenBin=1;
894 if (Centrality>10. && Centrality<20.) CenBin=2;
895 if (Centrality>20. && Centrality<30.) CenBin=3;
896 if (Centrality>30. && Centrality<40.) CenBin=4;
897 if (Centrality>40. && Centrality<50.) CenBin=5;
898 if (Centrality>50. && Centrality<60.) CenBin=6;
899 if (Centrality>60. && Centrality<70.) CenBin=7;
900 if (Centrality>70. && Centrality<80.) CenBin=8;
901 if (Centrality>80. && Centrality<90.) CenBin=9;
902 if (Centrality>90. && Centrality<100.) CenBin=10;
Bool_t fbIsMagnetPolarityNegative
TH2D * fZDCQvec2Ddis[10][2]
void GetZDCQVectors(Double_t QAX, Double_t QAY, Double_t QCX, Double_t QCY)
virtual ~AliAnalysisTaskZDCEP()
static const Int_t fnRunMax
Double_t fZDCGainAlpha
output list for QA histograms (slot 2)
virtual void SetZDC2Qsub(Double_t *QVC, Double_t MC, Double_t *QVA, Double_t MA)
TH2D * fZNATowerSpec[fCRCnTow]
ZNC tower spectra.
TH3D * fZDCQVecVtxCenEZDC3D[10][10][4]
AliFlowVector * fZDCFlowVect[2]
TProfile * fZNATower[fnRunMax][fCRCnTow]
ZNC tower spectra.
TH2D * fZNCTowerSpec[fCRCnTow]
ZNA tower spectra.
static const Int_t fCRCnTow
TArrayI fRunList
ZNA tower spectra.
virtual void Terminate(Option_t *option)
TList * fHistList
list containing ZDC q-vectors
TList * fQVecListRun[fnRunMax]
TProfile3D * fQVecRbRVtxZ[fnRunMax]
TList * fQAList
list for calibration histograms
virtual void UserCreateOutputObjects()
TProfile3D * fQVecVtx[4][2]
TH1D * fZDCVtxFitCenProjHist[4][3]
void SetMult(Double_t mult)
AliAnalysisUtils * fAnalysisUtils
TH1D * fCRCZDCQVecDummyEZDCBins[10]
TH1D * fTowerGainEq[2][5]
TProfile3D * fZDCVtxCenHistMagPol[10][8]
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
virtual void UserExec(Option_t *option)
TProfile2D * fQVecRbRCen[fnRunMax]
run-by-run list
TProfile * fQVecCorCen[4][2]
virtual Int_t GetCenBin(Double_t Centrality)
Int_t fCachedRunNum
ZDC q-vectors.
TProfile2D * fZDCEcomTotHist[4]
TProfile3D * fZDCVtxHist[4]
TProfile * fQVecCen[4][2]
QA list per magnet polarity.
TProfile * fZNCTower[fnRunMax][fCRCnTow]
AliFlowEvent * fFlowEvent
AliMultSelection * fMultSelection
TProfile3D * fZDCVtxCenHist[10][4]