ROOT logo
AliAnalysisTaskEmcalJetHadEPpid* AddTaskEmcalJetHadEPpid(
   const char *outfilename    = "AnalysisOutput.root",
   const char *nJets          = "Jets",
   const char *nTracksME      = "PicoTracks",
   const char *nClusters      = "CaloClustersCorr",
   const char *nRho	          = "rhoCh",
   const char *lrho           = "lrho",
   const Double_t minPhi      = 1.8,
   const Double_t maxPhi      = 2.74,
   const Double_t minEta      = -0.3,
   const Double_t maxEta      = 0.3,
   const Double_t minArea     = 0.4,
   const Int_t EvtMix         = 0, 
   const Double_t TrkBias     = 5,
   const Double_t ClusBias    = 5,
   const Double_t TrkEta      = 0.9,                                               
   Bool_t	PID               = 0, //kFALSE,
   Bool_t   PIDtrackBIAS      = 0, //kFALSE,
   Bool_t   varbinTHnSparse   = 0, //kFALSE,
   Bool_t   allpidAXIS		  = 0, //kFALSE,
   Bool_t   QAhistos		  = 0, //kFALSE,
   Bool_t   BIAShistos        = 0, //kFALSE,
   Bool_t   extraCORRhistos   = 0, //kFALSE,
   Bool_t   oldJEThadhistos   = 0, //kFALSE,
   const Double_t JetPtcut    = 15.0,
   const Double_t JetRadius   = 0.4,
   const Double_t constitCut  = 0.15,
   const Int_t MixingTracks   = 50000,
   const Int_t nmixingTR      = 5000,
   const Int_t nmixingEV      = 5,
   TString cutType			  = "EMCAL",
   Bool_t   Comments		  = 0,
   Bool_t   doFlavourJetAnalysis = 0,
   const Int_t flavTag        = 999,
   const Int_t esdcuts        = 10001006,
   TString colltype			  = "",
   UInt_t trigevent           = AliVEvent::kAny,
   UInt_t mixevent            = AliVEvent::kAny,
   UInt_t centbinsize         = 1,
   const Int_t doEffcorrSW    = 0,
   const char *tag			  = ""
)
{  
  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskEmcalJetHadEPpid", "No analysis manager to connect to.");
    return NULL;
  }  

  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  AliVEventHandler *evhand = mgr->GetInputEventHandler();
  //if (!mgr->GetInputEventHandler())
  if (!evhand) {
    Error("AddTaskEmcalJetHadEPpid", "This task requires an input event handler");
    return NULL;
  }

  // check on type of event 
  TString dType("ESD");
  if (!evhand->InheritsFrom("AliESDInputHandler")) 
    dType = "AOD";
  if (dType == "AOD") const char *nTracks = "AODFilterTracks";
  if (dType == "ESD") const char *nTracks = "ESDFilterTracks"; 

  // find out collisions system in order to know beamtype in UserCreateObjects later on
  AliAnalysisTaskEmcal::BeamType beam = -99;
  if (colltype == "p-p") beam = 0;
  else if(colltype == "A-A") beam = 1;
  else if(colltype == "p-A") beam = 2;
  else beam = -1;

  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

  TString name(Form("Correlations_%s%s", nJets, tag));
  AliAnalysisTaskEmcalJetHadEPpid *correlationtask = new AliAnalysisTaskEmcalJetHadEPpid(name);
  correlationtask->SetJetsName(nJets);
  correlationtask->SetTracksName(nTracks);
  correlationtask->SetTracksNameME(nTracksME);
  correlationtask->SetRhoName(nRho);
  if(colltype == "A-A") correlationtask->SetLocalRhoName(lrho);
  correlationtask->SetJetPhi(minPhi,maxPhi);
  correlationtask->SetJetEta(minEta,maxEta);
  correlationtask->SetAreaCut(minArea);
  correlationtask->SetEventMixing(EvtMix);
  correlationtask->SetTrkBias(TrkBias);
  correlationtask->SetClusBias(ClusBias);
  correlationtask->SetTrkEta(TrkEta);
  // Added on/after March20, 2014
  correlationtask->SetdoPID(PID);
  correlationtask->SetdoPIDtrackBIAS(PIDtrackBIAS);
  correlationtask->SetvarbinTHnSparse(varbinTHnSparse);
  correlationtask->SetallpidAXIS(allpidAXIS);
  correlationtask->SetmakeQAhistos(QAhistos);
  correlationtask->SetmakeBIAShistos(BIAShistos);  
  correlationtask->SetmakeextraCORRhistos(extraCORRhistos);
  correlationtask->SetoldJEThadhistos(oldJEThadhistos);
  correlationtask->SetJetPtcut(JetPtcut);
  correlationtask->SetJetRad(JetRadius);
  correlationtask->SetConstituentCut(constitCut);
  correlationtask->SetMixingTracks(MixingTracks);
  correlationtask->SetNMixedTr(nmixingTR);
  correlationtask->SetNMixedEvt(nmixingEV);
  correlationtask->SetcutType(cutType);
  correlationtask->SetdoComments(Comments);
  correlationtask->SetFlavourJetAnalysis(doFlavourJetAnalysis);
  correlationtask->SetJETFlavourTag(flavTag);
  correlationtask->SetCollType(beam);
  correlationtask->SetTriggerEventType(trigevent);
  correlationtask->SetMixedEventType(mixevent);
  correlationtask->SetCentBinSize(centbinsize);
  correlationtask->SetDoEffCorr(doEffcorrSW);

  // =================== set up containers ================================================
  // Cluster Container
  AliClusterContainer *clusCont = correlationtask->AddClusterContainer(nClusters);

  // Particle Container
  AliParticleContainer *partCont = correlationtask->AddParticleContainer(nTracks);
  
  // Jet Containers
  AliJetContainer *jetCont0 = correlationtask->AddJetContainer(nJets, cutType, JetRadius);
  AliJetContainer *jetCont1 = correlationtask->AddJetContainer(nJets, cutType, JetRadius);
  correlationtask->SetContainerAllJets(0);
  correlationtask->SetContainerPIDJets(1);

  // jet container cuts..
  correlationtask->SetJetPtCut(JetPtcut, 1);
  correlationtask->SetPercAreaCut(0.6, 1); 

  // ===================================================================
  // for manually doing Track Cuts
  // ESD track quality cuts
  AliESDtrackCuts *esdTrackCuts = 0x0;
  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
  esdTrackCuts = CreateTrackCutsPWGJE(esdcuts);
  correlationtask->SetTrackCuts(esdTrackCuts);

  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------
  mgr->AddTask(correlationtask);

  // Create containers for input/output
  mgr->ConnectInput (correlationtask, 0, mgr->GetCommonInputContainer() );
  AliAnalysisDataContainer *cojeth = mgr->CreateContainer(name,
                                                           TList::Class(),
                                                           AliAnalysisManager::kOutputContainer,
                                                           outfilename);

  mgr->ConnectOutput(correlationtask,1,cojeth);
  return correlationtask;
}
 AddTaskEmcalJetHadEPpid.C:1
 AddTaskEmcalJetHadEPpid.C:2
 AddTaskEmcalJetHadEPpid.C:3
 AddTaskEmcalJetHadEPpid.C:4
 AddTaskEmcalJetHadEPpid.C:5
 AddTaskEmcalJetHadEPpid.C:6
 AddTaskEmcalJetHadEPpid.C:7
 AddTaskEmcalJetHadEPpid.C:8
 AddTaskEmcalJetHadEPpid.C:9
 AddTaskEmcalJetHadEPpid.C:10
 AddTaskEmcalJetHadEPpid.C:11
 AddTaskEmcalJetHadEPpid.C:12
 AddTaskEmcalJetHadEPpid.C:13
 AddTaskEmcalJetHadEPpid.C:14
 AddTaskEmcalJetHadEPpid.C:15
 AddTaskEmcalJetHadEPpid.C:16
 AddTaskEmcalJetHadEPpid.C:17
 AddTaskEmcalJetHadEPpid.C:18
 AddTaskEmcalJetHadEPpid.C:19
 AddTaskEmcalJetHadEPpid.C:20
 AddTaskEmcalJetHadEPpid.C:21
 AddTaskEmcalJetHadEPpid.C:22
 AddTaskEmcalJetHadEPpid.C:23
 AddTaskEmcalJetHadEPpid.C:24
 AddTaskEmcalJetHadEPpid.C:25
 AddTaskEmcalJetHadEPpid.C:26
 AddTaskEmcalJetHadEPpid.C:27
 AddTaskEmcalJetHadEPpid.C:28
 AddTaskEmcalJetHadEPpid.C:29
 AddTaskEmcalJetHadEPpid.C:30
 AddTaskEmcalJetHadEPpid.C:31
 AddTaskEmcalJetHadEPpid.C:32
 AddTaskEmcalJetHadEPpid.C:33
 AddTaskEmcalJetHadEPpid.C:34
 AddTaskEmcalJetHadEPpid.C:35
 AddTaskEmcalJetHadEPpid.C:36
 AddTaskEmcalJetHadEPpid.C:37
 AddTaskEmcalJetHadEPpid.C:38
 AddTaskEmcalJetHadEPpid.C:39
 AddTaskEmcalJetHadEPpid.C:40
 AddTaskEmcalJetHadEPpid.C:41
 AddTaskEmcalJetHadEPpid.C:42
 AddTaskEmcalJetHadEPpid.C:43
 AddTaskEmcalJetHadEPpid.C:44
 AddTaskEmcalJetHadEPpid.C:45
 AddTaskEmcalJetHadEPpid.C:46
 AddTaskEmcalJetHadEPpid.C:47
 AddTaskEmcalJetHadEPpid.C:48
 AddTaskEmcalJetHadEPpid.C:49
 AddTaskEmcalJetHadEPpid.C:50
 AddTaskEmcalJetHadEPpid.C:51
 AddTaskEmcalJetHadEPpid.C:52
 AddTaskEmcalJetHadEPpid.C:53
 AddTaskEmcalJetHadEPpid.C:54
 AddTaskEmcalJetHadEPpid.C:55
 AddTaskEmcalJetHadEPpid.C:56
 AddTaskEmcalJetHadEPpid.C:57
 AddTaskEmcalJetHadEPpid.C:58
 AddTaskEmcalJetHadEPpid.C:59
 AddTaskEmcalJetHadEPpid.C:60
 AddTaskEmcalJetHadEPpid.C:61
 AddTaskEmcalJetHadEPpid.C:62
 AddTaskEmcalJetHadEPpid.C:63
 AddTaskEmcalJetHadEPpid.C:64
 AddTaskEmcalJetHadEPpid.C:65
 AddTaskEmcalJetHadEPpid.C:66
 AddTaskEmcalJetHadEPpid.C:67
 AddTaskEmcalJetHadEPpid.C:68
 AddTaskEmcalJetHadEPpid.C:69
 AddTaskEmcalJetHadEPpid.C:70
 AddTaskEmcalJetHadEPpid.C:71
 AddTaskEmcalJetHadEPpid.C:72
 AddTaskEmcalJetHadEPpid.C:73
 AddTaskEmcalJetHadEPpid.C:74
 AddTaskEmcalJetHadEPpid.C:75
 AddTaskEmcalJetHadEPpid.C:76
 AddTaskEmcalJetHadEPpid.C:77
 AddTaskEmcalJetHadEPpid.C:78
 AddTaskEmcalJetHadEPpid.C:79
 AddTaskEmcalJetHadEPpid.C:80
 AddTaskEmcalJetHadEPpid.C:81
 AddTaskEmcalJetHadEPpid.C:82
 AddTaskEmcalJetHadEPpid.C:83
 AddTaskEmcalJetHadEPpid.C:84
 AddTaskEmcalJetHadEPpid.C:85
 AddTaskEmcalJetHadEPpid.C:86
 AddTaskEmcalJetHadEPpid.C:87
 AddTaskEmcalJetHadEPpid.C:88
 AddTaskEmcalJetHadEPpid.C:89
 AddTaskEmcalJetHadEPpid.C:90
 AddTaskEmcalJetHadEPpid.C:91
 AddTaskEmcalJetHadEPpid.C:92
 AddTaskEmcalJetHadEPpid.C:93
 AddTaskEmcalJetHadEPpid.C:94
 AddTaskEmcalJetHadEPpid.C:95
 AddTaskEmcalJetHadEPpid.C:96
 AddTaskEmcalJetHadEPpid.C:97
 AddTaskEmcalJetHadEPpid.C:98
 AddTaskEmcalJetHadEPpid.C:99
 AddTaskEmcalJetHadEPpid.C:100
 AddTaskEmcalJetHadEPpid.C:101
 AddTaskEmcalJetHadEPpid.C:102
 AddTaskEmcalJetHadEPpid.C:103
 AddTaskEmcalJetHadEPpid.C:104
 AddTaskEmcalJetHadEPpid.C:105
 AddTaskEmcalJetHadEPpid.C:106
 AddTaskEmcalJetHadEPpid.C:107
 AddTaskEmcalJetHadEPpid.C:108
 AddTaskEmcalJetHadEPpid.C:109
 AddTaskEmcalJetHadEPpid.C:110
 AddTaskEmcalJetHadEPpid.C:111
 AddTaskEmcalJetHadEPpid.C:112
 AddTaskEmcalJetHadEPpid.C:113
 AddTaskEmcalJetHadEPpid.C:114
 AddTaskEmcalJetHadEPpid.C:115
 AddTaskEmcalJetHadEPpid.C:116
 AddTaskEmcalJetHadEPpid.C:117
 AddTaskEmcalJetHadEPpid.C:118
 AddTaskEmcalJetHadEPpid.C:119
 AddTaskEmcalJetHadEPpid.C:120
 AddTaskEmcalJetHadEPpid.C:121
 AddTaskEmcalJetHadEPpid.C:122
 AddTaskEmcalJetHadEPpid.C:123
 AddTaskEmcalJetHadEPpid.C:124
 AddTaskEmcalJetHadEPpid.C:125
 AddTaskEmcalJetHadEPpid.C:126
 AddTaskEmcalJetHadEPpid.C:127
 AddTaskEmcalJetHadEPpid.C:128
 AddTaskEmcalJetHadEPpid.C:129
 AddTaskEmcalJetHadEPpid.C:130
 AddTaskEmcalJetHadEPpid.C:131
 AddTaskEmcalJetHadEPpid.C:132
 AddTaskEmcalJetHadEPpid.C:133
 AddTaskEmcalJetHadEPpid.C:134
 AddTaskEmcalJetHadEPpid.C:135
 AddTaskEmcalJetHadEPpid.C:136
 AddTaskEmcalJetHadEPpid.C:137
 AddTaskEmcalJetHadEPpid.C:138
 AddTaskEmcalJetHadEPpid.C:139
 AddTaskEmcalJetHadEPpid.C:140
 AddTaskEmcalJetHadEPpid.C:141
 AddTaskEmcalJetHadEPpid.C:142
 AddTaskEmcalJetHadEPpid.C:143
 AddTaskEmcalJetHadEPpid.C:144
 AddTaskEmcalJetHadEPpid.C:145
 AddTaskEmcalJetHadEPpid.C:146
 AddTaskEmcalJetHadEPpid.C:147
 AddTaskEmcalJetHadEPpid.C:148
 AddTaskEmcalJetHadEPpid.C:149
 AddTaskEmcalJetHadEPpid.C:150
 AddTaskEmcalJetHadEPpid.C:151
 AddTaskEmcalJetHadEPpid.C:152
 AddTaskEmcalJetHadEPpid.C:153
 AddTaskEmcalJetHadEPpid.C:154
 AddTaskEmcalJetHadEPpid.C:155
 AddTaskEmcalJetHadEPpid.C:156
 AddTaskEmcalJetHadEPpid.C:157
 AddTaskEmcalJetHadEPpid.C:158
 AddTaskEmcalJetHadEPpid.C:159
 AddTaskEmcalJetHadEPpid.C:160