]>
Commit | Line | Data |
---|---|---|
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 | ||
6 | void 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 |