ROOT logo
void rundNdPt(const char *fileList ="inputList.txt",const char *outFile = "outputFile.root", Int_t NumberOfFiles=10,Int_t fromFile=0, Int_t nEvents=1000, Int_t firstEvent =0, Bool_t bUseMCInfo=kTRUE, Float_t zvWindow=20., Int_t cutMode=9,Float_t etaWindow=0.9, Float_t ptMin=0.15,AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPC, AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart,  AlidNdPtHelper::OutputObject outputObject=AlidNdPtHelper::kCorrection,const char *corrFile = "corrMatricesFile.root",Bool_t bProof=kFALSE)
{
  // set Proof
  if(bProof) { 
    
    //cout << "*** START PROOF Lite SESSION ***" << endl;
    //TProof::Open(""); // 1. Enter your username here
    
    //TProofMgr * proofmgr = TProof::Mgr("lxialpod2.gsi.de:21001");
    //TProofMgr * proofmgr = TProof::Mgr("lxialpod.gsi.de:21001");
    TProofMgr * proofmgr = TProof::Mgr("lxialpod.gsi.de:21004");
    //TProofMgr * proofmgr = TProof::Mgr("lxial39.gsi.de:21001");
    TProof * proof = proofmgr->CreateSession();
    proof->SetParameter("PROOF_MaxSlavesPerNode", (Long_t)10000);

    // -- Load AliRoot Libraries
    gROOT->LoadMacro("ProofEnableAliRootGSI.C");
    ProofEnableAliRootGSI("/u/jacek/alice/AliRoot/trunk");
  }

  // Swtich off all AliInfo (too much output!!!)
  AliLog::SetGlobalLogLevel(AliLog::kError);

  // Create analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager;

  //
  // Create physics trigger selection class
  //
  AliPhysicsSelection *physTrigSel =  new AliPhysicsSelection();

  //
  // Create event cuts
  //
  AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
  evtCuts->SetZvRange(-zvWindow,zvWindow);
  evtCuts->SetMeanXYZv(0.0,0.0,0.0);
  evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
  evtCuts->SetTriggerRequired(kTRUE);
  //evtCuts->SetTriggerRequired(kFALSE);

  // Create geom. acceptance cuts
  AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
  accCuts->SetEtaRange(-etaWindow,etaWindow);
  accCuts->SetPtRange(ptMin,1.e10);
  accCuts->SetMaxDCAr(3.0);
  accCuts->SetMaxDCAz(30.0);

  // Create standard esd track cuts
  gROOT->LoadMacro("$ALICE_ROOT/PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C");
  AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
  if (!esdTrackCuts) {
    printf("ERROR: esdTrackCuts could not be created\n");
    return;
  } else {
    esdTrackCuts->SetHistogramsOn(kTRUE);
  }

  //
  // Create task
  //
  AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
  if (bUseMCInfo) task->SetUseMCInfo(kTRUE);

  // create cut analysis object
  if(outputObject==AlidNdPtHelper::kCutAnalysis) 
  {
    AlidNdPtCutAnalysis *fdNdPtCutAnalysis = new AlidNdPtCutAnalysis("dNdPtCutAnalysis","dN/dPt Cut Analysis");
    fdNdPtCutAnalysis->SetEventCuts(evtCuts);
    fdNdPtCutAnalysis->SetAcceptanceCuts(accCuts);
    fdNdPtCutAnalysis->SetTrackCuts(esdTrackCuts);
    fdNdPtCutAnalysis->SetAnalysisMode(analysisMode); 
    fdNdPtCutAnalysis->SetParticleMode(particleMode); 
    if(bUseMCInfo) 
    {
       //fdNdPtCutAnalysis->SetTrigger(AliTriggerAnalysis::kMB1); 
       physTrigSel->SetAnalyzeMC();
       fdNdPtCutAnalysis->SetPhysicsTriggerSelection(physTrigSel); 
       fdNdPtCutAnalysis->SetUseMCInfo(kTRUE);
    }
    else { // online trigger
    fdNdPtCutAnalysis->SetPhysicsTriggerSelection(physTrigSel); 
    //fdNdPtCutAnalysis->SetTriggerClass("CBEAMB-ABCE-NOPF-ALL"); 
    //fdNdPtCutAnalysis->SetTriggerClass("CINT1B-ABCE-NOPF-ALL");
    //fdNdPtCutAnalysis->SetTriggerClass("CINT1A-ABCE-NOPF-ALL"); 
    //fdNdPtCutAnalysis->SetTriggerClass("CINT1C-ABCE-NOPF-ALL"); 
    //fdNdPtCutAnalysis->SetTriggerClass("CINT1-E-NOPF-ALL"); 
    }

    task->AddAnalysisObject( fdNdPtCutAnalysis );
  }

  // create analysis object
  if(outputObject==AlidNdPtHelper::kAnalysis) 
  {
    AlidNdPtAnalysis *fdNdPtAnalysis = new AlidNdPtAnalysis("dNdPtAnalysis","dN/dPt Analysis");
    fdNdPtAnalysis->SetEventCuts(evtCuts);
    fdNdPtAnalysis->SetAcceptanceCuts(accCuts);
    fdNdPtAnalysis->SetTrackCuts(esdTrackCuts);
    fdNdPtAnalysis->SetAnalysisMode(analysisMode); 
    fdNdPtAnalysis->SetParticleMode(particleMode); 
    if(bUseMCInfo) 
    {
       //fdNdPtAnalysis->SetTrigger(AliTriggerAnalysis::kMB1); 
       physTrigSel->SetAnalyzeMC();
       fdNdPtAnalysis->SetPhysicsTriggerSelection(physTrigSel); 

       fdNdPtAnalysis->SetUseMCInfo(kTRUE);
       //fdNdPtAnalysis->SetHistogramsOn(kTRUE);
       fdNdPtAnalysis->SetHistogramsOn(kFALSE);
    }
    else { // online trigger
    fdNdPtAnalysis->SetPhysicsTriggerSelection(physTrigSel); 
    //fdNdPtAnalysis->SetTriggerClass("CBEAMB-ABCE-NOPF-ALL"); 
    //fdNdPtAnalysis->SetTriggerClass("CINT1B-ABCE-NOPF-ALL");
    //fdNdPtAnalysis->SetTriggerClass("CINT1A-ABCE-NOPF-ALL"); 
    //fdNdPtAnalysis->SetTriggerClass("CINT1C-ABCE-NOPF-ALL"); 
    //fdNdPtAnalysis->SetTriggerClass("CINT1-E-NOPF-ALL"); 
    }

    task->AddAnalysisObject( fdNdPtAnalysis );
  }

  // create correction object
  if(outputObject == AlidNdPtHelper::kCorrection) 
  {
    AlidNdPtCorrection *fdNdPtCorrection = new AlidNdPtCorrection("dNdPtCorrection","dN/dPt Correction", corrFile);

    fdNdPtCorrection->SetEventCuts(evtCuts);
    fdNdPtCorrection->SetAcceptanceCuts(accCuts);
    fdNdPtCorrection->SetTrackCuts(esdTrackCuts);
    fdNdPtCorrection->SetAnalysisMode(analysisMode); 
    fdNdPtCorrection->SetParticleMode(particleMode); 
    if(bUseMCInfo) 
    {
       //fdNdPtCorrection->SetTrigger(AliTriggerAnalysis::kMB1); 
       physTrigSel->SetAnalyzeMC();
       fdNdPtCorrection->SetPhysicsTriggerSelection(physTrigSel); 
       fdNdPtCorrection->SetUseMCInfo(kTRUE);
    }
    else { // online trigger
    fdNdPtCorrection->SetPhysicsTriggerSelection(physTrigSel); 
    //fdNdPtCorrection->SetTriggerClass("CBEAMB-ABCE-NOPF-ALL"); 
    //fdNdPtCorrection->SetTriggerClass("CINT1B-ABCE-NOPF-ALL");
    //fdNdPtCorrection->SetTriggerClass("CINT1A-ABCE-NOPF-ALL"); 
    //fdNdPtCorrection->SetTriggerClass("CINT1C-ABCE-NOPF-ALL"); 
    //fdNdPtCorrection->SetTriggerClass("CINT1-E-NOPF-ALL"); 
    }

    task->AddAnalysisObject( fdNdPtCorrection );
  }

  // Add task
  mgr->AddTask(task);

  // Add ESD handler
  AliESDInputHandler* esdH = new AliESDInputHandler;
  //esdH->SetInactiveBranches("*");
  mgr->SetInputEventHandler(esdH);

  if(bUseMCInfo) {
  // Enable MC event handler
    AliMCEventHandler* handler = new AliMCEventHandler;
    handler->SetReadTR(kFALSE);
    //handler->SetReadTR(kTRUE);
    mgr->SetMCtruthEventHandler(handler);
  }

  // Create input chain
  gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
  TChain* chain = CreateESDChain(fileList, NumberOfFiles, fromFile);
  if(!chain) {
    printf("ERROR: chain cannot be created\n");
    return;
  }

  // Create containers for input
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  mgr->ConnectInput(task, 0, cinput);

  // Create containers for output
  AliAnalysisDataContainer *coutput = mgr->CreateContainer("coutput", TList::Class(), AliAnalysisManager::kOutputContainer, outFile);
  mgr->ConnectOutput(task, 0, coutput);

  // Enable debug printouts
  mgr->SetDebugLevel(0);

  if (!mgr->InitAnalysis())
    return;

  mgr->PrintStatus();

  if(bProof) mgr->StartAnalysis("proof",chain, nEvents, firstEvent);
  else mgr->StartAnalysis("local",chain,nEvents, firstEvent);
}

 rundNdPt.C:1
 rundNdPt.C:2
 rundNdPt.C:3
 rundNdPt.C:4
 rundNdPt.C:5
 rundNdPt.C:6
 rundNdPt.C:7
 rundNdPt.C:8
 rundNdPt.C:9
 rundNdPt.C:10
 rundNdPt.C:11
 rundNdPt.C:12
 rundNdPt.C:13
 rundNdPt.C:14
 rundNdPt.C:15
 rundNdPt.C:16
 rundNdPt.C:17
 rundNdPt.C:18
 rundNdPt.C:19
 rundNdPt.C:20
 rundNdPt.C:21
 rundNdPt.C:22
 rundNdPt.C:23
 rundNdPt.C:24
 rundNdPt.C:25
 rundNdPt.C:26
 rundNdPt.C:27
 rundNdPt.C:28
 rundNdPt.C:29
 rundNdPt.C:30
 rundNdPt.C:31
 rundNdPt.C:32
 rundNdPt.C:33
 rundNdPt.C:34
 rundNdPt.C:35
 rundNdPt.C:36
 rundNdPt.C:37
 rundNdPt.C:38
 rundNdPt.C:39
 rundNdPt.C:40
 rundNdPt.C:41
 rundNdPt.C:42
 rundNdPt.C:43
 rundNdPt.C:44
 rundNdPt.C:45
 rundNdPt.C:46
 rundNdPt.C:47
 rundNdPt.C:48
 rundNdPt.C:49
 rundNdPt.C:50
 rundNdPt.C:51
 rundNdPt.C:52
 rundNdPt.C:53
 rundNdPt.C:54
 rundNdPt.C:55
 rundNdPt.C:56
 rundNdPt.C:57
 rundNdPt.C:58
 rundNdPt.C:59
 rundNdPt.C:60
 rundNdPt.C:61
 rundNdPt.C:62
 rundNdPt.C:63
 rundNdPt.C:64
 rundNdPt.C:65
 rundNdPt.C:66
 rundNdPt.C:67
 rundNdPt.C:68
 rundNdPt.C:69
 rundNdPt.C:70
 rundNdPt.C:71
 rundNdPt.C:72
 rundNdPt.C:73
 rundNdPt.C:74
 rundNdPt.C:75
 rundNdPt.C:76
 rundNdPt.C:77
 rundNdPt.C:78
 rundNdPt.C:79
 rundNdPt.C:80
 rundNdPt.C:81
 rundNdPt.C:82
 rundNdPt.C:83
 rundNdPt.C:84
 rundNdPt.C:85
 rundNdPt.C:86
 rundNdPt.C:87
 rundNdPt.C:88
 rundNdPt.C:89
 rundNdPt.C:90
 rundNdPt.C:91
 rundNdPt.C:92
 rundNdPt.C:93
 rundNdPt.C:94
 rundNdPt.C:95
 rundNdPt.C:96
 rundNdPt.C:97
 rundNdPt.C:98
 rundNdPt.C:99
 rundNdPt.C:100
 rundNdPt.C:101
 rundNdPt.C:102
 rundNdPt.C:103
 rundNdPt.C:104
 rundNdPt.C:105
 rundNdPt.C:106
 rundNdPt.C:107
 rundNdPt.C:108
 rundNdPt.C:109
 rundNdPt.C:110
 rundNdPt.C:111
 rundNdPt.C:112
 rundNdPt.C:113
 rundNdPt.C:114
 rundNdPt.C:115
 rundNdPt.C:116
 rundNdPt.C:117
 rundNdPt.C:118
 rundNdPt.C:119
 rundNdPt.C:120
 rundNdPt.C:121
 rundNdPt.C:122
 rundNdPt.C:123
 rundNdPt.C:124
 rundNdPt.C:125
 rundNdPt.C:126
 rundNdPt.C:127
 rundNdPt.C:128
 rundNdPt.C:129
 rundNdPt.C:130
 rundNdPt.C:131
 rundNdPt.C:132
 rundNdPt.C:133
 rundNdPt.C:134
 rundNdPt.C:135
 rundNdPt.C:136
 rundNdPt.C:137
 rundNdPt.C:138
 rundNdPt.C:139
 rundNdPt.C:140
 rundNdPt.C:141
 rundNdPt.C:142
 rundNdPt.C:143
 rundNdPt.C:144
 rundNdPt.C:145
 rundNdPt.C:146
 rundNdPt.C:147
 rundNdPt.C:148
 rundNdPt.C:149
 rundNdPt.C:150
 rundNdPt.C:151
 rundNdPt.C:152
 rundNdPt.C:153
 rundNdPt.C:154
 rundNdPt.C:155
 rundNdPt.C:156
 rundNdPt.C:157
 rundNdPt.C:158
 rundNdPt.C:159
 rundNdPt.C:160
 rundNdPt.C:161
 rundNdPt.C:162
 rundNdPt.C:163
 rundNdPt.C:164
 rundNdPt.C:165
 rundNdPt.C:166
 rundNdPt.C:167
 rundNdPt.C:168
 rundNdPt.C:169
 rundNdPt.C:170
 rundNdPt.C:171
 rundNdPt.C:172
 rundNdPt.C:173
 rundNdPt.C:174
 rundNdPt.C:175
 rundNdPt.C:176
 rundNdPt.C:177
 rundNdPt.C:178
 rundNdPt.C:179
 rundNdPt.C:180
 rundNdPt.C:181
 rundNdPt.C:182
 rundNdPt.C:183
 rundNdPt.C:184
 rundNdPt.C:185
 rundNdPt.C:186
 rundNdPt.C:187
 rundNdPt.C:188
 rundNdPt.C:189
 rundNdPt.C:190
 rundNdPt.C:191
 rundNdPt.C:192
 rundNdPt.C:193
 rundNdPt.C:194
 rundNdPt.C:195
 rundNdPt.C:196
 rundNdPt.C:197