]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDv0.cxx
Change of C02 density
[u/mrichter/AliRoot.git] / TRD / AliTRDv0.cxx
index 024b6334a94ac5edb60ee0dc268491add48a8eb9..06ffa3dfc9e34b81a6c728fe52851e4f473460ad 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.14.2.3  2000/10/06 16:49:46  cblume
-Made Getters const
-
-Revision 1.14.2.2  2000/10/04 16:34:58  cblume
-Replace include files by forward declarations
-
-Revision 1.14.2.1  2000/09/18 13:48:18  cblume
-Adapt to new AliTRDhit
-
-Revision 1.16  2000/06/08 18:32:58  cblume
-Make code compliant to coding conventions
-
-Revision 1.15  2000/06/07 16:25:37  cblume
-Try to remove compiler warnings on Sun and HP
-
-Revision 1.14  2000/02/28 19:10:26  cblume
-Include the new TRD classes
-
-Revision 1.13.4.1  2000/02/28 18:01:53  cblume
-Change to new hit version and introduce geometry class
-
-Revision 1.13  1999/11/05 22:50:28  fca
-Do not use Atan, removed from ROOT too
-
-Revision 1.12  1999/11/02 16:35:56  fca
-New version of TRD introduced
-
-Revision 1.11  1999/11/01 20:41:51  fca
-Added protections against using the wrong version of FRAME
-
-Revision 1.10  1999/09/29 09:24:35  fca
-Introduction of the Copyright and cvs Log
-
-*/
+/* $Id$ */
 
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
@@ -63,17 +28,20 @@ Introduction of the Copyright and cvs Log
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
+#include <stdlib.h> 
+
+#include <TLorentzVector.h>
 #include <TMath.h>
 #include <TRandom.h>
-#include <TVector.h>
+#include <TVector.h> 
+#include <TVirtualMC.h>
 
-#include "AliRun.h"
-#include "AliMC.h"
 #include "AliConst.h"
-  
-#include "AliTRDv0.h"
-#include "AliTRDhit.h"
+#include "AliRun.h"
 #include "AliTRDgeometry.h"
+#include "AliTRDhit.h"
+#include "AliTRDv0.h"
+#include "AliMC.h"
 
 ClassImp(AliTRDv0)
   
@@ -84,13 +52,8 @@ AliTRDv0::AliTRDv0():AliTRD()
   // AliTRDv0 default constructor
   //
 
-  fIdSens     = 0;
   fHitsOn     = 0;
 
-  fIdChamber1 = 0;
-  fIdChamber2 = 0;
-  fIdChamber3 = 0;
-
 }
 
 //_____________________________________________________________________________
@@ -101,13 +64,8 @@ AliTRDv0::AliTRDv0(const char *name, const char *title)
   // Standard constructor for Transition Radiation Detector version 0
   //
 
-  fIdSens     = 0;
   fHitsOn     = 0;
 
-  fIdChamber1 = 0;
-  fIdChamber2 = 0;
-  fIdChamber3 = 0;
-
 }
 
 //_____________________________________________________________________________
@@ -156,14 +114,6 @@ void AliTRDv0::Init()
 
   AliTRD::Init();
 
-  // Identifier of the sensitive volume (amplification region)
-  fIdSens     = gMC->VolId("UL06");
-
-  // Identifier of the TRD-driftchambers
-  fIdChamber1 = gMC->VolId("UCIO");
-  fIdChamber2 = gMC->VolId("UCIM");
-  fIdChamber3 = gMC->VolId("UCII");
-
   printf("          Fast simulator\n\n");
   for (Int_t i = 0; i < 80; i++) printf("*");
   printf("\n");
@@ -182,25 +132,30 @@ void AliTRDv0::StepManager()
   Int_t   pla = 0; 
   Int_t   cha = 0;
   Int_t   sec = 0; 
-  Int_t   iIdSens, icSens; 
-  Int_t   iIdChamber, icChamber;
 
   Float_t hits[3];
   Int_t   det;
 
   TLorentzVector p;
-  TClonesArray  &lhits = *fHits;
+
+  // Use pad plane as sensitive volume
+  TString  cIdSens = "L";
+  TString  cIdCurrent;
+  Char_t   cIdChamber[3];
+           cIdChamber[2] = 0;
+
+  const Int_t kNplan = AliTRDgeometry::Nplan();
 
   // Writing out hits enabled?
   if (!(fHitsOn)) return;
 
   // Use only charged tracks and count them only once per volume
   if (gMC->TrackCharge()    && 
-      gMC->IsTrackExiting()) {
+      gMC->IsTrackEntering()) {
     
     // Check on sensitive volume
-    iIdSens = gMC->CurrentVolID(icSens);
-    if (iIdSens == fIdSens) { 
+    cIdCurrent = gMC->CurrentVolName();
+    if (cIdSens == cIdCurrent[1]) {
 
       gMC->TrackPosition(p);
       for (Int_t i = 0; i < 3; i++) hits[i] = p[i];
@@ -214,29 +169,15 @@ void AliTRDv0::StepManager()
         phi = phi -  90.;
       sec = ((Int_t) (phi / 20));
 
-      // The chamber number 
-      //   0: outer left
-      //   1: middle left
-      //   2: inner
-      //   3: middle right
-      //   4: outer right
-      iIdChamber = gMC->CurrentVolOffID(1,icChamber);
-      if      (iIdChamber == fIdChamber1)
-        cha = (hits[2] < 0 ? 0 : 4);
-      else if (iIdChamber == fIdChamber2)       
-        cha = (hits[2] < 0 ? 1 : 3);
-      else if (iIdChamber == fIdChamber3)       
-        cha = 2;
-
-      // The plane number (0 - 5)
-      pla = icChamber - TMath::Nint((Float_t) (icChamber / 7)) * 6 - 1;
+      // The plane and chamber number
+      cIdChamber[0] = cIdCurrent[2];
+      cIdChamber[1] = cIdCurrent[3];
+      Int_t idChamber = atoi(cIdChamber);
+      cha = ((Int_t) idChamber / kNplan);
+      pla = ((Int_t) idChamber % kNplan);
       det = fGeometry->GetDetector(pla,cha,sec);
 
-      new(lhits[fNhits++]) AliTRDhit(fIshunt
-                                    ,gAlice->CurrentTrack()
-                                    ,det
-                                    ,hits
-                                    ,0);
+      AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(),det,hits,0,kTRUE);       
 
     }