ROOT logo
AliFourPion *AddTaskFourPion(
			         Bool_t MCcase=kFALSE,
			         Bool_t TabulatePairs=kFALSE,
				 Int_t CentBinLowLimit=0, 
				 Int_t CentBinHighLimit=1,
				 TString StWeightName="alien:///alice/cern.ch/user/d/dgangadh/WeightFile_FourPion.root",
				 TString StMomResName="alien:///alice/cern.ch/user/d/dgangadh/MomResFile_FourPion.root",
				 TString StKName="alien:///alice/cern.ch/user/d/dgangadh/KFile_FourPion.root",
				 TString StMuonName="alien:///alice/cern.ch/user/d/dgangadh/MuonCorrection_FourPion.root",
				 TString StEAName="alien:///alice/cern.ch/user/d/dgangadh/c3EAfile.root"
			     ) {
  
  //===========================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskFourPion", "No analysis manager to connect to.");
    return NULL;
  }
 

  //____________________________________________//
  // Create task
  AliFourPion *FourPionTask = new AliFourPion("FourPionTask");
  if(!FourPionTask) return NULL;
  FourPionTask->SetLEGOCase(kTRUE);
  FourPionTask->SetMCdecision(MCcase);
  FourPionTask->SetCollisionType(0);
  FourPionTask->SetGenerateSignal(kFALSE);
  FourPionTask->SetTabulatePairs(TabulatePairs);
  FourPionTask->SetInterpolationType(kFALSE);
  FourPionTask->SetCentBinRange(CentBinLowLimit, CentBinHighLimit);
  FourPionTask->SetRMax(11);
  FourPionTask->SetfcSq(0.7);
  FourPionTask->SetFilterBit(7);
  FourPionTask->SetMaxChi2NDF(10);
  FourPionTask->SetMinTPCncls(0);
  FourPionTask->SetPairSeparationCutEta(0.02);
  FourPionTask->SetPairSeparationCutPhi(0.045);
  FourPionTask->SetNsigmaTPC(2.0);
  FourPionTask->SetNsigmaTOF(2.0);
  //
  FourPionTask->SetMixedChargeCut(kFALSE);
  FourPionTask->SetMinPt(0.16);
  FourPionTask->SetMaxPt(1.0);
  FourPionTask->SetKT3transition(0.3);
  FourPionTask->SetKT4transition(0.3);
  mgr->AddTask(FourPionTask);


  // Create ONLY the output containers for the data produced by the task.
  // Get and connect other common input/output containers via the manager as below
  //==============================================================================
  TString outputFileName = AliAnalysisManager::GetCommonFileName();
  outputFileName += ":PWGCF.outputFourPionAnalysis.root";
  AliAnalysisDataContainer *coutFourPion = mgr->CreateContainer("FourPionOutput", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
  mgr->ConnectInput(FourPionTask, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(FourPionTask, 1, coutFourPion);
  

  TFile *inputFileWeight = 0;
  TFile *inputFileMomRes = 0;
  TFile *inputFileFSI = 0;
  TFile *inputFileMuon = 0;
  TFile *inputFileEA = 0;
 
  if(!TabulatePairs){
    inputFileWeight = TFile::Open(StWeightName,"OLD");
    if (!inputFileWeight){
      cout << "Requested file:" << inputFileWeight << " was not opened. ABORT." << endl;
      return NULL;
    }
    ////////////////////////////////////////////////////
    // C2 Weight File
    const Int_t ktbins_temp = FourPionTask->GetNumKtBins();
    const Int_t cbins_temp = FourPionTask->GetNumCentBins(); 
    const Int_t ktbins = ktbins_temp;
    const Int_t cbins = cbins_temp;

    TH3F *weightHisto[ktbins][cbins];
    for(Int_t i=0; i<ktbins; i++){
      for(Int_t j=0; j<cbins; j++){
	TString name = "Weight_Kt_";
	name += i;
	name += "_Ky_0_M_";
	name += j;
	name += "_ED_0";
	
	weightHisto[i][j] = (TH3F*)inputFileWeight->Get(name);
      }
    }
    FourPionTask->SetWeightArrays( kTRUE, weightHisto );
    //
    //
    inputFileEA = TFile::Open(StEAName,"OLD");
    if (!inputFileEA){
      cout << "Requested file:" << inputFileEA << " was not opened. ABORT." << endl;
      return NULL;
    }
    TH3D *PbPbEA = 0;
    TH3D *pPbEA = 0;
    TH3D *ppEA = 0;
    PbPbEA = (TH3D*)inputFileEA->Get("PbPbEA");
    pPbEA = (TH3D*)inputFileEA->Get("pPbEA");
    ppEA = (TH3D*)inputFileEA->Get("ppEA");
    FourPionTask->Setc3FitEAs( kTRUE, PbPbEA, pPbEA, ppEA );
    ////////////////////////////////////////////////////
  }// TabulatePairs check
  
  if(!MCcase && !TabulatePairs){
    
    inputFileMomRes = TFile::Open(StMomResName,"OLD");
    if (!inputFileMomRes){
      cout << "Requested file:" << inputFileMomRes << " was not opened. ABORT." << endl;
      return NULL;
    }
    ////////////////////////////////////////////////////
    // Momentum Resolution File
    TH2D *momResHisto2DSC = 0;
    TH2D *momResHisto2DMC = 0;
    momResHisto2DSC = (TH2D*)inputFileMomRes->Get("MRC_C2_SC");
    momResHisto2DMC = (TH2D*)inputFileMomRes->Get("MRC_C2_MC");
    FourPionTask->SetMomResCorrections( kTRUE, momResHisto2DSC, momResHisto2DMC );
    ////////////////////////////////////////////////////

    // Muon corrections
    inputFileMuon = TFile::Open(StMuonName,"OLD");
    if (!inputFileMuon){
      cout << "Requested file:" << inputFileMuon << " was not opened. ABORT." << endl;
      return NULL;
    }
    TH2D *muonHisto2D = 0;
    muonHisto2D = (TH2D*)inputFileMuon->Get("WeightmuonCorrection");
    FourPionTask->SetMuonCorrections( kTRUE, muonHisto2D);

  }// MCcase and TabulatePairs check
  

  ////////////////////////////////////////////////////
  // FSI File
  inputFileFSI = TFile::Open(StKName,"OLD");
  if (!inputFileFSI){
    cout << "Requested file:" << inputFileFSI << " was not opened. ABORT." << endl;
    return NULL;
  }  
  TH1D *FSIss[13];
  TH1D *FSIos[13];
  for(Int_t index=0; index<13; index++) {
    TString *nameSS=new TString("K2ss_");
    *nameSS += index;
    FSIss[index] = (TH1D*)inputFileFSI->Get(nameSS->Data());
    TString *nameOS=new TString("K2os_");
    *nameOS += index;
    FSIos[index] = (TH1D*)inputFileFSI->Get(nameOS->Data());
    //
    FSIss[index]->SetDirectory(0);
    FSIos[index]->SetDirectory(0);
  }
  //
  FourPionTask->SetFSICorrelations( kTRUE, FSIss, FSIos );
  ////////////////////////////////////////////////////
  
  
  // Return the task pointer
  return FourPionTask;
}
 AddTaskFourPion.C:1
 AddTaskFourPion.C:2
 AddTaskFourPion.C:3
 AddTaskFourPion.C:4
 AddTaskFourPion.C:5
 AddTaskFourPion.C:6
 AddTaskFourPion.C:7
 AddTaskFourPion.C:8
 AddTaskFourPion.C:9
 AddTaskFourPion.C:10
 AddTaskFourPion.C:11
 AddTaskFourPion.C:12
 AddTaskFourPion.C:13
 AddTaskFourPion.C:14
 AddTaskFourPion.C:15
 AddTaskFourPion.C:16
 AddTaskFourPion.C:17
 AddTaskFourPion.C:18
 AddTaskFourPion.C:19
 AddTaskFourPion.C:20
 AddTaskFourPion.C:21
 AddTaskFourPion.C:22
 AddTaskFourPion.C:23
 AddTaskFourPion.C:24
 AddTaskFourPion.C:25
 AddTaskFourPion.C:26
 AddTaskFourPion.C:27
 AddTaskFourPion.C:28
 AddTaskFourPion.C:29
 AddTaskFourPion.C:30
 AddTaskFourPion.C:31
 AddTaskFourPion.C:32
 AddTaskFourPion.C:33
 AddTaskFourPion.C:34
 AddTaskFourPion.C:35
 AddTaskFourPion.C:36
 AddTaskFourPion.C:37
 AddTaskFourPion.C:38
 AddTaskFourPion.C:39
 AddTaskFourPion.C:40
 AddTaskFourPion.C:41
 AddTaskFourPion.C:42
 AddTaskFourPion.C:43
 AddTaskFourPion.C:44
 AddTaskFourPion.C:45
 AddTaskFourPion.C:46
 AddTaskFourPion.C:47
 AddTaskFourPion.C:48
 AddTaskFourPion.C:49
 AddTaskFourPion.C:50
 AddTaskFourPion.C:51
 AddTaskFourPion.C:52
 AddTaskFourPion.C:53
 AddTaskFourPion.C:54
 AddTaskFourPion.C:55
 AddTaskFourPion.C:56
 AddTaskFourPion.C:57
 AddTaskFourPion.C:58
 AddTaskFourPion.C:59
 AddTaskFourPion.C:60
 AddTaskFourPion.C:61
 AddTaskFourPion.C:62
 AddTaskFourPion.C:63
 AddTaskFourPion.C:64
 AddTaskFourPion.C:65
 AddTaskFourPion.C:66
 AddTaskFourPion.C:67
 AddTaskFourPion.C:68
 AddTaskFourPion.C:69
 AddTaskFourPion.C:70
 AddTaskFourPion.C:71
 AddTaskFourPion.C:72
 AddTaskFourPion.C:73
 AddTaskFourPion.C:74
 AddTaskFourPion.C:75
 AddTaskFourPion.C:76
 AddTaskFourPion.C:77
 AddTaskFourPion.C:78
 AddTaskFourPion.C:79
 AddTaskFourPion.C:80
 AddTaskFourPion.C:81
 AddTaskFourPion.C:82
 AddTaskFourPion.C:83
 AddTaskFourPion.C:84
 AddTaskFourPion.C:85
 AddTaskFourPion.C:86
 AddTaskFourPion.C:87
 AddTaskFourPion.C:88
 AddTaskFourPion.C:89
 AddTaskFourPion.C:90
 AddTaskFourPion.C:91
 AddTaskFourPion.C:92
 AddTaskFourPion.C:93
 AddTaskFourPion.C:94
 AddTaskFourPion.C:95
 AddTaskFourPion.C:96
 AddTaskFourPion.C:97
 AddTaskFourPion.C:98
 AddTaskFourPion.C:99
 AddTaskFourPion.C:100
 AddTaskFourPion.C:101
 AddTaskFourPion.C:102
 AddTaskFourPion.C:103
 AddTaskFourPion.C:104
 AddTaskFourPion.C:105
 AddTaskFourPion.C:106
 AddTaskFourPion.C:107
 AddTaskFourPion.C:108
 AddTaskFourPion.C:109
 AddTaskFourPion.C:110
 AddTaskFourPion.C:111
 AddTaskFourPion.C:112
 AddTaskFourPion.C:113
 AddTaskFourPion.C:114
 AddTaskFourPion.C:115
 AddTaskFourPion.C:116
 AddTaskFourPion.C:117
 AddTaskFourPion.C:118
 AddTaskFourPion.C:119
 AddTaskFourPion.C:120
 AddTaskFourPion.C:121
 AddTaskFourPion.C:122
 AddTaskFourPion.C:123
 AddTaskFourPion.C:124
 AddTaskFourPion.C:125
 AddTaskFourPion.C:126
 AddTaskFourPion.C:127
 AddTaskFourPion.C:128
 AddTaskFourPion.C:129
 AddTaskFourPion.C:130
 AddTaskFourPion.C:131
 AddTaskFourPion.C:132
 AddTaskFourPion.C:133
 AddTaskFourPion.C:134
 AddTaskFourPion.C:135
 AddTaskFourPion.C:136
 AddTaskFourPion.C:137
 AddTaskFourPion.C:138
 AddTaskFourPion.C:139
 AddTaskFourPion.C:140
 AddTaskFourPion.C:141
 AddTaskFourPion.C:142
 AddTaskFourPion.C:143
 AddTaskFourPion.C:144
 AddTaskFourPion.C:145
 AddTaskFourPion.C:146
 AddTaskFourPion.C:147
 AddTaskFourPion.C:148
 AddTaskFourPion.C:149
 AddTaskFourPion.C:150
 AddTaskFourPion.C:151
 AddTaskFourPion.C:152
 AddTaskFourPion.C:153
 AddTaskFourPion.C:154
 AddTaskFourPion.C:155
 AddTaskFourPion.C:156
 AddTaskFourPion.C:157
 AddTaskFourPion.C:158
 AddTaskFourPion.C:159
 AddTaskFourPion.C:160
 AddTaskFourPion.C:161
 AddTaskFourPion.C:162
 AddTaskFourPion.C:163
 AddTaskFourPion.C:164
 AddTaskFourPion.C:165
 AddTaskFourPion.C:166