]>
Commit | Line | Data |
---|---|---|
1 | ||
2 | //--------------------------------------------------- | |
3 | // Macro to do analysis with AliJCORRANTask | |
4 | // Can be executed with Root and AliRoot | |
5 | // | |
6 | // ALICE Jyvaskyla group | |
7 | // | |
8 | // last change 20th Jun 2010 FK | |
9 | //------------------------------------------------- | |
10 | ||
11 | ||
12 | const TString kInputData = "ESD"; | |
13 | const TString kJCORRANInputFormat = "ESD"; // ESD, AOD | |
14 | const Bool_t kMC = kFALSE; //With real data kMC = kFALSE, MC data kMC =kTRUE | |
15 | ||
16 | AliJCORRANTask* AddTaskJCORRAN(const char* aodName="jcorran.root", const char* addPhysSelection="$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C") | |
17 | { | |
18 | //-------------------------------------- | |
19 | // Make the analysis manager | |
20 | //------------------------------------- | |
21 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
22 | if(!mgr){ | |
23 | ::Error("AddTaskJCORRAN", "No analysis manager to connect to."); | |
24 | return NULL; | |
25 | } | |
26 | ||
27 | if(!mgr->GetInputEventHandler()){ | |
28 | ::Error("AddTaskJets", "This task requires an input event handler"); | |
29 | return NULL; | |
30 | } | |
31 | ||
32 | //AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()); | |
33 | //aodH->SetCreateNonStandardAOD(); | |
34 | ||
35 | //------------------------------------------------------------------------- | |
36 | /// T R A C K S E L E C T I O N | |
37 | ||
38 | AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts", "Loose"); | |
39 | esdTrackCuts->SetMinNClustersTPC(70); | |
40 | esdTrackCuts->SetMaxChi2PerClusterTPC(4.0); | |
41 | esdTrackCuts->SetRequireTPCRefit(kTRUE); | |
42 | esdTrackCuts->SetRequireITSRefit(kTRUE); | |
43 | esdTrackCuts->SetAcceptKinkDaughters(kFALSE); | |
44 | esdTrackCuts->SetMaxDCAToVertexXY(3.5); | |
45 | esdTrackCuts->SetMaxDCAToVertexZ(3.5); | |
46 | esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9"); | |
47 | ||
48 | ||
49 | ||
50 | //------------------------------------------------------------------------- | |
51 | // E V E N T S E L E C T I O N | |
52 | ||
53 | Int_t downscaling = 1;//20; //downscaling of normal events | |
54 | Double_t lowerCutOnLPmom = 0;//3; // 3 GeV | |
55 | Double_t lowerCutOnLeadingCaloClusterE = 1.; //GeV | |
56 | Double_t lowerCutOnCaloClusterE = 0.2; //select only clusters above this energy | |
57 | ||
58 | if(addPhysSelection){ | |
59 | gROOT->LoadMacro(addPhysSelection); | |
60 | AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(); | |
61 | AliPhysicsSelection* physSele = physSelTask->GetPhysicsSelection(); | |
62 | } | |
63 | //--------------------------------------------------------------------------- | |
64 | // J C O R R A N T A S K | |
65 | ||
66 | AliJCORRANTask *jctask = new AliJCORRANTask("PWG4JCORRANTask",kJCORRANInputFormat); | |
67 | jctask->SetESDtrackCuts(esdTrackCuts); | |
68 | jctask->SetDownScalingOfMB(downscaling); | |
69 | jctask->SetLeadingPaticleMomCut(lowerCutOnLPmom); | |
70 | jctask->SetLowerCutOnCaloClusterE(lowerCutOnCaloClusterE); | |
71 | jctask->SetLowerCutOnLeadingCaloClusterE(lowerCutOnLeadingCaloClusterE); | |
72 | jctask->SetRealOrMC(kMC); | |
73 | jctask->SetOutputAODName(aodName); | |
74 | jctask->SetDebugLevel(1); | |
75 | ||
76 | if(!kMC && addPhysSelection){ | |
77 | //Apply offline trigger selection by AliPhysicsSelectionTask | |
78 | jctask->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kHighMult); | |
79 | } | |
80 | ||
81 | mgr->AddTask(jctask); | |
82 | ||
83 | // Create containers for input: | |
84 | AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer(); | |
85 | ||
86 | //connect input to JCORRAN task | |
87 | mgr->ConnectInput(jctask, 0, cinput0); | |
88 | ||
89 | ||
90 | return jctask; | |
91 | } | |
92 | ||
93 |