_requestedCharge_2 ( -1),
_dcaZMin ( -3),
_dcaZMax ( 3.),
-_dcaXYMin ( -3.),
-_dcaXYMax ( 3.),
+_dcaXYMin ( -2.4),
+_dcaXYMax ( 2.4),
_dedxMin ( 0),
_dedxMax ( 100000),
_nClusterMin ( 70),
_m4 ( 0),
_m5 ( 0),
_m6 ( 0),
+
+_etadis ( 0),
+_phidis ( 0),
+_dcaz ( 0),
+_dcaxy ( 0),
+
_vertexZ ( 0),
_n1_1_vsPt ( 0),
_n1_1_vsEtaVsPhi ( 0),
_requestedCharge_2 ( -1),
_dcaZMin ( -3),
_dcaZMax ( 3.),
-_dcaXYMin ( -3.),
-_dcaXYMax ( 3.),
+_dcaXYMin ( -2.4),
+_dcaXYMax ( 2.4),
_dedxMin ( 0),
_dedxMax ( 100000),
_nClusterMin ( 70),
_m4 ( 0),
_m5 ( 0),
_m6 ( 0),
+_etadis ( 0),
+_phidis ( 0),
+_dcaz ( 0),
+_dcaxy ( 0),
_vertexZ ( 0),
_n1_1_vsPt ( 0),
_n1_1_vsEtaVsPhi ( 0),
name = "m6"; _m6 = createHisto1D(name,name,_nBins_M6, _min_M6, _max_M6, _title_m6, _title_counts);
name = "zV"; _vertexZ = createHisto1D(name,name,_nBins_vertexZ, _min_vertexZ, _max_vertexZ, "z-Vertex (cm)", _title_counts);
+
+ name = "Eta"; _etadis = createHisto1F(name,name, 200, -1.1, 1.1, "#eta","counts");
+ name = "Phi"; _phidis = createHisto1F(name,name, 360, 0.0, 6.4, "#phi","counts");
+ name = "DCAz"; _dcaz = createHisto1F(name,name, 500, -5.0, 5.0, "dcaZ","counts");
+ name = "DCAxy"; _dcaxy = createHisto1F(name,name, 500, -5.0, 5.0, "dcaXY","counts");
+
+
if (_singlesOnly)
{
name = n1Name+part_1_Name+vsPt; _n1_1_vsPt = createHisto1F(name,name, _nBins_pt_1, _min_pt_1, _max_pt_1, _title_pt_1, _title_AvgN_1);
eta >= _min_eta_1 &&
eta < _max_eta_1)
{
- //cout << "AliAnalysisTaskDptDptCorrelations::UserExec(Option_t *option) - check vertex for 1:" << endl;
- // Get the dca information
+
+ /*
if (t->PropagateToDCA(vertex, _field, 100., b, bCov) )
{
dcaXY = b[0];
dcaXY = -999999;
dcaZ = -999999;
}
+ */
+
+ dcaXY = t->DCA(); //new change Prabhat
+ dcaZ = t->ZAtDCA(); //new change Prabhat
+
+ // skip track if DCA too large
+ if (dcaZ < _dcaZMin ||
+ dcaZ > _dcaZMax ||
+ dcaXY < _dcaXYMin ||
+ dcaXY > _dcaXYMax)
+ continue; //track does not have a valid DCA
+
+
+ //if (dcaZ > _dcaZMax) continue;
+ //cout <<"Prabhat=============="<<" "<<_dcaZMax<<" "<<dcaZ<<endl;
+ _etadis->Fill(eta); //prabhat QA
+ _phidis->Fill(phi);
+ _dcaz->Fill(dcaZ); //Prabhat QA
+ _dcaxy->Fill(dcaXY);
- // skip track if DCA too large
- if (dcaZ < _dcaZMin &&
- dcaZ > _dcaZMax &&
- dcaXY < _dcaXYMin &&
- dcaXY > _dcaXYMax)
- continue; //track does not have a valid DCA
- //cout << "keep track:" << endl;
-
iPhi = int( phi/_width_phi_1);
- ////cout << " AliAnalysisTaskDptDptCorrelations::analyze(Event * event) -1- iTrack:" << iTrack<< endl<< "pt:" << pt << " phi:" << phi << " eta:" << eta << endl;
+
if (iPhi<0 || iPhi>=_nBins_phi_1 )
{
AliWarning("AliAnalysisTaskDptDptCorrelations::analyze() iPhi<0 || iPhi>=_nBins_phi_1");
AliWarning("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) iZEtaPhiPt<0 || iZEtaPhiPt>=_nBins_zEtaPhiPt_1");
continue;
}
- //cout << "all good; process track:" << endl;
+
if (_singlesOnly)
{
- //_betaVsP_1->Fill(p*q,_trackFilter_1->getBeta() );
- //_dedxVsP_1->Fill(p*q,dedx);
- //_corrDedxVsP_1->Fill(p*q,_trackFilter_1->getCorrectedDedx() );
+
__n1_1_vsPt[iPt] += corr; //cout << "step 15" << endl;
__n1_1_vsZEtaPhiPt[iZEtaPhiPt] += corr; //cout << "step 12" << endl;
eta >= _min_eta_2 &&
eta < _max_eta_2)
{
- // Get the dca information
- //cout << "AliAnalysisTaskDptDptCorrelations::UserExec(Option_t *option) - check vertex for 2:" << endl;
- if (t->PropagateToDCA(vertex, _field, 100., b, bCov) )
- {
- dcaXY = b[0];
- dcaZ = b[1];
- }
- else
- {
- dcaXY = -999999;
- dcaZ = -999999;
- }
-
- // skip track if DCA too large
- if (dcaZ < _dcaZMin &&
- dcaZ > _dcaZMax &&
- dcaXY < _dcaXYMin &&
- dcaXY > _dcaXYMax)
- continue; //track does not have a valid DCA
-
- iPhi = int( phi/_width_phi_2);
-
+ /*
+ if (t->PropagateToDCA(vertex, _field, 100., b, bCov) )
+ {
+ dcaXY = b[0];
+ dcaZ = b[1];
+ }
+ else
+ {
+ dcaXY = -999999;
+ dcaZ = -999999;
+ }
+ */
+
+ dcaXY = t->DCA(); //new change Prabhat
+ dcaZ = t->ZAtDCA(); //new change Prabhat
+ //if (dcaZ > _dcaZMax) continue;
+ //cout <<"Prabhat=============="<<" "<<_dcaZMax<<" "<<dcaZ<<endl;
+
+
+ if (dcaZ < _dcaZMin ||
+ dcaZ > _dcaZMax ||
+ dcaXY < _dcaXYMin ||
+ dcaXY > _dcaXYMax)
+ continue; //track does not have a valid DCA
+
+
+ iPhi = int( phi/_width_phi_2);
+
if (iPhi<0 || iPhi>=_nBins_phi_2 )
{
AliWarning("AliAnalysisTaskDptDptCorrelations::analyze() iPhi<0 || iPhi>=_nBins_phi_1");
AliWarning("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) iZEtaPhiPt<0 || iZEtaPhiPt>=_nBins_zEtaPhiPt_2");
continue;
}
-
+
+
if (_correctionWeight_2)
corr = _correctionWeight_2[iZEtaPhiPt];
else
corr = 1;
-
+ //dpt = pt - (charge>0) ? _avgPt_vsEtaPhi_2p[iEtaPhi] : _avgPt_vsEtaPhi_2m[iEtaPhi];
+
if (_singlesOnly)
{
- __n1_2_vsPt[iPt] += corr; //cout << "step 15" << endl;
- __n1_2_vsZEtaPhiPt[iZEtaPhiPt] += corr; //cout << "step 12" << endl;
+ //_dedxVsP_2->Fill(p*q,dedx);
+ __n1_2_vsPt[iPt] += corr; //cout << "step 15" << endl;
+ __n1_2_vsZEtaPhiPt[iZEtaPhiPt] += corr; //cout << "step 12" << endl;
}
else
{
//
// Macro designed for use with the AliAnalysisTaskDptDptCorrelations task.
//
-// Author: Claude Pruneau & Prabhat Pujahari, Wayne State
+// Author: Prabhat Pujahari & Claude Pruneau, Wayne State
//
// system: 0: PbPb 1: pp
// singlesOnly: 0: full correlations 1: singles only
// centralityMethod: 3: track count 4: V0 centrality
// chargeSet: 0: ++ 1: +- 2: -+ 3: --
/////////////////////////////////////////////////////////////////////////////////
-AliAnalysisTaskDptDptCorrelations *AddTaskDptDptCorrelationsforWeight(int system = 0,
- int singlesOnly = 1,
- int useWeights = 0,
- int centralityMethod = 4,
- int chargeSet = 1)
+AliAnalysisTaskDptDptCorrelations *AddTaskDptDptCorrelationsforWeight(int system = 0,
+ int singlesOnly = 1,
+ int useWeights = 0,
+ int centralityMethod = 4,
+ int chargeSet = 1)
+
{
// Set Default Configuration of this analysis
// ==========================================
int rejectPileup = 1;
int rejectPairConversion = 1;
int sameFilter = 1;
-
+
int nCentrality;
double minCentrality[10];
double maxCentrality[10];
-
+
if (system==0) // PbPb
{
- if (centralityMethod == 4)
- {
- nCentrality = 10;
- minCentrality[0] = 0.5; maxCentrality[0] = 5.0;
- minCentrality[1] = 5.0; maxCentrality[1] = 10.;
- minCentrality[2] = 10.; maxCentrality[2] = 20.;
- minCentrality[3] = 20.; maxCentrality[3] = 30.;
- minCentrality[4] = 30.; maxCentrality[4] = 40.;
- minCentrality[5] = 40.; maxCentrality[5] = 50.;
- minCentrality[6] = 50.; maxCentrality[6] = 60.;
- minCentrality[7] = 60.; maxCentrality[7] = 70.;
- minCentrality[8] = 70.; maxCentrality[8] = 80.;
- minCentrality[9] = 80.; maxCentrality[9] = 90.;
-
- }
- else
- {
- cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". centralityMethod:" << centralityMethod << " Option NOT AVAILABLE. ABORT."
- return 0;
- }
+ if (centralityMethod == 4)
+ {
+ nCentrality = 10;
+ minCentrality[0] = 0.0; maxCentrality[0] = 5.0;
+ minCentrality[1] = 5.0; maxCentrality[1] = 10.;
+ minCentrality[2] = 10.; maxCentrality[2] = 20.;
+ minCentrality[3] = 20.; maxCentrality[3] = 30.;
+ minCentrality[4] = 30.; maxCentrality[4] = 40.;
+ minCentrality[5] = 40.; maxCentrality[5] = 50.;
+ minCentrality[6] = 50.; maxCentrality[6] = 60.;
+ minCentrality[7] = 60.; maxCentrality[7] = 70.;
+ minCentrality[8] = 70.; maxCentrality[8] = 80.;
+ minCentrality[9] = 80.; maxCentrality[9] = 90.;
+
+ }
+ else
+ {
+ cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". centralityMethod:" << centralityMethod << " Option NOT AVAILABLE. ABORT."
+ return 0;
+ }
}
else if (system==1) // pp
{
- if (centralityMethod == 3)
- {
- nCentrality = 4;
- minCentrality[0] = 2; maxCentrality[0] = 100.0;
- minCentrality[1] = 2; maxCentrality[1] = 20.;
- minCentrality[2] = 20.; maxCentrality[2] = 50.;
- minCentrality[3] = 50.; maxCentrality[3] = 100.;
- }
- else
- {
- //cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". centralityMethod:" << centralityMethod << " Option NOT AVAILABLE. ABORT."
- return 0;
- }
+ if (centralityMethod == 3)
+ {
+ nCentrality = 4;
+ minCentrality[0] = 2; maxCentrality[0] = 100.0;
+ minCentrality[1] = 2; maxCentrality[1] = 20.;
+ minCentrality[2] = 20.; maxCentrality[2] = 50.;
+ minCentrality[3] = 50.; maxCentrality[3] = 100.;
+ }
+ else
+ {
+ cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". centralityMethod:" << centralityMethod << " Option NOT AVAILABLE. ABORT."
+ return 0;
+ }
}
else
{
- //cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". Option NOT CURRENTLY AVAILABLE. ABORT."
- return 0;
+ cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". Option NOT CURRENTLY AVAILABLE. ABORT."
+ return 0;
}
-
+
double zMin = -10.;
double zMax = 10.;
double ptMin = 0.2;
double etaMax = 1.0;
double dcaZMin = -3.0;
double dcaZMax = 3.0;
- double dcaXYMin = -3.0;
- double dcaXYMax = 3.0;
+ double dcaXYMin = -2.4;
+ double dcaXYMax = 2.4;
double dedxMin = 0.0;
double dedxMax = 20000.0;
int nClusterMin = 70;
if (!analysisManager)
{
- ::Error("AddTaskDptDptCorrelations", "No analysis manager to connect to.");
- return NULL;
+ ::Error("AddTaskDptDptCorrelations", "No analysis manager to connect to.");
+ return NULL;
}
TString part1Name;
{
switch (chargeSet)
{
- case 0: part1Name = "P_"; part2Name = "P_"; requestedCharge1 = 1; requestedCharge2 = 1; sameFilter = 1; break;
- case 1: part1Name = "P_"; part2Name = "M_"; requestedCharge1 = 1; requestedCharge2 = -1; sameFilter = 0; break;
- case 2: part1Name = "M_"; part2Name = "P_"; requestedCharge1 = -1; requestedCharge2 = 1; sameFilter = 0; break;
- case 3: part1Name = "M_"; part2Name = "M_"; requestedCharge1 = -1; requestedCharge2 = -1; sameFilter = 1; break;
+ case 0: part1Name = "P_"; part2Name = "P_"; requestedCharge1 = 1; requestedCharge2 = 1; sameFilter = 1; break;
+ case 1: part1Name = "P_"; part2Name = "M_"; requestedCharge1 = 1; requestedCharge2 = -1; sameFilter = 0; break;
+ case 2: part1Name = "M_"; part2Name = "P_"; requestedCharge1 = -1; requestedCharge2 = 1; sameFilter = 0; break;
+ case 3: part1Name = "M_"; part2Name = "M_"; requestedCharge1 = -1; requestedCharge2 = -1; sameFilter = 1; break;
}
//part1Name += int(1000*etaMin);
part1Name += "eta";
//eventName += int(10*zMin );
//eventName += "Z";
//eventName += int(10*zMax );
- if (rejectPileup) eventName += pileupRejecSuffix;
- if (rejectPairConversion) eventName += pairRejecSuffix;
+ //if (rejectPileup) eventName += pileupRejecSuffix;
+ //if (rejectPairConversion) eventName += pairRejecSuffix;
baseName = prefixName;
baseName += part1Name;
baseName += part2Name;
baseName += eventName;
listName = baseName;
taskName = baseName;
+
+ //inputHistogramFileName = "/Users/prabhat/Archive/calib/PbPb276Calibration_PP_2010.root";
outputHistogramFileName = baseName;
if (singlesOnly) outputHistogramFileName += singlesOnlySuffix;
outputHistogramFileName += ".root";
- /*
- cout << "============================================================" << endl;
- cout << " iTask: " << iTask << endl;
- cout << " Task Name: " << taskName << endl;
- cout << " List Name: " << listName << endl;
- cout << " inputHistogramFileName: " << inputHistogramFileName << endl;
- cout << " outputHistogramFileName: " << outputHistogramFileName << endl;
- cout << " system: " << system << endl;
- cout << " singlesOnly: " << singlesOnly << endl;
- cout << " using weights: " << useWeights << endl;
- cout << " centralityMethod: " << centralityMethod << endl;
- cout << " chargeSet: " << chargeSet << endl;
- cout << " debugLevel: " << debugLevel << endl;
- cout << " rejectPileup: " << rejectPileup << endl;
- cout << " rejectPairConversion: " << rejectPairConversion << endl;
- cout << " sameFilter: " << sameFilter << endl;
- cout << " zMin: " << zMin << endl;
- cout << " zMax: " << zMax << endl;
- cout << " ptMin: " << ptMin << endl;
- cout << " ptMax: " << ptMax << endl;
- cout << " etaMin: " << etaMin << endl;
- cout << " etaMax: " << etaMax << endl;
- cout << " dcaZMin: " << dcaZMin << endl;
- cout << " dcaZMax: " << dcaZMax << endl;
- cout << " dcaXYMin: " << dcaXYMin << endl;
- cout << " dcaXYMax: " << dcaXYMax << endl;
- cout << " dedxMin: " << dedxMin << endl;
- cout << " dedxMax: " << dedxMax << endl;
- cout << " nClusterMin: " << nClusterMin << endl;
- cout << " trackFilterBit: " << trackFilterBit << endl;
- cout << " requestedCharge1: " << requestedCharge1 << endl;
- cout << " requestedCharge2: " << requestedCharge2 << endl;
- */
- cout << "============================================================" << endl;
-
-
- TFile * inputFile = 0;
+ cout << "============================================================" << endl;
+ cout << " iTask: " << iTask << endl;
+ cout << " Task Name: " << taskName << endl;
+ cout << " List Name: " << listName << endl;
+ cout << " inputHistogramFileName: " << inputHistogramFileName << endl;
+ cout << " outputHistogramFileName: " << outputHistogramFileName << endl;
+ cout << " system: " << system << endl;
+ cout << " singlesOnly: " << singlesOnly << endl;
+ cout << " using weights: " << useWeights << endl;
+ cout << " centralityMethod: " << centralityMethod << endl;
+ cout << " chargeSet: " << chargeSet << endl;
+ cout << " debugLevel: " << debugLevel << endl;
+ cout << " rejectPileup: " << rejectPileup << endl;
+ cout << " rejectPairConversion: " << rejectPairConversion << endl;
+ cout << " sameFilter: " << sameFilter << endl;
+ cout << " zMin: " << zMin << endl;
+ cout << " zMax: " << zMax << endl;
+ cout << " ptMin: " << ptMin << endl;
+ cout << " ptMax: " << ptMax << endl;
+ cout << " etaMin: " << etaMin << endl;
+ cout << " etaMax: " << etaMax << endl;
+ cout << " dcaZMin: " << dcaZMin << endl;
+ cout << " dcaZMax: " << dcaZMax << endl;
+ cout << " dcaXYMin: " << dcaXYMin << endl;
+ cout << " dcaXYMax: " << dcaXYMax << endl;
+ cout << " dedxMin: " << dedxMin << endl;
+ cout << " dedxMax: " << dedxMax << endl;
+ cout << " nClusterMin: " << nClusterMin << endl;
+ cout << " trackFilterBit: " << trackFilterBit << endl;
+ cout << " requestedCharge1: " << requestedCharge1 << endl;
+ cout << " requestedCharge2: " << requestedCharge2 << endl;
+ cout << "============================================================" << endl;
+
+ TFile * inputFile = 0;
TList * histoList = 0;
TH3F * weight_1 = 0;
TH3F * weight_2 = 0;
if (useWeights)
- {
- TGrid::Connect("alien:");
- inputFile = TFile::Open(inputHistogramFileName,"OLD");
- if (!inputFile)
- {
- cout << "Requested file:" << inputHistogramFileName << " was not opened. ABORT." << endl;
- return;
- }
- TString nameHistoBase = "correction_";
- TString nameHisto;
- nameHistoBase += eventName;
- if (requestedCharge1 == 1)
- {
- nameHisto = nameHistoBase + "_p";
- cout << "Input Histogram named: " << nameHisto << endl;
- weight_1 = (TH3F *) inputFile->Get(nameHisto);
- }
- else
- {
- nameHisto = nameHistoBase + "_m";
- cout << "Input Histogram named: " << nameHisto << endl;
- weight_1 = (TH3F *) inputFile->Get(nameHisto);
- }
- if (!weight_1)
- {
- cout << "Requested histogram 'correction_p/m' was not found. ABORT." << endl;
- return 0;
- }
-
- if (!sameFilter)
- {
- weight_2 = 0;
- if (requestedCharge2 == 1)
- {
- nameHisto = nameHistoBase + "_p";
- cout << "Input Histogram named: " << nameHisto << endl;
- weight_2 = (TH3F *) inputFile->Get(nameHisto);
- }
- else
- {
- nameHisto = nameHistoBase + "_m";
- cout << "Input Histogram named: " << nameHisto << endl;
- weight_2 = (TH3F *) inputFile->Get(nameHisto);
- }
- if (!weight_2)
- {
- cout << "Requested histogram 'correction_p/m' was not found. ABORT." << endl;
- return 0;
- }
- }
+ {
+ TGrid::Connect("alien:");
+ inputFile = TFile::Open(inputHistogramFileName,"OLD");
+ if (!inputFile)
+ {
+ cout << "Requested file:" << inputHistogramFileName << " was not opened. ABORT." << endl;
+ return;
+ }
+ TString nameHistoBase = "correction_";
+ TString nameHisto;
+ nameHistoBase += eventName;
+ if (requestedCharge1 == 1)
+ {
+ nameHisto = nameHistoBase + "_p";
+ cout << "Input Histogram named: " << nameHisto << endl;
+ weight_1 = (TH3F *) inputFile->Get(nameHisto);
+ }
+ else
+ {
+ nameHisto = nameHistoBase + "_m";
+ cout << "Input Histogram named: " << nameHisto << endl;
+ weight_1 = (TH3F *) inputFile->Get(nameHisto);
+ }
+ if (!weight_1)
+ {
+ cout << "Requested histogram 'correction_p/m' was not found. ABORT." << endl;
+ return 0;
+ }
+
+ if (!sameFilter)
+ {
+ weight_2 = 0;
+ if (requestedCharge2 == 1)
+ {
+ nameHisto = nameHistoBase + "_p";
+ cout << "Input Histogram named: " << nameHisto << endl;
+ weight_2 = (TH3F *) inputFile->Get(nameHisto);
+ }
+ else
+ {
+ nameHisto = nameHistoBase + "_m";
+ cout << "Input Histogram named: " << nameHisto << endl;
+ weight_2 = (TH3F *) inputFile->Get(nameHisto);
+ }
+ if (!weight_2)
+ {
+ cout << "Requested histogram 'correction_p/m' was not found. ABORT." << endl;
+ return 0;
+ }
+ }
}
task = new AliAnalysisTaskDptDptCorrelations(taskName);
//configure my task
cout << "Task added ...." << endl;
iTask++;
-
+
}