#include <TObjArray.h>
#include <TH1F.h>
#include <TTreeStream.h>
#include "AliESDtrack.h"
#include "AliExternalTrackParam.h"
#include "AliTRDseedV1.h"
#include "AliTRDtrackV1.h"
#include "AliTRDtrackerV1.h"
#include "AliTrackPointArray.h"
#include "AliTRDmultiplicity.h"
#include "AliTRDgeometry.h"
#include "info/AliTRDtrackInfo.h"
ClassImp(AliTRDmultiplicity)
AliTRDmultiplicity::AliTRDmultiplicity()
:AliTRDrecoTask()
,fEventCounter(0)
{
}
AliTRDmultiplicity::AliTRDmultiplicity(char* name)
:AliTRDrecoTask(name, "Barrel Tracking Multiplicity")
,fEventCounter(0)
{
}
AliTRDmultiplicity::~AliTRDmultiplicity()
{
}
void AliTRDmultiplicity::UserCreateOutputObjects()
{
TH1 *h = 0x0;
fContainer = new TObjArray();
for(Int_t is=0; is<AliTRDgeometry::kNsector; is++){
fContainer->Add(h = new TH1F(Form("h_sector_%i", is), " ", 100,-10,10));
}
}
void AliTRDmultiplicity::UserExec(Option_t *)
{
ULong_t status;
AliTRDtrackInfo *track = 0x0;
AliExternalTrackParam *esd = 0x0;
AliTRDtrackV1 *trackTRD = 0x0;
Double_t x_anode[AliTRDgeometry::kNlayer] = {300.2, 312.8, 325.4, 338.0, 350.6, 363.2};
Int_t standAlone=1;
fEventCounter++;
for(Int_t itrk=0; itrk<fTracks->GetEntriesFast(); itrk++){
track = (AliTRDtrackInfo*)fTracks->UncheckedAt(itrk);
if(!track->HasESDtrack()) continue;
status = track->GetStatus();
AliTrackPoint points[6];
Float_t xyz[3];
memset(xyz, 0, sizeof(Float_t) * 3);
Float_t trackletX[6];
Float_t trackletY[6];
Float_t trackletZ[6];
for(Int_t a=0;a<6;a++)
{
xyz[0] = x_anode[a];
points[a].SetXYZ(xyz);
trackletX[a]=-1000;
trackletY[a]=-1000;
trackletZ[a]=-1000;
}
Int_t detTracklet=600;
if(((status&AliESDtrack::kTRDout)>0) && !((status&AliESDtrack::kTRDin)>0))
{
trackTRD = track->GetTrack();
if(trackTRD)
{
AliTRDseedV1 *tracklet = 0x0;
Int_t counterTracklet=0;
for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++)
{
tracklet = trackTRD->GetTracklet(itl);
if(tracklet)
{
if(tracklet->IsOK())
{
counterTracklet++;
detTracklet=tracklet->GetDetector();
trackletX[itl]=tracklet->GetX0();
trackletY[itl]=tracklet->GetYfit(0);
trackletZ[itl]=tracklet->GetZfit(0);
}
}
}
if(counterTracklet==AliTRDgeometry::kNlayer) AliTRDtrackerV1::FitRiemanTilt(const_cast<AliTRDtrackV1 *>(trackTRD), 0x0, kTRUE, counterTracklet, points);
else continue;
if(DebugLevel()>=1){
for(Int_t il = 0; il < AliTRDgeometry::kNlayer; il++){
Double_t pointX=points[il].GetX();
Double_t pointY=points[il].GetY();
Double_t pointZ=points[il].GetZ();
(*DebugStream()) << "TrackletsinTRD"
<< "standalone=" << standAlone
<< "eventcounter=" << fEventCounter
<< "layer=" << il
<< "dettracklet=" << detTracklet
<< "xtracklet=" << trackletX[il]
<< "xtrack=" << pointX
<< "ytracklet=" << trackletY[il]
<< "ytrack=" << pointY
<< "ztracklet=" << trackletZ[il]
<< "ztrack=" << pointZ
<< "num_tracklets=" << counterTracklet
<< "\n";
}
}
}
}
if((track->GetTPCncls())<40) continue;
if(!(status&AliESDtrack::kTPCout)) continue;
standAlone=0;
esd = track->GetESDinfo()->GetOuterParam();
Double_t alpha;
alpha=-100;
Int_t fSector=100;
if(esd){
alpha=esd->GetAlpha();
fSector = (Int_t)((alpha+ TMath::Pi())/(20*TMath::Pi()/180));
if((fSector>-1) && (fSector<18))
{
}
else
{
continue;
}
}
if(fSector==0||fSector==8||fSector==9||fSector==17)
{
trackTRD = track->GetTrack();
if(!trackTRD) continue;
AliTRDseedV1 *tracklet = 0x0;
Int_t counterTracklet=0;
for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++){
tracklet = trackTRD->GetTracklet(itl);
if(!tracklet || !tracklet->IsOK()) continue;
counterTracklet++;
detTracklet=tracklet->GetDetector();
trackletX[itl]=tracklet->GetX0();
trackletY[itl]=tracklet->GetYfit(0);
trackletZ[itl]=tracklet->GetZfit(0);
}
if(counterTracklet==AliTRDgeometry::kNlayer)
{
AliTRDtrackerV1::FitRiemanTilt(const_cast<AliTRDtrackV1 *>(trackTRD), 0x0, kTRUE, counterTracklet, points);
}
else continue;
if(DebugLevel()>=1){
for(Int_t il = 0; il < AliTRDgeometry::kNlayer; il++){
Double_t pointX=points[il].GetX();
Double_t pointY=points[il].GetY();
Double_t pointZ=points[il].GetZ();
(*DebugStream()) << "TrackletsinTRD"
<< "standalone=" << standAlone
<< "eventcounter=" << fEventCounter
<< "layer=" << il
<< "dettracklet=" << detTracklet
<< "xtracklet=" << trackletX[il]
<< "xtrack=" << pointX
<< "ytracklet=" << trackletY[il]
<< "ytrack=" << pointY
<< "ztracklet=" << trackletZ[il]
<< "ztrack=" << pointZ
<< "num_tracklets=" << counterTracklet
<< "\n";
}
}
}
}
PostData(1, fContainer);
}
AliTRDmultiplicity.cxx:10 AliTRDmultiplicity.cxx:11 AliTRDmultiplicity.cxx:12 AliTRDmultiplicity.cxx:13 AliTRDmultiplicity.cxx:14 AliTRDmultiplicity.cxx:15 AliTRDmultiplicity.cxx:16 AliTRDmultiplicity.cxx:17 AliTRDmultiplicity.cxx:18 AliTRDmultiplicity.cxx:19 AliTRDmultiplicity.cxx:20 AliTRDmultiplicity.cxx:21 AliTRDmultiplicity.cxx:22 AliTRDmultiplicity.cxx:23 AliTRDmultiplicity.cxx:24 AliTRDmultiplicity.cxx:25 AliTRDmultiplicity.cxx:26 AliTRDmultiplicity.cxx:27 AliTRDmultiplicity.cxx:28 AliTRDmultiplicity.cxx:29 AliTRDmultiplicity.cxx:30 AliTRDmultiplicity.cxx:31 AliTRDmultiplicity.cxx:32 AliTRDmultiplicity.cxx:33 AliTRDmultiplicity.cxx:34 AliTRDmultiplicity.cxx:35 AliTRDmultiplicity.cxx:36 AliTRDmultiplicity.cxx:37 AliTRDmultiplicity.cxx:38 AliTRDmultiplicity.cxx:39 AliTRDmultiplicity.cxx:40 AliTRDmultiplicity.cxx:41 AliTRDmultiplicity.cxx:42 AliTRDmultiplicity.cxx:43 AliTRDmultiplicity.cxx:44 AliTRDmultiplicity.cxx:45 AliTRDmultiplicity.cxx:46 AliTRDmultiplicity.cxx:47 AliTRDmultiplicity.cxx:48 AliTRDmultiplicity.cxx:49 AliTRDmultiplicity.cxx:50 AliTRDmultiplicity.cxx:51 AliTRDmultiplicity.cxx:52 AliTRDmultiplicity.cxx:53 AliTRDmultiplicity.cxx:54 AliTRDmultiplicity.cxx:55 AliTRDmultiplicity.cxx:56 AliTRDmultiplicity.cxx:57 AliTRDmultiplicity.cxx:58 AliTRDmultiplicity.cxx:59 AliTRDmultiplicity.cxx:60 AliTRDmultiplicity.cxx:61 AliTRDmultiplicity.cxx:62 AliTRDmultiplicity.cxx:63 AliTRDmultiplicity.cxx:64 AliTRDmultiplicity.cxx:65 AliTRDmultiplicity.cxx:66 AliTRDmultiplicity.cxx:67 AliTRDmultiplicity.cxx:68 AliTRDmultiplicity.cxx:69 AliTRDmultiplicity.cxx:70 AliTRDmultiplicity.cxx:71 AliTRDmultiplicity.cxx:72 AliTRDmultiplicity.cxx:73 AliTRDmultiplicity.cxx:74 AliTRDmultiplicity.cxx:75 AliTRDmultiplicity.cxx:76 AliTRDmultiplicity.cxx:77 AliTRDmultiplicity.cxx:78 AliTRDmultiplicity.cxx:79 AliTRDmultiplicity.cxx:80 AliTRDmultiplicity.cxx:81 AliTRDmultiplicity.cxx:82 AliTRDmultiplicity.cxx:83 AliTRDmultiplicity.cxx:84 AliTRDmultiplicity.cxx:85 AliTRDmultiplicity.cxx:86 AliTRDmultiplicity.cxx:87 AliTRDmultiplicity.cxx:88 AliTRDmultiplicity.cxx:89 AliTRDmultiplicity.cxx:90 AliTRDmultiplicity.cxx:91 AliTRDmultiplicity.cxx:92 AliTRDmultiplicity.cxx:93 AliTRDmultiplicity.cxx:94 AliTRDmultiplicity.cxx:95 AliTRDmultiplicity.cxx:96 AliTRDmultiplicity.cxx:97 AliTRDmultiplicity.cxx:98 AliTRDmultiplicity.cxx:99 AliTRDmultiplicity.cxx:100 AliTRDmultiplicity.cxx:101 AliTRDmultiplicity.cxx:102 AliTRDmultiplicity.cxx:103 AliTRDmultiplicity.cxx:104 AliTRDmultiplicity.cxx:105 AliTRDmultiplicity.cxx:106 AliTRDmultiplicity.cxx:107 AliTRDmultiplicity.cxx:108 AliTRDmultiplicity.cxx:109 AliTRDmultiplicity.cxx:110 AliTRDmultiplicity.cxx:111 AliTRDmultiplicity.cxx:112 AliTRDmultiplicity.cxx:113 AliTRDmultiplicity.cxx:114 AliTRDmultiplicity.cxx:115 AliTRDmultiplicity.cxx:116 AliTRDmultiplicity.cxx:117 AliTRDmultiplicity.cxx:118 AliTRDmultiplicity.cxx:119 AliTRDmultiplicity.cxx:120 AliTRDmultiplicity.cxx:121 AliTRDmultiplicity.cxx:122 AliTRDmultiplicity.cxx:123 AliTRDmultiplicity.cxx:124 AliTRDmultiplicity.cxx:125 AliTRDmultiplicity.cxx:126 AliTRDmultiplicity.cxx:127 AliTRDmultiplicity.cxx:128 AliTRDmultiplicity.cxx:129 AliTRDmultiplicity.cxx:130 AliTRDmultiplicity.cxx:131 AliTRDmultiplicity.cxx:132 AliTRDmultiplicity.cxx:133 AliTRDmultiplicity.cxx:134 AliTRDmultiplicity.cxx:135 AliTRDmultiplicity.cxx:136 AliTRDmultiplicity.cxx:137 AliTRDmultiplicity.cxx:138 AliTRDmultiplicity.cxx:139 AliTRDmultiplicity.cxx:140 AliTRDmultiplicity.cxx:141 AliTRDmultiplicity.cxx:142 AliTRDmultiplicity.cxx:143 AliTRDmultiplicity.cxx:144 AliTRDmultiplicity.cxx:145 AliTRDmultiplicity.cxx:146 AliTRDmultiplicity.cxx:147 AliTRDmultiplicity.cxx:148 AliTRDmultiplicity.cxx:149 AliTRDmultiplicity.cxx:150 AliTRDmultiplicity.cxx:151 AliTRDmultiplicity.cxx:152 AliTRDmultiplicity.cxx:153 AliTRDmultiplicity.cxx:154 AliTRDmultiplicity.cxx:155 AliTRDmultiplicity.cxx:156 AliTRDmultiplicity.cxx:157 AliTRDmultiplicity.cxx:158 AliTRDmultiplicity.cxx:159 AliTRDmultiplicity.cxx:160 AliTRDmultiplicity.cxx:161 AliTRDmultiplicity.cxx:162 AliTRDmultiplicity.cxx:163 AliTRDmultiplicity.cxx:164 AliTRDmultiplicity.cxx:165 AliTRDmultiplicity.cxx:166 AliTRDmultiplicity.cxx:167 AliTRDmultiplicity.cxx:168 AliTRDmultiplicity.cxx:169 AliTRDmultiplicity.cxx:170 AliTRDmultiplicity.cxx:171 AliTRDmultiplicity.cxx:172 AliTRDmultiplicity.cxx:173 AliTRDmultiplicity.cxx:174 AliTRDmultiplicity.cxx:175 AliTRDmultiplicity.cxx:176 AliTRDmultiplicity.cxx:177 AliTRDmultiplicity.cxx:178 AliTRDmultiplicity.cxx:179 AliTRDmultiplicity.cxx:180 AliTRDmultiplicity.cxx:181 AliTRDmultiplicity.cxx:182 AliTRDmultiplicity.cxx:183 AliTRDmultiplicity.cxx:184 AliTRDmultiplicity.cxx:185 AliTRDmultiplicity.cxx:186 AliTRDmultiplicity.cxx:187 AliTRDmultiplicity.cxx:188 AliTRDmultiplicity.cxx:189 AliTRDmultiplicity.cxx:190 AliTRDmultiplicity.cxx:191 AliTRDmultiplicity.cxx:192 AliTRDmultiplicity.cxx:193 AliTRDmultiplicity.cxx:194 AliTRDmultiplicity.cxx:195 AliTRDmultiplicity.cxx:196 AliTRDmultiplicity.cxx:197 AliTRDmultiplicity.cxx:198 AliTRDmultiplicity.cxx:199 AliTRDmultiplicity.cxx:200 AliTRDmultiplicity.cxx:201 AliTRDmultiplicity.cxx:202 AliTRDmultiplicity.cxx:203 AliTRDmultiplicity.cxx:204 AliTRDmultiplicity.cxx:205 AliTRDmultiplicity.cxx:206 AliTRDmultiplicity.cxx:207 AliTRDmultiplicity.cxx:208 AliTRDmultiplicity.cxx:209 AliTRDmultiplicity.cxx:210 AliTRDmultiplicity.cxx:211 AliTRDmultiplicity.cxx:212 AliTRDmultiplicity.cxx:213 AliTRDmultiplicity.cxx:214 AliTRDmultiplicity.cxx:215 AliTRDmultiplicity.cxx:216 AliTRDmultiplicity.cxx:217 AliTRDmultiplicity.cxx:218 AliTRDmultiplicity.cxx:219 AliTRDmultiplicity.cxx:220 AliTRDmultiplicity.cxx:221 AliTRDmultiplicity.cxx:222 AliTRDmultiplicity.cxx:223 AliTRDmultiplicity.cxx:224 AliTRDmultiplicity.cxx:225 AliTRDmultiplicity.cxx:226 AliTRDmultiplicity.cxx:227 AliTRDmultiplicity.cxx:228 AliTRDmultiplicity.cxx:229 AliTRDmultiplicity.cxx:230 AliTRDmultiplicity.cxx:231 AliTRDmultiplicity.cxx:232 AliTRDmultiplicity.cxx:233 AliTRDmultiplicity.cxx:234 AliTRDmultiplicity.cxx:235 AliTRDmultiplicity.cxx:236 AliTRDmultiplicity.cxx:237 AliTRDmultiplicity.cxx:238 AliTRDmultiplicity.cxx:239 AliTRDmultiplicity.cxx:240 AliTRDmultiplicity.cxx:241 AliTRDmultiplicity.cxx:242 AliTRDmultiplicity.cxx:243 AliTRDmultiplicity.cxx:244 AliTRDmultiplicity.cxx:245 AliTRDmultiplicity.cxx:246 AliTRDmultiplicity.cxx:247 AliTRDmultiplicity.cxx:248 AliTRDmultiplicity.cxx:249 AliTRDmultiplicity.cxx:250 AliTRDmultiplicity.cxx:251 AliTRDmultiplicity.cxx:252 AliTRDmultiplicity.cxx:253 AliTRDmultiplicity.cxx:254 AliTRDmultiplicity.cxx:255 AliTRDmultiplicity.cxx:256 AliTRDmultiplicity.cxx:257 AliTRDmultiplicity.cxx:258 AliTRDmultiplicity.cxx:259 AliTRDmultiplicity.cxx:260 AliTRDmultiplicity.cxx:261 AliTRDmultiplicity.cxx:262 AliTRDmultiplicity.cxx:263 AliTRDmultiplicity.cxx:264 AliTRDmultiplicity.cxx:265 AliTRDmultiplicity.cxx:266 AliTRDmultiplicity.cxx:267 AliTRDmultiplicity.cxx:268 AliTRDmultiplicity.cxx:269 AliTRDmultiplicity.cxx:270 AliTRDmultiplicity.cxx:271 AliTRDmultiplicity.cxx:272 AliTRDmultiplicity.cxx:273 AliTRDmultiplicity.cxx:274 AliTRDmultiplicity.cxx:275 AliTRDmultiplicity.cxx:276 AliTRDmultiplicity.cxx:277 AliTRDmultiplicity.cxx:278 AliTRDmultiplicity.cxx:279 AliTRDmultiplicity.cxx:280 AliTRDmultiplicity.cxx:281 AliTRDmultiplicity.cxx:282 AliTRDmultiplicity.cxx:283 AliTRDmultiplicity.cxx:284 AliTRDmultiplicity.cxx:285 AliTRDmultiplicity.cxx:286 AliTRDmultiplicity.cxx:287 AliTRDmultiplicity.cxx:288 AliTRDmultiplicity.cxx:289 AliTRDmultiplicity.cxx:290 AliTRDmultiplicity.cxx:291 AliTRDmultiplicity.cxx:292 AliTRDmultiplicity.cxx:293 AliTRDmultiplicity.cxx:294 AliTRDmultiplicity.cxx:295