add missing include
[u/mrichter/AliRoot.git] / PWG1 / VZERO / runAnaTrigProof.C
CommitLineData
e5f60c5a 1// 2010
2// .x runAnaTrigProof.C(0,"/alice/data","LHC10h_000138396_hlt_clustering",28,kFALSE,"CMBACS2")
3// 2011
4// .x runAnaTrigProof.C(0,"/alice/data","LHC11h_000166532_p1_HLT",28,kTRUE,"CPBI")
5
6void runAnaTrigProof(Int_t mode = 0, const char *folder = "/alice/data",
7 const char *dataset = "LHC10h_000138396_hlt_clustering",
8 Int_t workers=28,
9 Bool_t customOADB = kFALSE,
10 const char *minBias = "CPBI",
11 Int_t firstFile = 0, Int_t lastFile = -1)
c014f07d 12{
13 gSystem->Load("libANALYSIS");
14 gSystem->Load("libANALYSISalice");
e5f60c5a 15 gSystem->Load("libOADB");
c014f07d 16 gSystem->AddIncludePath("-I$ALICE_ROOT/include ");
17
e5f60c5a 18 if (mode==0) {
19 // Connect to Proof
20 gEnv->SetValue("XSec.GSI.DelegProxy","2");
21 Char_t *alienuser = gSystem->Getenv("alien_API_USER");
22 cout<<"==> Your AliEn username is: "<<alienuser<<endl;
c014f07d 23
e5f60c5a 24 TProof *p = TProof::Open(alienuser!=0 ? Form("%s@alice-caf.cern.ch",
25 alienuser) : "alice-caf.cern.ch",
26 workers>0 ? Form("workers=%d",workers) : "");
c014f07d 27
e5f60c5a 28 // gProof->GetManager()->SetROOTVersion("VO_ALICE@ROOT::v5-28-00f");
29 gProof->EnablePackage("VO_ALICE@AliRoot::v5-02-09-AN");
30 }
c014f07d 31
32 // Create the analysis manager
33 AliAnalysisManager *mgr = new AliAnalysisManager("AliAnaFwdDet");
34
35 AliESDInputHandler* esdH = new AliESDInputHandler();
36 esdH->SetInactiveBranches("FMD AliRawDataErrorLogs CaloClusters Cascades EMCALCells EMCALTrigger ESDfriend.fTracks Kinks MuonTracks TrdTracks");
37 // esdH->SetReadFriends(kTRUE);
38 esdH->SetReadFriends(kFALSE);
39 mgr->SetInputEventHandler(esdH);
40
41 // physics and centrality selection
42 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
43 AliPhysicsSelectionTask *physicsSelectionTask = AddTaskPhysicsSelection(kFALSE);
44 AliOADBTriggerAnalysis * oadbTrigAnalysis = new
45 AliOADBTriggerAnalysis("CustomTA");
46 oadbTrigAnalysis->SetZDCCorrParameters(-0.823, -0.653, 4*0.58, 4*0.5);
47 physicsSelectionTask->GetPhysicsSelection()->SetCustomOADBObjects(0,0,oadbTrigAnalysis);
e5f60c5a 48 if (customOADB) {
c014f07d 49
e5f60c5a 50 // OADB default trigger selection from trunk Revision: 52599 taken from the PbPb configuration in the macro:
51 // BrowseAndFillPhysicsSelectionOADB (as suggested by Michele). To be removed with the new revision.
52 AliOADBPhysicsSelection * oadbDefaultPbPb = new AliOADBPhysicsSelection("oadbDefaultPbPb");
53
54 Int_t triggerCount = 0;
55 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kMB,"+CPBI1-B-NOPF-ALLNOTRD,CPBI2_B1-B-NOPF-ALLNOTRD,CPBI2_B1-B-PF-ALLNOTRD","B",triggerCount);
56 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kMB,"+CPBI1-AC-NOPF-ALLNOTRD,CPBI2_B1-AC-NOPF-ALLNOTRD","AC",triggerCount);
57 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kMB,"+CPBI1-E-NOPF-ALLNOTRD,CPBI2_B1-E-NOPF-ALLNOTRD","E",triggerCount);
58 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C");
b13c9bc7 59 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
e5f60c5a 60
61 triggerCount++;
62 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kCentral,"+CVHN-B-NOPF-ALLNOTRD,CVHN-B-NOPF-CENTNOTRD,CVHN-B-PF-ALLNOTRD,CVHN-B-PF-CENTNOTRD","B",triggerCount);
63 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kCentral,"+CVHN-AC-NOPF-ALLNOTRD,CVHN-AC-NOPF-CENTNOTRD","AC",triggerCount);
64 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kCentral,"+CVHN-E-NOPF-ALLNOTRD,CVHN-E-NOPF-CENTNOTRD","E",triggerCount);
65 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C && Central");
b13c9bc7 66 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
e5f60c5a 67
68 triggerCount++;
69 // semicentral includes central ones (and might have different downscaling)
70 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kSemiCentral,"+CVHN-B-NOPF-ALLNOTRD,CVHN-B-NOPF-CENTNOTRD,CVHN-B-PF-ALLNOTRD,CVHN-B-PF-CENTNOTRD,CVLN-B-NOPF-ALLNOTRD,CVLN-B-PF-ALLNOTRD","B",triggerCount);
71 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kSemiCentral,"+CVHN-AC-NOPF-ALLNOTRD,CVHN-AC-NOPF-CENTNOTRD,CVLN-AC-NOPF-ALLNOTRD","AC",triggerCount);
72 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kSemiCentral,"+CVHN-E-NOPF-ALLNOTRD,CVHN-E-NOPF-CENTNOTRD,CVLN-E-NOPF-ALLNOTRD","E",triggerCount);
73 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C && SemiCentral && !Central");
b13c9bc7 74 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
e5f60c5a 75
76 triggerCount++;
77 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kEMCEJE,"+CPBI2EJE-B-NOPF-CENTNOTRD","B",triggerCount);
78 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kEMCEJE,"+CPBI2EJE-AC-NOPF-CENTNOTRD","AC",triggerCount);
79 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kEMCEJE,"+CPBI2EJE-E-NOPF-CENTNOTRD","E",triggerCount);
80 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C");
81 // TODO EMC offline check missing, https://savannah.cern.ch/bugs/index.php?87104
b13c9bc7 82 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
e5f60c5a 83
84 triggerCount++;
85 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kEMCEGA,"+CPBI2EGA-B-NOPF-CENTNOTRD","B",triggerCount);
86 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kEMCEGA,"+CPBI2EGA-AC-NOPF-CENTNOTRD","AC",triggerCount);
87 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kEMCEGA,"+CPBI2EGA-E-NOPF-CENTNOTRD","E",triggerCount);
88 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C");
89 // TODO EMC offline check missing, https://savannah.cern.ch/bugs/index.php?87104
b13c9bc7 90 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
e5f60c5a 91
92 triggerCount++;
93 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kMUSPB,"+CPBI1MSL-B-NOPF-MUON","B", triggerCount);
94 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kMUSPB,"+CPBI1MSL-ACE-NOPF-MUON","ACE",triggerCount);
95 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C");
96 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
97
98 triggerCount++;
99 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kMUSHPB,"+CPBI1MSH-B-NOPF-MUON","B", triggerCount);
100 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kMUSHPB,"+CPBI1MSH-ACE-NOPF-MUON","ACE",triggerCount);
101 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C");
102 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
103
104 triggerCount++;
105 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kMuonUnlikePB,"+CPBI1MUL-B-NOPF-MUON","B", triggerCount);
106 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kMuonUnlikePB,"+CPBI1MUL-AC-NOPF-MUON","AC",triggerCount);
107 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kMuonUnlikePB,"+CPBI1MUL-E-NOPF-MUON","E", triggerCount);
108 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C");
109 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
110
111 triggerCount++;
112 oadbDefaultPbPb->AddCollisionTriggerClass ( AliVEvent::kMuonLikePB,"+CPBI1MLL-B-NOPF-MUON","B", triggerCount);
113 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kMuonLikePB,"+CPBI1MLL-AC-NOPF-MUON","AC",triggerCount);
114 oadbDefaultPbPb->AddBGTriggerClass ( AliVEvent::kMuonLikePB,"+CPBI1MLL-E-NOPF-MUON","E", triggerCount);
115 oadbDefaultPbPb->SetHardwareTrigger ( triggerCount,"V0A && V0C");
116 oadbDefaultPbPb->SetOfflineTrigger ( triggerCount,"V0A && V0C && !V0ABG && !V0CBG && !TPCLaserWarmUp");
117
118 physicsSelectionTask->GetPhysicsSelection()->SetCustomOADBObjects(oadbDefaultPbPb,0,0);
119 }
c014f07d 120
121 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
122 AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
123
124 // Create task
e5f60c5a 125 if (mode==0) {
126 gProof->Load(Form("%s/AliAnaVZEROTrigger.cxx++g",
127 gSystem->pwd()));
128 }
129 else {
130 gROOT->LoadMacro(Form("%s/AliAnaVZEROTrigger.cxx++g",
131 gSystem->pwd()));
132 }
c014f07d 133 AliAnaVZEROTrigger *task = new AliAnaVZEROTrigger("AliAnaVZEROTrigger");
e5f60c5a 134 task->SetMBTrigName(minBias);
c014f07d 135 task->Setup("trigger.txt");
136
137 // Add task
138 mgr->AddTask(task);
139
140 // Create containers for input/output
141 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
142 AliAnalysisDataContainer *coutput =
143 mgr->CreateContainer("coutput", TList::Class(),
144 AliAnalysisManager::kOutputContainer, Form("VZERO.Trigger.%s.root",dataset));
145
146 // Connect input/output
147 mgr->ConnectInput(task, 0, cinput);
148 mgr->ConnectOutput(task, 1, coutput);
149
150
151 // Enable debug printouts
e5f60c5a 152 mgr->SetDebugLevel(3);
c014f07d 153
154 if (!mgr->InitAnalysis())
155 return;
156
157 mgr->PrintStatus();
158
e5f60c5a 159 if (mode==0)
160 mgr->StartAnalysis("proof", Form("%s/%s",folder,dataset));
161 else {
162 TGrid::Connect("alien://");
163 TChain *chain = new TChain("esdTree");
164 TGridResult *res = gGrid->Query(folder,"AliESDs.root");
165 Int_t nFiles = res->GetEntries();
166 if (lastFile < 0) lastFile = nFiles - 1;
167 for(Int_t iFile = firstFile; iFile <= lastFile; ++iFile) {
168 TString filename = res->GetKey(iFile, "turl");
169 if(filename == "") continue;
170 chain->AddFile(filename.Data());
171 }
172 mgr->StartAnalysis("local", chain);
173 }
c014f07d 174}
175