ROOT logo
/*AliAnalysisTaskSEImpParRes *AddTaskImpParRes(TString dirName="",
					     Bool_t readMC=kFALSE,
					     Bool_t isAOD=kTRUE,
					     Int_t SPDreq=1,
					     Int_t selPdg=-1,
					     Bool_t diamond=kTRUE,
					     Bool_t skipTrack=kTRUE,
					     Int_t minmult=0,
					     Int_t maxmult=1000000)*/
AliAnalysisTaskSEImpParRes *AddTaskImpParRes(Bool_t readMC=kFALSE,
					     Int_t selPdg=-1,
					     Bool_t diamond=kTRUE,
					     Bool_t skipTrack=kTRUE,
					     Int_t minmult=0,
					     Int_t maxmult=1000000,
					     Int_t checkSDDIsIn=1,
					     TString dirName="",
					     Bool_t isAOD=kFALSE,
					     Int_t SPDreq=1)
{
  //
  // Configuration for the study of the impact parameter resolution
  //
  // xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it
  //


  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskImpParRes", "No analysis manager to connect to.");
    return NULL;
  }  

  AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("d0ResAnalysisESDTrackCuts");
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  switch(SPDreq){
  case(1):
    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
    break;
  case(2):
    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth);
    break;
  case(3):
    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
    break;
  default:
    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth);
    break;
    }
  esdTrackCuts->SetMaxChi2PerClusterTPC(4);
  //esdTrackCuts->SetMinNCrossedRowsTPC(70);
  esdTrackCuts->SetMinNClustersTPC(70);

  
  // Aanalysis task    
  AliAnalysisTaskSEImpParRes *d0ResTask = new AliAnalysisTaskSEImpParRes("d0ResAnalysis");
  d0ResTask->SetDebugLevel(2);
  d0ResTask->SetReadMC(readMC);
  d0ResTask->SetIsAOD(isAOD);
  d0ResTask->SetSelectedPdg(selPdg);
  d0ResTask->SetUseDiamond(diamond);
  d0ResTask->SetSkipTrack(skipTrack);
  d0ResTask->SetMultiplicityRange(minmult,maxmult);
  d0ResTask->SetESDtrackCuts(esdTrackCuts);
  mgr->AddTask(d0ResTask);

  TString fname=Form("%s:ImpParRes_Performance",mgr->GetCommonFileName());
  if(selPdg>0) {fname+=selPdg;}
  fname += dirName.Data();

  TString name=dirName;
  //
  // Create containers for input/output
  AliAnalysisDataContainer *cinputd0distr = mgr->CreateContainer(Form("cinputd0distr%s",name.Data()),TChain::Class(), 
								 AliAnalysisManager::kInputContainer);

  AliAnalysisDataContainer *coutputd0ITSpureSARec = mgr->CreateContainer(Form("coutputd0ITSpureSARec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), 
								   AliAnalysisManager::kOutputContainer,
								   fname.Data());

  AliAnalysisDataContainer *coutputd0ITSpureSASkip = mgr->CreateContainer(Form("coutputd0ITSpureSASkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), 
								   AliAnalysisManager::kOutputContainer,
								   fname.Data());

  AliAnalysisDataContainer *coutputd0allPointRec = mgr->CreateContainer(Form("coutputd0allPointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), 
								   AliAnalysisManager::kOutputContainer,
								   fname.Data());
  
  AliAnalysisDataContainer *coutputd0allPointSkip = mgr->CreateContainer(Form("coutputd0allPointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), 
								   AliAnalysisManager::kOutputContainer,
								   fname.Data());
 
  AliAnalysisDataContainer *coutputd0partPointRec = mgr->CreateContainer(Form("coutputd0partPointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

  AliAnalysisDataContainer *coutputd0partPointSkip = mgr->CreateContainer(Form("coutputd0partPointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

  AliAnalysisDataContainer *coutputd0onepointSPDRec = mgr->CreateContainer(Form("coutputd0onepointSPDRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

  AliAnalysisDataContainer *coutputd0onepointSPDSkip = mgr->CreateContainer(Form("coutputd0onepointSPDSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

  AliAnalysisDataContainer *coutputd0postvTracRec = mgr->CreateContainer(Form("coutputd0postvTracRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());
 
 
  AliAnalysisDataContainer *coutputd0postvTracSkip = mgr->CreateContainer(Form("coutputd0postvTracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());
 
  AliAnalysisDataContainer *coutputd0negtvTracRec = mgr->CreateContainer(Form("coutputd0negtvTracRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());
 
  AliAnalysisDataContainer *coutputd0negtvTracSkip = mgr->CreateContainer(Form("coutputd0negtvTracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

  AliAnalysisDataContainer *coutputd0pullAllpointRec = mgr->CreateContainer(Form("coutputd0pullAllpointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());


  AliAnalysisDataContainer *coutputd0pullAllpointSkip = mgr->CreateContainer(Form("coutputd0pullAllpointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

  AliAnalysisDataContainer *coutputd0onlyRefitRec = mgr->CreateContainer(Form("coutputd0onlyRefitRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

  AliAnalysisDataContainer *coutputd0onlyRefitSkip = mgr->CreateContainer(Form("coutputd0onlyRefitSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());


  AliAnalysisDataContainer *coutputd0sinThetaRec = mgr->CreateContainer(Form("coutputd0sinThetaRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());


  AliAnalysisDataContainer *coutputd0sinThetaSkip = mgr->CreateContainer(Form("coutputd0sinThetaSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());


 AliAnalysisDataContainer *coutputd0allPointTrue = mgr->CreateContainer(Form("coutputd0allPointTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

 AliAnalysisDataContainer *coutputd0postvTracTrue = mgr->CreateContainer(Form("coutputd0postvTracTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

 AliAnalysisDataContainer *coutputd0negtvTracTrue = mgr->CreateContainer(Form("coutputd0negtvTracTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

 AliAnalysisDataContainer *coutputd0pullAllpointTrue = mgr->CreateContainer(Form("coutputd0pullAllpointTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());


 AliAnalysisDataContainer *coutputd0phiAllpointSkip = mgr->CreateContainer(Form("coutputd0phiAllpointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

 AliAnalysisDataContainer *coutputd0phiPostvtracSkip = mgr->CreateContainer(Form("coutputd0phiPostvtracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());
 
 AliAnalysisDataContainer *coutputd0phiNegtvtracSkip = mgr->CreateContainer(Form("coutputd0phiNegtvtracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									    AliAnalysisManager::kOutputContainer,
									  fname.Data());

 
  AliAnalysisDataContainer *coutputd0PID = mgr->CreateContainer(Form("coutputd0PID_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());
 
  AliAnalysisDataContainer *coutputd0Pt = mgr->CreateContainer(Form("coutputd0Pt_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());
 
  AliAnalysisDataContainer *coutputNentries = mgr->CreateContainer(Form("coutputNentries_%d_%d%s",minmult,maxmult,name.Data()),TH1F::Class(),
								     AliAnalysisManager::kOutputContainer, 
								   fname.Data());

  AliAnalysisDataContainer *coutputEstimVtx = mgr->CreateContainer(Form("coutputEstimVtx_%d_%d%s",minmult,maxmult,name.Data()),TH1F::Class(),
								     AliAnalysisManager::kOutputContainer, 
								   fname.Data());

  AliAnalysisDataContainer *coutputd0withESDTC = mgr->CreateContainer(Form("coutputd0withESDTC_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
									AliAnalysisManager::kOutputContainer,
									fname.Data());

  // Attach input  
  mgr->ConnectInput(d0ResTask,0,mgr->GetCommonInputContainer()); 
  // Attack output
  mgr->ConnectOutput(d0ResTask,1,coutputd0ITSpureSARec);
  mgr->ConnectOutput(d0ResTask,2,coutputd0ITSpureSASkip);
  mgr->ConnectOutput(d0ResTask,3,coutputd0allPointRec);
  mgr->ConnectOutput(d0ResTask,4,coutputd0allPointSkip);
  mgr->ConnectOutput(d0ResTask,5,coutputd0partPointRec);
  mgr->ConnectOutput(d0ResTask,6,coutputd0partPointSkip);
  mgr->ConnectOutput(d0ResTask,7,coutputd0onepointSPDRec);
  mgr->ConnectOutput(d0ResTask,8,coutputd0onepointSPDSkip);
  mgr->ConnectOutput(d0ResTask,9,coutputd0postvTracRec); 
  mgr->ConnectOutput(d0ResTask,10,coutputd0postvTracSkip);
  mgr->ConnectOutput(d0ResTask,11,coutputd0negtvTracRec);
  mgr->ConnectOutput(d0ResTask,12,coutputd0negtvTracSkip);
  mgr->ConnectOutput(d0ResTask,13,coutputd0pullAllpointRec);
  mgr->ConnectOutput(d0ResTask,14,coutputd0pullAllpointSkip);
  mgr->ConnectOutput(d0ResTask,15,coutputd0onlyRefitRec);
  mgr->ConnectOutput(d0ResTask,16,coutputd0onlyRefitSkip);
  mgr->ConnectOutput(d0ResTask,17,coutputd0sinThetaRec);
  mgr->ConnectOutput(d0ResTask,18,coutputd0sinThetaSkip);
  mgr->ConnectOutput(d0ResTask,19,coutputd0allPointTrue);
  mgr->ConnectOutput(d0ResTask,20,coutputd0postvTracTrue);
  mgr->ConnectOutput(d0ResTask,21,coutputd0negtvTracTrue);
  mgr->ConnectOutput(d0ResTask,22,coutputd0pullAllpointTrue);
  mgr->ConnectOutput(d0ResTask,23,coutputd0phiAllpointSkip);
  mgr->ConnectOutput(d0ResTask,24,coutputd0phiPostvtracSkip);
  mgr->ConnectOutput(d0ResTask,25,coutputd0phiNegtvtracSkip);
  mgr->ConnectOutput(d0ResTask,26,coutputd0PID);
  mgr->ConnectOutput(d0ResTask,27,coutputd0Pt);
  mgr->ConnectOutput(d0ResTask,28,coutputNentries);
  mgr->ConnectOutput(d0ResTask,29,coutputEstimVtx);
  mgr->ConnectOutput(d0ResTask,30,coutputd0withESDTC);

  return d0ResTask;
}
 AddTaskImpParRes.C:1
 AddTaskImpParRes.C:2
 AddTaskImpParRes.C:3
 AddTaskImpParRes.C:4
 AddTaskImpParRes.C:5
 AddTaskImpParRes.C:6
 AddTaskImpParRes.C:7
 AddTaskImpParRes.C:8
 AddTaskImpParRes.C:9
 AddTaskImpParRes.C:10
 AddTaskImpParRes.C:11
 AddTaskImpParRes.C:12
 AddTaskImpParRes.C:13
 AddTaskImpParRes.C:14
 AddTaskImpParRes.C:15
 AddTaskImpParRes.C:16
 AddTaskImpParRes.C:17
 AddTaskImpParRes.C:18
 AddTaskImpParRes.C:19
 AddTaskImpParRes.C:20
 AddTaskImpParRes.C:21
 AddTaskImpParRes.C:22
 AddTaskImpParRes.C:23
 AddTaskImpParRes.C:24
 AddTaskImpParRes.C:25
 AddTaskImpParRes.C:26
 AddTaskImpParRes.C:27
 AddTaskImpParRes.C:28
 AddTaskImpParRes.C:29
 AddTaskImpParRes.C:30
 AddTaskImpParRes.C:31
 AddTaskImpParRes.C:32
 AddTaskImpParRes.C:33
 AddTaskImpParRes.C:34
 AddTaskImpParRes.C:35
 AddTaskImpParRes.C:36
 AddTaskImpParRes.C:37
 AddTaskImpParRes.C:38
 AddTaskImpParRes.C:39
 AddTaskImpParRes.C:40
 AddTaskImpParRes.C:41
 AddTaskImpParRes.C:42
 AddTaskImpParRes.C:43
 AddTaskImpParRes.C:44
 AddTaskImpParRes.C:45
 AddTaskImpParRes.C:46
 AddTaskImpParRes.C:47
 AddTaskImpParRes.C:48
 AddTaskImpParRes.C:49
 AddTaskImpParRes.C:50
 AddTaskImpParRes.C:51
 AddTaskImpParRes.C:52
 AddTaskImpParRes.C:53
 AddTaskImpParRes.C:54
 AddTaskImpParRes.C:55
 AddTaskImpParRes.C:56
 AddTaskImpParRes.C:57
 AddTaskImpParRes.C:58
 AddTaskImpParRes.C:59
 AddTaskImpParRes.C:60
 AddTaskImpParRes.C:61
 AddTaskImpParRes.C:62
 AddTaskImpParRes.C:63
 AddTaskImpParRes.C:64
 AddTaskImpParRes.C:65
 AddTaskImpParRes.C:66
 AddTaskImpParRes.C:67
 AddTaskImpParRes.C:68
 AddTaskImpParRes.C:69
 AddTaskImpParRes.C:70
 AddTaskImpParRes.C:71
 AddTaskImpParRes.C:72
 AddTaskImpParRes.C:73
 AddTaskImpParRes.C:74
 AddTaskImpParRes.C:75
 AddTaskImpParRes.C:76
 AddTaskImpParRes.C:77
 AddTaskImpParRes.C:78
 AddTaskImpParRes.C:79
 AddTaskImpParRes.C:80
 AddTaskImpParRes.C:81
 AddTaskImpParRes.C:82
 AddTaskImpParRes.C:83
 AddTaskImpParRes.C:84
 AddTaskImpParRes.C:85
 AddTaskImpParRes.C:86
 AddTaskImpParRes.C:87
 AddTaskImpParRes.C:88
 AddTaskImpParRes.C:89
 AddTaskImpParRes.C:90
 AddTaskImpParRes.C:91
 AddTaskImpParRes.C:92
 AddTaskImpParRes.C:93
 AddTaskImpParRes.C:94
 AddTaskImpParRes.C:95
 AddTaskImpParRes.C:96
 AddTaskImpParRes.C:97
 AddTaskImpParRes.C:98
 AddTaskImpParRes.C:99
 AddTaskImpParRes.C:100
 AddTaskImpParRes.C:101
 AddTaskImpParRes.C:102
 AddTaskImpParRes.C:103
 AddTaskImpParRes.C:104
 AddTaskImpParRes.C:105
 AddTaskImpParRes.C:106
 AddTaskImpParRes.C:107
 AddTaskImpParRes.C:108
 AddTaskImpParRes.C:109
 AddTaskImpParRes.C:110
 AddTaskImpParRes.C:111
 AddTaskImpParRes.C:112
 AddTaskImpParRes.C:113
 AddTaskImpParRes.C:114
 AddTaskImpParRes.C:115
 AddTaskImpParRes.C:116
 AddTaskImpParRes.C:117
 AddTaskImpParRes.C:118
 AddTaskImpParRes.C:119
 AddTaskImpParRes.C:120
 AddTaskImpParRes.C:121
 AddTaskImpParRes.C:122
 AddTaskImpParRes.C:123
 AddTaskImpParRes.C:124
 AddTaskImpParRes.C:125
 AddTaskImpParRes.C:126
 AddTaskImpParRes.C:127
 AddTaskImpParRes.C:128
 AddTaskImpParRes.C:129
 AddTaskImpParRes.C:130
 AddTaskImpParRes.C:131
 AddTaskImpParRes.C:132
 AddTaskImpParRes.C:133
 AddTaskImpParRes.C:134
 AddTaskImpParRes.C:135
 AddTaskImpParRes.C:136
 AddTaskImpParRes.C:137
 AddTaskImpParRes.C:138
 AddTaskImpParRes.C:139
 AddTaskImpParRes.C:140
 AddTaskImpParRes.C:141
 AddTaskImpParRes.C:142
 AddTaskImpParRes.C:143
 AddTaskImpParRes.C:144
 AddTaskImpParRes.C:145
 AddTaskImpParRes.C:146
 AddTaskImpParRes.C:147
 AddTaskImpParRes.C:148
 AddTaskImpParRes.C:149
 AddTaskImpParRes.C:150
 AddTaskImpParRes.C:151
 AddTaskImpParRes.C:152
 AddTaskImpParRes.C:153
 AddTaskImpParRes.C:154
 AddTaskImpParRes.C:155
 AddTaskImpParRes.C:156
 AddTaskImpParRes.C:157
 AddTaskImpParRes.C:158
 AddTaskImpParRes.C:159
 AddTaskImpParRes.C:160
 AddTaskImpParRes.C:161
 AddTaskImpParRes.C:162
 AddTaskImpParRes.C:163
 AddTaskImpParRes.C:164
 AddTaskImpParRes.C:165
 AddTaskImpParRes.C:166
 AddTaskImpParRes.C:167
 AddTaskImpParRes.C:168
 AddTaskImpParRes.C:169
 AddTaskImpParRes.C:170
 AddTaskImpParRes.C:171
 AddTaskImpParRes.C:172
 AddTaskImpParRes.C:173
 AddTaskImpParRes.C:174
 AddTaskImpParRes.C:175
 AddTaskImpParRes.C:176
 AddTaskImpParRes.C:177
 AddTaskImpParRes.C:178
 AddTaskImpParRes.C:179
 AddTaskImpParRes.C:180
 AddTaskImpParRes.C:181
 AddTaskImpParRes.C:182
 AddTaskImpParRes.C:183
 AddTaskImpParRes.C:184
 AddTaskImpParRes.C:185
 AddTaskImpParRes.C:186
 AddTaskImpParRes.C:187
 AddTaskImpParRes.C:188
 AddTaskImpParRes.C:189
 AddTaskImpParRes.C:190
 AddTaskImpParRes.C:191
 AddTaskImpParRes.C:192
 AddTaskImpParRes.C:193
 AddTaskImpParRes.C:194
 AddTaskImpParRes.C:195
 AddTaskImpParRes.C:196
 AddTaskImpParRes.C:197
 AddTaskImpParRes.C:198
 AddTaskImpParRes.C:199
 AddTaskImpParRes.C:200
 AddTaskImpParRes.C:201
 AddTaskImpParRes.C:202
 AddTaskImpParRes.C:203
 AddTaskImpParRes.C:204
 AddTaskImpParRes.C:205
 AddTaskImpParRes.C:206
 AddTaskImpParRes.C:207
 AddTaskImpParRes.C:208
 AddTaskImpParRes.C:209
 AddTaskImpParRes.C:210
 AddTaskImpParRes.C:211
 AddTaskImpParRes.C:212
 AddTaskImpParRes.C:213
 AddTaskImpParRes.C:214
 AddTaskImpParRes.C:215
 AddTaskImpParRes.C:216
 AddTaskImpParRes.C:217
 AddTaskImpParRes.C:218
 AddTaskImpParRes.C:219
 AddTaskImpParRes.C:220
 AddTaskImpParRes.C:221
 AddTaskImpParRes.C:222
 AddTaskImpParRes.C:223
 AddTaskImpParRes.C:224
 AddTaskImpParRes.C:225
 AddTaskImpParRes.C:226
 AddTaskImpParRes.C:227
 AddTaskImpParRes.C:228
 AddTaskImpParRes.C:229
 AddTaskImpParRes.C:230
 AddTaskImpParRes.C:231
 AddTaskImpParRes.C:232
 AddTaskImpParRes.C:233
 AddTaskImpParRes.C:234
 AddTaskImpParRes.C:235
 AddTaskImpParRes.C:236
 AddTaskImpParRes.C:237
 AddTaskImpParRes.C:238
 AddTaskImpParRes.C:239
 AddTaskImpParRes.C:240
 AddTaskImpParRes.C:241
 AddTaskImpParRes.C:242
 AddTaskImpParRes.C:243