bcc7a2a231ee8a347e93e5aa96c9ce0002e0e90a
[u/mrichter/AliRoot.git] / test / cosmic / rec.C
1 void rec(const char *filename="raw.root", const Int_t mfield=1)\r
2 {\r
3   /////////////////////////////////////////////////////////////////////////////////////////\r
4   //\r
5   // Second version of the reconstruction\r
6   // script for the 2008 cosmic data (LHC08b) \r
7   //\r
8   /////////////////////////////////////////////////////////////////////////////////////////\r
9   //AliLog::SetGlobalLogLevel(AliLog::kWarning);\r
10   AliLog::SetGlobalLogLevel(AliLog::kError);\r
11 \r
12   gSystem->Load("libRAliEn.so");\r
13   gSystem->Load("libNet.so");\r
14   gSystem->Load("libMonaLisa.so");\r
15   new TMonaLisaWriter(0, "GridAliRoot-rec.C", 0, 0, "global");\r
16   gSystem->Setenv("APMON_INTERVAL", "120");\r
17 \r
18   // Set the CDB storage location\r
19   AliCDBManager * man = AliCDBManager::Instance();\r
20     man->SetDefaultStorage("local://$ALICE_ROOT");\r
21   //man->SetDefaultStorage("alien://folder=/alice/data/2008/LHC08a/OCDB/");\r
22   man->SetSpecificStorage("ITS/Calib/*","local://$ALICE_ROOT");\r
23   \r
24   // Example in case a specific CDB storage is needed\r
25   //  man->SetSpecificStorage("ITS/Calib/MapsAnodeSDD","local://$ALICE_ROOT");\r
26 \r
27   // Reconstruction settings\r
28   AliReconstruction rec;\r
29 \r
30   // ITS settings\r
31   AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetCosmicTestParam();\r
32   itsRecoParam->SetFactorSAWindowSizes(20);\r
33   itsRecoParam->SetClusterErrorsParam(2);\r
34   itsRecoParam->SetFindV0s(kFALSE);\r
35   itsRecoParam->SetAddVirtualClustersInDeadZone(kFALSE);\r
36   itsRecoParam->SetUseAmplitudeInfo(kFALSE);\r
37   // In case we want to switch off a layer\r
38   //  itsRecoParam->SetLayerToSkip(<N>);\r
39   //  itsRecoParam->SetLayerToSkip(4);\r
40   //  itsRecoParam->SetLayerToSkip(5);\r
41   itsRecoParam->SetLayerToSkip(2);\r
42   itsRecoParam->SetLayerToSkip(3);\r
43   //itsRecoParam->SetSAOnePointTracks();\r
44   itsRecoParam->SetClusterMisalError(0.1); // [cm]\r
45   itsRecoParam->SetSAUseAllClusters();\r
46   rec.SetRecoParam("ITS",itsRecoParam);\r
47 \r
48   // TPC settings\r
49   //AliLog::SetClassDebugLevel("AliTPCclustererMI",2);\r
50   AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetCosmicTestParam(kFALSE);\r
51   tpcRecoParam->SetTimeInterval(60,940);\r
52   Double_t sysError[5]={0.3,1, 0.3/150., 1./150.,0.3/(150*150.)};\r
53   tpcRecoParam->SetSystematicError(sysError);\r
54   tpcRecoParam->SetMinMaxCutAbs(4.);\r
55   tpcRecoParam->SetMinLeftRightCutAbs(6.);\r
56   tpcRecoParam->SetMinUpDownCutAbs(6.);\r
57   //  tpcRecoParam->Dump();\r
58   rec.SetRecoParam("TPC",tpcRecoParam);\r
59   AliTPCReconstructor::SetStreamLevel(1);\r
60 \r
61   // TRD setting\r
62   // Settings for the TRD Raw Reader\r
63   AliTRDrawStreamBase::SetRawStreamVersion("TB");\r
64   AliTRDrawStreamTB::SetNoErrorWarning();\r
65   AliTRDrawStreamTB::AllowCorruptedData();\r
66   AliTRDrawStreamTB::DisableStackNumberChecker();\r
67   AliTRDrawStreamTB::DisableStackLinkNumberChecker();\r
68   AliTRDrawStreamTB::SetSubtractBaseline(10);\r
69   \r
70   // TRD reconstruction params\r
71   AliTRDrecoParam *fTRDrecoParam = AliTRDrecoParam::GetCosmicTestParam();\r
72   rec.SetRecoParam("TRD",fTRDrecoParam);\r
73   AliTRDtrackerV1::SetNTimeBins(30);\r
74 \r
75   // PHOS settings\r
76   AliPHOSRecoParam* recPHOS = new AliPHOSRecoParam();\r
77   recPHOS->SetEMCSubtractPedestals(kTRUE);\r
78   recPHOS->SetEMCMinE(0.05);\r
79   recPHOS->SetEMCClusteringThreshold(0.10);\r
80   rec.SetRecoParam("PHOS",recPHOS);\r
81 \r
82   // T0 settings\r
83   //AliLog::SetModuleDebugLevel("T0", 10);\r
84 \r
85   // MUON settings\r
86   //AliLog::SetClassDebugLevel("AliMUONRawStreamTracker",3);\r
87   AliMUONRecoParam *muonRecoParam = AliMUONRecoParam::GetLowFluxParam();\r
88   muonRecoParam->CombineClusterTrackReco(kTRUE);\r
89   muonRecoParam->SetCalibrationMode("NOGAIN");\r
90   //muonRecoParam->SetClusteringMode("PEAKFIT");\r
91   //muonRecoParam->SetClusteringMode("PEAKCOG");\r
92   muonRecoParam->Print("FULL");\r
93   rec.SetRecoParam("MUON",muonRecoParam);\r
94  \r
95   // Tracking settings\r
96   AliMagFMaps* field;\r
97   if (mfield)\r
98      field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG);\r
99    else\r
100      field = new AliMagFMaps("Maps","Maps", 2, 0., 10., 2);\r
101   AliTracker::SetFieldMap(field,1);\r
102   Double_t mostProbPt=0.35;\r
103   AliExternalTrackParam::SetMostProbablePt(mostProbPt);\r
104 \r
105   // AliReconstruction settings\r
106   rec.SetUniformFieldTracking(kFALSE);\r
107   rec.SetWriteESDfriend(kTRUE);\r
108   rec.SetWriteAlignmentData();\r
109   rec.SetInput(filename);\r
110   //  rec.SetRunReconstruction("ALL");\r
111   rec.SetUseTrackingErrorsForAlignment("ITS");\r
112 \r
113   // In case some detectors have to be switched off...\r
114   rec.SetRunReconstruction("ITS TPC TRD TOF HMPID PHOS MUON FMD PMD T0 VZERO ZDC ACORDE");\r
115 \r
116   // Enable vertex finder - it is needed for cosmic track reco\r
117   rec.SetRunVertexFinder(kTRUE);\r
118 \r
119   // To be enabled if some equipment IDs are not set correctly by DAQ\r
120   //  rec.SetEquipmentIdMap("EquipmentIdMap.data");\r
121 \r
122   // Detector options if any\r
123   rec.SetOption("ITS","cosmics");\r
124   rec.SetOption("MUON","SAVEDIGITS");\r
125   rec.SetOption("T0","cosmic");\r
126 \r
127   // Enabled when CTP readout starts\r
128   rec.SetFillTriggerESD(kTRUE);\r
129 \r
130   // all events in one single file\r
131   rec.SetNumberOfEventsPerFile(-1);\r
132 \r
133   // switch off cleanESD\r
134   rec.SetCleanESD(kFALSE);\r
135 \r
136   //rec.SetEventRange(0,15);\r
137 \r
138   rec.SetRunQA("ITS TPC:ESD RECPOINT");\r
139   rec.SetRunGlobalQA(kTRUE);\r
140   AliLog::Flush();\r
141   rec.Run();\r
142 \r
143   //cout << "-----------------------------------------------------------------" << endl;\r
144   //cout << "-----------------------------------------------------------------" << endl;\r
145   //cout << "--------- Reconstruction Completed. Start merging QAs -----------" << endl;\r
146   //cout << "-----------------------------------------------------------------" << endl;\r
147   //cout << "-----------------------------------------------------------------" << endl;\r
148   //AliQADataMakerSteer qas;\r
149   //qas.Merge();\r
150 }\r