]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/UPGRADE/AliITSUHit.cxx
1) Added classes for digitization
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUHit.cxx
diff --git a/ITS/UPGRADE/AliITSUHit.cxx b/ITS/UPGRADE/AliITSUHit.cxx
new file mode 100644 (file)
index 0000000..013b741
--- /dev/null
@@ -0,0 +1,100 @@
+/**************************************************************************
+ * 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.                  *
+ **************************************************************************/
+
+#include "AliITSU.h"
+#include "AliITSUGeomTGeo.h"
+#include "AliITSUHit.h"
+
+ClassImp(AliITSUHit)
+
+////////////////////////////////////////////////////////////////////////
+//
+// At the moment the same functionality/data-members as parent AliITShit 
+// except the geometry transformation uses AliITSgeomTGeoUp 
+//
+////////////////////////////////////////////////////////////////////////
+
+//----------------------------------------------------------------------
+AliITSUHit::AliITSUHit(Int_t shunt,Int_t track,Int_t *vol,Float_t edep,Float_t tof,
+                          TLorentzVector &x,TLorentzVector &x0,TLorentzVector &p) 
+: AliITShit(shunt,track,vol,edep,tof,x,x0,p)
+{
+  // ct-r
+}
+
+//______________________________________________________________________
+AliITSUHit::AliITSUHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits) 
+  : AliITShit(shunt, track, vol, hits) 
+{
+  // c-tor
+}
+
+//______________________________________________________________________
+AliITSUHit::AliITSUHit(const AliITSUHit &h)
+: AliITShit(h)
+{
+  // cp c-tor
+}
+
+//______________________________________________________________________
+AliITSUHit& AliITSUHit::operator=(const AliITSUHit &h)
+{
+  // The standard = operator
+  if(this == &h) return *this;
+  AliITShit::operator=(h);
+  return *this;
+}
+
+//______________________________________________________________________
+void AliITSUHit::GetPositionL(Float_t &x,Float_t &y,Float_t &z,Float_t &tof)
+{
+  // Returns the position and time of flight of this hit in the local
+  // coordinates of this module, and in the units of the Monte Carlo.
+  //
+  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
+  if (!gm) AliFatal("NULL pointer to the geometry!");
+  double g[3]={fX,fY,fZ},l[3];
+  gm->GetMatrixSens(fModule)->MasterToLocal(g,l);
+  x = l[0];
+  y = l[1];
+  z = l[2];
+  tof = fTof;
+  //
+}
+
+//______________________________________________________________________
+void AliITSUHit::GetPositionL0(Double_t &x,Double_t &y,Double_t &z,Double_t &tof)
+{
+  // Returns the initial position and time of flight of this hit 
+  // in the local coordinates of this module, and in the units of the 
+  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
+  if (!gm) AliFatal("NULL pointer to the geometry!");
+  double g[3]={fx0,fy0,fz0},l[3];  
+  gm->GetMatrixSens(fModule)->MasterToLocal(g,l);
+  x = l[0];
+  y = l[1];
+  z = l[2];
+  tof = ft0;
+}
+
+//----------------------------------------------------------------------
+void AliITSUHit::GetDetectorID(Int_t &layer,Int_t &ladder,Int_t &det) const
+{
+  // Returns the layer ladder and detector number lables for this
+  // ITS module. Note: indices start from 0!
+  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
+  if (!gm) AliFatal("NULL pointer to the geometry!");
+  gm->GetModuleId(fModule,layer,ladder,det);
+}