1 void rec(Int_t runNumber = 0, const char* year = "08", const char *localFileName = NULL)
\r
3 // Offline shifter reconstruction macro
\r
7 if (!localFileName) {
\r
9 cout << "Going to run the reconstruction for run: " << runNumber << endl;
\r
11 // connect to the grid
\r
12 TGrid * grid = 0x0 ;
\r
13 grid = TGrid::Connect("alien://") ;
\r
15 // make the file name pattern year and run number
\r
17 pattern.Form("%9d",runNumber);
\r
18 pattern.ReplaceAll(" ", "0") ;
\r
19 pattern.Prepend(year);
\r
20 pattern.Append("*0.root");
\r
22 // find the files associated to this run
\r
23 // get the list of files from AliEn directly
\r
25 baseDir.Form("/alice/data/20%s/",year);
\r
27 cout << "Looking for raw-data files with pattern " << pattern << " in folder " << baseDir << endl;
\r
29 TGridResult *result = grid->Query(baseDir, pattern);
\r
31 TList *fileList = result->GetFileInfoList();
\r
33 cout << fileList->GetEntries() << " raw-data files found" << endl;
\r
34 if ( fileList->GetEntries() == 0) {
\r
35 cout << "Exiting..." << endl;
\r
39 // Take the first (or last?) file...
\r
40 TFileInfo *fi = (TFileInfo *)fileList->At(0);
\r
41 // TFileInfo *fi = (TFileInfo *)fileList->At(fileList->GetEntries()-1);
\r
43 cout << "Getting the file:" << fi->GetCurrentUrl()->GetUrl() << endl;
\r
46 filename = fi->GetCurrentUrl()->GetUrl();
\r
49 // In case of local raw-data file...
\r
50 filename = localFileName;
\r
55 /////////////////////////////////////////////////////////////////////////////////////////
\r
57 // First version of the reconstruction
\r
58 // script for the FDR'08
\r
60 // Set the CDB storage location
\r
61 // AliLog::SetModuleDebugLevel("STEER",2);
\r
62 AliCDBManager * man = AliCDBManager::Instance();
\r
63 // man->SetDefaultStorage("local://LocalCDB");
\r
64 man->SetDefaultStorage("alien://folder=/alice/data/2008/LHC08a/OCDB/");
\r
66 // Files that we can not read from alien...solved
\r
67 // man->SetSpecificStorage("ITS/Calib/MapsAnodeSDD","local://$ALICE_ROOT");
\r
68 // man->SetSpecificStorage("ITS/Calib/MapsTimeSDD","local://$ALICE_ROOT");
\r
69 // man->SetSpecificStorage("TPC/Calib/ExB","local://$ALICE_ROOT");
\r
71 // Objects not found if using LHC07w database...solved
\r
72 // man->SetSpecificStorage("ITS/Calib/MapsAnodeSDD","local:///afs/cern.ch/user/c/cheshkov/public/OCDB");
\r
73 // man->SetSpecificStorage("GRP/GRP/Data","local://$ALICE_ROOT");
\r
74 // man->SetSpecificStorage("ITS/Calib/DDLMapSDD","local://$ALICE_ROOT");
\r
75 // man->SetSpecificStorage("MUON/Calib/Mapping","local://$ALICE_ROOT");
\r
76 // man->SetSpecificStorage("MUON/Calib/DDLStore","local://$ALICE_ROOT");
\r
79 AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetCosmicTestParam();
\r
80 itsRecoParam->SetClusterErrorsParam(2);
\r
81 itsRecoParam->SetFindV0s(kFALSE);
\r
82 itsRecoParam->SetAddVirtualClustersInDeadZone(kFALSE);
\r
83 itsRecoParam->SetUseAmplitudeInfo(kFALSE);
\r
84 // In case we want to switch off a layer
\r
85 // itsRecoParam->SetLayerToSkip(<N>);
\r
86 itsRecoParam->SetLayerToSkip(4);
\r
87 itsRecoParam->SetLayerToSkip(5);
\r
88 itsRecoParam->SetLayerToSkip(2);
\r
89 itsRecoParam->SetLayerToSkip(3);
\r
90 AliITSReconstructor::SetRecoParam(itsRecoParam);
\r
93 AliLog::SetClassDebugLevel("AliTPCclustererMI",2);
\r
94 AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetCosmicTestParam(kTRUE);
\r
95 tpcRecoParam->SetTimeInterval(60,940);
\r
96 tpcRecoParam->Dump();
\r
97 AliTPCReconstructor::SetRecoParam(tpcRecoParam);
\r
98 AliTPCReconstructor::SetStreamLevel(1);
\r
101 AliTRDrawStreamBase::SetRawStreamVersion("TB");
\r
104 AliPHOSRecoParam* recEmc = new AliPHOSRecoParamEmc();
\r
105 recEmc->SetSubtractPedestals(kTRUE);
\r
106 recEmc->SetMinE(0.05);
\r
107 recEmc->SetClusteringThreshold(0.10);
\r
108 AliPHOSReconstructor::SetRecoParamEmc(recEmc);
\r
111 AliLog::SetModuleDebugLevel("T0", 10);
\r
114 AliLog::SetClassDebugLevel("AliMUONRawStreamTracker",3);
\r
115 AliMUONRecoParam *muonRecoParam = AliMUONRecoParam::GetLowFluxParam();
\r
116 muonRecoParam->CombineClusterTrackReco(kTRUE);
\r
117 muonRecoParam->SetCalibrationMode("NOGAIN");
\r
118 //muonRecoParam->SetClusteringMode("PEAKFIT");
\r
119 //muonRecoParam->SetClusteringMode("PEAKCOG");
\r
120 muonRecoParam->Print("FULL");
\r
121 AliRecoParam::Instance()->RegisterRecoParam(muonRecoParam);
\r
123 // Tracking settings
\r
124 // AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1);
\r
125 AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 0., 10., 2);
\r
126 AliTracker::SetFieldMap(field,1);
\r
127 Double_t mostProbPt=0.35;
\r
128 AliExternalTrackParam::SetMostProbablePt(mostProbPt);
\r
130 // AliReconstruction settings
\r
131 AliReconstruction rec;
\r
132 rec.SetUniformFieldTracking(kFALSE);
\r
133 rec.SetWriteESDfriend(kTRUE);
\r
134 rec.SetWriteAlignmentData();
\r
135 rec.SetInput(filename.Data());
\r
136 rec.SetRunReconstruction("ALL");
\r
137 rec.SetUseTrackingErrorsForAlignment("ITS");
\r
139 // In case some detectors have to be switched off...
\r
140 // rec.SetRunLocalReconstruction("ALL");
\r
141 // rec.SetRunTracking("ALL");
\r
142 // rec.SetFillESD("ALL");
\r
143 // Disable vertex finder for the moment
\r
144 rec.SetRunVertexFinder(kFALSE);
\r
146 // To be enabled if some equipment IDs are not set correctly by DAQ
\r
147 // rec.SetEquipmentIdMap("EquipmentIdMap.data");
\r
149 // Detector options if any
\r
150 rec.SetOption("ITS","cosmics,onlyITS");
\r
151 rec.SetOption("MUON","SAVEDIGITS");
\r
152 rec.SetOption("TPC","OldRCUFormat");
\r
153 rec.SetOption("PHOS","OldRCUFormat");
\r
155 // To be enabled when CTP readout starts
\r
156 rec.SetFillTriggerESD(kFALSE);
\r
158 // all events in one single file
\r
159 rec.SetNumberOfEventsPerFile(-1);
\r
161 // switch off cleanESD
\r
162 rec.SetCleanESD(kFALSE);
\r
164 // rec.SetEventRange(0,15);
\r
165 // AliLog::SetGlobalDebugLevel(2);
\r
167 rec.SetRunQA(kFALSE);
\r
171 //cout << "-----------------------------------------------------------------" << endl;
\r
172 //cout << "-----------------------------------------------------------------" << endl;
\r
173 //cout << "--------- Reconstruction Completed. Start merging QAs -----------" << endl;
\r
174 //cout << "-----------------------------------------------------------------" << endl;
\r
175 //cout << "-----------------------------------------------------------------" << endl;
\r
176 //AliQADataMakerSteer qas;
\r