////////////////////////////////////////////////////////////////////////
//
// Base Class for Detector specific Merging/Digitization
-//
+// Detector specific digitization classes derive from this
// Author: Jiri Chudoba (CERN)
//
////////////////////////////////////////////////////////////////////////
const Text_t* title="AliDigitizer");
// Copy ctor needed because there is a pointer
AliDigitizer(const AliDigitizer &dig);
- AliDigitizer& operator=(AliDigitizer &dig)
+ AliDigitizer& operator=(const AliDigitizer &dig)
{dig.Copy(*this);return *this;}
virtual ~AliDigitizer();
#include <TPaveText.h>
#include <TSlider.h>
#include <TSliderBox.h>
-#include <TTree.h>
+//#include <TTree.h>
#include <TView.h>
#include <TVirtualX.h>
#include "TParticle.h"
#include "AliMC.h"
-static const Float_t kptcutmax = 2;
-static const Float_t ketacutmax = 1.5;
+const Float_t AliDisplay::fgkPtCutMax = 2;
+const Float_t AliDisplay::fgkEtaCutMax = 1.5;
+const Int_t AliDisplay::fgkMaxZooms = 20;
+
ClassImp(AliDisplay)
fCutPad->SetFillColor(22);
fCutPad->SetBorderSize(2);
fCutSlider = new TSlider("pcut","Momentum cut",0,0,1,1);
- fCutSlider->SetRange(fPTcut/kptcutmax,1);
+ fCutSlider->SetRange(fPTcut/fgkPtCutMax,1);
fCutSlider->SetObject(this);
fCutSlider->SetFillColor(45);
TSliderBox *sbox = dynamic_cast<TSliderBox*>(fCutSlider->GetListOfPrimitives()->First());
sbox->SetFillColor(46);
fCutSlider->cd();
- TGaxis *cutaxis = new TGaxis(0.02,0.8,0.98,0.8,0,kptcutmax,510,"");
+ TGaxis *cutaxis = new TGaxis(0.02,0.8,0.98,0.8,0,fgkPtCutMax,510,"");
cutaxis->SetLabelSize(0.5);
cutaxis->SetTitleSize(0.6);
cutaxis->SetTitleOffset(0.5);
TSliderBox *sbox2 = dynamic_cast<TSliderBox*>(fEtaSlider->GetListOfPrimitives()->First());
sbox2->SetFillColor(46);
fEtaSlider->cd();
- TGaxis *etaaxis = new TGaxis(0.9,0.02,0.9,0.98,-ketacutmax,ketacutmax,510,"");
+ TGaxis *etaaxis = new TGaxis(0.9,0.02,0.9,0.98,-fgkEtaCutMax,fgkEtaCutMax,510,"");
etaaxis->SetLabelSize(0.5);
etaaxis->SetTitleSize(0.6);
etaaxis->SetTitleOffset(0.2);
//Get cut slider
smax = fCutSlider->GetMaximum();
smin = fCutSlider->GetMinimum();
- cutmin = kptcutmax*smin;
- if (smax < 0.98) cutmax = kptcutmax*smax;
+ cutmin = fgkPtCutMax*smin;
+ if (smax < 0.98) cutmax = fgkPtCutMax*smax;
else cutmax = 100000;
//Get eta slider
smax = fEtaSlider->GetMaximum();
smin = fEtaSlider->GetMinimum();
- etamin = ketacutmax*(2*smin-1);
- etamax = ketacutmax*(2*smax-1);
+ etamin = fgkEtaCutMax*(2*smin-1);
+ etamax = fgkEtaCutMax*(2*smax-1);
if (smin < 0.02) etamin = -1000;
if (smax > 0.98) etamax = 1000;
if (x1 < x0) {temp = x0; x0 = x1; x1 = temp;}
if (y1 < y0) {temp = y0; y0 = y1; y1 = temp;}
gPad->Range(x0,y0,x1,y1);
- if (fZooms < kMAXZOOMS-1) {
+ if (fZooms < fgkMaxZooms-1) {
fZooms++;
fZoomX0[fZooms] = x0;
fZoomY0[fZooms] = y0;
class TButton;
class TArc;
-static const Int_t kMAXZOOMS = 20;
-
class AliDisplay : public TObject {
public:
void SetTracksToDisplay(Int_t *tracks, Int_t n); // set tracks to display
protected:
+ static const Float_t fgkPtCutMax; //Max Pt cut for the slider
+ static const Float_t fgkEtaCutMax; //Max eta cut for the slider
+ static const Int_t fgkMaxZooms; //Max number of zooms
Int_t fZoomMode; //=1 if in zoom mode
Bool_t fDrawAllViews; //Flag True if AllViews selected
Bool_t fDrawParticles; //Flag True if particles to be drawn
//-----------------------------------------------------------------
// Implementation of the ESD class
// This is the class to deal with during the phisical analysis of data
-//
+// This class is generated directly by the reconstruction methods
// Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
//-----------------------------------------------------------------
ClassImp(AliESD)
-//_______________________________________________________________________
+//______________________________________________________________________________
AliESD::AliESD():
fEventNumber(0),
fRunNumber(0),
{
}
-void AliESD::Print(Option_t *) const {
- //Print header information of the event
+//______________________________________________________________________________
+AliESD::~AliESD()
+{
+ //
+ // Standard destructor
+ //
+ fTracks.Delete();
+ fCaloTracks.Delete();
+ fMuonTracks.Delete();
+ fPmdTracks.Delete();
+ fV0s.Delete();
+ fCascades.Delete();
+}
+
+
+//______________________________________________________________________________
+void AliESD::Print(Option_t *) const
+{
+ //
+ // Print header information of the event
+ //
Info("Print","ESD run information");
printf("Event # %d Run # %d Trigger %ld Magnetic field %f \n",
GetEventNumber(),
-#ifndef ALIESDEVENT_H
-#define ALIESDEVENT_H
+#ifndef ALIESD_H
+#define ALIESD_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
// Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
//-------------------------------------------------------------------------
-#include "TObject.h"
-#include "TClonesArray.h"
-#include "AliESDVertex.h"
-#include "AliESDtrack.h"
-#include "AliESDCaloTrack.h"
-#include "AliESDMuonTrack.h"
-#include "AliESDPmdTrack.h"
-#include "AliESDv0.h"
-#include "AliESDcascade.h"
+#include <TClonesArray.h>
+#include <TObject.h>
+
+#include "AliESDCaloTrack.h"
+#include "AliESDMuonTrack.h"
+#include "AliESDPmdTrack.h"
+#include "AliESDVertex.h"
+#include "AliESDcascade.h"
+#include "AliESDtrack.h"
+#include "AliESDv0.h"
class AliESD : public TObject {
public:
AliESD();
- virtual ~AliESD() {
- fTracks.Delete();
- fCaloTracks.Delete();
- fMuonTracks.Delete();
- fPmdTracks.Delete();
- fV0s.Delete();
- fCascades.Delete();
- }
+ virtual ~AliESD();
void SetEventNumber(Int_t n) {fEventNumber=n;}
void SetRunNumber(Int_t n) {fRunNumber=n;}
+/**************************************************************************
+ * Copyright(c) 1998-1999, 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. *
+ **************************************************************************/
+
+/* $Id$ */
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Class to describe the MUON tracks
+// in the Event Summary Data class
+// This is where the results of reconstruction
+// are stored for the muons
+// Author: G.Martinez
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
#include "AliESDMuonTrack.h"
-AliESDMuonTrack::AliESDMuonTrack (const AliESDMuonTrack& MUONTrack):TObject(MUONTrack)
+ClassImp(AliESDMuonTrack)
+
+//_____________________________________________________________________________
+AliESDMuonTrack::AliESDMuonTrack (const AliESDMuonTrack& MUONTrack):
+ TObject(MUONTrack)
{
+ //
+ // Copy constructor
+ // Deep copy implemented
+ //
fInverseBendingMomentum = MUONTrack.fInverseBendingMomentum;
fThetaX = MUONTrack.fThetaX;
fThetaY = MUONTrack.fThetaY ;
fChi2MatchTrigger = MUONTrack.fChi2MatchTrigger;
}
+//_____________________________________________________________________________
AliESDMuonTrack& AliESDMuonTrack::operator=(const AliESDMuonTrack& MUONTrack)
{
+ //
+ // Equal operator for a deep copy
+ //
if (this == &MUONTrack)
return *this;
return *this;
}
-ClassImp(AliESDMuonTrack)
#ifndef ALIESDMUONTRACK_H
#define ALIESDMUONTRACK_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+/* $Id$ */
+
+// Class to describe the MUON tracks
+// in the Event Summary Data class
+// Author: G.Martinez
+
+
#include "TObject.h"
class AliESDMuonTrack : public TObject {
public:
- AliESDMuonTrack(){
- // Constructor;
- } // Constructor
- virtual ~AliESDMuonTrack(){
- // Destructor;
- } // Destructor
- AliESDMuonTrack(const AliESDMuonTrack& );
- AliESDMuonTrack& operator=(const AliESDMuonTrack& );
+ AliESDMuonTrack(){} //Constructor
+ virtual ~AliESDMuonTrack(){} // Destructor
+ AliESDMuonTrack(const AliESDMuonTrack& esdm);
+ AliESDMuonTrack& operator=(const AliESDMuonTrack& esdm);
// Get and Set methods for data
//-----------------------------------------------------------------
// Implementation of the Primary Vertex class
-//
+// for the Event Data Summary class
+// This class contains the Primary Vertex
+// of the event coming from reconstruction
// Origin: A.Dainese, Padova, andrea.dainese@pd.infn.it
//-----------------------------------------------------------------
//---- Root headers --------
#include <TMath.h>
#include <TROOT.h>
-#include <TNamed.h>
//---- AliRoot headers -----
#include "AliESDVertex.h"
//-------------------------------------------------------
// Primary Vertex Class
-//
+// for the Event Data Summary Class
// Origin: A.Dainese, Padova, andrea.dainese@pd.infn.it
//-------------------------------------------------------
void GetTruePos(Double_t &x,Double_t &y,Double_t &z) const
{x=fTruePos[0]; y=fTruePos[1]; z=fTruePos[2];}
- private:
-
- void SetToZero();
-
protected:
Double_t fPosition[3]; // vertex position
Int_t fNContributors; // # of tracklets/tracks used for the estimate
Int_t fDebug; //! for debugging
Double_t fTruePos[3]; //true vertex position (for comparison purposes)
+
+ private:
+
+ void SetToZero();
+
ClassDef(AliESDVertex,4) // Class for Primary Vertex
- };
+};
#endif
//-----------------------------------------------------------------------
//
+// Class to handle the field
+// I/O and interpolation
+// of the field map to return the value
+// of the magnetic field in an arbitrary position
// Author: Andreas Morsch <andreas.morsch@cern.ch>
//
//-----------------------------------------------------------------------
#include <TSystem.h>
-#include <TVector.h>
#include "AliFieldMap.h"
}
//_______________________________________________________________________
-void AliFieldMap::Field(Float_t *x, Float_t *b)
+void AliFieldMap::Field(Float_t *x, Float_t *b) const
{
//
// Use simple interpolation to obtain field at point x
/* $Id$ */
//
+// Class to handle the field map of ALICE
+// I/O and interpolation
// Author: Andreas Morsch <andreas.morsch@cern.ch>
//
+
#include <TNamed.h>
#include <TVector.h>
void Copy(TObject &map) const;
virtual AliFieldMap & operator=(const AliFieldMap &map);
- virtual void Field(Float_t *x, Float_t *b);
+ virtual void Field(Float_t *x, Float_t *b) const;
Float_t Bx(Int_t ix, Int_t iy, Int_t iz) const{
return (*fB)(3*((ix*fYn+iy)*fZn+iz));
}
// //
///////////////////////////////////////////////////////////////////
#include <TGenerator.h>
+#include <TMCProcess.h>
#include "AliCollisionGeometry.h"
#include "AliConfig.h"
/* $Id$ */
+///////////////////////////////////////////////////////////////////////////////
+// //
+// class for running the reconstruction //
+// Clusters and tracks are created for all detectors and all events by //
+// typing: //
+// //
+// AliReconstruction rec; //
+// rec.Run(); //
+// //
+///////////////////////////////////////////////////////////////////////////////
+
+
#include <TNamed.h>
#include <TString.h>
#include <TObjArray.h>
virtual const char* GetDetectorName() const
{return fDetector->GetName();};
private:
+ AliDummyReconstructor(const AliDummyReconstructor &drc):
+ AliReconstructor(drc)
+ {Fatal("copy ctor","Not implemented\n");}
+ AliDummyReconstructor & operator=(const AliDummyReconstructor &)
+ {Fatal("= operator","Not implemented\n"); return *this;}
AliDetector* fDetector; // detector object
};
/* $Id$ */
///////////////////////////////////////////////////////////////////////////////
-// //
-// //
+// Random number class for AliRoot
+// This class allows to have different
+// random number generator for different
+// elements of AliRoot //
+// It also allows saving and retrieving of the random number seeds
///////////////////////////////////////////////////////////////////////////////
#include "TFile.h"
{
public:
AliRndm();
- AliRndm(const AliRndm &);
+ AliRndm(const AliRndm &rn);
virtual ~AliRndm() {fRandom=0;}
AliRndm & operator=(const AliRndm& rn)
{rn.Copy(*this); return (*this);}
// The default output is to the signal file (stream 0). This can be
// changed with the SetOutputFile(TString fn) method.
//
-// Single input file is permitted. Maximum kMaxStreamsToMerge can be merged.
+// Single input file is permitted. Maximum MAXSTREAMSTOMERGE can be merged.
// Input from the memory (on-the-fly merging) is not yet
// supported, as well as access to the input data by invoking methods
// on the output data.
fOutRunLoader(0x0),
fOutputInitialized(kFALSE),
fCombi(new AliMergeCombi(nInputStreams,sperb)),
- fCombination(kMaxStreamsToMerge),
+ fCombination(MAXSTREAMSTOMERGE),
fCombinationFileName(0),
fDebug(0)
fkMASK[0] = 0;
- for (i=1;i<kMaxStreamsToMerge;i++)
+ for (i=1;i<MAXSTREAMSTOMERGE;i++)
{
fkMASK[i] = fkMASK[i-1] + fkMASKSTEP;
}
//
// loads events
//
- Int_t eventNr[kMaxStreamsToMerge], delta[kMaxStreamsToMerge];
+ Int_t eventNr[MAXSTREAMSTOMERGE], delta[MAXSTREAMSTOMERGE];
fCombi->Combination(eventNr, delta);
for (Int_t i=0;i<fNinputs;i++)
{
// merged in the output event event
// simplified for now, implement later
- Int_t * a = new Int_t[kMaxStreamsToMerge];
+ Int_t * a = new Int_t[MAXSTREAMSTOMERGE];
for (Int_t i = 0; i < fNinputs; i++) {
a[i] = event;
}
class AliMergeCombi;
class AliRunLoader;
-static const Int_t kMaxStreamsToMerge = 4;
+#define MAXSTREAMSTOMERGE 4
class AliRunDigitizer: public TTask {
void FinishEvent();
void FinishGlobal();
- Int_t fkMASK[kMaxStreamsToMerge]; //! masks for track ids from
+ Int_t fkMASK[MAXSTREAMSTOMERGE]; //! masks for track ids from
// different source files
Int_t fkMASKSTEP; // step to increase MASK for
// each input file
// //
///////////////////////////////////////////////////////////////////////////////
-
-#include "AliSimulation.h"
-#include "AliRunLoader.h"
-#include "AliRun.h"
-#include "AliModule.h"
-#include "AliGenerator.h"
-#include "AliVertexGenFile.h"
-#include "AliRunDigitizer.h"
-#include "AliDigitizer.h"
#include <TObjString.h>
-#include <TSystem.h>
#include <TStopwatch.h>
+#include <TSystem.h>
+#include "AliDigitizer.h"
+#include "AliGenerator.h"
+#include "AliModule.h"
+#include "AliRun.h"
+#include "AliRunDigitizer.h"
+#include "AliRunLoader.h"
+#include "AliSimulation.h"
+#include "AliVertexGenFile.h"
ClassImp(AliSimulation)
/* $Id$ */
+//
+// class for running generation, simulation and digitization
+// Hits, sdigits and digits are created for all detectors by typing:
+//
+// AliSimulation sim;
+// sim.Run();
+//
+
#include <TNamed.h>
#include <TString.h>
///////////////////////////////////////////////////////////////////////////////
// //
-// Particles stack class
+// Particles stack class //
+// Implements the TMCVirtualStack of the Virtual Monte Carlo //
+// Holds the particles transported during simulation //
+// Is used to compare results of reconstruction with simulation //
+// Author A.Morsch //
// //
///////////////////////////////////////////////////////////////////////////////
-#include <TFile.h>
-#include <TFolder.h>
#include <TObjArray.h>
#include <TParticle.h>
#include <TParticlePDG.h>
/* $Id$ */
-#include <TArrayI.h>
-#include <TVirtualMCStack.h>
-
-#include "AliConfig.h"
+// Particles stack class
+// Implements the TMCVirtualStack of the Virtual Monte Carlo
+// Author A.Morsch
-class AliHeader;
class TClonesArray;
class TFile;
class TObjArray;
class TParticle;
-class TTree;
class TString;
+class TTree;
+#include <TArrayI.h>
+#include <TVirtualMCStack.h>
+
+class AliHeader;
+#include "AliConfig.h"
+
class AliStack : public TVirtualMCStack
{
// - open and close files
// - return serial event number of the next event in the stream
// and the TFile pointer for a proper file
+// Author: Jiri Chudoba (CERN), 2001
//
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//
// Class to handle files on IO
-//
+// Handles files and returns serial event number
// Author: Jiri Chudoba (CERN), 2001
//
////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
-#include "AliVertexGenFile.h"
-#include "AliHeader.h"
-#include "AliGenEventHeader.h"
+#include <TArrayF.h>
#include <TFile.h>
#include <TTree.h>
-#include <TArrayF.h>
+
+#include "AliGenEventHeader.h"
+#include "AliHeader.h"
+#include "AliVertexGenFile.h"
ClassImp(AliVertexGenFile)
/* $Id$ */
+// Generator for vertices taken from a file
+// The file name of the galice file is passed as argument
+// to the constructor.
+
#include "AliVertexGenerator.h"
class TFile;
virtual TVector3 GetVertex();
private:
+ AliVertexGenFile(const AliVertexGenFile &vgf):
+ AliVertexGenerator(vgf)
+ {Fatal("copy ctor","Not implemented\n");}
+ AliVertexGenFile & operator-(const AliVertexGenFile &)
+ {Fatal("= operator","Not implemented\n"); return *this;}
TFile* fFile; //! galice file with vertices
TTree* fTree; //! tree with headers
AliHeader* fHeader; //! event header