]>
Commit | Line | Data |
---|---|---|
dd2b6810 | 1 | #if 0 |
2 | #include "$(ALICE_ROOT)/TPC/alles.h" | |
3 | #include "AliReader.h" | |
4 | #include "AliReaderKineTree.h" | |
0317f8c1 | 5 | #include "AliReaderESDTree.h" |
dd2b6810 | 6 | #include "AliAODParticleCut.h" |
7 | #include "AliAOD.h" | |
8 | #include "AliAODPairCut.h" | |
9 | #include "TSystem.h" | |
10 | #include "TObjString.h" | |
11 | #include "TString.h" | |
12 | #include "AliPDG.h" | |
13 | #endif | |
14 | ||
15 | ||
efdb0cc9 | 16 | void WriteAOD(Option_t* datatype, Int_t first = -1,Int_t last = -1, |
17 | Option_t* processopt="TracksAndParticles", | |
dd2b6810 | 18 | char *outfile = "AOD.root") |
19 | { | |
20 | //datatype defines type of data to be read | |
21 | // Kine - analyzes Kine Tree: simulated particles | |
22 | // ESD | |
23 | // AOD | |
24 | ||
25 | // default: TracksAndParticles - process both recontructed tracks and sim. particles corresponding to them | |
26 | // Tracks - process only recontructed tracks | |
27 | // Particles - process only simulated particles | |
28 | ||
29 | //Reads data from diroctories from first to last(including) | |
30 | // For examples if first=3 and last=5 it reads from | |
31 | // ./3/ | |
32 | // ./4/ | |
33 | // ./5/ | |
34 | //if first or last is negative (or both), it reads from current directory | |
35 | // | |
36 | //these names I use when analysis is done directly from CASTOR files via RFIO | |
37 | ||
d9122a01 | 38 | Bool_t multcheck = kTRUE; |
39 | ||
dd2b6810 | 40 | const char* basedir="."; |
41 | const char* serie=""; | |
42 | const char* field = ""; | |
43 | cout<<"WriteAOD.C: datatype is "<<datatype<<" dir is basedir"<<endl; | |
44 | // Dynamically link some shared libs | |
45 | ||
46 | cout<<"WriteAOD.C: Loading ANALYSIS .....\n"; | |
47 | gSystem->Load("$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET)/libANALYSIS"); | |
48 | cout<<"WriteAOD.C: ..... Loaded\n"; | |
49 | ||
d9122a01 | 50 | Int_t PID[11]; |
56849d99 | 51 | |
d9122a01 | 52 | PID[0]=kProton; |
53 | PID[1]=kProtonBar; | |
54 | PID[2]=kKPlus; | |
55 | PID[3]=kKMinus; | |
56 | PID[4]=kPiPlus; | |
57 | PID[5]=kPiMinus; | |
58 | PID[6]=kElectron; | |
59 | PID[7]=kPositron; | |
60 | PID[8]=kMuonMinus; | |
61 | PID[9]=kMuonPlus; | |
62 | PID[10]=0;//Last must be 0!!!!!!!!!!!!!!!!!! | |
63 | ||
64 | Float_t PIDprob[11]; | |
65 | PIDprob[0] = 0.5; | |
66 | PIDprob[1] = 0.5; | |
67 | PIDprob[2] = 0.5; | |
68 | PIDprob[3] = 0.5; | |
69 | PIDprob[4] = 0.5; | |
70 | PIDprob[5] = 0.5; | |
71 | PIDprob[6] = 0.5; | |
72 | PIDprob[7] = 0.5; | |
73 | PIDprob[8] = 0.5; | |
74 | PIDprob[9] = 0.5; | |
75 | PIDprob[10] = 0.5; | |
dd2b6810 | 76 | /***********************************************************/ |
77 | ||
78 | AliReader* reader; | |
79 | Int_t kine = strcmp(datatype,"Kine"); | |
80 | Int_t ESD = strcmp(datatype,"ESD"); | |
0317f8c1 | 81 | Int_t ESDMuon = strcmp(datatype,"ESDMuon"); |
dd2b6810 | 82 | Int_t intern = strcmp(datatype,"AOD"); |
83 | ||
84 | if(!kine) | |
85 | { | |
86 | reader = new AliReaderKineTree(); | |
87 | processopt="Particles"; //this reader by definition reads only simulated particles | |
88 | multcheck = kFALSE; | |
89 | } | |
90 | else if(!ESD) | |
91 | { | |
92 | AliReaderESD* esdreader = new AliReaderESD(); | |
93 | esdreader->ReadSimulatedData(kTRUE); | |
d9122a01 | 94 | esdreader->SetNumberOfTrackPoints(5,30.);//5 points every 30 cm |
95 | esdreader->SetITSTrackPoints(kTRUE); | |
96 | esdreader->SetClusterMap(kTRUE); | |
97 | ||
dd2b6810 | 98 | reader = esdreader; |
99 | multcheck = kTRUE; | |
100 | } | |
101 | ||
102 | else if(!intern) | |
103 | { | |
56849d99 | 104 | AliReaderAOD* aodreader = new AliReaderAOD("AOD.root"); |
105 | if (strstr(processopt,"Particles")) | |
106 | aodreader->ReadSimulatedData(kTRUE); | |
107 | else | |
108 | aodreader->ReadSimulatedData(kFALSE); | |
109 | ||
110 | reader = aodreader; | |
111 | ||
dd2b6810 | 112 | multcheck = kTRUE; |
113 | } | |
0317f8c1 | 114 | |
115 | else if (!ESDMuon) | |
116 | { | |
117 | // set reader for ESD | |
118 | AliReaderESDTree* muonreader = new AliReaderESDTree("AliESDs.root"); | |
119 | // active muon ESD reader | |
120 | muonreader->SetReadMuon(kTRUE); | |
121 | // disable central barrel (default = kTRUE) | |
122 | muonreader->SetReadCentralBarrel(kFALSE); | |
123 | // disable simulated data (not implemented yet) | |
124 | muonreader->ReadSimulatedData(kFALSE); | |
125 | ||
126 | reader = muonreader; | |
127 | multcheck = kFALSE; | |
128 | } | |
dd2b6810 | 129 | else |
130 | { | |
131 | cerr<<"Option "<<datatype<<" not recognized. Exiting"<<endl; | |
132 | return; | |
133 | } | |
134 | ||
135 | TObjArray* dirs=0; | |
136 | if ( (first >= 0) && (last>=0) && ( (last-first)>=0 ) ) | |
137 | {//read from many dirs dirs | |
138 | cout<<"WriteAOD.C: ..... Setting dirs first="<<first<<" last="<<last<<"\n"; | |
139 | char buff[50]; | |
140 | dirs = new TObjArray(last-first+1); | |
141 | dirs->SetOwner(); | |
142 | for (Int_t i = first; i<=last; i++) | |
143 | { | |
144 | sprintf(buff,"%s/%s/%s/%d",basedir,field,serie,i); | |
145 | TObjString *odir= new TObjString(buff); | |
146 | dirs->Add(odir); | |
147 | } | |
148 | } | |
149 | ||
2e8abbcc | 150 | reader->SetDirs(dirs); |
d9122a01 | 151 | |
152 | AliAODParticleCut* readerpartcut= new AliAODParticleCut(); | |
153 | ||
154 | Int_t l = 0; | |
155 | while (PID[l] != 0) | |
156 | { | |
157 | cout<<"WriteAOD.C: Adding PID = "<<PID[l]<<" l = "<<l<<endl; | |
158 | readerpartcut->SetPID(PID[l]); | |
159 | AliAODParticleCut * pcut = (AliAODParticleCut*)readerpartcut->Clone(); | |
160 | AliAODPIDCut* pidcut = new AliAODPIDCut(PID[l],PIDprob[l]); | |
161 | pcut->AddBasePartCut(pidcut); | |
162 | reader->AddParticleCut(pcut);//read this particle type with this cut | |
163 | delete pcut; | |
164 | l++; | |
165 | } | |
166 | ||
167 | // readerpartcut->SetPtRange(0.0,1.2); | |
dd2b6810 | 168 | |
169 | cout<<"WriteAOD.C: P R O C S E S S I N G .....\n\n"; | |
beb1c41d | 170 | AliReaderAOD::WriteAOD(reader,outfile,"AliAODParticle",multcheck); |
dd2b6810 | 171 | cout<<"\n\nWriteAOD.C: F I N I S H E D\n"; |
172 | ||
173 | if (dirs) delete dirs; | |
174 | delete reader; | |
175 | } | |
176 |