Bug fixed in the StepManager to account for the difference in the geometry tree for...
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 16 May 2001 08:17:49 +0000 (08:17 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 16 May 2001 08:17:49 +0000 (08:17 +0000)
ITS/AliITSgeomSDD.cxx
ITS/AliITSgeomSDD.h
ITS/AliITSgeomSPD.cxx
ITS/AliITSgeomSPD.h
ITS/AliITSgeomSSD.cxx
ITS/AliITSgeomSSD.h
ITS/AliITSvPPRasymm.cxx
ITS/AliITSvPPRsymm.cxx

index 9cb3b3b..973f061 100644 (file)
 
 /*
 $Log$
+Revision 1.10  2001/02/09 00:00:57  nilsen
+Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
+bugs in iostream based streamers used to read and write .det files. Fixed
+some detector sizes. Fixed bugs in some default-special constructors.
+
 Revision 1.9  2001/02/03 00:00:30  nilsen
 New version of AliITSgeom and related files. Now uses automatic streamers,
 set up for new formatted .det file which includes detector information.
@@ -283,6 +288,11 @@ istream &operator>>(istream &is,AliITSgeomSDD &r){
 //======================================================================
 /*
 $Log$
+Revision 1.10  2001/02/09 00:00:57  nilsen
+Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
+bugs in iostream based streamers used to read and write .det files. Fixed
+some detector sizes. Fixed bugs in some default-special constructors.
+
 Revision 1.9  2001/02/03 00:00:30  nilsen
 New version of AliITSgeom and related files. Now uses automatic streamers,
 set up for new formatted .det file which includes detector information.
@@ -297,8 +307,12 @@ Additional smaller modifications are still to come.
 ClassImp(AliITSgeomSDD256)
 
 AliITSgeomSDD256::AliITSgeomSDD256() : AliITSgeomSDD(){
+    // Default Constructor
+}
+//----------------------------------------------------------------------
+AliITSgeomSDD256::AliITSgeomSDD256(Int_t npar,Float_t *par) : AliITSgeomSDD(){
 ////////////////////////////////////////////////////////////////////////
-//    default constructor
+//    constructor
 /*
 Pads for probe cards in ALICE-D2       /05.03.2000/
 (X,Y) coordinates are quoted in microns and referred to the centers of 
@@ -705,7 +719,7 @@ _____________________________________________
 //    cout << "AliITSgeomSDD256 default creator called: start" << end;
     AnodeLowEdges[0] = kAnodesZ;
     for(i=0;i<kNAnodes;i++) AnodeLowEdges[i+1] = kAnodePitch+AnodeLowEdges[i];
-    AliITSgeomSDD::ResetSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
+    AliITSgeomSDD::ResetSDD(par,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
                            kNAnodes+1,AnodeLowEdges,
                            kNAnodes+1,AnodeLowEdges);
 //    cout << "AliITSgeomSDD256 default creator called: end" << endl;
@@ -731,6 +745,11 @@ istream &operator>>(istream &is,AliITSgeomSDD256 &r){
 //======================================================================
 /*
 $Log$
+Revision 1.10  2001/02/09 00:00:57  nilsen
+Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
+bugs in iostream based streamers used to read and write .det files. Fixed
+some detector sizes. Fixed bugs in some default-special constructors.
+
 Revision 1.9  2001/02/03 00:00:30  nilsen
 New version of AliITSgeom and related files. Now uses automatic streamers,
 set up for new formatted .det file which includes detector information.
index dd43267..67c6bb2 100644 (file)
@@ -91,6 +91,7 @@ class AliITSgeomSDD256 : public AliITSgeomSDD {
 
  public:
     AliITSgeomSDD256();
+    AliITSgeomSDD256(Int_t npar,Float_t *par);
 
     // This clas now has version 0 so that it will not be written to a root
     // file. This is good since there are no longer any data members to this
index e43bc85..b3f72df 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.10  2001/04/26 22:44:34  nilsen
+Bug fix.
+
 Revision 1.9  2001/02/09 00:00:57  nilsen
 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
 bugs in iostream based streamers used to read and write .det files. Fixed
@@ -215,6 +218,9 @@ istream &operator>>(istream &is,AliITSgeomSPD &r){
 
 /*
 $Log$
+Revision 1.10  2001/04/26 22:44:34  nilsen
+Bug fix.
+
 Revision 1.9  2001/02/09 00:00:57  nilsen
 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
 bugs in iostream based streamers used to read and write .det files. Fixed
@@ -309,6 +315,9 @@ istream &operator>>(istream &is,AliITSgeomSPD300 &r){
 //=====================================================================
 /*
 $Log$
+Revision 1.10  2001/04/26 22:44:34  nilsen
+Bug fix.
+
 Revision 1.9  2001/02/09 00:00:57  nilsen
 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
 bugs in iostream based streamers used to read and write .det files. Fixed
@@ -341,13 +350,23 @@ Fixed bug in copy and operator =.
 
 ClassImp(AliITSgeomSPD425Short)
 
-AliITSgeomSPD425Short::AliITSgeomSPD425Short(){
+AliITSgeomSPD425Short::AliITSgeomSPD425Short() : AliITSgeomSPD(){
 ////////////////////////////////////////////////////////////////////////
 //    default constructor, for ITS post TDR geometry. This only consists of
 // a default constructor to construct the defalut post TDR SPD detector 
 // geometry 256 X 197 425 by 50 micron pixels with interleaved 625 by 50
 // micron pixels (large detector).
 ////////////////////////////////////////////////////////////////////////
+}
+//----------------------------------------------------------------------
+AliITSgeomSPD425Short::AliITSgeomSPD425Short(Int_t npar,Float_t *par) :
+                                                              AliITSgeomSPD(){
+////////////////////////////////////////////////////////////////////////
+//    Standard constructor, for ITS post TDR geometry. This only consists of
+// a default constructor to construct the defalut post TDR SPD detector 
+// geometry 256 X 197 425 by 50 micron pixels with interleaved 625 by 50
+// micron pixels (large detector).
+////////////////////////////////////////////////////////////////////////
 
     const Float_t kdx=0.6400,kdy=0.015,kdz=3.480;   // cm; Standard pixel
                                                     // detector size is 2dx
@@ -358,7 +377,7 @@ AliITSgeomSPD425Short::AliITSgeomSPD425Short(){
     const Int_t   knbinx = 256;    // number of pixels along x direction.
     const Float_t kbinz0 = 0.0425; // cm; Standard pixel size in z direction.
     const Float_t kbinz1 = 0.0625; // cm; Special pixel size in z direction.
-    const Int_t   knbinz = 161;    // number of pixels along z direction.
+    const Int_t   knbinz = 160;    // number of pixels along z direction.
     Int_t i;
     Float_t dx,dz,*binSizeX,*binSizeZ;
 
@@ -389,7 +408,8 @@ AliITSgeomSPD425Short::AliITSgeomSPD425Short(){
     for(i=0;i<knbinz;i++) dz += binSizeZ[i];
     dz *= 0.5;
 
-    SetShape("ActiveSPD","Active volume of SPD","SPD SI DET",dx,kdy,dz);
+    SetShape("ActiveSPD","Active volume of SPD","SPD SI DET",
+            par[0],par[1],par[2]);
     if(TMath::Abs(dx-kdx)>1.0E-4 || TMath::Abs(dz-kdz)>1.0E-4) 
        Warning("Default Creator","Detector size may not be write.");
 
@@ -422,6 +442,9 @@ istream &operator>>(istream &is,AliITSgeomSPD425Short &r){
 
 /*
 $Log$
+Revision 1.10  2001/04/26 22:44:34  nilsen
+Bug fix.
+
 Revision 1.9  2001/02/09 00:00:57  nilsen
 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
 bugs in iostream based streamers used to read and write .det files. Fixed
index a20c049..39e8c4a 100644 (file)
@@ -126,6 +126,7 @@ class AliITSgeomSPD425Short : public AliITSgeomSPD {
 
  public:
     AliITSgeomSPD425Short();
+    AliITSgeomSPD425Short(Int_t npar,Float_t *par);
 
     // This clas now has version 0 so that it will not be written to a root
     // file. This is good since there are no longer any data members to this
index 3758509..592857d 100644 (file)
 
 /*
 $Log$
+Revision 1.10  2001/02/09 00:00:57  nilsen
+Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
+bugs in iostream based streamers used to read and write .det files. Fixed
+some detector sizes. Fixed bugs in some default-special constructors.
+
 Revision 1.9  2001/02/03 00:00:30  nilsen
 New version of AliITSgeom and related files. Now uses automatic streamers,
 set up for new formatted .det file which includes detector information.
@@ -248,6 +253,11 @@ istream &operator>>(istream &is,AliITSgeomSSD &r){
 //======================================================================
 /*
 $Log$
+Revision 1.10  2001/02/09 00:00:57  nilsen
+Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
+bugs in iostream based streamers used to read and write .det files. Fixed
+some detector sizes. Fixed bugs in some default-special constructors.
+
 Revision 1.9  2001/02/03 00:00:30  nilsen
 New version of AliITSgeom and related files. Now uses automatic streamers,
 set up for new formatted .det file which includes detector information.
@@ -311,6 +321,11 @@ istream &operator>>(istream &is,AliITSgeomSSD175 &r){
 //======================================================================
 /*
 $Log$
+Revision 1.10  2001/02/09 00:00:57  nilsen
+Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
+bugs in iostream based streamers used to read and write .det files. Fixed
+some detector sizes. Fixed bugs in some default-special constructors.
+
 Revision 1.9  2001/02/03 00:00:30  nilsen
 New version of AliITSgeom and related files. Now uses automatic streamers,
 set up for new formatted .det file which includes detector information.
@@ -326,6 +341,10 @@ AliITSgeomSSD275and75::AliITSgeomSSD275and75() : AliITSgeomSSD(){
 ////////////////////////////////////////////////////////////////////////
 //    default constructor
 ////////////////////////////////////////////////////////////////////////
+}
+//----------------------------------------------------------------------
+AliITSgeomSSD275and75::AliITSgeomSSD275and75(Int_t npar,Float_t *par) : 
+                                                            AliITSgeomSSD(){
     const Float_t kDxyz[] ={3.6500,0.0150,2.000};//cm. (Geant 3.12 units)
     // Size of sensitive detector area x,y(thickness),z
     const Float_t kangleA  = 0.0275; // angle in rad. of anode and cathodes
@@ -348,7 +367,7 @@ AliITSgeomSSD275and75::AliITSgeomSSD275and75() : AliITSgeomSSD(){
     leA[kNstrips] =  kDxyz[0];
     leC[kNstrips] = -kDxyz[0];
 //    cout << "AliITSgeomSSD275and75 default creator called: start" << endl;
-    AliITSgeomSSD::ResetSSD(kDxyz,kangleA,kangleC,
+    AliITSgeomSSD::ResetSSD(par,kangleA,kangleC,
                                 kNstrips+1,leA,kNstrips+1,leC);
     delete leA;
     delete leC;
@@ -375,6 +394,11 @@ istream &operator>>(istream &is,AliITSgeomSSD275and75 &r){
 //======================================================================
 /*
 $Log$
+Revision 1.10  2001/02/09 00:00:57  nilsen
+Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
+bugs in iostream based streamers used to read and write .det files. Fixed
+some detector sizes. Fixed bugs in some default-special constructors.
+
 Revision 1.9  2001/02/03 00:00:30  nilsen
 New version of AliITSgeom and related files. Now uses automatic streamers,
 set up for new formatted .det file which includes detector information.
@@ -389,6 +413,9 @@ AliITSgeomSSD75and275::AliITSgeomSSD75and275() : AliITSgeomSSD(){
 ////////////////////////////////////////////////////////////////////////
 //    default constructor
 ////////////////////////////////////////////////////////////////////////
+}
+AliITSgeomSSD75and275::AliITSgeomSSD75and275(Int_t npar,Float_t *par) : 
+                                                            AliITSgeomSSD(){
     const Float_t kDxyz[] ={3.6500,0.0150,2.000};//cm. (Geant 3.12 units)
     // Size of sensitive detector area x,y(thickness),z
     const Float_t kangleA  = 0.0075; // angle in rad. of anode and cathodes
@@ -411,7 +438,7 @@ AliITSgeomSSD75and275::AliITSgeomSSD75and275() : AliITSgeomSSD(){
     leA[kNstrips] =  kDxyz[0];
     leC[kNstrips] = -kDxyz[0];
 //    cout << "AliITSgeomSSD275and75 default creator called: start" << endl;
-    AliITSgeomSSD::ResetSSD(kDxyz,kangleA,kangleC,
+    AliITSgeomSSD::ResetSSD(par,kangleA,kangleC,
                                 kNstrips+1,leA,kNstrips+1,leC);
     delete leA;
     delete leC;
index 0e5fc72..d4d6aa5 100644 (file)
@@ -130,6 +130,7 @@ class AliITSgeomSSD275and75 : public AliITSgeomSSD {
 
  public:
     AliITSgeomSSD275and75();
+    AliITSgeomSSD275and75(Int_t npar,Float_t *par);
 
     // This clas now has version 0 so that it will not be written to a root
     // file. This is good since there are no longer any data members to this
@@ -160,6 +161,7 @@ class AliITSgeomSSD75and275 : public AliITSgeomSSD {
 
  public:
     AliITSgeomSSD75and275();
+    AliITSgeomSSD75and275(Int_t npar,Float_t *par);
 
     // This clas now has version 0 so that it will not be written to a root
     // file. This is good since there are no longer any data members to this
index 8723e67..71f02a5 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.37  2001/05/10 00:12:59  nilsen
+Finished fixing up the default segmentation for the PPR geometry.
+
 Revision 1.36  2001/05/09 01:02:21  nilsen
 Finished fixing SetDefaults for the segmentation of SPD, SDD, and SSD.
 
@@ -4848,7 +4851,7 @@ void AliITSvPPRasymm::InitAliITSgeom(){
                        fITSgeom->CreatMatrix(mod,lay,lad,det,kSPD,t,r);
                        if(!(fITSgeom->IsShapeDefined((Int_t)kSPD)))
                              fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD425Short());
+                                         new AliITSgeomSPD425Short(npar,par));
                    } // end for det
                } // end for k
             } // end for j
@@ -4866,19 +4869,20 @@ void AliITSvPPRasymm::InitAliITSgeom(){
                    case 3: case 4:
                        fITSgeom->CreatMatrix(mod,lay,lad,det,kSDD,t,r);
                        if(!(fITSgeom->IsShapeDefined(kSDD))) 
-                           fITSgeom->ReSetShape(kSDD,new AliITSgeomSDD256());
+                           fITSgeom->ReSetShape(kSDD,
+                                            new AliITSgeomSDD256(npar,par));
                            break;
                        case 5:
                            fITSgeom->CreatMatrix(mod,lay,lad,det,kSSD,t,r);
                            if(!(fITSgeom->IsShapeDefined(kSSD))) 
                                fITSgeom->ReSetShape(kSSD,
-                                                  new AliITSgeomSSD275and75());
+                                         new AliITSgeomSSD275and75(npar,par));
                            break;
                        case 6:
                            fITSgeom->CreatMatrix(mod,lay,lad,det,kSSDp,t,r);
                            if(!(fITSgeom->IsShapeDefined(kSSDp))) 
                                fITSgeom->ReSetShape(kSSDp,
-                                                  new AliITSgeomSSD75and275());
+                                         new AliITSgeomSSD75and275(npar,par));
                            break;
                        } // end switch
                } // end for det
@@ -4958,7 +4962,7 @@ void AliITSvPPRasymm::SetDefaults(){
     iDetType=DetType(1);
     s1 = (AliITSgeomSDD*) fITSgeom->GetShape(kSDD);// Get shape info. Do it this way for now.
     AliITSresponseSDD *resp1=new AliITSresponseSDD();
-    resp1->SetDriftSpeed(5.665); // set drift speed to 5.665 microns/ns.
+    resp1->SetDriftSpeed(7.3); // set drift speed to 7.3 microns/ns.
     SetResponseModel(1,resp1);
     AliITSsegmentationSDD *seg1=new AliITSsegmentationSDD(fITSgeom,resp1);
     seg1->SetDetSize(s1->GetDx()*kconv, // base this on AliITSgeomSDD
@@ -5086,22 +5090,22 @@ void AliITSvPPRasymm::StepManager(){
   // Only entering charged tracks
   if((id = gMC->CurrentVolID(copy)) == fIdSens[0]) {
       vol[0] = 1;
-      id = gMC->CurrentVolOffID(0,copy);
+      id = gMC->CurrentVolOffID(2,copy);
       //detector copy in the ladder = 1<->4  (ITS1 < I101 < I103 < I10A)
       vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
+      gMC->CurrentVolOffID(3,copy1);
       //ladder copy in the module   = 1<->2  (I10A < I12A)
-      gMC->CurrentVolOffID(2,copy2);
+      gMC->CurrentVolOffID(4,copy2);
       //module copy in the layer    = 1<->10 (I12A < IT12)
       vol[2] = copy1+(copy2-1)*2;//# of ladders in one module  = 2
   } else if(id == fIdSens[1]){
       vol[0] = 2;
-      id = gMC->CurrentVolOffID(0,copy);
+      id = gMC->CurrentVolOffID(2,copy);
       //detector copy in the ladder = 1<->4  (ITS2 < I1D1 < I1D3 < I20A)
       vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
+      gMC->CurrentVolOffID(3,copy1);
       //ladder copy in the module   = 1<->4  (I20A < I12A)
-      gMC->CurrentVolOffID(2,copy2);
+      gMC->CurrentVolOffID(4,copy2);
       //module copy in the layer    = 1<->10 (I12A < IT12)
       vol[2] = copy1+(copy2-1)*4;//# of ladders in one module  = 4
   } else if(id == fIdSens[2]){
index fd065fd..154406d 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.21  2001/05/10 00:12:59  nilsen
+Finished fixing up the default segmentation for the PPR geometry.
+
 Revision 1.20  2001/05/09 01:02:22  nilsen
 Finished fixing SetDefaults for the segmentation of SPD, SDD, and SSD.
 
@@ -4793,7 +4796,7 @@ void AliITSvPPRsymm::InitAliITSgeom(){
                        fITSgeom->CreatMatrix(mod,lay,lad,det,kSPD,t,r);
                        if(!(fITSgeom->IsShapeDefined((Int_t)kSPD)))
                              fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD425Short());
+                                        new AliITSgeomSPD425Short(npar,par));
                    } // end for det
                } // end for k
             } // end for j
@@ -4811,19 +4814,20 @@ void AliITSvPPRsymm::InitAliITSgeom(){
                    case 3: case 4:
                        fITSgeom->CreatMatrix(mod,lay,lad,det,kSDD,t,r);
                        if(!(fITSgeom->IsShapeDefined(kSDD))) 
-                           fITSgeom->ReSetShape(kSDD,new AliITSgeomSDD256());
+                           fITSgeom->ReSetShape(kSDD,
+                                             new AliITSgeomSDD256(npar,par));
                            break;
                        case 5:
                            fITSgeom->CreatMatrix(mod,lay,lad,det,kSSD,t,r);
                            if(!(fITSgeom->IsShapeDefined(kSSD))) 
                                fITSgeom->ReSetShape(kSSD,
-                                                  new AliITSgeomSSD275and75());
+                                         new AliITSgeomSSD275and75(npar,par));
                            break;
                        case 6:
                            fITSgeom->CreatMatrix(mod,lay,lad,det,kSSDp,t,r);
                            if(!(fITSgeom->IsShapeDefined(kSSDp))) 
                                fITSgeom->ReSetShape(kSSDp,
-                                                  new AliITSgeomSSD75and275());
+                                          new AliITSgeomSSD75and275(npar,par));
                            break;
                        } // end switch
                } // end for det
@@ -4903,7 +4907,7 @@ void AliITSvPPRsymm::SetDefaults(){
     iDetType=DetType(1);
     s1 = (AliITSgeomSDD*) fITSgeom->GetShape(kSDD);// Get shape info. Do it this way for now.
     AliITSresponseSDD *resp1=new AliITSresponseSDD();
-    resp1->SetDriftSpeed(5.665); // set drift speed to 5.665 microns/ns.
+    resp1->SetDriftSpeed(7.3); // set drift speed to 7.3 microns/ns.
     SetResponseModel(1,resp1);
     AliITSsegmentationSDD *seg1=new AliITSsegmentationSDD(fITSgeom,resp1);
     seg1->SetDetSize(s1->GetDx()*kconv, // base this on AliITSgeomSDD
@@ -5031,22 +5035,22 @@ void AliITSvPPRsymm::StepManager(){
   // Only entering charged tracks
   if((id = gMC->CurrentVolID(copy)) == fIdSens[0]) {
       vol[0] = 1;
-      id = gMC->CurrentVolOffID(0,copy);
+      id = gMC->CurrentVolOffID(2,copy);
       //detector copy in the ladder = 1<->4  (ITS1 < I101 < I103 < I10A)
       vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
+      gMC->CurrentVolOffID(3,copy1);
       //ladder copy in the module   = 1<->2  (I10A < I12A)
-      gMC->CurrentVolOffID(2,copy2);
+      gMC->CurrentVolOffID(4,copy2);
       //module copy in the layer    = 1<->10 (I12A < IT12)
       vol[2] = copy1+(copy2-1)*2;//# of ladders in one module  = 2
   } else if(id == fIdSens[1]){
       vol[0] = 2;
-      id = gMC->CurrentVolOffID(0,copy);
+      id = gMC->CurrentVolOffID(2,copy);
       //detector copy in the ladder = 1<->4  (ITS2 < I1D1 < I1D3 < I20A)
       vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
+      gMC->CurrentVolOffID(3,copy1);
       //ladder copy in the module   = 1<->4  (I20A < I12A)
-      gMC->CurrentVolOffID(2,copy2);
+      gMC->CurrentVolOffID(4,copy2);
       //module copy in the layer    = 1<->10 (I12A < IT12)
       vol[2] = copy1+(copy2-1)*4;//# of ladders in one module  = 4
   } else if(id == fIdSens[2]){