]>
Commit | Line | Data |
---|---|---|
02f0b8e7 | 1 | void Embedding(const char* dataset="collection.xml") |
2 | { | |
3 | ||
4070f709 | 4 | gSystem->Load("libTree"); |
5 | gSystem->Load("libGeom"); | |
6 | gSystem->Load("libVMC"); | |
7 | gSystem->Load("libPhysics"); | |
02f0b8e7 | 8 | |
9 | //load analysis framework | |
b4ae47e1 | 10 | gSystem->Load("libSTEERBase"); |
02f0b8e7 | 11 | gSystem->Load("libANALYSIS"); |
12 | gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE | |
13 | ||
14 | gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS"); | |
15 | ||
16 | // A task can be compiled dynamically with AClic | |
17 | gROOT->LoadMacro("AliPHOSEmbedding.cxx+g"); | |
18 | ||
19 | // Connect to alien | |
20 | TString token = gSystem->Getenv("GRID_TOKEN") ; | |
21 | if (1) // token == "OK" ) | |
22 | TGrid::Connect("alien://"); | |
23 | else | |
24 | AliInfo("You are not connected to the GRID") ; | |
25 | cout << "Pi0Analysis: processing collection " << dataset << endl; | |
26 | ||
27 | // Create the chain | |
28 | TChain* chain = new TChain("esdTree"); | |
29 | ||
02f0b8e7 | 30 | TGridCollection * collection = dynamic_cast<TGridCollection*>(TAlienCollection::Open(dataset)); |
31 | ||
32 | TAlienResult* result = collection->GetGridResult("",0 ,0); | |
33 | TList* rawFileList = result->GetFileInfoList(); | |
34 | for (Int_t counter=0 ; counter < rawFileList->GetEntries() ; counter++) { | |
35 | TFileInfo * fi = static_cast<TFileInfo*>(rawFileList->At(counter)) ; | |
36 | const char * rawFile = fi->GetCurrentUrl()->GetUrl() ; | |
37 | printf("Processing %s\n", rawFile) ; | |
38 | chain->Add(rawFile); | |
39 | printf("Chain: %d entries.\n",chain->GetEntries()); | |
40 | } | |
41 | TFileInfo * fi = static_cast<TFileInfo*>(rawFileList->At(0)); | |
42 | const char * fn = fi->GetCurrentUrl()->GetUrl() ; | |
b4ae47e1 | 43 | |
44 | char runNum[7]; | |
45 | for(Int_t i=0;i<6;i++)runNum[i]=fn[35+i] ; | |
46 | ||
02f0b8e7 | 47 | runNum[6]=0 ; |
48 | Int_t iRunNum=atoi(runNum) ; | |
49 | printf("Run number=%d \n",iRunNum) ; | |
50 | ||
51 | //Run AOD simulation | |
52 | int nrun = atoi(runNum); | |
53 | int nevent = 0; | |
54 | int seed = 0; | |
55 | ||
56 | char sseed[1024]; | |
57 | char sevent[1024]; | |
58 | char sprocess[1024]; | |
59 | char sfield[1024]; | |
60 | char senergy[1024]; | |
61 | ||
62 | sprintf(sevent,""); | |
63 | sprintf(sprocess,""); | |
64 | sprintf(sfield,""); | |
65 | sprintf(senergy,""); | |
66 | ||
67 | seed = 0; | |
68 | sprintf(sseed,"%d",seed); | |
69 | ||
70 | if (seed==0) { | |
71 | fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); | |
72 | fprintf(stderr,"!!!! WARNING! Seeding variable for MC is 0 !!!!\n"); | |
73 | fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); | |
74 | } else { | |
75 | fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); | |
76 | fprintf(stdout,"!!! MC Seed is %d \n",seed); | |
77 | fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); | |
78 | } | |
79 | ||
80 | // set the seed environment variable | |
81 | gSystem->Setenv("CONFIG_SEED",sseed); | |
82 | gSystem->Setenv("CONFIG_RUN_TYPE","kPythia6"); // kPythia6 or kPhojet^M | |
83 | gSystem->Setenv("CONFIG_FIELD","k5kG"); // kNoField or k5kG^M | |
84 | gSystem->Setenv("CONFIG_ENERGY","2760"); // 900 or 10000 (GeV) | |
85 | gSystem->Setenv("DC_RUN",runNum); //run number | |
86 | ||
87 | ||
88 | char nSimEvents[55] ; | |
89 | sprintf(nSimEvents,"%d",chain->GetEntries()); | |
90 | gSystem->Setenv("SIM_EVENTS",nSimEvents); | |
91 | gSystem->Exec("mv geometry.root geometry_PHOS.root") ; | |
b4ae47e1 | 92 | gSystem->Exec("aliroot -b -q simrun.C > simrun.log 2>&1"); |
02f0b8e7 | 93 | gSystem->Exec("mv geometry_PHOS.root geometry.root") ; |
94 | ||
95 | // Make the analysis manager | |
96 | AliAnalysisManager *mgr = new AliAnalysisManager("Pi0EmbeddingManager"); | |
97 | ||
98 | // ESD input handler | |
99 | AliESDInputHandler* esdH = new AliESDInputHandler(); | |
100 | esdH->SetReadFriends(kFALSE); | |
101 | mgr->SetInputEventHandler(esdH); | |
102 | ||
103 | // Output | |
104 | AliAODHandler* aodHandler = new AliAODHandler(); | |
105 | aodHandler->SetOutputFileName("AliAODout.root"); | |
106 | mgr->SetOutputEventHandler(aodHandler); | |
107 | ||
108 | ||
109 | // Debug level | |
110 | mgr->SetDebugLevel(0); | |
111 | ||
b4ae47e1 | 112 | |
02f0b8e7 | 113 | // Add physics selection |
b4ae47e1 | 114 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C"); |
115 | AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kFALSE); | |
02f0b8e7 | 116 | |
1c06a186 | 117 | gROOT->LoadMacro("$ALICE_ROOT/OADB/macros/AddTaskCentrality.C"); |
02f0b8e7 | 118 | AliCentralitySelectionTask *taskCentrality = AddTaskCentrality() ; |
b4ae47e1 | 119 | |
120 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C"); | |
121 | AliEPSelectionTask *taskEP = AddTaskEventplane() ; | |
02f0b8e7 | 122 | |
123 | // Add my task | |
124 | AliPHOSEmbedding *task1 = new AliPHOSEmbedding("Embedding"); | |
125 | ||
126 | TChain* chainAOD = new TChain("aodTree"); | |
127 | chainAOD->AddFile("AliAOD.root") ; | |
128 | task1->SetSignalChain(chainAOD) ; | |
b4ae47e1 | 129 | task1->SelectCollisionCandidates(); |
02f0b8e7 | 130 | |
131 | ||
132 | TFile *fOldCalib = TFile::Open("OldCalibration.root"); | |
133 | if(fOldCalib->IsOpen()){ | |
134 | printf("\n\n...Adding PHOS calibration used in ESD production \n") ; | |
135 | char key[55] ; | |
136 | TH2F * hCalib[5] ; | |
137 | for(Int_t mod=0;mod<5; mod++){ | |
138 | sprintf(key,"calibrationMod%d",mod) ; | |
139 | hCalib[mod] = (TH2F*)fOldCalib->Get(key) ; | |
140 | } | |
141 | task1->SetOldCalibration(hCalib) ; | |
142 | fOldCalib->Close() ; | |
143 | } | |
144 | ||
145 | mgr->AddTask(task1); | |
146 | ||
147 | // Create containers for input/output | |
148 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
149 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("output0", | |
150 | TTree::Class(), AliAnalysisManager::kOutputContainer); | |
151 | ||
152 | ||
153 | // Connect input/output | |
154 | mgr->ConnectInput(task1 , 0, cinput); | |
155 | mgr->ConnectOutput(task1, 0,coutput1); | |
156 | ||
157 | AliLog::SetClassDebugLevel("AliGeomManager", 10) ; | |
158 | ||
159 | AliCDBManager::Instance()->SetRun(iRunNum) ; | |
160 | // AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB") ; | |
161 | // AliCDBManager::Instance()->SetDefaultStorage("raw://") ; | |
162 | AliCDBManager::Instance()->SetDefaultStorage("alien://folder=/alice/data/2010/OCDB") ; | |
163 | AliCDBManager::Instance()->SetSpecificStorage("PHOS/*/*", | |
164 | "local://OCDB"); | |
165 | printf("RunNunm===%d \n",iRunNum) ; | |
166 | ||
167 | ||
168 | if (mgr->InitAnalysis()) { | |
169 | mgr->PrintStatus(); | |
170 | mgr->StartAnalysis("local", chain); | |
171 | } | |
172 | ||
173 | if(iRunNum<=137848){ //period 1 | |
174 | gSystem->Exec("mv BadMap_LHC10h_period1.root BadMap_LHC10h.root") ; | |
175 | } | |
176 | else{ | |
177 | gSystem->Exec("mv BadMap_LHC10h_period234.root BadMap_LHC10h.root") ; | |
178 | } | |
b4ae47e1 | 179 | gSystem->Exec("aliroot -b -q AnalyzeDiff.C> analyze3.log 2>&1"); |
02f0b8e7 | 180 | |
181 | } |