minor Update of SPD test beam simulation.
authornilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Feb 2004 16:03:58 +0000 (16:03 +0000)
committernilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Feb 2004 16:03:58 +0000 (16:03 +0000)
ITS/AliITSvSPD02.cxx
ITS/AliITSvSPD02.h
ITS/ConfigSPD02.C
ITS/TestSPD.C

index 98cd20d..53f35ab 100644 (file)
@@ -76,16 +76,18 @@ AliITSvSPD02::AliITSvSPD02() {
     fGeomDetIn    = kFALSE; // Don't Read .det file
     fMajorVersion = IsVersion();
     fMinorVersion = -1;
+    fGeomNumber   = 2002; // default value
     for(i=0;i<60;i++) fRead[i] = '\0';
     for(i=0;i<60;i++) fWrite[i] = '\0';
     for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
 }
 //______________________________________________________________________
-AliITSvSPD02::AliITSvSPD02(const char *title) : AliITS("ITS", title){
+AliITSvSPD02::AliITSvSPD02(const char *title,Int_t gn) : AliITS("ITS", title){
     ////////////////////////////////////////////////////////////////////////
     //    Standard constructor for the ITS SPD testbeam 2002 version 1.
     // Inputs:
     //    const char *title    title for this ITS geometry.
+    //    Int_t      gn        Geometry version number (year) default 2002.
     // Outputs:
     //    none.
     // Return:
@@ -93,6 +95,7 @@ AliITSvSPD02::AliITSvSPD02(const char *title) : AliITS("ITS", title){
     ////////////////////////////////////////////////////////////////////////
     Int_t i;
 
+    fGeomNumber = gn;
     fIdN = 2;
     fIdName = new TString[fIdN];
     fIdName[0] = "IMBS";
@@ -180,6 +183,38 @@ void AliITSvSPD02::BuildGeometry(){
     //    none.
     ////////////////////////////////////////////////////////////////////////
     // Get the top alice volume.
+
+    switch (fGeomNumber){
+    case 2002:
+        BuildGeometry2002();
+        break;
+    default:
+        BuildGeometry2002();
+        break;
+    } // end switch
+}
+//______________________________________________________________________
+void AliITSvSPD02::BuildGeometry2002(){
+    ////////////////////////////////////////////////////////////////////////
+    //    Geometry builder for the ITS SPD test beam 2002 version 1.
+    //    ALIC    ALICE Mother Volume
+    //     |- ITSV     ITS Mother Volume
+    //         |- IDET       Detector under Test
+    //         |   |- ITS0       SPD Si Chip
+    //         |   |  |- ITST      SPD Sensitivve Volume
+    //         |   |- IPC0 *5    Readout chip
+    //         |- ITEL *4    SPD Telescope
+    //             |- IMB0       SPD Si Chip
+    //             |   |- IMBS     SPD Sensitive volume
+    //             |- ICMB       Chip MiniBus.
+    // Inputs:
+    //    none.
+    // Outputs:
+    //    none.
+    // Return:
+    //    none.
+    ////////////////////////////////////////////////////////////////////////
+    // Get the top alice volume.
     TNode *aALIC = gAlice->GetGeometry()->GetNode("alice");
     aALIC->cd();
 
@@ -314,6 +349,37 @@ void AliITSvSPD02::CreateGeometry(){
     // Return:
     //    none.
     ////////////////////////////////////////////////////////////////////////
+
+    switch (fGeomNumber){
+    case 2002:
+        CreateGeometry2002();
+        break;
+    default:
+        CreateGeometry2002();
+        break;
+    } // end switch
+}
+//______________________________________________________________________
+void AliITSvSPD02::CreateGeometry2002(){
+    ////////////////////////////////////////////////////////////////////////
+    //  This routine defines and Creates the geometry for version 1 of the ITS.
+    //    ALIC    ALICE Mother Volume
+    //     |- ITSV     ITS Mother Volume
+    //         |- IDET       Detector under Test
+    //         |   |- ITS0       SPD Si Chip
+    //         |   |  |- ITST      SPD Sensitivve Volume
+    //         |   |- IPC0 *5    Readout chip
+    //         |- ITEL *4    SPD Telescope
+    //             |- IMB0       SPD Si Chip
+    //             |   |- IMBS     SPD Sensitive volume
+    //             |- ICMB       Chip MiniBus.
+    // Inputs:
+    //    none.
+    // Outputs:
+    //    none.
+    // Return:
+    //    none.
+    ////////////////////////////////////////////////////////////////////////
     Float_t data[49];
     // Define media off-set
     Int_t *idtmed = fIdtmed->GetArray()+1; // array of media indexes
@@ -426,6 +492,37 @@ void AliITSvSPD02::CreateMaterials(){
     // Return:
     //    none.
     /////////////////////////////////////////////////////////////////////////
+
+    switch (fGeomNumber){
+    case 2002:
+        CreateMaterials2002();
+        break;
+    default:
+        CreateMaterials2002();
+        break;
+    } // end switch
+}
+//______________________________________________________________________
+void AliITSvSPD02::CreateMaterials2002(){
+    ////////////////////////////////////////////////////////////////////////
+    //
+    // Create ITS SPD test beam materials
+    //     This function defines the default materials used in the Geant
+    // Monte Carlo simulations for the geometries AliITSv1, AliITSv3,
+    // AliITSvSPD02.
+    // In general it is automatically replaced by
+    // the CreatMaterials routine defined in AliITSv?. Should the function
+    // CreateMaterials not exist for the geometry version you are using this
+    // one is used. See the definition found in AliITSv5 or the other routine
+    // for a complete definition.
+    //
+    // Inputs:
+    //    none.
+    // Outputs:
+    //    none.
+    // Return:
+    //    none.
+    /////////////////////////////////////////////////////////////////////////
     Float_t tmaxfdSi = 0.1; // Degree
     Float_t stemaxSi = 0.0075; // cm
     Float_t deemaxSi = 0.1; // Fraction of particle's energy 0<deemax<=1
index 5b27c61..eb0f9e9 100644 (file)
@@ -13,7 +13,7 @@
 class AliITSvSPD02 : public AliITS{
  public:
     AliITSvSPD02(); // default constructor
-    AliITSvSPD02(const char *title); // standard constructor
+    AliITSvSPD02(const char *title,Int_t geomnum=2002); // standard constructor
     AliITSvSPD02(const AliITSvSPD02 &source); // Copy constructor
     AliITSvSPD02& operator=(const AliITSvSPD02 &source); // = operator
     virtual ~AliITSvSPD02(); // destructor
@@ -22,7 +22,7 @@ class AliITSvSPD02 : public AliITS{
     virtual void   CreateMaterials();
     virtual Int_t  IsVersion() const {// returns the ITS version number 
                                       return 1;} 
-    virtual void   Init(); 
+    virtual void   Init();
     virtual void   SetDefaults();
     virtual void   DrawModule() const;
     virtual void   StepManager(); 
@@ -54,6 +54,11 @@ class AliITSvSPD02 : public AliITS{
          fChip2 = v;}
     // Replacement default simulation initilization.
     virtual void SetDefaultSimulation();
+    //
+  private:
+    void BuildGeometry2002();
+    void CreateGeometry2002();
+    void CreateMaterials2002();
 
  private:  
     void InitAliITSgeom();
@@ -61,6 +66,7 @@ class AliITSvSPD02 : public AliITS{
     Bool_t fGeomDetIn;        // Flag to read .det file or directly from Geat.
     Int_t  fMajorVersion;     // Major version number == IsVersion
     Int_t  fMinorVersion;     // Minor version number 
+    Int_t  fGeomNumber;       // Geometry version number (year)
     char   fEuclidGeomDet[60];// file where detector transormation are define.
     char   fRead[60];         //! file name to read .det file
     char   fWrite[60];        //! file name to write .det file 
@@ -70,6 +76,6 @@ class AliITSvSPD02 : public AliITS{
     Float_t  fChip2;          // thickness of chip in SPD layer 2 
     Int_t fIDMother;          //! ITS Mother Volume id.
 
-    ClassDef(AliITSvSPD02,1) // Hits manager and geometry for SPD testbeam
+    ClassDef(AliITSvSPD02,2) // Hits manager and geometry for SPD testbeam
 };
 #endif
index 48154f9..efa9341 100644 (file)
@@ -114,7 +114,7 @@ void Config(){
     } // end if
     if(iITS) {
        //=================== ITS parameters ============================
-       AliITSvSPD02 *ITS  = new AliITSvSPD02("SPD test beam 2002");
+       AliITSvSPD02 *ITS  = new AliITSvSPD02("SPD test beam 2002",2002);
     }
     return;
 }
index 2977718..8eca905 100644 (file)
@@ -1,23 +1,39 @@
-Int_t TestSPD(Int_t n = 5){
-   Int_t rc=0;
-
+Int_t TestSPD(Int_t n = 10,Char_t SlowOrFast='s'){
+   
    AliLoader::SetDebug(kTRUE);//set it to kTRUE for debug print-out
    gAlice->SetDebug(100);
    /**********************************************/
    /************ G E N E R A T I O N *************/
    /**********************************************/
-
+      
    gROOT->LoadMacro("$(ALICE_ROOT)/macros/grun.C");
-   grun(n,"ConfigSPD02.C");
+   grun(n,"$(ALICE_ROOT)/ITS/ConfigSPD02.C");
 
+  
    /**********************************************/
    /******************* I T S ********************/
    /**********************************************/
-   gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSHits2SDigits.C");
-   AliITSHits2SDigits();
-   gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSSDigits2Digits.C");
-   AliITSSDigits2Digits();
-   gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSDigits2RecPoints.C");
-   AliITSDigits2RecPoints();
+   //The following part is just core of AliITStestV2.C
+   if (SlowOrFast=='f') {
+      cerr<<"Fast AliITSRecPoint(s) !\n";
+      gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSHits2FastRecPoints.C");
+      AliITSHits2FastRecPoints();
+   } else {
+      cerr<<"Slow AliITSRecPoint(s) !\n";
+      gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSHits2SDigits.C");
+      AliITSHits2SDigits();
+      gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSSDigits2Digits.C");
+      AliITSSDigits2Digits();
+      gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSDigits2RecPoints.C");
+      AliITSDigits2RecPoints();
+   }
+        // The following may not work properly.
+//   gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSFindClustersV2.C");
+//   if (rc=AliITSFindClustersV2(SlowOrFast)) return rc;
+
+//   gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSFindTracksV2.C");
+//   if (rc=AliITSFindTracksV2()) return rc;
 
+   ::Info("NewIO test","Everything seems to be OK");   
+   ::Info("NewIO test","You can try now display.C");
 }