#include "Riostream.h"
#include "AliITSReconstructor.h"
#include "AliRun.h"
#include "AliRawReader.h"
#include "AliESDEvent.h"
#include "AliESDpid.h"
#include "AliITSgeom.h"
#include "AliITSLoader.h"
#include "AliITStrackerMI.h"
#include "AliITStrackerV2.h"
#include "AliITStrackerSA.h"
#include "AliITSVertexerFast.h"
#include "AliITSVertexerFixed.h"
#include "AliITSVertexer3D.h"
#include "AliITSVertexerZ.h"
#include "AliITSVertexerZD.h"
#include "AliITSVertexerCosmics.h"
#include "AliITSInitGeometry.h"
#include "AliITSTrackleterSPDEff.h"
#include "AliITSMultReconstructor.h"
ClassImp(AliITSReconstructor)
AliITSReconstructor::AliITSReconstructor() : AliReconstructor(),
fDetTypeRec(0)
{
}
AliITSReconstructor::~AliITSReconstructor(){
if(fDetTypeRec) delete fDetTypeRec;
}
void AliITSReconstructor::GetPidSettings(AliESDpid *ESDpid) {
Int_t pidOpt = GetRecoParam()->GetPID();
if(pidOpt==1){
AliDebug(1,"ITS LandauFitPID option has been selected\n");
ESDpid->SetITSPIDmethod(AliESDpid::kITSLikelihood);
}
else{
AliDebug(1,"ITS default PID\n");
ESDpid->SetITSPIDmethod(AliESDpid::kITSTruncMean);
}
}
void AliITSReconstructor::Init() {
AliITSInitGeometry initgeom;
AliITSgeom *geom = initgeom.CreateAliITSgeom();
AliInfo(Form("Geometry name: %s",(initgeom.GetGeometryName()).Data()));
fDetTypeRec = new AliITSDetTypeRec();
fDetTypeRec->SetITSgeom(geom);
fDetTypeRec->SetDefaults();
return;
}
void AliITSReconstructor::Reconstruct(TTree *digitsTree, TTree *clustersTree) const
{
TString recopt = GetRecoParam()->GetOptReco();
fDetTypeRec->SetTreeAddressD(digitsTree);
fDetTypeRec->MakeBranch(clustersTree,"R");
fDetTypeRec->SetTreeAddressR(clustersTree);
fDetTypeRec->DigitsToRecPoints(digitsTree,clustersTree,0,recopt.Data(),1);
}
void AliITSReconstructor::Reconstruct(AliRawReader* rawReader, TTree *clustersTree) const
{
TString recopt = GetRecoParam()->GetOptReco();
fDetTypeRec->SetDefaultClusterFindersV2(kTRUE,kTRUE);
fDetTypeRec->DigitsToRecPoints(rawReader,clustersTree,recopt.Data());
}
AliTrackleter* AliITSReconstructor::CreateMultFinder() const
{
AliITSMultReconstructor* multReco = new AliITSMultReconstructor();
multReco->SetHistOn(kFALSE);
multReco->SetDetTypeRec(fDetTypeRec);
return multReco;
}
AliTracker* AliITSReconstructor::CreateTrackleter() const
{
if(!GetRecoParam()->GetComputePlaneEff() || !GetRecoParam()->GetUseTrackletsPlaneEff()) return NULL;
AliTracker* trackleter;
trackleter = new AliITSTrackleterSPDEff();
AliITSTrackleterSPDEff *spdtrackleter=(AliITSTrackleterSPDEff*)trackleter;
if(GetRecoParam()->GetBkgTrackletsPlaneEff()) spdtrackleter->SetReflectClusterAroundZAxisForLayer(1,kTRUE);
if(GetRecoParam()->GetMCTrackletsPlaneEff()) spdtrackleter->SetMC();
spdtrackleter->SetHistOn();
spdtrackleter->SetPhiWindowL2(GetRecoParam()->GetTrackleterPhiWindowL2());
spdtrackleter->SetZetaWindowL2(GetRecoParam()->GetTrackleterZetaWindowL2());
spdtrackleter->SetPhiWindowL1(GetRecoParam()->GetTrackleterPhiWindowL1());
spdtrackleter->SetZetaWindowL1(GetRecoParam()->GetTrackleterZetaWindowL1());
if(GetRecoParam()->GetUpdateOncePerEventPlaneEff()) spdtrackleter->SetUpdateOncePerEventPlaneEff();
spdtrackleter->SetMinContVtx(GetRecoParam()->GetMinContVtxPlaneEff());
return trackleter;
}
AliTracker* AliITSReconstructor::CreateTracker() const
{
Int_t trackerOpt = GetRecoParam()->GetTracker();
AliTracker* tracker;
if (trackerOpt==1) {
tracker = new AliITStrackerMI(0);
AliITStrackerMI *mit=(AliITStrackerMI*)tracker;
mit->SetDetTypeRec(fDetTypeRec);
}
else if (trackerOpt==2) {
tracker = new AliITStrackerV2(0);
}
else {
tracker = new AliITStrackerSA(0);
AliITStrackerSA *sat=(AliITStrackerSA*)tracker;
sat->SetDetTypeRec(fDetTypeRec);
if(GetRecoParam()->GetTrackerSAOnly()) sat->SetSAFlag(kTRUE);
if(sat->GetSAFlag())AliDebug(1,"Tracking Performed in ITS only\n");
if(GetRecoParam()->GetInwardFindingSA()){
sat->SetInwardFinding();
sat->SetInnerStartLayer(GetRecoParam()->GetInnerStartLayerSA());
}else{
sat->SetOutwardFinding();
sat->SetOuterStartLayer(GetRecoParam()->GetOuterStartLayerSA());
}
sat->SetMinNPoints(GetRecoParam()->GetMinNPointsSA());
}
return tracker;
}
AliVertexer* AliITSReconstructor::CreateVertexer() const
{
AliITSVertexer *vptr = NULL;
Int_t vtxOpt = GetRecoParam()->GetVertexer();
if(vtxOpt==3){
AliFatal("Option AliITSVertexerIons is no longer supported");
return vptr;
}
else if(vtxOpt==4){
Double_t smear[3]={GetRecoParam()->GetVertexerFastSmearX(),
GetRecoParam()->GetVertexerFastSmearY(),
GetRecoParam()->GetVertexerFastSmearZ()};
AliDebug(1,"AliITSVertexerFast has been selected");
vptr = new AliITSVertexerFast(smear);
}
else if(vtxOpt==1){
AliDebug(1,"AliITSVertexerZ has been selected");
AliITSVertexerZ* vtxrz = new AliITSVertexerZ();
Int_t pileupAlgo=GetRecoParam()->GetSPDVertexerPileupAlgo();
if(pileupAlgo==3) vtxrz->SetSearchForPileup(kFALSE);
vptr = vtxrz;
}
else if(vtxOpt==2){
AliDebug(1,"AliITSVertexerCosmics has been selected");
vptr = new AliITSVertexerCosmics();
}
else if(vtxOpt==5){
AliDebug(1,"Vertex is fixed in the position of the TDI\n");
vptr = new AliITSVertexerFixed("TDI");
}
else if(vtxOpt==6){
AliDebug(1,"Vertex is fixed in the position of the TED\n");
vptr = new AliITSVertexerFixed("TED");
}
else if(vtxOpt==7){
AliDebug(1,"VertexerZD: reconstruction of the Z coordinate with SDD \n");
AliITSVertexerZD*vtxrz = new AliITSVertexerZD();
vtxrz->SetSearchForPileup(kFALSE);
vptr = vtxrz;
}
else {
AliITSVertexer3D* vtxr =
new AliITSVertexer3D(GetRecoParam()->GetVertexer3DWideFiducialRegionZ());
Float_t dzw=GetRecoParam()->GetVertexer3DWideFiducialRegionZ();
Float_t drw=GetRecoParam()->GetVertexer3DWideFiducialRegionR();
vtxr->SetWideFiducialRegion(dzw,drw);
Float_t dzn=GetRecoParam()->GetVertexer3DNarrowFiducialRegionZ();
Float_t drn=GetRecoParam()->GetVertexer3DNarrowFiducialRegionR();
vtxr->SetNarrowFiducialRegion(dzn,drn);
Float_t dphil=GetRecoParam()->GetVertexer3DLooseDeltaPhiCut();
Float_t dphit=GetRecoParam()->GetVertexer3DTightDeltaPhiCut();
vtxr->SetDeltaPhiCuts(dphil,dphit);
Float_t dcacut=GetRecoParam()->GetVertexer3DDCACut();
vtxr->SetDCACut(dcacut);
Int_t pileupAlgo=GetRecoParam()->GetSPDVertexerPileupAlgo();
vtxr->SetPileupAlgo(pileupAlgo);
UChar_t highmultAlgo=GetRecoParam()->GetSPDVertexerHighMultAlgo();
vtxr->SetHighMultAlgo(highmultAlgo);
AliDebug(1,Form("AliITSVertexer3D with pileup algo %d has been selected",pileupAlgo));
vtxr->SetFallBack(500);
vptr = vtxr;
}
vptr->SetDetTypeRec(fDetTypeRec);
return vptr;
}
void AliITSReconstructor::FillESD(TTree * , TTree * ,
AliESDEvent* ) const
{
}
AliITSReconstructor.cxx:1 AliITSReconstructor.cxx:2 AliITSReconstructor.cxx:3 AliITSReconstructor.cxx:4 AliITSReconstructor.cxx:5 AliITSReconstructor.cxx:6 AliITSReconstructor.cxx:7 AliITSReconstructor.cxx:8 AliITSReconstructor.cxx:9 AliITSReconstructor.cxx:10 AliITSReconstructor.cxx:11 AliITSReconstructor.cxx:12 AliITSReconstructor.cxx:13 AliITSReconstructor.cxx:14 AliITSReconstructor.cxx:15 AliITSReconstructor.cxx:16 AliITSReconstructor.cxx:17 AliITSReconstructor.cxx:18 AliITSReconstructor.cxx:19 AliITSReconstructor.cxx:20 AliITSReconstructor.cxx:21 AliITSReconstructor.cxx:22 AliITSReconstructor.cxx:23 AliITSReconstructor.cxx:24 AliITSReconstructor.cxx:25 AliITSReconstructor.cxx:26 AliITSReconstructor.cxx:27 AliITSReconstructor.cxx:28 AliITSReconstructor.cxx:29 AliITSReconstructor.cxx:30 AliITSReconstructor.cxx:31 AliITSReconstructor.cxx:32 AliITSReconstructor.cxx:33 AliITSReconstructor.cxx:34 AliITSReconstructor.cxx:35 AliITSReconstructor.cxx:36 AliITSReconstructor.cxx:37 AliITSReconstructor.cxx:38 AliITSReconstructor.cxx:39 AliITSReconstructor.cxx:40 AliITSReconstructor.cxx:41 AliITSReconstructor.cxx:42 AliITSReconstructor.cxx:43 AliITSReconstructor.cxx:44 AliITSReconstructor.cxx:45 AliITSReconstructor.cxx:46 AliITSReconstructor.cxx:47 AliITSReconstructor.cxx:48 AliITSReconstructor.cxx:49 AliITSReconstructor.cxx:50 AliITSReconstructor.cxx:51 AliITSReconstructor.cxx:52 AliITSReconstructor.cxx:53 AliITSReconstructor.cxx:54 AliITSReconstructor.cxx:55 AliITSReconstructor.cxx:56 AliITSReconstructor.cxx:57 AliITSReconstructor.cxx:58 AliITSReconstructor.cxx:59 AliITSReconstructor.cxx:60 AliITSReconstructor.cxx:61 AliITSReconstructor.cxx:62 AliITSReconstructor.cxx:63 AliITSReconstructor.cxx:64 AliITSReconstructor.cxx:65 AliITSReconstructor.cxx:66 AliITSReconstructor.cxx:67 AliITSReconstructor.cxx:68 AliITSReconstructor.cxx:69 AliITSReconstructor.cxx:70 AliITSReconstructor.cxx:71 AliITSReconstructor.cxx:72 AliITSReconstructor.cxx:73 AliITSReconstructor.cxx:74 AliITSReconstructor.cxx:75 AliITSReconstructor.cxx:76 AliITSReconstructor.cxx:77 AliITSReconstructor.cxx:78 AliITSReconstructor.cxx:79 AliITSReconstructor.cxx:80 AliITSReconstructor.cxx:81 AliITSReconstructor.cxx:82 AliITSReconstructor.cxx:83 AliITSReconstructor.cxx:84 AliITSReconstructor.cxx:85 AliITSReconstructor.cxx:86 AliITSReconstructor.cxx:87 AliITSReconstructor.cxx:88 AliITSReconstructor.cxx:89 AliITSReconstructor.cxx:90 AliITSReconstructor.cxx:91 AliITSReconstructor.cxx:92 AliITSReconstructor.cxx:93 AliITSReconstructor.cxx:94 AliITSReconstructor.cxx:95 AliITSReconstructor.cxx:96 AliITSReconstructor.cxx:97 AliITSReconstructor.cxx:98 AliITSReconstructor.cxx:99 AliITSReconstructor.cxx:100 AliITSReconstructor.cxx:101 AliITSReconstructor.cxx:102 AliITSReconstructor.cxx:103 AliITSReconstructor.cxx:104 AliITSReconstructor.cxx:105 AliITSReconstructor.cxx:106 AliITSReconstructor.cxx:107 AliITSReconstructor.cxx:108 AliITSReconstructor.cxx:109 AliITSReconstructor.cxx:110 AliITSReconstructor.cxx:111 AliITSReconstructor.cxx:112 AliITSReconstructor.cxx:113 AliITSReconstructor.cxx:114 AliITSReconstructor.cxx:115 AliITSReconstructor.cxx:116 AliITSReconstructor.cxx:117 AliITSReconstructor.cxx:118 AliITSReconstructor.cxx:119 AliITSReconstructor.cxx:120 AliITSReconstructor.cxx:121 AliITSReconstructor.cxx:122 AliITSReconstructor.cxx:123 AliITSReconstructor.cxx:124 AliITSReconstructor.cxx:125 AliITSReconstructor.cxx:126 AliITSReconstructor.cxx:127 AliITSReconstructor.cxx:128 AliITSReconstructor.cxx:129 AliITSReconstructor.cxx:130 AliITSReconstructor.cxx:131 AliITSReconstructor.cxx:132 AliITSReconstructor.cxx:133 AliITSReconstructor.cxx:134 AliITSReconstructor.cxx:135 AliITSReconstructor.cxx:136 AliITSReconstructor.cxx:137 AliITSReconstructor.cxx:138 AliITSReconstructor.cxx:139 AliITSReconstructor.cxx:140 AliITSReconstructor.cxx:141 AliITSReconstructor.cxx:142 AliITSReconstructor.cxx:143 AliITSReconstructor.cxx:144 AliITSReconstructor.cxx:145 AliITSReconstructor.cxx:146 AliITSReconstructor.cxx:147 AliITSReconstructor.cxx:148 AliITSReconstructor.cxx:149 AliITSReconstructor.cxx:150 AliITSReconstructor.cxx:151 AliITSReconstructor.cxx:152 AliITSReconstructor.cxx:153 AliITSReconstructor.cxx:154 AliITSReconstructor.cxx:155 AliITSReconstructor.cxx:156 AliITSReconstructor.cxx:157 AliITSReconstructor.cxx:158 AliITSReconstructor.cxx:159 AliITSReconstructor.cxx:160 AliITSReconstructor.cxx:161 AliITSReconstructor.cxx:162 AliITSReconstructor.cxx:163 AliITSReconstructor.cxx:164 AliITSReconstructor.cxx:165 AliITSReconstructor.cxx:166 AliITSReconstructor.cxx:167 AliITSReconstructor.cxx:168 AliITSReconstructor.cxx:169 AliITSReconstructor.cxx:170 AliITSReconstructor.cxx:171 AliITSReconstructor.cxx:172 AliITSReconstructor.cxx:173 AliITSReconstructor.cxx:174 AliITSReconstructor.cxx:175 AliITSReconstructor.cxx:176 AliITSReconstructor.cxx:177 AliITSReconstructor.cxx:178 AliITSReconstructor.cxx:179 AliITSReconstructor.cxx:180 AliITSReconstructor.cxx:181 AliITSReconstructor.cxx:182 AliITSReconstructor.cxx:183 AliITSReconstructor.cxx:184 AliITSReconstructor.cxx:185 AliITSReconstructor.cxx:186 AliITSReconstructor.cxx:187 AliITSReconstructor.cxx:188 AliITSReconstructor.cxx:189 AliITSReconstructor.cxx:190 AliITSReconstructor.cxx:191 AliITSReconstructor.cxx:192 AliITSReconstructor.cxx:193 AliITSReconstructor.cxx:194 AliITSReconstructor.cxx:195 AliITSReconstructor.cxx:196 AliITSReconstructor.cxx:197 AliITSReconstructor.cxx:198 AliITSReconstructor.cxx:199 AliITSReconstructor.cxx:200 AliITSReconstructor.cxx:201 AliITSReconstructor.cxx:202 AliITSReconstructor.cxx:203 AliITSReconstructor.cxx:204 AliITSReconstructor.cxx:205 AliITSReconstructor.cxx:206 AliITSReconstructor.cxx:207 AliITSReconstructor.cxx:208 AliITSReconstructor.cxx:209 AliITSReconstructor.cxx:210 AliITSReconstructor.cxx:211 AliITSReconstructor.cxx:212 AliITSReconstructor.cxx:213 AliITSReconstructor.cxx:214 AliITSReconstructor.cxx:215 AliITSReconstructor.cxx:216 AliITSReconstructor.cxx:217 AliITSReconstructor.cxx:218 AliITSReconstructor.cxx:219 AliITSReconstructor.cxx:220 AliITSReconstructor.cxx:221 AliITSReconstructor.cxx:222 AliITSReconstructor.cxx:223 AliITSReconstructor.cxx:224 AliITSReconstructor.cxx:225 AliITSReconstructor.cxx:226 AliITSReconstructor.cxx:227 AliITSReconstructor.cxx:228 AliITSReconstructor.cxx:229 AliITSReconstructor.cxx:230 AliITSReconstructor.cxx:231 AliITSReconstructor.cxx:232 AliITSReconstructor.cxx:233 AliITSReconstructor.cxx:234 AliITSReconstructor.cxx:235 AliITSReconstructor.cxx:236 AliITSReconstructor.cxx:237 AliITSReconstructor.cxx:238 AliITSReconstructor.cxx:239 AliITSReconstructor.cxx:240 AliITSReconstructor.cxx:241 AliITSReconstructor.cxx:242 AliITSReconstructor.cxx:243 AliITSReconstructor.cxx:244 AliITSReconstructor.cxx:245 AliITSReconstructor.cxx:246 AliITSReconstructor.cxx:247 AliITSReconstructor.cxx:248 AliITSReconstructor.cxx:249 AliITSReconstructor.cxx:250 AliITSReconstructor.cxx:251 AliITSReconstructor.cxx:252 AliITSReconstructor.cxx:253 AliITSReconstructor.cxx:254 AliITSReconstructor.cxx:255 AliITSReconstructor.cxx:256 AliITSReconstructor.cxx:257 AliITSReconstructor.cxx:258 AliITSReconstructor.cxx:259 AliITSReconstructor.cxx:260 AliITSReconstructor.cxx:261 AliITSReconstructor.cxx:262 AliITSReconstructor.cxx:263