void SetVertexerCosmics() { SetVertexer(2); }
void SetVertexerIons() { SetVertexer(3); }
void SetVertexerSmearMC() { SetVertexer(4); }
+ void SetVertexerFixedOnTDI() {SetVertexer(5);} // for injection tests
+ void SetVertexerFixedOnTED() {SetVertexer(6);} // for injection tests
Int_t GetVertexer() const { return fVertexer; }
void SetClusterFinder(Int_t cf=0) { fClusterFinder=cf; }
void SetClusterFinderV2() { SetClusterFinder(0); }
#include "AliITStrackerSA.h"
#include "AliITSVertexerIons.h"
#include "AliITSVertexerFast.h"
+#include "AliITSVertexerFixed.h"
#include "AliITSVertexer3D.h"
#include "AliITSVertexerZ.h"
#include "AliITSVertexerCosmics.h"
Info("CreateVertexer","a AliITSVertexerCosmics object has been selected\n");
return new AliITSVertexerCosmics();
}
+ if(vtxOpt==5){
+ Info("CreateVertexer","vertex is fixed in the position of the TDI\n");
+ return new AliITSVertexerFixed("TDI");
+ }
+ if(vtxOpt==6){
+ Info("CreateVertexer","vertex is fixed in the position of the TED\n");
+ return new AliITSVertexerFixed("TED");
+ }
// by default an AliITSVertexer3D object is instatiated
Info("CreateVertexer","a AliITSVertexer3D object has been selected\n");
AliITSVertexer3D* vtxr = new AliITSVertexer3D();
--- /dev/null
+/**************************************************************************
+ * Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
+ * *
+ * Author: The ALICE Off-line Project. *
+ * Contributors are mentioned in the code where appropriate. *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
+ **************************************************************************/
+#include <Riostream.h>
+#include "AliESDVertex.h"
+#include "AliLog.h"
+#include <TString.h>
+#include "AliITSVertexerFixed.h"
+
+/////////////////////////////////////////////////////////////////////////
+// //
+// Fixed vertexer - creates a vertex in a defined postion (x,y,z) //
+// the standard contructor takes a sting to specify the case //
+// Useful for reconstruction of injection tests with beam on TDI //
+// //
+/////////////////////////////////////////////////////////////////////////
+
+ClassImp(AliITSVertexerFixed)
+
+
+
+//______________________________________________________________________
+AliITSVertexerFixed::AliITSVertexerFixed():AliITSVertexer()
+{
+ // Default Constructor
+ AliWarning("This contructor sets the vertex in (0,0,0)");
+ for(Int_t k=0; k<3;k++){
+ fVtxPos[k]=0.;
+ fVtxErr[k]=0.5;
+ }
+}
+
+//______________________________________________________________________
+AliITSVertexerFixed::AliITSVertexerFixed(TString option):AliITSVertexer()
+{
+ // Standard constructor
+ if(option.Contains("TDI")){
+ fVtxPos[0]=0.;
+ fVtxPos[1]=0.;
+ fVtxPos[2]=8000.; // TDI at z=80 m
+ fVtxErr[0]=1.;
+ fVtxErr[1]=1.;
+ fVtxErr[2]=100.;
+ }
+ else if(option.Contains("TED")){
+ fVtxPos[0]=0.;
+ fVtxPos[1]=0.;
+ fVtxPos[2]=34000.; // TED at z=+340 m
+ fVtxErr[0]=1.;
+ fVtxErr[1]=1.;
+ fVtxErr[2]=100.;
+ }else{
+ AliError(Form("%s is invalid, sets the vertex in (0,0,0)",option.Data()));
+ for(Int_t k=0; k<3;k++){
+ fVtxPos[k]=0.;
+ fVtxErr[k]=0.5;
+ }
+ }
+}
+
+
+//______________________________________________________________________
+AliESDVertex* AliITSVertexerFixed::FindVertexForCurrentEvent(TTree * /*itsClusterTree */){
+ // Defines the AliITSVertex for the current event
+
+ fCurrentVertex = new AliESDVertex(fVtxPos,fVtxErr,"Fixed Vertex");
+ return fCurrentVertex;
+
+}
+
+//________________________________________________________
+void AliITSVertexerFixed::PrintStatus() const {
+ // Print current status
+ cout <<"=======================================================\n";
+
+ cout<<"Fixed positions: ";
+ for(Int_t k=0;k<3;k++)cout<<" "<<fVtxPos[k]<<"+-"<<fVtxErr[k];
+ cout<<endl;
+}
+
--- /dev/null
+#ifndef ALIITSVERTEXERFIXED_H
+#define ALIITSVERTEXERFIXED_H
+/* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+/*$Id $*/
+
+#include <AliITSVertexer.h>
+class TString;
+
+///////////////////////////////////////////////////////////////////////
+// //
+// Create vertex in fixed position (e.g. TDI for injection tests) //
+// Origin: M. Masera, F. Prino (masera@to.infn.it, prino@to.infn.it) //
+// //
+///////////////////////////////////////////////////////////////////////
+
+
+class AliITSVertexerFixed : public AliITSVertexer {
+
+ public:
+ AliITSVertexerFixed();
+ AliITSVertexerFixed(TString option);
+ virtual AliESDVertex* FindVertexForCurrentEvent(TTree* /* itsClusterTree */ );
+ void SetVtxPosition(Double_t pos[3]){
+ for(Int_t k=0; k<3;k++) fVtxPos[k]=pos[k];
+ }
+ void SetVtxError(Double_t err[3]){
+ for(Int_t k=0; k<3;k++) fVtxErr[k]=err[k];
+ }
+
+ virtual void PrintStatus() const;
+
+ private:
+ Double_t fVtxPos[3]; // vertex coordinates
+ Double_t fVtxErr[3]; // vertex errors
+
+
+
+ClassDef(AliITSVertexerFixed,0);
+};
+
+#endif
#pragma link C++ class AliITSVertexerZ+;
#pragma link C++ class AliITSVertexer3D+;
#pragma link C++ class AliITSVertexer3DTapan+;
+#pragma link C++ class AliITSVertexerFast+;
+#pragma link C++ class AliITSVertexerFixed+;
#pragma link C++ class AliITSMeanVertexer+;
#pragma link C++ class AliITSZPoint+;
#pragma link C++ class AliITSclusterTable+;
#pragma link C++ class AliITStrackerSA+;
#pragma link C++ class AliITStrackSA+;
-#pragma link C++ class AliITSVertexerFast+;
#pragma link C++ class AliITSReconstructor+;
#pragma link C++ class AliITSRecoParam+;
#pragma link C++ class AliITSClusterFinderV2+;
AliITSVertexer3D.cxx \
AliITSVertexerZ.cxx \
AliITSVertexerFast.cxx \
+ AliITSVertexerFixed.cxx \
AliITSVertexer3DTapan.cxx \
AliITSMeanVertexer.cxx \
AliITSZPoint.cxx \