SetSegmentationModel(dettype,seg);
SetDigitClassName(dettype,"AliITSdigitSPD");
}
- if(fLoadOnlySPDCalib==kFALSE){
- if(dettype==1){
- seg = new AliITSsegmentationSDD();
+ if(dettype==1){
+ seg = new AliITSsegmentationSDD();
+ if(fLoadOnlySPDCalib==kFALSE){
AliITSCalibrationSDD* cal=(AliITSCalibrationSDD*)GetCalibrationModel(fgkDefaultNModulesSPD+1);
if(cal->IsAMAt20MHz()){
seg->SetPadSize(seg->Dpz(0),20.);
seg->SetNPads(seg->Npz()/2,128);
}
- SetSegmentationModel(dettype,seg);
- SetDigitClassName(dettype,"AliITSdigitSDD");
}
+ SetSegmentationModel(dettype,seg);
+ SetDigitClassName(dettype,"AliITSdigitSDD");
}
if(dettype==2){
AliITSsegmentationSSD* seg2 = new AliITSsegmentationSSD();
#include "AliITSDetTypeRec.h"
#include "AliITSInitGeometry.h"
#include "AliITSMeanVertexer.h"
+#include "AliITSRecPointContainer.h"
#include "AliITSLoader.h"
#include "AliLog.h"
#include "AliRawReader.h"
/* $Id$ */
//______________________________________________________________________
-AliITSMeanVertexer::AliITSMeanVertexer():TObject(),
+AliITSMeanVertexer::AliITSMeanVertexer(Bool_t mode):TObject(),
fDetTypeRec(NULL),
fVertexXY(NULL),
fVertexZ(NULL),
fTotTrackletsSq(0.),
fSigmaOnAverTracks(0.),
fFilterOnContributors(0),
-fFilterOnTracklets(0)
+fFilterOnTracklets(0),
+fMode(mode),
+fVertexer(NULL)
{
// Default Constructor
for(Int_t i=0;i<3;i++){
SetFilterOnContributors();
SetFilterOnTracklets();
+ // Instatiate vertexer
+ if (!fMode) {
+ fVertexer = new AliITSVertexer3DTapan(1000);
+ }
+ else {
+ fVertexer = new AliITSVertexer3D();
+ fVertexer->SetDetTypeRec(fDetTypeRec);
+ fVertexer->SetComputeMultiplicity(kTRUE);
+ }
return kTRUE;
}
delete fDetTypeRec;
delete fVertexXY;
delete fVertexZ;
+ delete fVertexer;
}
//______________________________________________________________________
-Bool_t AliITSMeanVertexer::Reconstruct(AliRawReader *rawReader, Bool_t mode){
+Bool_t AliITSMeanVertexer::Reconstruct(AliRawReader *rawReader){
// Performs SPD local reconstruction
// and vertex finding
// returns true in case a vertex is found
// Run SPD cluster finder
+ AliITSRecPointContainer::Instance()->PrepareToRead();
TTree* clustersTree = new TTree("TreeR", "Reconstructed Points Container"); //make a tree
fDetTypeRec->DigitsToRecPoints(rawReader,clustersTree,"SPD");
Bool_t vtxOK = kFALSE;
- AliESDVertex *vtx = NULL;
- // Run Tapan's vertex-finder
- if (!mode) {
- AliITSVertexer3DTapan *vertexer1 = new AliITSVertexer3DTapan(1000);
- vtx = vertexer1->FindVertexForCurrentEvent(clustersTree);
- delete vertexer1;
+ AliESDVertex *vtx = fVertexer->FindVertexForCurrentEvent(clustersTree);
+ if (!fMode) {
if (TMath::Abs(vtx->GetChi2()) < 0.1) vtxOK = kTRUE;
}
else {
- // Run standard vertexer3d
- AliITSVertexer3D *vertexer2 = new AliITSVertexer3D();
- vertexer2->SetDetTypeRec(fDetTypeRec);
- vertexer2->SetComputeMultiplicity(kTRUE);
- vtx = vertexer2->FindVertexForCurrentEvent(clustersTree);
- AliMultiplicity *mult = vertexer2->GetMultiplicity();
- delete vertexer2;
+ AliMultiplicity *mult = fVertexer->GetMultiplicity();
if(Filter(vtx,mult)) vtxOK = kTRUE;
}
delete clustersTree;
class AliMultiplicity;
class AliESDVertex;
class AliITSDetTypeRec;
+class AliITSVertexer;
class AliITSMeanVertexer : public TObject {
public:
// default constructor
- AliITSMeanVertexer();
+ AliITSMeanVertexer(Bool_t mode = kTRUE);
virtual ~AliITSMeanVertexer();
Bool_t Init();
void SetFilterOnContributors(Int_t nc=1){fFilterOnContributors = nc;}
void SetFilterOnTracklets(Int_t nc=1){fFilterOnTracklets = nc;}
- Bool_t Reconstruct(AliRawReader *rawReader, Bool_t mode = kTRUE);
+ Bool_t Reconstruct(AliRawReader *rawReader);
void WriteVertices(const char *filename);
const TH2F*GetVertexXY() const { return fVertexXY; }
Float_t fSigmaOnAverTracks; //! RMS of fAverTracklets
Int_t fFilterOnContributors; //! Numb. of contrib must be > fFilter...
Int_t fFilterOnTracklets; //! Numb. of tracklets must be > fFilterOnTr...
+ Bool_t fMode; //! kTRUE for Vertexer3D;
+ //! kFALSE for VertexerTapan
+ AliITSVertexer* fVertexer; //! vertexer
ClassDef(AliITSMeanVertexer,0)
};