#include "TTreeStream.h"
#include "TROOT.h"
#include "TH1.h"
#include "TH2.h"
#include "AliTrackPointArray.h"
#include "AliLog.h"
#include "AliTRDgeometry.h"
#include "AliTRDcluster.h"
#include "AliTRDseedV1.h"
#include "AliTRDtrackV1.h"
#include "AliTRDalignmentTask.h"
ClassImp(AliTRDalignmentTask)
AliTRDalignmentTask::AliTRDalignmentTask()
:AliTRDrecoTask()
,fTree(0x0)
,fArray(0x0)
{
InitFunctorList();
}
AliTRDalignmentTask::AliTRDalignmentTask(char* name)
:AliTRDrecoTask(name, "TRD alignment")
,fTree(0x0)
,fArray(0x0)
{
InitFunctorList();
DefineOutput(2, TTree::Class());
}
AliTRDalignmentTask::~AliTRDalignmentTask()
{
if (fArray) delete fArray;
}
void AliTRDalignmentTask::UserCreateOutputObjects()
{
if(!HasFunctorList()) InitFunctorList();
OpenFile(2, "RECREATE");
fTree = new TTree("spTree", "Tree with track space point arrays");
fTree->Branch("SP","AliTrackPointArray", &fArray);
}
void AliTRDalignmentTask::UserExec(Option_t *opt)
{
AliTRDrecoTask::UserExec(opt);
PostData(2, fTree);
}
TH1* AliTRDalignmentTask::PlotTrackPoints(const AliTRDtrackV1 *track)
{
if(track) fkTrack = track;
if(!fkTrack){
AliWarning("No Track defined.");
return 0x0;
}
if (fArray) delete fArray;
fArray = new AliTrackPointArray(fkTrack->GetNumberOfTracklets());
Float_t x, y, z;
AliTrackPoint p; Int_t ip = 0;
AliTRDseedV1 *tracklet = 0x0;
for(Int_t il=0; il<AliTRDgeometry::kNlayer; il++){
if(!(tracklet = fkTrack->GetTracklet(il))) continue;
if(!tracklet->IsOK()) continue;
tracklet->Fit(kTRUE);
x = tracklet->GetX0();
y = tracklet->GetYfit(0)-tracklet->GetYfit(1)*(tracklet->GetX0()-x);
z = tracklet->GetZfit(0);
p.SetXYZ(x,y,z);
fArray->AddPoint(ip++, &p);
}
fTree->Fill();
return 0x0;
}
Bool_t AliTRDalignmentTask::IsIdenticalWithOneOf(AliTrackPoint * const p, AliTrackPointArray *parray, int nmax) {
for (int i=0; i<parray->GetNPoints() && i<nmax; i++) {
AliTrackPoint pa;
parray->GetPoint(pa,i);
if (p->GetResidual(pa,0)<1e-8) return kTRUE;
}
return kFALSE;
}
AliTRDalignmentTask.cxx:1 AliTRDalignmentTask.cxx:2 AliTRDalignmentTask.cxx:3 AliTRDalignmentTask.cxx:4 AliTRDalignmentTask.cxx:5 AliTRDalignmentTask.cxx:6 AliTRDalignmentTask.cxx:7 AliTRDalignmentTask.cxx:8 AliTRDalignmentTask.cxx:9 AliTRDalignmentTask.cxx:10 AliTRDalignmentTask.cxx:11 AliTRDalignmentTask.cxx:12 AliTRDalignmentTask.cxx:13 AliTRDalignmentTask.cxx:14 AliTRDalignmentTask.cxx:15 AliTRDalignmentTask.cxx:16 AliTRDalignmentTask.cxx:17 AliTRDalignmentTask.cxx:18 AliTRDalignmentTask.cxx:19 AliTRDalignmentTask.cxx:20 AliTRDalignmentTask.cxx:21 AliTRDalignmentTask.cxx:22 AliTRDalignmentTask.cxx:23 AliTRDalignmentTask.cxx:24 AliTRDalignmentTask.cxx:25 AliTRDalignmentTask.cxx:26 AliTRDalignmentTask.cxx:27 AliTRDalignmentTask.cxx:28 AliTRDalignmentTask.cxx:29 AliTRDalignmentTask.cxx:30 AliTRDalignmentTask.cxx:31 AliTRDalignmentTask.cxx:32 AliTRDalignmentTask.cxx:33 AliTRDalignmentTask.cxx:34 AliTRDalignmentTask.cxx:35 AliTRDalignmentTask.cxx:36 AliTRDalignmentTask.cxx:37 AliTRDalignmentTask.cxx:38 AliTRDalignmentTask.cxx:39 AliTRDalignmentTask.cxx:40 AliTRDalignmentTask.cxx:41 AliTRDalignmentTask.cxx:42 AliTRDalignmentTask.cxx:43 AliTRDalignmentTask.cxx:44 AliTRDalignmentTask.cxx:45 AliTRDalignmentTask.cxx:46 AliTRDalignmentTask.cxx:47 AliTRDalignmentTask.cxx:48 AliTRDalignmentTask.cxx:49 AliTRDalignmentTask.cxx:50 AliTRDalignmentTask.cxx:51 AliTRDalignmentTask.cxx:52 AliTRDalignmentTask.cxx:53 AliTRDalignmentTask.cxx:54 AliTRDalignmentTask.cxx:55 AliTRDalignmentTask.cxx:56 AliTRDalignmentTask.cxx:57 AliTRDalignmentTask.cxx:58 AliTRDalignmentTask.cxx:59 AliTRDalignmentTask.cxx:60 AliTRDalignmentTask.cxx:61 AliTRDalignmentTask.cxx:62 AliTRDalignmentTask.cxx:63 AliTRDalignmentTask.cxx:64 AliTRDalignmentTask.cxx:65 AliTRDalignmentTask.cxx:66 AliTRDalignmentTask.cxx:67 AliTRDalignmentTask.cxx:68 AliTRDalignmentTask.cxx:69 AliTRDalignmentTask.cxx:70 AliTRDalignmentTask.cxx:71 AliTRDalignmentTask.cxx:72 AliTRDalignmentTask.cxx:73 AliTRDalignmentTask.cxx:74 AliTRDalignmentTask.cxx:75 AliTRDalignmentTask.cxx:76 AliTRDalignmentTask.cxx:77 AliTRDalignmentTask.cxx:78 AliTRDalignmentTask.cxx:79 AliTRDalignmentTask.cxx:80 AliTRDalignmentTask.cxx:81 AliTRDalignmentTask.cxx:82 AliTRDalignmentTask.cxx:83 AliTRDalignmentTask.cxx:84 AliTRDalignmentTask.cxx:85 AliTRDalignmentTask.cxx:86 AliTRDalignmentTask.cxx:87 AliTRDalignmentTask.cxx:88 AliTRDalignmentTask.cxx:89 AliTRDalignmentTask.cxx:90 AliTRDalignmentTask.cxx:91 AliTRDalignmentTask.cxx:92 AliTRDalignmentTask.cxx:93 AliTRDalignmentTask.cxx:94 AliTRDalignmentTask.cxx:95 AliTRDalignmentTask.cxx:96 AliTRDalignmentTask.cxx:97 AliTRDalignmentTask.cxx:98 AliTRDalignmentTask.cxx:99 AliTRDalignmentTask.cxx:100 AliTRDalignmentTask.cxx:101 AliTRDalignmentTask.cxx:102 AliTRDalignmentTask.cxx:103 AliTRDalignmentTask.cxx:104 AliTRDalignmentTask.cxx:105 AliTRDalignmentTask.cxx:106 AliTRDalignmentTask.cxx:107 AliTRDalignmentTask.cxx:108 AliTRDalignmentTask.cxx:109 AliTRDalignmentTask.cxx:110 AliTRDalignmentTask.cxx:111 AliTRDalignmentTask.cxx:112 AliTRDalignmentTask.cxx:113 AliTRDalignmentTask.cxx:114 AliTRDalignmentTask.cxx:115 AliTRDalignmentTask.cxx:116 AliTRDalignmentTask.cxx:117 AliTRDalignmentTask.cxx:118 AliTRDalignmentTask.cxx:119 AliTRDalignmentTask.cxx:120 AliTRDalignmentTask.cxx:121 AliTRDalignmentTask.cxx:122 AliTRDalignmentTask.cxx:123 AliTRDalignmentTask.cxx:124 AliTRDalignmentTask.cxx:125 AliTRDalignmentTask.cxx:126 AliTRDalignmentTask.cxx:127 AliTRDalignmentTask.cxx:128 AliTRDalignmentTask.cxx:129 AliTRDalignmentTask.cxx:130 AliTRDalignmentTask.cxx:131 AliTRDalignmentTask.cxx:132 AliTRDalignmentTask.cxx:133 AliTRDalignmentTask.cxx:134 AliTRDalignmentTask.cxx:135 AliTRDalignmentTask.cxx:136 AliTRDalignmentTask.cxx:137 AliTRDalignmentTask.cxx:138 AliTRDalignmentTask.cxx:139 AliTRDalignmentTask.cxx:140 AliTRDalignmentTask.cxx:141 AliTRDalignmentTask.cxx:142 AliTRDalignmentTask.cxx:143 AliTRDalignmentTask.cxx:144 AliTRDalignmentTask.cxx:145 AliTRDalignmentTask.cxx:146 AliTRDalignmentTask.cxx:147 AliTRDalignmentTask.cxx:148 AliTRDalignmentTask.cxx:149 AliTRDalignmentTask.cxx:150 AliTRDalignmentTask.cxx:151 AliTRDalignmentTask.cxx:152