+#include "AliRunLoader.h"
#include "AliITSDetTypeRec.h"
#include "AliITSVertexerIons.h"
#include "AliITSVertexerZ.h"
#include "AliESDVertex.h"
-#include "AliITSgeom.h"
+#include "AliITSgeomTGeo.h"
#include "AliITSLoader.h"
#include "AliITSRecPoint.h"
#include "AliLog.h"
SetMaxDeltaZ();
}
-//______________________________________________________________________
-AliITSVertexerIons::AliITSVertexerIons(TString fn):AliITSVertexer(fn),
-fNpThreshold(0),
-fMaxDeltaPhi(0),
-fMaxDeltaZ(0) {
- // Standard constructor
-
- //fITS = 0;
- SetNpThreshold();
- SetMaxDeltaPhi();
- SetMaxDeltaZ();
-}
-/*
-//______________________________________________________________________
-AliITSVertexerIons::AliITSVertexerIons(const AliITSVertexerIons &source):AliITSVertexer(source) {
- // Copy constructor
- // Copies are not allowed. The method is protected to avoid misuse.
- Error("AliITSVertexerIons","Copy constructor not allowed\n");
-}
-*/
-//_________________________________________________________________________
-//AliITSVertexerIons& AliITSVertexerIons::operator=(const AliITSVertexerIons &/*source*/) {
- // Assignment operator
- // Assignment is not allowed. The method is protected to avoid misuse.
- //Error("= operator","Assignment operator not allowed\n");
- //return *this;
-//}
-
-
//______________________________________________________________________
AliITSVertexerIons::~AliITSVertexerIons() {
// Default Destructor
}
//______________________________________________________________________
-AliESDVertex* AliITSVertexerIons::FindVertexForCurrentEvent(Int_t evnumber){
+AliESDVertex* AliITSVertexerIons::FindVertexForCurrentEvent(TTree *itsClusterTree){
// Defines the AliESDVertex for the current event
fCurrentVertex = 0;
- AliRunLoader *rl = AliRunLoader::GetRunLoader();
- AliITSLoader* itsloader = (AliITSLoader*)rl->GetLoader("ITSLoader");
- TDirectory * olddir = gDirectory;
- rl->CdGAFile();
- AliITSgeom* g2 = (AliITSgeom*)gDirectory->Get("AliITSgeom");
- olddir->cd();
-
- TTree *tr = itsloader->TreeR();
AliITSDetTypeRec detTypeRec;
- detTypeRec.SetTreeAddressR(tr);
+ detTypeRec.SetTreeAddressR(itsClusterTree);
TClonesArray *recpoints = detTypeRec.RecPoints();
AliITSRecPoint *pnt;
Int_t npoints=0;
Int_t nopoints1=40000;
Int_t nopoints2=40000;
- Float_t l[3], p[3];
+ Float_t p[3];
Double_t *z1, *z2, *y1, *y2, *x1, *x2, *phi1, *phi2, *r1, *r2;
z1=new Double_t[nopoints1];
Double_t r=0;
Int_t np1=0, np2=0;
- for(Int_t i=g2->GetStartSPD();i<=g2->GetLastSPD();i++) {
+ for(Int_t i=AliITSgeomTGeo::GetModuleIndex(1,1,1);i<=AliITSgeomTGeo::GetModuleIndex(2,1,1)-1;i++) {
detTypeRec.ResetRecPoints();
- tr->GetEvent(i);
+ itsClusterTree->GetEvent(i);
npoints = recpoints->GetEntries();
for (Int_t ipoint=0;ipoint<npoints;ipoint++) {
pnt = (AliITSRecPoint*)recpoints->UncheckedAt(ipoint);
+ /*
l[0]=pnt->GetDetLocalX();
l[1]=0;
l[2]=pnt->GetDetLocalZ();
g2->LtoG(i, l, p);
+ */
+ pnt->GetGlobalXYZ(p);
r=TMath::Sqrt(TMath::Power(p[0],2)+TMath::Power(p[1],2));
if(i<80 && TMath::Abs(p[2])<14.35) {
if(np1<fNpThreshold) {
Warning("FindVertexForCurrentEvent","AliITSVertexerIons finder is not reliable for low multiplicity events. Switching to AliITSVertexerZ with default parameters...\n");
Warning("FindVertexForCurrentEvent","N rec points = %d - Threshold is %d",np1,fNpThreshold);
- AliITSVertexerZ *dovert = new AliITSVertexerZ("default");
- fCurrentVertex =dovert->FindVertexForCurrentEvent(rl->GetEventNumber());
+ AliITSVertexerZ *dovert = new AliITSVertexerZ();
+ fCurrentVertex =dovert->FindVertexForCurrentEvent(itsClusterTree);
delete dovert;
return fCurrentVertex;
}
Double_t resolution[3]={0,0,0};
Double_t snr[3]={0,0,0};
Char_t name[30];
- AliDebug(1,Form("Vertex found for event %d",evnumber));
sprintf(name,"Vertex");
fCurrentVertex = new AliESDVertex(position,resolution,snr,name);
return fCurrentVertex;
Double_t snr[3]={0,0,0};
Char_t name[30];
- AliDebug(1,Form("Vertex found for event %d",evnumber));
sprintf(name,"Vertex");
fCurrentVertex = new AliESDVertex(position,resolution,snr,name);
if(y<0 && x>0) phi=(TMath::ATan((Double_t)(y/x))*57.29578)+360;;
}
-//______________________________________________________________________
-void AliITSVertexerIons::FindVertices(){
- // computes the vertices of the events in the range FirstEvent - LastEvent
- AliRunLoader *rl = AliRunLoader::GetRunLoader();
- AliITSLoader* itsloader = (AliITSLoader*) rl->GetLoader("ITSLoader");
- itsloader->LoadRecPoints("read");
- for(Int_t i=fFirstEvent;i<=fLastEvent;i++){
- rl->GetEvent(i);
- FindVertexForCurrentEvent(i);
- if(fCurrentVertex){
- WriteCurrentVertex();
- }
- else {
- AliDebug(1,Form("Vertex not found for event %d",i));
- }
- }
-}
-
//________________________________________________________
void AliITSVertexerIons::PrintStatus() const {
// Print current status
cout <<"=======================================================\n";
- cout<<"First event to be processed "<<fFirstEvent;
- cout<<"\n Last event to be processed "<<fLastEvent<<endl;
if(fCurrentVertex)fCurrentVertex->PrintStatus();
}