]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ACORDE/AliACORDEv1.cxx
Crucial bug-fix. The raw-data events should be never skipped inside the QA data makers
[u/mrichter/AliRoot.git] / ACORDE / AliACORDEv1.cxx
index cc9fec34017af47c193b1b307d9367750c000dd0..ad80e77e691405af35e385b162e9bd3b7336f801 100644 (file)
 //                                                                           //
 // ALICE Cosmic Ray Trigger                                                  //
 //                                                                           //
-//  This class contains the functions for version 0 of the ALICE Cosmic Ray  //
-//  Trigger. This version will be used to simulation comic rays in alice with//
-//  all the detectors. It include geometry and hits (position and momentum)  //
+//  This class contains the functions for final version of the ALICE Cosmic  //
+//  Ray Trigger. This version will be used to simulation comic rays in alice //
+//  with all the detectors.                                                 //
+//  It include geometry and hits (position and momentum)                     //
 //                                                                           //
 //                  Send comments to:                                        //
 //                                                                          //
 //      Arturo Fernandez Tellez        <afernand@fcfm.buap.mx>              //
-//      Enrique Gamez                  <egamez@fcfm.buap.mx>                //
 //      Eleazar Cuautle Flores         <ecuautle@nucleares.unam.mx>         //
 //     Mario Rodriguez Cahuantzi       <mrodrigu@mail.cern.ch>              // 
 //                                                                          //
 //                     Puebla, Pue. Mexico December 2007                    //
+//                                                                          //
+//     Last Update: Aug. 4th 2008                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
 
-//
 #include <Riostream.h>
 #include <TGeoMatrix.h>
 #include <TGeometry.h>
 #include <TMath.h>
-//#include <TNode.h>
 #include <TTUBE.h>
-//#include <TVirtualMC.h>
 #include <TString.h>
 #include <TSystem.h>
 
 #include "TGeoManager.h"
 #include "TGeoVolume.h"
 #include "TGeoPcon.h"
-//#include "TGeoTube.h"
 #include "TGeoPgon.h"
 #include "TGeoTrd1.h"
 #include "TGeoCompositeShape.h"
 #include "TGeoPara.h"
-//
 
 #include "AliACORDEv1.h"
 #include <TClonesArray.h>
 #include <TLorentzVector.h>
 #include <TVirtualMC.h>
 #include <TPDGCode.h>
-//#include <TGeometry.h>
 #include <TBRIK.h>
 #include <TNode.h>
  
@@ -154,6 +150,7 @@ void AliACORDEv1::CreateCavern()
        CreateMolasse();
 }
 
+
 void AliACORDEv1::CreateShafts()
 {
 
@@ -544,13 +541,11 @@ void AliACORDEv1::CreateAcorde()
   // |         ACORDE8--> Volume for supports                                       |  
   // |          ACORDE9--> Volume for supports                                      |          
   // |         ACORDE_SUPPORT--> Volume that contains a full Acorde's support       |
-  // |         ACORDE_MODULE--> Volume that contains a full Acorde's module         |  
+  // |         ALL_ACORDE_MODULES--> Volume that contains ALL Acorde's module       |  
+  // |          ACORDE_MODULE--> Volume that represents ONE Acorde-Module            |
   // |         ACORDE_1--> Volume that contains the bars&supports in-face           |
   // |         ACORDE_2--> Volume that contains the bars&supports up-face           |  
   // |         ACORDE_3--> Volume that contains the bars&supports out-face          |
-  // |         ACORDE_4--> Volume that contains the modules of ACORDE in-face       |
-  // |         ACORDE_5--> Volume that contains the modules of ACORDE up-face       |
-  // |         ACORDE_6--> Volume that contains the modules of ACORDE out-face      |
   // |                                                                              |  
   // |_______________________________________________________________________________|
 
@@ -567,18 +562,8 @@ void AliACORDEv1::CreateAcorde()
 
        //*** Support & Bars***
 
-       TGeoMaterial *matAl = new TGeoMaterial("Al", 26.98,13,2.7);
-       TGeoMedium *al = new TGeoMedium("Al",2, matAl);
-
-       //*** Scintillators ***
-
-       TGeoMixture *mat17 = new TGeoMixture("SCINTILLATOR",2,1.03200);
-       mat17->SetUniqueID(17);
-       mat17->DefineElement(0,12.01,6,0.9153266);
-       mat17->DefineElement(1,1.01,1,0.8467343E-01);
-       TGeoMedium *med6 = new TGeoMedium("SCINTILLATOR",6,17,1,0,0,1,
-                                         0.1000000E+11,0.3081371E-01,
-                                         0.1000000E-01,0.8135138E-02);
+       TGeoMedium* al    = gGeoManager->GetMedium("ACORDE_ALU_C0");
+       TGeoMedium* med6  = gGeoManager->GetMedium("ACORDE_CPV scint.1");
        
        //Define a FULL-ACORDE-VOLUME
 
@@ -590,11 +575,7 @@ void AliACORDEv1::CreateAcorde()
        TGeoVolume *inFace = new TGeoVolumeAssembly("ACORDE_1");
        TGeoVolume *upFace = new TGeoVolumeAssembly("ACORDE_2");
        TGeoVolume *outFace = new TGeoVolumeAssembly("ACORDE_3");
-
-       TGeoVolume *inFacem = new TGeoVolumeAssembly("ACORDE_4");
-       TGeoVolume *upFacem = new TGeoVolumeAssembly("ACORDE_5");
-       TGeoVolume *outFacem = new TGeoVolumeAssembly("ACORDE_6");
-
+       TGeoVolume *modules = new TGeoVolumeAssembly("ALL_ACORDE_MODULES");
 
        // Define global variables
 
@@ -649,15 +630,15 @@ void AliACORDEv1::CreateAcorde()
 
        // Here I define & construct a Master Volume ("ACORDE_MODULE") for one Module in ACORDE
 
-       TGeoVolume *module = new TGeoVolumeAssembly("ACORDE_MODULE");
-       module->AddNode(aCORDE1qa,1,new TGeoTranslation("aco1",0,0,13));
-       module->AddNode(aCORDE1qa,2,new TGeoTranslation("aco10",0,0,-13));
-       module->AddNode(aCORDE10,3,new TGeoTranslation("aco10",293/2+5,0,0));
-       module->AddNode(aCORDE10,4,new TGeoTranslation("aco10",-293/2-5,0,0));
+       TGeoVolume *acomodule = new TGeoVolumeAssembly("ACORDE_MODULE");
+       acomodule->AddNode(aCORDE1qa,1,new TGeoTranslation("aco1",0,0,13));
+       acomodule->AddNode(aCORDE1qa,2,new TGeoTranslation("aco10",0,0,-13));
+       acomodule->AddNode(aCORDE10,3,new TGeoTranslation("aco10",293/2+5,0,0));
+       acomodule->AddNode(aCORDE10,4,new TGeoTranslation("aco10",-293/2-5,0,0));
         placedAt = pbox[1]+constants->ProfileThickness()-constants->ModuleHeight()/2+small;
-       module->AddNode(aCORDE2,5,new TGeoTranslation("aco2",placedAt,0,0));
+       acomodule->AddNode(aCORDE2,5,new TGeoTranslation("aco2",placedAt,0,0));
         placedAt = placedAt + 2.0*pbox[1]+small;
-       module->AddNode(aCORDE2,6,new TGeoTranslation("aco2",placedAt,-1,0));
+       acomodule->AddNode(aCORDE2,6,new TGeoTranslation("aco2",placedAt,-1,0));
        Float_t w1 = 8;
 
        
@@ -666,49 +647,53 @@ void AliACORDEv1::CreateAcorde()
        // Put the Modules of In-Face
        
        count=1;
-       for(Int_t i=2;i<10;i++){
-
-               Float_t posx = constants->ModulePositionX(i-1);
-               Float_t posy = constants->ModulePositionY(i-1);
-               Float_t posz = constants->ModulePositionZ(i-1); 
+       for(Int_t i=1;i<9;i++){
 
-               inFacem->AddNode(module,i-1,
+               Float_t posx = constants->ModulePositionX(i);
+               Float_t posy = constants->ModulePositionY(i);
+               Float_t posz = constants->ModulePositionZ(i);   
+                Int_t moduleElectronicID = constants->ModuleElectronicChannel(i); 
+               
+               modules->AddNode(acomodule,moduleElectronicID,
                        new TGeoCombiTrans("aco01",posx,posy-w1,posz,idrotm232));
                count++;
 
        }
 
        count=9;
-       for(Int_t i=11;i<21;i++){
-               Float_t posx = constants->ModulePositionX(i-1);
-               Float_t posy = constants->ModulePositionY(i-1);
-               Float_t posz = constants->ModulePositionZ(i-1); 
+       for(Int_t i=10;i<20;i++){
+               Float_t posx = constants->ModulePositionX(i);
+               Float_t posy = constants->ModulePositionY(i);
+               Float_t posz = constants->ModulePositionZ(i);
+               Int_t moduleElectronicID = constants->ModuleElectronicChannel(i);       
 
-               inFacem->AddNode(module,i-1,
+               modules->AddNode(acomodule,moduleElectronicID,
                        new TGeoCombiTrans("aco01",posx,posy-w1,posz,idrotm232));
        }
 
        // Put he Modules of Up-Face
 
        count=1;
-       for(Int_t i=21;i<41;i++){
-               Float_t posx = constants->ModulePositionX(i-1);
-               Float_t posy = constants->ModulePositionY(i-1);
-               Float_t posz = constants->ModulePositionZ(i-1); 
+       for(Int_t i=20;i<40;i++){
+               Float_t posx = constants->ModulePositionX(i);
+               Float_t posy = constants->ModulePositionY(i);
+               Float_t posz = constants->ModulePositionZ(i);   
+               Int_t moduleElectronicID = constants->ModuleElectronicChannel(i); 
 
-               upFacem->AddNode(module,i-1,new TGeoTranslation("aco01",posx,posy,posz));
+               modules->AddNode(acomodule,moduleElectronicID,new TGeoTranslation("aco01",posx,posy,posz));
                count++;
        }
 
        // Put the Modules of Out-Face
 
        count=1;
-       for(Int_t i=41;i<51;i++){
-               Float_t posx = constants->ModulePositionX(i-1);
-               Float_t posy = constants->ModulePositionY(i-1);
-               Float_t posz = constants->ModulePositionZ(i-1); 
+       for(Int_t i=40;i<50;i++){
+               Float_t posx = constants->ModulePositionX(i);
+               Float_t posy = constants->ModulePositionY(i);
+               Float_t posz = constants->ModulePositionZ(i);   
+               Int_t moduleElectronicID = constants->ModuleElectronicChannel(i); 
 
-               outFacem->AddNode(module,i-1,
+               modules->AddNode(acomodule,moduleElectronicID,
                        new TGeoCombiTrans("aco01",posx,posy-w1,posz,idrotm231));
                count++;
        }
@@ -716,15 +701,17 @@ void AliACORDEv1::CreateAcorde()
        // Put the Modules of Out-Face
 
        count=11;
-       for(Int_t i=52;i<60;i++){
-               Float_t posx = constants->ModulePositionX(i-1);
-               Float_t posy = constants->ModulePositionY(i-1);
-               Float_t posz = constants->ModulePositionZ(i-1); 
+       for(Int_t i=51;i<59;i++){
+               Float_t posx = constants->ModulePositionX(i);
+               Float_t posy = constants->ModulePositionY(i);
+               Float_t posz = constants->ModulePositionZ(i);   
+               Int_t moduleElectronicID = constants->ModuleElectronicChannel(i); 
+
        if ((i==57) || (i==56))
-                outFacem->AddNode(module,i-1,
+                modules->AddNode(acomodule,moduleElectronicID,
                                        new TGeoCombiTrans("aco01",posx,posy-w1,posz-w1,idrotm231));
        else
-               outFacem->AddNode(module,i-1,
+               modules->AddNode(acomodule,moduleElectronicID,
                        new TGeoCombiTrans("aco01",posx,posy-w1,posz,idrotm231));
                count++;
        }
@@ -734,22 +721,22 @@ void AliACORDEv1::CreateAcorde()
 
        if (GetITSGeometry()) {
 
-               upFacem->AddNode(module,71,new TGeoTranslation("its1",
+               modules->AddNode(acomodule,constants->ModuleElectronicChannel(50),new TGeoTranslation("ITS-3",
                                constants->ExtraModulePositionX(),
                                constants->ExtraModulePositionY(),
                                constants->ExtraModulePositionZ(0)));
 
-               upFacem->AddNode(module,72,new TGeoTranslation("its2",
+               modules->AddNode(acomodule,constants->ModuleElectronicChannel(59),new TGeoTranslation("ITS-4",
                                constants->ExtraModulePositionX(),
                                constants->ExtraModulePositionY(),
                                constants->ExtraModulePositionZ(1)));
 
-               upFacem->AddNode(module,73,new TGeoTranslation("its3",
+               modules->AddNode(acomodule,constants->ModuleElectronicChannel(0),new TGeoTranslation("ITS-1",
                                constants->ExtraModulePositionX(),
                                constants->ExtraModulePositionY(),
                                constants->ExtraModulePositionZ(2)));
 
-               upFacem->AddNode(module,74,new TGeoTranslation("its4",
+               modules->AddNode(acomodule,constants->ModuleElectronicChannel(9),new TGeoTranslation("ITS-2",
                                constants->ExtraModulePositionX(),
                                constants->ExtraModulePositionY(),
                                constants->ExtraModulePositionZ(3)));
@@ -759,22 +746,22 @@ void AliACORDEv1::CreateAcorde()
        else {
 
 
-               upFacem->AddNode(module,61,new TGeoTranslation("its1",
+               modules->AddNode(acomodule,61,new TGeoTranslation("its1",
                                constants->ModulePositionX(0),
                                constants->ModulePositionY(0),
                                constants->ModulePositionZ(0)));
 
-               upFacem->AddNode(module,62,new TGeoTranslation("its2",
+               modules->AddNode(acomodule,62,new TGeoTranslation("its2",
                                constants->ModulePositionX(9),
                                constants->ModulePositionY(9),
                                constants->ModulePositionZ(9)));
 
-               upFacem->AddNode(module,63,new TGeoTranslation("its3",
+               modules->AddNode(acomodule,63,new TGeoTranslation("its3",
                                constants->ModulePositionX(50),
                                constants->ModulePositionY(50),
                                constants->ModulePositionZ(50)));
 
-               upFacem->AddNode(module,64,new TGeoTranslation("its4",
+               modules->AddNode(acomodule,64,new TGeoTranslation("its4",
                                constants->ModulePositionX(59),
                                constants->ModulePositionY(59),
                                constants->ModulePositionZ(59)));
@@ -966,38 +953,38 @@ void AliACORDEv1::CreateAcorde()
 
 
        count=24;
-       for(Int_t dy=0;dy<=4;dy++)
+       for(Int_t dyA=0;dyA<=4;dyA++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)+0.1*293*0.7071-56*0.7071-18+des;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-56*0.7071+3-des-q1+kro;
-               Float_t posz=constants->ModulePositionZ(dy);
-               Float_t posx2=constants->ModulePositionX(dy)-0.27*293*0.7071-56*0.7071-18+des;
-               Float_t posy2=constants->ModulePositionY(dy)+0.27*293*0.7071-56*0.7071+3-des-q1+kro;
-               TGeoCombiTrans *aco7q4 = new TGeoCombiTrans("aco7q4",posx1,posy1,posz,idrotm231);
-               TGeoCombiTrans *aco7q5 = new TGeoCombiTrans("aco7q5",posx2,posy2,posz,idrotm231);
+               Float_t posx1=constants->ModulePositionX(dyA)+0.1*293*0.7071-56*0.7071-18+des;
+               Float_t posy1=constants->ModulePositionY(dyA)-0.1*293*0.7071-56*0.7071+3-des-q1+kro;
+               Float_t posza=constants->ModulePositionZ(dyA);
+               Float_t posx2=constants->ModulePositionX(dyA)-0.27*293*0.7071-56*0.7071-18+des;
+               Float_t posy2=constants->ModulePositionY(dyA)+0.27*293*0.7071-56*0.7071+3-des-q1+kro;
+               TGeoCombiTrans *aco7q4 = new TGeoCombiTrans("aco7q4",posx1,posy1,posza,idrotm231);
+               TGeoCombiTrans *aco7q5 = new TGeoCombiTrans("aco7q5",posx2,posy2,posza,idrotm231);
                inFace->AddNode(aCORDE7,count,aco7q4);
                inFace->AddNode(aCORDE7,count+1,aco7q5);
                count=count+2;
-               dy++;
+               dyA++;
        }       
 
 
        count=34;
-       for(Int_t dy=5;dy<=9;dy++)
+       for(Int_t dyb=5;dyb<=9;dyb++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)+0.1*293*0.7071-56*0.7071-18+des;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-56*0.7071+3-des-q1+kro;
-               Float_t posz=constants->ModulePositionZ(dy+10);
-               Float_t posx2=constants->ModulePositionX(dy)-0.27*293*0.7071-56*0.7071-18+des;
-               Float_t posy2=constants->ModulePositionY(dy)+0.27*293*0.7071-56*0.7071+3-des-q1+kro;
-               TGeoCombiTrans *aco7q6 = new TGeoCombiTrans("aco7q6",posx1,posy1,posz,idrotm231);
-               TGeoCombiTrans *aco7q7 = new TGeoCombiTrans("aco7q7",posx2,posy2,posz,idrotm231);
+               Float_t posx1=constants->ModulePositionX(dyb)+0.1*293*0.7071-56*0.7071-18+des;
+               Float_t posy1=constants->ModulePositionY(dyb)-0.1*293*0.7071-56*0.7071+3-des-q1+kro;
+               Float_t poszb=constants->ModulePositionZ(dyb+10);
+               Float_t posx2=constants->ModulePositionX(dyb)-0.27*293*0.7071-56*0.7071-18+des;
+               Float_t posy2=constants->ModulePositionY(dyb)+0.27*293*0.7071-56*0.7071+3-des-q1+kro;
+               TGeoCombiTrans *aco7q6 = new TGeoCombiTrans("aco7q6",posx1,posy1,poszb,idrotm231);
+               TGeoCombiTrans *aco7q7 = new TGeoCombiTrans("aco7q7",posx2,posy2,poszb,idrotm231);
                inFace->AddNode(aCORDE7,count,aco7q6);
                inFace->AddNode(aCORDE7,count+1,aco7q7);
                count=count+2;
-               dy++;
+               dyb++;
        }       
 
 
@@ -1019,44 +1006,44 @@ void AliACORDEv1::CreateAcorde()
 
 
        count=48;
-       for(Int_t dy=10;dy<=14;dy++)
+       for(Int_t dyc=10;dyc<=14;dyc++)
 
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)+0.1*293*0.7071-56*0.7071-18+des;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-56*0.7071+3-des-0.8+kro;
-               Float_t posz=constants->ModulePositionZ(dy);
-               Float_t posx2=constants->ModulePositionX(dy)-0.27*293*0.7071-56*0.7071-18+des;
-               Float_t posy2=constants->ModulePositionY(dy)+0.27*293*0.7071-56*0.7071+3-des-1.5-0.8+kro;
+               Float_t posx1=constants->ModulePositionX(dyc)+0.1*293*0.7071-56*0.7071-18+des;
+               Float_t posy1=constants->ModulePositionY(dyc)-0.1*293*0.7071-56*0.7071+3-des-0.8+kro;
+               Float_t poszc=constants->ModulePositionZ(dyc);
+               Float_t posx2=constants->ModulePositionX(dyc)-0.27*293*0.7071-56*0.7071-18+des;
+               Float_t posy2=constants->ModulePositionY(dyc)+0.27*293*0.7071-56*0.7071+3-des-1.5-0.8+kro;
                TGeoRotation *rot1 = new TGeoRotation();
                rot1->RotateZ(70);
-               TGeoCombiTrans *aco7q12 = new TGeoCombiTrans("aco7q12",posx1,posy1,posz,idrotm231);
-               TGeoCombiTrans *aco7q13 = new TGeoCombiTrans("aco7q13",posx2+15,posy2-10,posz,rot1);
+               TGeoCombiTrans *aco7q12 = new TGeoCombiTrans("aco7q12",posx1,posy1,poszc,idrotm231);
+               TGeoCombiTrans *aco7q13 = new TGeoCombiTrans("aco7q13",posx2+15,posy2-10,poszc,rot1);
                inFace->AddNode(aCORDE7,count,aco7q12);
                inFace->AddNode(aCORDE7,count+1,aco7q13);// bars 25 grades
                count=count+2;
-               dy++;
+               dyc++;
        }
 
 
        count=57;
-       for(Int_t dy=15;dy<=19;dy++)
+       for(Int_t dyd=15;dyd<=19;dyd++)
 
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)+0.1*293*0.7071-56*0.7071-18+des;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-56*0.7071+3-des-q1-0.8+kro;
-               Float_t posz=constants->ModulePositionZ(dy);
-               Float_t posx2=constants->ModulePositionX(dy)-0.27*293*0.7071-56*0.7071-18+des;
-               Float_t posy2=constants->ModulePositionY(dy)+0.27*293*0.7071-56*0.7071+3-des-1.5-q1-0.8+kro;
+               Float_t posx1=constants->ModulePositionX(dyd)+0.1*293*0.7071-56*0.7071-18+des;
+               Float_t posy1=constants->ModulePositionY(dyd)-0.1*293*0.7071-56*0.7071+3-des-q1-0.8+kro;
+               Float_t poszd=constants->ModulePositionZ(dyd);
+               Float_t posx2=constants->ModulePositionX(dyd)-0.27*293*0.7071-56*0.7071-18+des;
+               Float_t posy2=constants->ModulePositionY(dyd)+0.27*293*0.7071-56*0.7071+3-des-1.5-q1-0.8+kro;
                TGeoRotation *rot1 = new TGeoRotation();
                rot1->RotateZ(70);
-               TGeoCombiTrans *aco7q14 = new TGeoCombiTrans("aco7q14",posx1,posy1,posz,idrotm231);
-               TGeoCombiTrans *aco7q15 = new TGeoCombiTrans("aco7q15",posx2+15,posy2-10,posz,rot1);
+               TGeoCombiTrans *aco7q14 = new TGeoCombiTrans("aco7q14",posx1,posy1,poszd,idrotm231);
+               TGeoCombiTrans *aco7q15 = new TGeoCombiTrans("aco7q15",posx2+15,posy2-10,poszd,rot1);
                inFace->AddNode(aCORDE7,count,aco7q14);
                inFace->AddNode(aCORDE7,count+1,aco7q15);// bars 25 grades
                count=count+2;
-               dy++;
+               dyd++;
        }
 
 
@@ -1100,38 +1087,38 @@ void AliACORDEv1::CreateAcorde()
 
 
        count=25;
-       for(Int_t dy=50;dy<=54;dy++)
+       for(Int_t dye=50;dye<=54;dye++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)-0.1*293*0.7071+56*0.7071+18-des;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-56*0.7071+3-des-s1+kro;
-               Float_t posz=constants->ModulePositionZ(dy);
-               Float_t posx2=constants->ModulePositionX(dy)+0.27*293*0.7071+56*0.7071+18-des;
-               Float_t posy2=constants->ModulePositionY(dy)+0.27*293*0.7071-56*0.7071+3-des-s1+kro;
-               TGeoCombiTrans *aco7q22 = new TGeoCombiTrans("aco7q22",posx1,posy1,posz,idrotm232);
-               TGeoCombiTrans *aco7q23 = new TGeoCombiTrans("aco7q23",posx2,posy2,posz,idrotm232);
+               Float_t posx1=constants->ModulePositionX(dye)-0.1*293*0.7071+56*0.7071+18-des;
+               Float_t posy1=constants->ModulePositionY(dye)-0.1*293*0.7071-56*0.7071+3-des-s1+kro;
+               Float_t posze=constants->ModulePositionZ(dye);
+               Float_t posx2=constants->ModulePositionX(dye)+0.27*293*0.7071+56*0.7071+18-des;
+               Float_t posy2=constants->ModulePositionY(dye)+0.27*293*0.7071-56*0.7071+3-des-s1+kro;
+               TGeoCombiTrans *aco7q22 = new TGeoCombiTrans("aco7q22",posx1,posy1,posze,idrotm232);
+               TGeoCombiTrans *aco7q23 = new TGeoCombiTrans("aco7q23",posx2,posy2,posze,idrotm232);
                outFace->AddNode(aCORDE7,count,aco7q22);
                outFace->AddNode(aCORDE7,count+1,aco7q23);
                count=count+2;
-               dy++;
+               dye++;
        }
 
 
        count=35;
-       for(Int_t dy=57;dy<=59;dy++)
+       for(Int_t dyf=57;dyf<=59;dyf++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)-0.1*293*0.7071+56*0.7071+18-des;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-56*0.7071+3-des-s1+kro;
-               Float_t posz=constants->ModulePositionZ(dy-10);
-               Float_t posx2=constants->ModulePositionX(dy)+0.27*293*0.7071+56*0.7071+18-des;
-               Float_t posy2=constants->ModulePositionY(dy)+0.27*293*0.7071-56*0.7071+3-des-s1+kro;
-               TGeoCombiTrans *aco7q24 = new TGeoCombiTrans("aco7q24",posx1,posy1,posz,idrotm232);
-               TGeoCombiTrans *aco7q25 = new TGeoCombiTrans("aco7q25",posx2,posy2,posz,idrotm232);
+               Float_t posx1=constants->ModulePositionX(dyf)-0.1*293*0.7071+56*0.7071+18-des;
+               Float_t posy1=constants->ModulePositionY(dyf)-0.1*293*0.7071-56*0.7071+3-des-s1+kro;
+               Float_t poszf=constants->ModulePositionZ(dyf-10);
+               Float_t posx2=constants->ModulePositionX(dyf)+0.27*293*0.7071+56*0.7071+18-des;
+               Float_t posy2=constants->ModulePositionY(dyf)+0.27*293*0.7071-56*0.7071+3-des-s1+kro;
+               TGeoCombiTrans *aco7q24 = new TGeoCombiTrans("aco7q24",posx1,posy1,poszf,idrotm232);
+               TGeoCombiTrans *aco7q25 = new TGeoCombiTrans("aco7q25",posx2,posy2,poszf,idrotm232);
                outFace->AddNode(aCORDE7,count,aco7q24);
                outFace->AddNode(aCORDE7,count+1,aco7q25);
                count=count+2;
-               dy++;
+               dyf++;
        }
 
 
@@ -1154,42 +1141,42 @@ void AliACORDEv1::CreateAcorde()
        outFace->AddNode(aCORDE7,44,aco7q29);
 
        count=45;
-       for(Int_t dy=40;dy<=44;dy++)
+       for(Int_t dyg=40;dyg<=44;dyg++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)-0.1*293*0.7071+56*0.7071+18-des;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-56*0.7071+3-des-s1+kro;
-               Float_t posz=constants->ModulePositionZ(dy);
-               Float_t posx2=constants->ModulePositionX(dy)+0.27*293*0.7071+56*0.7071+18-des;
-               Float_t posy2=constants->ModulePositionY(dy)+0.27*293*0.7071-56*0.7071+3-des-s1+kro;
+               Float_t posx1=constants->ModulePositionX(dyg)-0.1*293*0.7071+56*0.7071+18-des;
+               Float_t posy1=constants->ModulePositionY(dyg)-0.1*293*0.7071-56*0.7071+3-des-s1+kro;
+               Float_t poszg=constants->ModulePositionZ(dyg);
+               Float_t posx2=constants->ModulePositionX(dyg)+0.27*293*0.7071+56*0.7071+18-des;
+               Float_t posy2=constants->ModulePositionY(dyg)+0.27*293*0.7071-56*0.7071+3-des-s1+kro;
                TGeoRotation *rot1 = new TGeoRotation();
                rot1->RotateZ(105);
-               TGeoCombiTrans *aco7q30 = new TGeoCombiTrans("aco7q30",posx1,posy1,posz,idrotm232);
-               TGeoCombiTrans *aco7q31 = new TGeoCombiTrans("aco7q31",posx2-15,posy2-10,posz,rot1);
+               TGeoCombiTrans *aco7q30 = new TGeoCombiTrans("aco7q30",posx1,posy1,poszg,idrotm232);
+               TGeoCombiTrans *aco7q31 = new TGeoCombiTrans("aco7q31",posx2-15,posy2-10,poszg,rot1);
                outFace->AddNode(aCORDE7,count,aco7q30);
                outFace->AddNode(aCORDE7,count+1,aco7q31);// bars 25 grades
                count=count+2;
-               dy++;
+               dyg++;
        }
 
 
        count=55;
-       for(Int_t dy=45;dy<=49;dy++)
+       for(Int_t dyh=45;dyh<=49;dyh++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)-0.1*293*0.7071+56*0.7071+18-des;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-56*0.7071+3-des-s1+kro;
-               Float_t posz=constants->ModulePositionZ(dy);
-               Float_t posx2=constants->ModulePositionX(dy)+0.27*293*0.7071+56*0.7071+18-des;
-               Float_t posy2=constants->ModulePositionY(dy)+0.27*293*0.7071-56*0.7071+3-des-s1+kro;
+               Float_t posx1=constants->ModulePositionX(dyh)-0.1*293*0.7071+56*0.7071+18-des;
+               Float_t posy1=constants->ModulePositionY(dyh)-0.1*293*0.7071-56*0.7071+3-des-s1+kro;
+               Float_t poszh=constants->ModulePositionZ(dyh);
+               Float_t posx2=constants->ModulePositionX(dyh)+0.27*293*0.7071+56*0.7071+18-des;
+               Float_t posy2=constants->ModulePositionY(dyh)+0.27*293*0.7071-56*0.7071+3-des-s1+kro;
                TGeoRotation *rot1 = new TGeoRotation();
                rot1->RotateZ(105);
-               TGeoCombiTrans *aco7q32 = new TGeoCombiTrans("aco7q32",posx1,posy1,posz,idrotm232);
-               TGeoCombiTrans *aco7q33 = new TGeoCombiTrans("aco7q33",posx2-15,posy2-10,posz,rot1);
+               TGeoCombiTrans *aco7q32 = new TGeoCombiTrans("aco7q32",posx1,posy1,poszh,idrotm232);
+               TGeoCombiTrans *aco7q33 = new TGeoCombiTrans("aco7q33",posx2-15,posy2-10,poszh,rot1);
                outFace->AddNode(aCORDE7,count,aco7q32);
                outFace->AddNode(aCORDE7,count+1,aco7q33);// bars 25 grades
                count=count+2;
-               dy++;
+               dyh++;
        }
 
 
@@ -1225,38 +1212,38 @@ void AliACORDEv1::CreateAcorde()
 
 
        count=71;
-       for(Int_t dy=0;dy<=4;dy++)
+       for(Int_t dyi=0;dyi<=4;dyi++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)+0.1*293*0.7071-4*box[0]-8+des+re;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-box[1]-18-2-des+sm;
-               Float_t posz1=constants->ModulePositionZ(dy);
-               Float_t dyx2=constants->ModulePositionX(dy)-0.27*293*0.7071-4*box[0]-8+des+re;
-               Float_t dyy2=constants->ModulePositionY(dy)+0.27*293*0.7071-box[1]-18-2-des+sm;
-               TGeoTranslation *aco75=new TGeoTranslation("aco75",posx1,posy1,posz1);
-               TGeoTranslation *aco76=new TGeoTranslation("aco76",dyx2,dyy2,posz1);
+               Float_t posx1a=constants->ModulePositionX(dyi)+0.1*293*0.7071-4*box[0]-8+des+re;
+               Float_t posy1a=constants->ModulePositionY(dyi)-0.1*293*0.7071-box[1]-18-2-des+sm;
+               Float_t posz1a=constants->ModulePositionZ(dyi);
+               Float_t dyx2=constants->ModulePositionX(dyi)-0.27*293*0.7071-4*box[0]-8+des+re;
+               Float_t dyy2=constants->ModulePositionY(dyi)+0.27*293*0.7071-box[1]-18-2-des+sm;
+               TGeoTranslation *aco75=new TGeoTranslation("aco75",posx1a,posy1a,posz1a);
+               TGeoTranslation *aco76=new TGeoTranslation("aco76",dyx2,dyy2,posz1a);
                inFace->AddNode(aCORDE7q1,count,aco75);
                inFace->AddNode(aCORDE7q1,count+1,aco76);
                count=count+2;
-               dy++;
+               dyi++;
        }
 
 
        count=81;
-       for(Int_t dy=5;dy<=9;dy++)
+       for(Int_t dyj=5;dyj<=9;dyj++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)+0.1*293*0.7071-4*box[0]-8+des+re;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-box[1]-18-2-des+sm;
-               Float_t posz1=constants->ModulePositionZ(dy+10);
-               Float_t dyx2=constants->ModulePositionX(dy)-0.27*293*0.7071-4*box[0]-8+des+re;
-               Float_t dyy2=constants->ModulePositionY(dy)+0.27*293*0.7071-box[1]-18-2-des+sm;
-               TGeoTranslation *aco75=new TGeoTranslation("aco75",posx1,posy1,posz1);
-               TGeoTranslation *aco76=new TGeoTranslation("aco76",dyx2,dyy2,posz1);
+               Float_t posx1b=constants->ModulePositionX(dyj)+0.1*293*0.7071-4*box[0]-8+des+re;
+               Float_t posy1b=constants->ModulePositionY(dyj)-0.1*293*0.7071-box[1]-18-2-des+sm;
+               Float_t posz1b=constants->ModulePositionZ(dyj+10);
+               Float_t dyx2=constants->ModulePositionX(dyj)-0.27*293*0.7071-4*box[0]-8+des+re;
+               Float_t dyy2=constants->ModulePositionY(dyj)+0.27*293*0.7071-box[1]-18-2-des+sm;
+               TGeoTranslation *aco75=new TGeoTranslation("aco75",posx1b,posy1b,posz1b);
+               TGeoTranslation *aco76=new TGeoTranslation("aco76",dyx2,dyy2,posz1b);
                inFace->AddNode(aCORDE7q1,count,aco75);
                inFace->AddNode(aCORDE7q1,count+1,aco76);
                count=count+2;
-               dy++;
+               dyj++;
        }
 
 
@@ -1277,39 +1264,39 @@ void AliACORDEv1::CreateAcorde()
        inFace->AddNode(aCORDE7q1,94,aco710);
 
        count=95;
-       for(Int_t dy=10;dy<=14;dy++)
+       for(Int_t dyk=10;dyk<=14;dyk++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)+0.1*293*0.7071-4*box[0]-8+des+re+.83;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-box[1]-18-2-des+sm;
-               Float_t posz1=constants->ModulePositionZ(dy);
-               Float_t dyx2=constants->ModulePositionX(dy)-0.27*293*0.7071-4*box[0]-4+des+re+0.83;
-               Float_t dyy2=constants->ModulePositionY(dy)+0.27*293*0.7071-box[1]-18-5-des+sm;
-               TGeoTranslation *aco711=new TGeoTranslation("aco711",posx1,posy1,posz1);
-               TGeoTranslation *aco712=new TGeoTranslation("aco712",dyx2,dyy2,posz1);
+               Float_t posx1c=constants->ModulePositionX(dyk)+0.1*293*0.7071-4*box[0]-8+des+re+.83;
+               Float_t posy1c=constants->ModulePositionY(dyk)-0.1*293*0.7071-box[1]-18-2-des+sm;
+               Float_t posz1c=constants->ModulePositionZ(dyk);
+               Float_t dyx2=constants->ModulePositionX(dyk)-0.27*293*0.7071-4*box[0]-4+des+re+0.83;
+               Float_t dyy2=constants->ModulePositionY(dyk)+0.27*293*0.7071-box[1]-18-5-des+sm;
+               TGeoTranslation *aco711=new TGeoTranslation("aco711",posx1c,posy1c,posz1c);
+               TGeoTranslation *aco712=new TGeoTranslation("aco712",dyx2,dyy2,posz1c);
                inFace->AddNode(aCORDE7q1,count,aco711);
                inFace->AddNode(aCORDE7q1,count+1,aco712);
                count=count+2;
-               dy++;
+               dyk++;
        }
 
 
 
        count=105;
-       for(Int_t dy=15;dy<=19;dy++)
+       for(Int_t dyl=15;dyl<=19;dyl++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)+0.1*293*0.7071-4*box[0]-8+des+re+0.83;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-box[1]-18-2-des+sm;
-               Float_t posz1=constants->ModulePositionZ(dy);
-               Float_t dyx2=constants->ModulePositionX(dy)-0.27*293*0.7071-4*box[0]-4+des+re+0.83;
-               Float_t dyy2=constants->ModulePositionY(dy)+0.27*293*0.7071-box[1]-18-5-des;
-               TGeoTranslation *aco713=new TGeoTranslation("aco713",posx1,posy1,posz1);
-               TGeoTranslation *aco714=new TGeoTranslation("aco714",dyx2,dyy2,posz1);
+               Float_t posx1d=constants->ModulePositionX(dyl)+0.1*293*0.7071-4*box[0]-8+des+re+0.83;
+               Float_t posy1d=constants->ModulePositionY(dyl)-0.1*293*0.7071-box[1]-18-2-des+sm;
+               Float_t posz1d=constants->ModulePositionZ(dyl);
+               Float_t dyx2=constants->ModulePositionX(dyl)-0.27*293*0.7071-4*box[0]-4+des+re+0.83;
+               Float_t dyy2=constants->ModulePositionY(dyl)+0.27*293*0.7071-box[1]-18-5-des;
+               TGeoTranslation *aco713=new TGeoTranslation("aco713",posx1d,posy1d,posz1d);
+               TGeoTranslation *aco714=new TGeoTranslation("aco714",dyx2,dyy2,posz1d);
                inFace->AddNode(aCORDE7q1,count,aco713);
                inFace->AddNode(aCORDE7q1,count+1,aco714);
                count=count+2;
-               dy++;
+               dyl++;
        }
 
                //*** Out-Face ***
@@ -1345,39 +1332,39 @@ void AliACORDEv1::CreateAcorde()
 
 
        count=65;
-       for(Int_t dy=50;dy<=54;dy++)
+       for(Int_t dym=50;dym<=54;dym++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)-0.1*293*0.7071+4*box[0]+8-des-re-1;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-box[1]-18-2-des+sm-2.5;
-               Float_t posz1=constants->ModulePositionZ(dy);
-               Float_t dyx2=constants->ModulePositionX(dy)+0.27*293*0.7071+4*box[0]+8-des-re-1;
-               Float_t dyy2=constants->ModulePositionY(dy)+0.27*293*0.7071-box[1]-18-2-des+sm-2.5;
-               TGeoTranslation *aco721=new TGeoTranslation("aco721",posx1,posy1,posz1);
-               TGeoTranslation *aco722=new TGeoTranslation("aco722",dyx2,dyy2,posz1);
+               Float_t posx1e=constants->ModulePositionX(dym)-0.1*293*0.7071+4*box[0]+8-des-re-1;
+               Float_t posy1e=constants->ModulePositionY(dym)-0.1*293*0.7071-box[1]-18-2-des+sm-2.5;
+               Float_t posz1e=constants->ModulePositionZ(dym);
+               Float_t dyx2=constants->ModulePositionX(dym)+0.27*293*0.7071+4*box[0]+8-des-re-1;
+               Float_t dyy2=constants->ModulePositionY(dym)+0.27*293*0.7071-box[1]-18-2-des+sm-2.5;
+               TGeoTranslation *aco721=new TGeoTranslation("aco721",posx1e,posy1e,posz1e);
+               TGeoTranslation *aco722=new TGeoTranslation("aco722",dyx2,dyy2,posz1e);
                outFace->AddNode(aCORDE7q1,count,aco721);
                outFace->AddNode(aCORDE7q1,count+1,aco722);
                count=count+2;
-               dy++;
+               dym++;
        }
 
 
 
        count=75;
-       for(Int_t dy=57;dy<=59;dy++)
+       for(Int_t dyn=57;dyn<=59;dyn++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)-0.1*293*0.7071+4*box[0]+8-des-re-1;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-box[1]-18-2-des+sm-2.5;
-               Float_t posz1=constants->ModulePositionZ(dy-10);
-               Float_t dyx2=constants->ModulePositionX(dy)+0.27*293*0.7071+4*box[0]+8-des-re-1;
-               Float_t dyy2=constants->ModulePositionY(dy)+0.27*293*0.7071-box[1]-18-2-des+sm-2.5;
-               TGeoTranslation *aco723=new TGeoTranslation("aco723",posx1,posy1,posz1);
-               TGeoTranslation *aco724=new TGeoTranslation("aco724",dyx2,dyy2,posz1);
+               Float_t posx1f=constants->ModulePositionX(dyn)-0.1*293*0.7071+4*box[0]+8-des-re-1;
+               Float_t posy1f=constants->ModulePositionY(dyn)-0.1*293*0.7071-box[1]-18-2-des+sm-2.5;
+               Float_t posz1f=constants->ModulePositionZ(dyn-10);
+               Float_t dyx2=constants->ModulePositionX(dyn)+0.27*293*0.7071+4*box[0]+8-des-re-1;
+               Float_t dyy2=constants->ModulePositionY(dyn)+0.27*293*0.7071-box[1]-18-2-des+sm-2.5;
+               TGeoTranslation *aco723=new TGeoTranslation("aco723",posx1f,posy1f,posz1f);
+               TGeoTranslation *aco724=new TGeoTranslation("aco724",dyx2,dyy2,posz1f);
                outFace->AddNode(aCORDE7q1,count,aco723);
                outFace->AddNode(aCORDE7q1,count+1,aco724);
                count=count+2;
-               dy++;
+               dyn++;
        }
 
 
@@ -1399,39 +1386,39 @@ void AliACORDEv1::CreateAcorde()
 
 
        count=89;
-       for(Int_t dy=40;dy<=44;dy++)
+       for(Int_t dyo=40;dyo<=44;dyo++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)-0.1*293*0.7071+4*box[0]+8-des-re-1;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-box[1]-18-2-des+sm-2.5;
-               Float_t posz1=constants->ModulePositionZ(dy);
-               Float_t dyx2=constants->ModulePositionX(dy)+0.27*293*0.7071+4*box[0]+4-des-re-1+2.8;
-               Float_t dyy2=constants->ModulePositionY(dy)+0.27*293*0.7071-box[1]-18-5-des+sm-2.5+3;
-               TGeoTranslation *aco729=new TGeoTranslation("aco729",posx1,posy1,posz1);
-               TGeoTranslation *aco730=new TGeoTranslation("aco730",dyx2,dyy2,posz1);
+               Float_t posx1g=constants->ModulePositionX(dyo)-0.1*293*0.7071+4*box[0]+8-des-re-1;
+               Float_t posy1g=constants->ModulePositionY(dyo)-0.1*293*0.7071-box[1]-18-2-des+sm-2.5;
+               Float_t posz1g=constants->ModulePositionZ(dyo);
+               Float_t dyx2=constants->ModulePositionX(dyo)+0.27*293*0.7071+4*box[0]+4-des-re-1+2.8;
+               Float_t dyy2=constants->ModulePositionY(dyo)+0.27*293*0.7071-box[1]-18-5-des+sm-2.5+3;
+               TGeoTranslation *aco729=new TGeoTranslation("aco729",posx1g,posy1g,posz1g);
+               TGeoTranslation *aco730=new TGeoTranslation("aco730",dyx2,dyy2,posz1g);
                outFace->AddNode(aCORDE7q1,count,aco729);
                outFace->AddNode(aCORDE7q1,count+1,aco730);
                count=count+2;
-               dy++;
+               dyo++;
        }
 
 
 
        count=99;
-       for(Int_t dy=45;dy<=49;dy++)
+       for(Int_t dyp=45;dyp<=49;dyp++)
        {
 
-               Float_t posx1=constants->ModulePositionX(dy)-0.1*293*0.7071+4*box[0]+8-des-re-1;
-               Float_t posy1=constants->ModulePositionY(dy)-0.1*293*0.7071-box[1]-18-2-des+sm-2.5;
-               Float_t posz1=constants->ModulePositionZ(dy);
-               Float_t dyx2=constants->ModulePositionX(dy)+0.27*293*0.7071+4*box[0]+4-des-re-1+2.8;
-               Float_t dyy2=constants->ModulePositionY(dy)+0.27*293*0.7071-box[1]-18-5-des+sm-2.5+3;
-               TGeoTranslation *aco729=new TGeoTranslation("aco729",posx1,posy1,posz1);
-               TGeoTranslation *aco730=new TGeoTranslation("aco730",dyx2,dyy2,posz1);
+               Float_t posx1h=constants->ModulePositionX(dyp)-0.1*293*0.7071+4*box[0]+8-des-re-1;
+               Float_t posy1h=constants->ModulePositionY(dyp)-0.1*293*0.7071-box[1]-18-2-des+sm-2.5;
+               Float_t posz1h=constants->ModulePositionZ(dyp);
+               Float_t dyx2=constants->ModulePositionX(dyp)+0.27*293*0.7071+4*box[0]+4-des-re-1+2.8;
+               Float_t dyy2=constants->ModulePositionY(dyp)+0.27*293*0.7071-box[1]-18-5-des+sm-2.5+3;
+               TGeoTranslation *aco729=new TGeoTranslation("aco729",posx1h,posy1h,posz1h);
+               TGeoTranslation *aco730=new TGeoTranslation("aco730",dyx2,dyy2,posz1h);
                outFace->AddNode(aCORDE7q1,count,aco729);
                outFace->AddNode(aCORDE7q1,count+1,aco730);
                count=count+2;
-               dy++;
+               dyp++;
        }
 
 
@@ -1521,9 +1508,10 @@ void AliACORDEv1::CreateAcorde()
        aCORDE->AddNode(inFace,1);//---> volume of supports & bars in-face
        aCORDE->AddNode(upFace,2);//---> volume of supports & bars up-face
        aCORDE->AddNode(outFace,3);//---> volume of supports & bars out-face
-       aCORDE->AddNode(inFacem,4);//---> volume of modules in-face
-       aCORDE->AddNode(upFacem,5);//---> volume of modules up-face
-       aCORDE->AddNode(outFacem,6);//---> volume of modules out-face
+//     aCORDE->AddNode(inFacem,4);//---> volume of modules in-face
+//     aCORDE->AddNode(upFacem,5);//---> volume of modules up-face
+//     aCORDE->AddNode(outFacem,6);//---> volume of modules out-face
+        aCORDE->AddNode(modules,4);//---> volume of ALL ACORDE's Modules
        alice->AddNode(aCORDE,1);//---> put volume of ACORDE over ALICE's volume
 
 
@@ -1585,8 +1573,7 @@ void AliACORDEv1::StepManager()
   static Float_t eloss;
   static Float_t step;
   // scintillator volume
-  static Int_t idScint = gMC->VolId("ACORDE2");
-
+ static Int_t idScint = gMC->VolId("ACORDE2");
   // local variables
   Int_t copy;
   TLorentzVector pos;
@@ -1598,7 +1585,6 @@ void AliACORDEv1::StepManager()
   // only in sensitive material
   if (gMC->CurrentVolID(copy) == idScint) {
 
-    printf("Hay particula cargada en el volumen %d \n",idScint);
     step  += gMC->TrackStep();
     eloss += gMC->Edep();
     // set all hit variables except eloss which is resetted
@@ -1618,14 +1604,14 @@ void AliACORDEv1::StepManager()
       hits[0]  = (Float_t ) gMC->TrackPid(); 
 
 
-      hits[1] = pos[0]; printf("PosX %f \n",hits[1]);
-      hits[2] = pos[1]; printf("PosY %f \n",hits[2]);
-      hits[3] = pos[2]; printf("PosZ %f \n",hits[3]);
-      hits[4] = gMC->TrackTime();printf("TimeTracking %f \n",hits[4]);
-      hits[5] = mom[0]; printf("MomentoX %f \n",hits[5]);
-      hits[6] = mom[1]; printf("MomentoY %f \n",hits[6]);
-      hits[7] = mom[2]; printf("MomentoZ %f \n",hits[7]);
-      hits[8] = gMC->Etot();printf("EnergiaTotal %f \n",hits[8]);
+      hits[1] = pos[0]; 
+      hits[2] = pos[1]; 
+      hits[3] = pos[2]; 
+      hits[4] = gMC->TrackTime();
+      hits[5] = mom[0];
+      hits[6] = mom[1];
+      hits[7] = mom[2];
+      hits[8] = gMC->Etot();
       // volume: 
       //  [0] = module number 1-60 (1==>(0-0), 60 (5-9)
       //  [1] = Plastic number: 0 (down) to 1 (up)
@@ -1636,34 +1622,102 @@ void AliACORDEv1::StepManager()
       // module
       vol[0] = copyModule;
       // plastic: 0 = down, 1 = up
-      vol[1] = copyPlastic;
+      vol[1] = copyPlastic - 4 ; // !!!!!!!
+    // vol[1] = copyPlastic;
     } // end if gMC->IsTrackEntering()
 
     // set hit[9] = total energy loss and book hit
     if( gMC->IsTrackExiting() || 
        gMC->IsTrackStop() || 
        gMC->IsTrackDisappeared()){
-      hits[9] = eloss;printf("Energia Perdida %f \n",hits[9]);
+      hits[9] = eloss;
       hits[10] = step;
       eloss = 0.0;
       step = 0.0;
       AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(),vol, hits);
-    }
+     }
   } 
 
 
 
 }
 
-
-
 //_____________________________________________________________________________
 void AliACORDEv1::AddHit(Int_t track, Int_t *vol, Float_t *hits)
 {
   //
-  // Add a ACORDE hit
+  // Add an ACORDE hit
   //
   TClonesArray &lhits = *fHits;
   new(lhits[fNhits++]) AliACORDEhit(fIshunt,track,vol,hits);
 }
 
+//_____________________________________________________________________________
+void AliACORDEv1::AddDigits(Int_t* track, Int_t module, Float_t time)
+{
+  
+  // Adds Digit
+  
+  TClonesArray &ldigits = *fDigits;
+  new(ldigits[fNdigits++]) AliACORDEdigit(track,module,time);
+}
+//_____________________________________________________________________________
+
+
+
+//_____________________________________________________________________________
+void AliACORDEv1::MakeBranch(Option_t *option)
+{
+// Creates new branches in the current Root Tree
+    
+  char branchname[10];
+  sprintf(branchname,"%s",GetName());
+  AliDebug(2,Form("fBufferSize = %d",fBufferSize));
+  const char *cH = strstr(option,"H");
+  if (fHits   && TreeH() && cH) {
+    TreeH()->Branch(branchname,&fHits, fBufferSize);
+    AliDebug(2,Form("Making Branch %s for hits",branchname));
+  }     
+  const char *cD = strstr(option,"D");
+  if (fDigits   && fLoader->TreeD() && cD) {
+    fLoader->TreeD()->Branch(branchname,&fDigits, fBufferSize);
+    AliDebug(2,Form("Making Branch %s for digits",branchname));
+  }  
+}
+
+//_____________________________________________________________________________
+void AliACORDEv1::AddAlignableVolumes() const
+{
+  //
+  // Create entries for alignable volumes associating the symbolic volume
+  // name with the corresponding volume path. Needs to be syncronized with
+  // eventual changes in the geometry.
+  // 
+
+       // The alignable volumes are only the "ACORDE_MODULE_%d"
+       //
+       //      Structure of ACORDE's Geometry
+       //
+       //      ALIC_1
+       //          |---> ACORDE_1      
+       //                      |----> ACORDE_1_1 (in_face) ---
+       //                      |----> ACORDE_2_2 (up_face)    |--> BARS&SUPPORTS
+       //                      |----> ACORDE_3_3 (out_face)---
+       //                      |----> ACORDE_MODULES_4        |--> ACORDE'S MODULES
+       //              
+       //
+       //     Send comments to: Mario Rodriguez Cahuantzi <mrodrigu@mail.cern.ch>
+
+       TString vpstr1 = "ALIC_1/ACORDE_1/ALL_ACORDE_MODULES_4/ACORDE_MODULE_";
+       TString snstr1 = "ACORDE/Array";
+       TString volpath, symname;
+       for(Int_t dy=1; dy<61 ; dy++)
+       {
+               volpath = vpstr1;
+               volpath += dy;
+               symname = snstr1;
+               symname += dy;
+               if(!gGeoManager->SetAlignableEntry(symname.Data(),volpath.Data()))
+               AliFatal(Form("Alignable entry %s not created. Volume path %s not valid", symname.Data(),volpath.Data()));
+       }
+}