1 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::OutputObject outputObject=AlidNdPtHelper::kCorrection,const char *corrFile = "corrMatricesFile.root",Bool_t bProof=kFALSE)
6 //cout << "*** START PROOF Lite SESSION ***" << endl;
7 //TProof::Open(""); // 1. Enter your username here
9 TProofMgr * proofmgr = TProof::Mgr("lxialpod2.gsi.de:21001");
10 TProof * proof = proofmgr->CreateSession();
11 proof->SetParameter("PROOF_MaxSlavesPerNode", (Long_t)1000);
13 // -- Load AliRoot Libraries
14 gROOT->LoadMacro("ProofEnableAliRoot.C");
15 ProofEnableAliRoot("/u/jacek/alice/AliRoot/trunk");
18 // Swtich off all AliInfo (too much output!!!)
19 AliLog::SetGlobalLogLevel(AliLog::kError);
21 // Create analysis manager
22 AliAnalysisManager *mgr = new AliAnalysisManager;
27 AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
28 evtCuts->SetZvRange(-zvWindow,zvWindow);
29 evtCuts->SetMeanXYZv(0.0,0.0,0.0);
30 evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
31 //evtCuts->SetTriggerRequired(kFALSE);
33 // Create geom. acceptance cuts
34 AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
35 accCuts->SetEtaRange(-etaWindow,etaWindow);
36 accCuts->SetPtRange(ptMin,1.e10);
37 accCuts->SetMaxDCAr(3.0);
38 accCuts->SetMaxDCAz(30.0);
40 // Create standard esd track cuts
41 gROOT->LoadMacro("CreateStandardCuts.C");
42 AliESDtrackCuts* esdTrackCuts = CreateTrackCuts(cutMode);
44 printf("ERROR: esdTrackCuts could not be created\n");
47 esdTrackCuts->SetHistogramsOn(kTRUE);
53 AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
54 if (bUseMCInfo) task->SetUseMCInfo(kTRUE);
56 // create cut analysis object
57 if(outputObject==AlidNdPtHelper::kCutAnalysis)
59 AlidNdPtCutAnalysis *fdNdPtCutAnalysis = new AlidNdPtCutAnalysis("dNdPtCutAnalysis","dN/dPt Cut Analysis");
60 fdNdPtCutAnalysis->SetEventCuts(evtCuts);
61 fdNdPtCutAnalysis->SetAcceptanceCuts(accCuts);
62 fdNdPtCutAnalysis->SetTrackCuts(esdTrackCuts);
63 fdNdPtCutAnalysis->SetAnalysisMode(analysisMode);
64 fdNdPtCutAnalysis->SetTrigger(AlidNdPtHelper::kMB1);
65 if (bUseMCInfo) fdNdPtCutAnalysis->SetUseMCInfo(kTRUE);
67 task->AddAnalysisObject( fdNdPtCutAnalysis );
70 // create analysis object
71 if(outputObject==AlidNdPtHelper::kAnalysis)
73 AlidNdPtAnalysis *fdNdPtAnalysis = new AlidNdPtAnalysis("dNdPtAnalysis","dN/dPt Analysis");
74 fdNdPtAnalysis->SetEventCuts(evtCuts);
75 fdNdPtAnalysis->SetAcceptanceCuts(accCuts);
76 fdNdPtAnalysis->SetTrackCuts(esdTrackCuts);
77 fdNdPtAnalysis->SetAnalysisMode(analysisMode);
78 fdNdPtAnalysis->SetTrigger(AlidNdPtHelper::kMB1);
79 if (bUseMCInfo) fdNdPtAnalysis->SetUseMCInfo(kTRUE);
81 fdNdPtAnalysis->SetHistogramsOn(kTRUE);
82 //fdNdPtAnalysis->SetHistogramsOn(kFALSE);
83 task->AddAnalysisObject( fdNdPtAnalysis );
86 // create correction object
87 if(outputObject == AlidNdPtHelper::kCorrection)
89 AlidNdPtCorrection *fdNdPtCorrection = new AlidNdPtCorrection("dNdPtCorrection","dN/dPt Correction", corrFile);
91 fdNdPtCorrection->SetEventCuts(evtCuts);
92 fdNdPtCorrection->SetAcceptanceCuts(accCuts);
93 fdNdPtCorrection->SetTrackCuts(esdTrackCuts);
94 fdNdPtCorrection->SetAnalysisMode(analysisMode);
95 fdNdPtCorrection->SetTrigger(AlidNdPtHelper::kMB1);
96 if (bUseMCInfo) fdNdPtCorrection->SetUseMCInfo(kTRUE);
98 task->AddAnalysisObject( fdNdPtCorrection );
105 AliESDInputHandler* esdH = new AliESDInputHandler;
106 //esdH->SetInactiveBranches("*");
107 mgr->SetInputEventHandler(esdH);
110 // Enable MC event handler
111 AliMCEventHandler* handler = new AliMCEventHandler;
112 handler->SetReadTR(kFALSE);
113 //handler->SetReadTR(kTRUE);
114 mgr->SetMCtruthEventHandler(handler);
117 // Create input chain
118 gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
119 TChain* chain = CreateESDChain(fileList, NumberOfFiles, fromFile);
121 printf("ERROR: chain cannot be created\n");
125 // Create containers for input
126 //AliAnalysisDataContainer *cinput = mgr->CreateContainer("cchain", TChain::Class(), AliAnalysisManager::kInputContainer);
127 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
128 mgr->ConnectInput(task, 0, cinput);
130 // Create containers for output
131 AliAnalysisDataContainer *coutput = mgr->CreateContainer("coutput", TList::Class(), AliAnalysisManager::kOutputContainer, outFile);
132 mgr->ConnectOutput(task, 0, coutput);
134 // Enable debug printouts
135 mgr->SetDebugLevel(0);
137 if (!mgr->InitAnalysis())
142 if(bProof) mgr->StartAnalysis("proof",chain, nEvents, firstEvent);
143 else mgr->StartAnalysis("local",chain,nEvents, firstEvent);