// Macro designed for use with the AliAnalysisTaskDptDptCorrelations task.
// Author: Prabhat Pujahari & Claude Pruneau, Wayne State
// system: 0: PbPb 1: pPb
// singlesOnly: 0: full correlations 1: singles only
// useWeights: 0: no 1: yes
// centralityMethod: 3: track count 4: V0 centrality 7: V0A centrality for pPb
// chargeSet: 0: ++ 1: +- 2: -+ 3: --
/////////////////////////////////////////////////////////////////////////////////
AliAnalysisTaskDptDptCorrelations *AddTaskDptDptCorr_PbPb
(int system = 0,
int singlesOnly = 0,
int useWeights = 1,
int centralityMethod = 4,
int chargeSet = 1,
double zMin = -10.,
double zMax = 10.,
int trackFilterBit = 128,
int nClusterMin = 80,
double eta1Min = -0.8,
double eta1Max = 0.8,
double eta2Min = -0.8,
double eta2Max = 0.8,
double dcaZMin = -3.2,
double dcaZMax = 3.2,
double dcaXYMin = -2.4,
double dcaXYMax = 2.4,
int nCentrality = 1,
Bool_t trigger = kFALSE,
const char* taskname = "dcaz2",
char *inputHistogramFileName = "alien:///alice/cern.ch/user/p/prabhat/CalibFiles/PbPbCalib_dca1.root")
{
// Set Default Configuration of this analysis
// ==========================================
int debugLevel = 0;
int rejectPileup = 1;
int rejectPairConversion = 1;
int sameFilter = 1;
//int nCentrality;
double minCentrality[10];
double maxCentrality[10];
if (system==0) // PbPb
{
if (centralityMethod == 4)
{
minCentrality[0] = 0.0; maxCentrality[0] = 5.0;
minCentrality[1] = 5.0; maxCentrality[1] = 10.;
minCentrality[2] = 20.; maxCentrality[2] = 30.;
}
else
{
return 0;
}
}
else if (system==1) // PbPb //splited to take care of memory problem
{
if (centralityMethod == 4)
{
minCentrality[0] = 30.0; maxCentrality[0] = 40.0;
minCentrality[1] = 50.0; maxCentrality[1] = 60.0;
minCentrality[2] = 70.0; maxCentrality[2] = 80.0;
}
else
{
return 0;
}
}
else
{
return 0;
}
//double zMin = -10.;
//double zMax = 10.;
double ptMin = 0.2;
double ptMax = 2.0;
double dedxMin = 0.0;
double dedxMax = 20000.0;
int requestedCharge1 = 1; //default
int requestedCharge2 = -1; //default
// Get the pointer to the existing analysis manager via the static access method.
// ==============================================================================
AliAnalysisManager *analysisManager = AliAnalysisManager::GetAnalysisManager();
if (!analysisManager)
{
::Error("AddTaskDptDptCorrelations", "No analysis manager to connect to.");
return NULL;
}
TString part1Name;
TString part2Name;
TString eventName;
TString prefixName = "Corr_";
TString pileupRejecSuffix = "_PileupRejec";
TString pairRejecSuffix = "_PairRejec";
TString calibSuffix = "_calib";
TString singlesOnlySuffix = "_SO";
TString suffix;
TString inputPath = ".";
TString outputPath = ".";
TString baseName;
TString listName;
TString taskName;
//TString inputHistogramFileName;
TString outputHistogramFileName;
// Create the task and add subtask.
// ===========================================================================
int iTask = 0; // task counter
AliAnalysisDataContainer *taskInputContainer;
AliAnalysisDataContainer *taskOutputContainer;
AliAnalysisTaskDptDptCorrelations* task;
for (int iCentrality=0; iCentrality < nCentrality; ++iCentrality)
{
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;
}
part1Name += "eta";
part1Name += int(1000*eta1Max);
part1Name += "_";
part1Name += int(1000*ptMin);
part1Name += "pt";
part1Name += int(1000*ptMax);
part1Name += "_";
part1Name += int(1000*dcaZMin);
part1Name += "DCA";
part1Name += int(1000*dcaZMax);
part1Name += "_";
part2Name += "eta";
part2Name += int(1000*eta2Max);
part2Name += "_";
part2Name += int(1000*ptMin);
part2Name += "pt";
part2Name += int(1000*ptMax);
part2Name += "_";
part2Name += int(1000*dcaZMin);
part2Name += "DCA";
part2Name += int(1000*dcaZMax);
part2Name += "_";
eventName = "";
eventName += int(10.*minCentrality[iCentrality] );
eventName += "Vo";
eventName += int(10.*maxCentrality[iCentrality] );
baseName = prefixName;
baseName += part1Name;
baseName += part2Name;
baseName += eventName;
listName = baseName;
taskName = baseName;
outputHistogramFileName = baseName;
if (singlesOnly) outputHistogramFileName += singlesOnlySuffix;
outputHistogramFileName += ".root";
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;
}
}
}
task = new AliAnalysisTaskDptDptCorrelations(taskName);
//configure my task
task->SetDebugLevel( debugLevel );
task->SetSameFilter( sameFilter );
task->SetSinglesOnly( singlesOnly );
task->SetUseWeights( useWeights );
task->SetRejectPileup( rejectPileup );
task->SetRejectPairConversion(rejectPairConversion);
task->SetVertexZMin( zMin );
task->SetVertexZMax( zMax );
task->SetVertexXYMin( -1. );
task->SetVertexXYMax( 1. );
task->SetCentralityMethod( centralityMethod);
task->SetCentrality( minCentrality[iCentrality], maxCentrality[iCentrality]);
task->SetPtMin1( ptMin );
task->SetPtMax1( ptMax );
task->SetEtaMin1( eta1Min );
task->SetEtaMax1( eta1Max );
task->SetPtMin2( ptMin );
task->SetPtMax2( ptMax );
task->SetEtaMin2( eta2Min );
task->SetEtaMax2( eta2Max );
task->SetDcaZMin( dcaZMin );
task->SetDcaZMax( dcaZMax );
task->SetDcaXYMin( dcaXYMin );
task->SetDcaXYMax( dcaXYMax ); //checking by prp
task->SetDedxMin( dedxMin );
task->SetDedxMax( dedxMax );
task->SetNClusterMin( nClusterMin );
task->SetTrackFilterBit( trackFilterBit );
task->SetRequestedCharge_1( requestedCharge1);
task->SetRequestedCharge_2( requestedCharge2);
task->SetWeigth_1( weight_1 );
task->SetWeigth_2( weight_2 );
if(trigger) task->SelectCollisionCandidates(AliVEvent::kINT7);
else task->SelectCollisionCandidates(AliVEvent::kMB);
cout << "Creating task output container" << endl;
taskOutputContainer = analysisManager->CreateContainer(listName,
TList::Class(),
AliAnalysisManager::kOutputContainer,
Form("%s:%s", AliAnalysisManager::GetCommonFileName(),taskname));
cout << "Add task to analysis manager and connect it to input and output containers" << endl;
analysisManager->AddTask(task);
analysisManager->ConnectInput( task, 0, analysisManager->GetCommonInputContainer());
analysisManager->ConnectOutput(task, 0, taskOutputContainer );
//cout << "Task added ...." << endl;
iTask++;
}
return task;
}
AddTaskDptDptCorr_PbPb.C:1 AddTaskDptDptCorr_PbPb.C:2 AddTaskDptDptCorr_PbPb.C:3 AddTaskDptDptCorr_PbPb.C:4 AddTaskDptDptCorr_PbPb.C:5 AddTaskDptDptCorr_PbPb.C:6 AddTaskDptDptCorr_PbPb.C:7 AddTaskDptDptCorr_PbPb.C:8 AddTaskDptDptCorr_PbPb.C:9 AddTaskDptDptCorr_PbPb.C:10 AddTaskDptDptCorr_PbPb.C:11 AddTaskDptDptCorr_PbPb.C:12 AddTaskDptDptCorr_PbPb.C:13 AddTaskDptDptCorr_PbPb.C:14 AddTaskDptDptCorr_PbPb.C:15 AddTaskDptDptCorr_PbPb.C:16 AddTaskDptDptCorr_PbPb.C:17 AddTaskDptDptCorr_PbPb.C:18 AddTaskDptDptCorr_PbPb.C:19 AddTaskDptDptCorr_PbPb.C:20 AddTaskDptDptCorr_PbPb.C:21 AddTaskDptDptCorr_PbPb.C:22 AddTaskDptDptCorr_PbPb.C:23 AddTaskDptDptCorr_PbPb.C:24 AddTaskDptDptCorr_PbPb.C:25 AddTaskDptDptCorr_PbPb.C:26 AddTaskDptDptCorr_PbPb.C:27 AddTaskDptDptCorr_PbPb.C:28 AddTaskDptDptCorr_PbPb.C:29 AddTaskDptDptCorr_PbPb.C:30 AddTaskDptDptCorr_PbPb.C:31 AddTaskDptDptCorr_PbPb.C:32 AddTaskDptDptCorr_PbPb.C:33 AddTaskDptDptCorr_PbPb.C:34 AddTaskDptDptCorr_PbPb.C:35 AddTaskDptDptCorr_PbPb.C:36 AddTaskDptDptCorr_PbPb.C:37 AddTaskDptDptCorr_PbPb.C:38 AddTaskDptDptCorr_PbPb.C:39 AddTaskDptDptCorr_PbPb.C:40 AddTaskDptDptCorr_PbPb.C:41 AddTaskDptDptCorr_PbPb.C:42 AddTaskDptDptCorr_PbPb.C:43 AddTaskDptDptCorr_PbPb.C:44 AddTaskDptDptCorr_PbPb.C:45 AddTaskDptDptCorr_PbPb.C:46 AddTaskDptDptCorr_PbPb.C:47 AddTaskDptDptCorr_PbPb.C:48 AddTaskDptDptCorr_PbPb.C:49 AddTaskDptDptCorr_PbPb.C:50 AddTaskDptDptCorr_PbPb.C:51 AddTaskDptDptCorr_PbPb.C:52 AddTaskDptDptCorr_PbPb.C:53 AddTaskDptDptCorr_PbPb.C:54 AddTaskDptDptCorr_PbPb.C:55 AddTaskDptDptCorr_PbPb.C:56 AddTaskDptDptCorr_PbPb.C:57 AddTaskDptDptCorr_PbPb.C:58 AddTaskDptDptCorr_PbPb.C:59 AddTaskDptDptCorr_PbPb.C:60 AddTaskDptDptCorr_PbPb.C:61 AddTaskDptDptCorr_PbPb.C:62 AddTaskDptDptCorr_PbPb.C:63 AddTaskDptDptCorr_PbPb.C:64 AddTaskDptDptCorr_PbPb.C:65 AddTaskDptDptCorr_PbPb.C:66 AddTaskDptDptCorr_PbPb.C:67 AddTaskDptDptCorr_PbPb.C:68 AddTaskDptDptCorr_PbPb.C:69 AddTaskDptDptCorr_PbPb.C:70 AddTaskDptDptCorr_PbPb.C:71 AddTaskDptDptCorr_PbPb.C:72 AddTaskDptDptCorr_PbPb.C:73 AddTaskDptDptCorr_PbPb.C:74 AddTaskDptDptCorr_PbPb.C:75 AddTaskDptDptCorr_PbPb.C:76 AddTaskDptDptCorr_PbPb.C:77 AddTaskDptDptCorr_PbPb.C:78 AddTaskDptDptCorr_PbPb.C:79 AddTaskDptDptCorr_PbPb.C:80 AddTaskDptDptCorr_PbPb.C:81 AddTaskDptDptCorr_PbPb.C:82 AddTaskDptDptCorr_PbPb.C:83 AddTaskDptDptCorr_PbPb.C:84 AddTaskDptDptCorr_PbPb.C:85 AddTaskDptDptCorr_PbPb.C:86 AddTaskDptDptCorr_PbPb.C:87 AddTaskDptDptCorr_PbPb.C:88 AddTaskDptDptCorr_PbPb.C:89 AddTaskDptDptCorr_PbPb.C:90 AddTaskDptDptCorr_PbPb.C:91 AddTaskDptDptCorr_PbPb.C:92 AddTaskDptDptCorr_PbPb.C:93 AddTaskDptDptCorr_PbPb.C:94 AddTaskDptDptCorr_PbPb.C:95 AddTaskDptDptCorr_PbPb.C:96 AddTaskDptDptCorr_PbPb.C:97 AddTaskDptDptCorr_PbPb.C:98 AddTaskDptDptCorr_PbPb.C:99 AddTaskDptDptCorr_PbPb.C:100 AddTaskDptDptCorr_PbPb.C:101 AddTaskDptDptCorr_PbPb.C:102 AddTaskDptDptCorr_PbPb.C:103 AddTaskDptDptCorr_PbPb.C:104 AddTaskDptDptCorr_PbPb.C:105 AddTaskDptDptCorr_PbPb.C:106 AddTaskDptDptCorr_PbPb.C:107 AddTaskDptDptCorr_PbPb.C:108 AddTaskDptDptCorr_PbPb.C:109 AddTaskDptDptCorr_PbPb.C:110 AddTaskDptDptCorr_PbPb.C:111 AddTaskDptDptCorr_PbPb.C:112 AddTaskDptDptCorr_PbPb.C:113 AddTaskDptDptCorr_PbPb.C:114 AddTaskDptDptCorr_PbPb.C:115 AddTaskDptDptCorr_PbPb.C:116 AddTaskDptDptCorr_PbPb.C:117 AddTaskDptDptCorr_PbPb.C:118 AddTaskDptDptCorr_PbPb.C:119 AddTaskDptDptCorr_PbPb.C:120 AddTaskDptDptCorr_PbPb.C:121 AddTaskDptDptCorr_PbPb.C:122 AddTaskDptDptCorr_PbPb.C:123 AddTaskDptDptCorr_PbPb.C:124 AddTaskDptDptCorr_PbPb.C:125 AddTaskDptDptCorr_PbPb.C:126 AddTaskDptDptCorr_PbPb.C:127 AddTaskDptDptCorr_PbPb.C:128 AddTaskDptDptCorr_PbPb.C:129 AddTaskDptDptCorr_PbPb.C:130 AddTaskDptDptCorr_PbPb.C:131 AddTaskDptDptCorr_PbPb.C:132 AddTaskDptDptCorr_PbPb.C:133 AddTaskDptDptCorr_PbPb.C:134 AddTaskDptDptCorr_PbPb.C:135 AddTaskDptDptCorr_PbPb.C:136 AddTaskDptDptCorr_PbPb.C:137 AddTaskDptDptCorr_PbPb.C:138 AddTaskDptDptCorr_PbPb.C:139 AddTaskDptDptCorr_PbPb.C:140 AddTaskDptDptCorr_PbPb.C:141 AddTaskDptDptCorr_PbPb.C:142 AddTaskDptDptCorr_PbPb.C:143 AddTaskDptDptCorr_PbPb.C:144 AddTaskDptDptCorr_PbPb.C:145 AddTaskDptDptCorr_PbPb.C:146 AddTaskDptDptCorr_PbPb.C:147 AddTaskDptDptCorr_PbPb.C:148 AddTaskDptDptCorr_PbPb.C:149 AddTaskDptDptCorr_PbPb.C:150 AddTaskDptDptCorr_PbPb.C:151 AddTaskDptDptCorr_PbPb.C:152 AddTaskDptDptCorr_PbPb.C:153 AddTaskDptDptCorr_PbPb.C:154 AddTaskDptDptCorr_PbPb.C:155 AddTaskDptDptCorr_PbPb.C:156 AddTaskDptDptCorr_PbPb.C:157 AddTaskDptDptCorr_PbPb.C:158 AddTaskDptDptCorr_PbPb.C:159 AddTaskDptDptCorr_PbPb.C:160 AddTaskDptDptCorr_PbPb.C:161 AddTaskDptDptCorr_PbPb.C:162 AddTaskDptDptCorr_PbPb.C:163 AddTaskDptDptCorr_PbPb.C:164 AddTaskDptDptCorr_PbPb.C:165 AddTaskDptDptCorr_PbPb.C:166 AddTaskDptDptCorr_PbPb.C:167 AddTaskDptDptCorr_PbPb.C:168 AddTaskDptDptCorr_PbPb.C:169 AddTaskDptDptCorr_PbPb.C:170 AddTaskDptDptCorr_PbPb.C:171 AddTaskDptDptCorr_PbPb.C:172 AddTaskDptDptCorr_PbPb.C:173 AddTaskDptDptCorr_PbPb.C:174 AddTaskDptDptCorr_PbPb.C:175 AddTaskDptDptCorr_PbPb.C:176 AddTaskDptDptCorr_PbPb.C:177 AddTaskDptDptCorr_PbPb.C:178 AddTaskDptDptCorr_PbPb.C:179 AddTaskDptDptCorr_PbPb.C:180 AddTaskDptDptCorr_PbPb.C:181 AddTaskDptDptCorr_PbPb.C:182 AddTaskDptDptCorr_PbPb.C:183 AddTaskDptDptCorr_PbPb.C:184 AddTaskDptDptCorr_PbPb.C:185 AddTaskDptDptCorr_PbPb.C:186 AddTaskDptDptCorr_PbPb.C:187 AddTaskDptDptCorr_PbPb.C:188 AddTaskDptDptCorr_PbPb.C:189 AddTaskDptDptCorr_PbPb.C:190 AddTaskDptDptCorr_PbPb.C:191 AddTaskDptDptCorr_PbPb.C:192 AddTaskDptDptCorr_PbPb.C:193 AddTaskDptDptCorr_PbPb.C:194 AddTaskDptDptCorr_PbPb.C:195 AddTaskDptDptCorr_PbPb.C:196 AddTaskDptDptCorr_PbPb.C:197 AddTaskDptDptCorr_PbPb.C:198 AddTaskDptDptCorr_PbPb.C:199 AddTaskDptDptCorr_PbPb.C:200 AddTaskDptDptCorr_PbPb.C:201 AddTaskDptDptCorr_PbPb.C:202 AddTaskDptDptCorr_PbPb.C:203 AddTaskDptDptCorr_PbPb.C:204 AddTaskDptDptCorr_PbPb.C:205 AddTaskDptDptCorr_PbPb.C:206 AddTaskDptDptCorr_PbPb.C:207 AddTaskDptDptCorr_PbPb.C:208 AddTaskDptDptCorr_PbPb.C:209 AddTaskDptDptCorr_PbPb.C:210 AddTaskDptDptCorr_PbPb.C:211 AddTaskDptDptCorr_PbPb.C:212 AddTaskDptDptCorr_PbPb.C:213 AddTaskDptDptCorr_PbPb.C:214 AddTaskDptDptCorr_PbPb.C:215 AddTaskDptDptCorr_PbPb.C:216 AddTaskDptDptCorr_PbPb.C:217 AddTaskDptDptCorr_PbPb.C:218 AddTaskDptDptCorr_PbPb.C:219 AddTaskDptDptCorr_PbPb.C:220 AddTaskDptDptCorr_PbPb.C:221 AddTaskDptDptCorr_PbPb.C:222 AddTaskDptDptCorr_PbPb.C:223 AddTaskDptDptCorr_PbPb.C:224 AddTaskDptDptCorr_PbPb.C:225 AddTaskDptDptCorr_PbPb.C:226 AddTaskDptDptCorr_PbPb.C:227 AddTaskDptDptCorr_PbPb.C:228 AddTaskDptDptCorr_PbPb.C:229 AddTaskDptDptCorr_PbPb.C:230 AddTaskDptDptCorr_PbPb.C:231 AddTaskDptDptCorr_PbPb.C:232 AddTaskDptDptCorr_PbPb.C:233 AddTaskDptDptCorr_PbPb.C:234 AddTaskDptDptCorr_PbPb.C:235 AddTaskDptDptCorr_PbPb.C:236 AddTaskDptDptCorr_PbPb.C:237 AddTaskDptDptCorr_PbPb.C:238 AddTaskDptDptCorr_PbPb.C:239 AddTaskDptDptCorr_PbPb.C:240 AddTaskDptDptCorr_PbPb.C:241 AddTaskDptDptCorr_PbPb.C:242 AddTaskDptDptCorr_PbPb.C:243 AddTaskDptDptCorr_PbPb.C:244 AddTaskDptDptCorr_PbPb.C:245 AddTaskDptDptCorr_PbPb.C:246 AddTaskDptDptCorr_PbPb.C:247 AddTaskDptDptCorr_PbPb.C:248 AddTaskDptDptCorr_PbPb.C:249 AddTaskDptDptCorr_PbPb.C:250 AddTaskDptDptCorr_PbPb.C:251 AddTaskDptDptCorr_PbPb.C:252 AddTaskDptDptCorr_PbPb.C:253 AddTaskDptDptCorr_PbPb.C:254 AddTaskDptDptCorr_PbPb.C:255 AddTaskDptDptCorr_PbPb.C:256 AddTaskDptDptCorr_PbPb.C:257 AddTaskDptDptCorr_PbPb.C:258 AddTaskDptDptCorr_PbPb.C:259 AddTaskDptDptCorr_PbPb.C:260 AddTaskDptDptCorr_PbPb.C:261 AddTaskDptDptCorr_PbPb.C:262 AddTaskDptDptCorr_PbPb.C:263 AddTaskDptDptCorr_PbPb.C:264 AddTaskDptDptCorr_PbPb.C:265 AddTaskDptDptCorr_PbPb.C:266 AddTaskDptDptCorr_PbPb.C:267 AddTaskDptDptCorr_PbPb.C:268 AddTaskDptDptCorr_PbPb.C:269 AddTaskDptDptCorr_PbPb.C:270 AddTaskDptDptCorr_PbPb.C:271 AddTaskDptDptCorr_PbPb.C:272 AddTaskDptDptCorr_PbPb.C:273 AddTaskDptDptCorr_PbPb.C:274 AddTaskDptDptCorr_PbPb.C:275 AddTaskDptDptCorr_PbPb.C:276 AddTaskDptDptCorr_PbPb.C:277 AddTaskDptDptCorr_PbPb.C:278 AddTaskDptDptCorr_PbPb.C:279 AddTaskDptDptCorr_PbPb.C:280 AddTaskDptDptCorr_PbPb.C:281 AddTaskDptDptCorr_PbPb.C:282 AddTaskDptDptCorr_PbPb.C:283 AddTaskDptDptCorr_PbPb.C:284 AddTaskDptDptCorr_PbPb.C:285 AddTaskDptDptCorr_PbPb.C:286 AddTaskDptDptCorr_PbPb.C:287 AddTaskDptDptCorr_PbPb.C:288 AddTaskDptDptCorr_PbPb.C:289