diff --git a/NPLib/Detectors/Minos/TMinosData.cxx b/NPLib/Detectors/Minos/TMinosData.cxx index 1659d2e204f868ee50e8af4911c2d709642e85ea..d94878507d55325a0f6916066b7b0f8c3f46e886 100644 --- a/NPLib/Detectors/Minos/TMinosData.cxx +++ b/NPLib/Detectors/Minos/TMinosData.cxx @@ -50,14 +50,14 @@ void TMinosData::Clear() { // Time fMinos_T_DetectorNbr.clear(); fMinos_Time.clear(); - // Charge - fMinos_Charge_Pad.clear(); - fMinos_Charge_X.clear(); - fMinos_Charge_Y.clear(); - fMinos_Charge.clear(); - // DriftTime - fMinos_Drift_Pad.clear(); + + + // Minos_Pads + fMinos_Pad.clear(); + fMinos_X.clear(); + fMinos_Y.clear(); fMinos_DriftTime.clear(); + fMinos_Charge.clear(); //From Santamaria: diff --git a/NPLib/Detectors/Minos/TMinosData.h b/NPLib/Detectors/Minos/TMinosData.h index 85757dcf6324c2306be44348f4cdd272151bcba2..46cbaeb7073d4ddce0a44fa9d69b67ab6bfa9871 100644 --- a/NPLib/Detectors/Minos/TMinosData.h +++ b/NPLib/Detectors/Minos/TMinosData.h @@ -42,14 +42,11 @@ class TMinosData : public TObject { vector<UShort_t> fMinos_T_DetectorNbr; vector<Double_t> fMinos_Time; - // Charge - vector<UShort_t> fMinos_Charge_Pad; - vector<Double_t> fMinos_Charge_X; - vector<Double_t> fMinos_Charge_Y; + // Pads + vector<UShort_t> fMinos_Pad; + vector<Double_t> fMinos_X; + vector<Double_t> fMinos_Y; vector<Double_t> fMinos_Charge; - - // DriftTime - vector<UShort_t> fMinos_Drift_Pad; vector<Double_t> fMinos_DriftTime; // maybe directions with angle varagles have to be added? @@ -120,25 +117,17 @@ int event; fMinos_T_DetectorNbr.push_back(DetNbr); };//! - // Charge - inline void SetCharge(const UShort_t& Pad,const Double_t& Charge, const Double_t& X,const Double_t& Y ){ - fMinos_Charge_Pad.push_back(Pad); - fMinos_Charge_X.push_back(X); - fMinos_Charge_Y.push_back(Y); - fMinos_Charge.push_back(Charge); - };//! - - // DriftTime - inline void SetDriftTime(const UShort_t& Pad,const Double_t& DriftTime){ - fMinos_Drift_Pad.push_back(Pad); + // Minos Pads + inline void SetCharge(const UShort_t& Pad,const Double_t& Charge, const Double_t& X,const Double_t& Y,const Double_t& DriftTime){ + fMinos_Pad.push_back(Pad); + fMinos_X.push_back(X); + fMinos_Y.push_back(Y); fMinos_DriftTime.push_back(DriftTime); - };//! - + fMinos_Charge.push_back(Charge); + };//! // - - //Setters for position vertex and obsv in experiment analysis // Position @@ -152,17 +141,7 @@ int event; inline void SetD_min(const Double_t& dmin) { MINOS_D_min.push_back(dmin); };//! - - - - - - - - - - - + ////////////////////// GETTERS //////////////////////// // Energy diff --git a/NPSimulation/Detectors/Minos/Minos.cc b/NPSimulation/Detectors/Minos/Minos.cc index d46687afeaef0d942720fbdb0587380581daf44e..cfa2e5f2193a2380d3ffc873ecee8b5bb3672029 100644 --- a/NPSimulation/Detectors/Minos/Minos.cc +++ b/NPSimulation/Detectors/Minos/Minos.cc @@ -26,6 +26,7 @@ //G4 Geometry object #include "G4Tubs.hh" #include "G4Box.hh" +#include "G4Trd.hh" //G4 sensitive #include "G4SDManager.hh" @@ -700,7 +701,6 @@ void Minos::ConstructDetector(G4LogicalVolume* world){ // } // else if(m_Shape[i] == "Square"){ - // } new G4PVPlacement(0,//its name @@ -711,7 +711,6 @@ void Minos::ConstructDetector(G4LogicalVolume* world){ false, //no boolean operation 0); //copy number - //////// ELECTRIC FIELD G4ElectricField* field = new G4UniformElectricField(G4ThreeVector(0.0,0.0,200*volt/cm)); @@ -732,7 +731,6 @@ void Minos::ConstructDetector(G4LogicalVolume* world){ G4ChordFinder* ChordFinder = new G4ChordFinder(IntgrDriver); FieldManager->SetChordFinder( ChordFinder ); - ///////// CONSTRUCT ANODE w/ PADS G4double InnerRadius = 45*mm; @@ -752,11 +750,16 @@ void Minos::ConstructDetector(G4LogicalVolume* world){ 0); //copy number {G4VisAttributes* atb= new G4VisAttributes(G4Colour(1., 1., 0.,0.1)); logicAnode->SetVisAttributes(atb);} - + // Volume of One Pad G4Material* Cu = MaterialManager::getInstance()->GetMaterialFromLibrary("Cu"); - - G4Box* solidPad = new G4Box("Pad", 1.05*mm,1.05*mm,1.05*mm); + + //Box Pad + /* G4Box* solidPad = new G4Box("Pad", 1.0*mm,1.0*mm,1.0*mm); */ + /* G4LogicalVolume* logicPad = new G4LogicalVolume(solidPad, Cu,"Pad"); */ + + //Trapez Pad + G4Trd* solidPad = new G4Trd("Pad",0.97,0.97,0.97,1.01,1.04); G4LogicalVolume* logicPad = new G4LogicalVolume(solidPad, Cu,"Pad"); {G4VisAttributes* atb= new G4VisAttributes(G4Colour(0.8, 0.4, 0.,0.8)); @@ -788,8 +791,6 @@ void Minos::ConstructDetector(G4LogicalVolume* world){ 0); //copy number //check the order and positioning of kapton , chamber and rohacell from pag 16 of Thesis Clementine - - new G4PVPlacement(0,//its name G4ThreeVector(0,0,0/*ChamberLength*/), //at (0,0,0) @@ -955,8 +956,7 @@ void Minos::ReadSensitive(const G4Event* ){ double X = Scorer2->GetX(i); double Y = Scorer2->GetY(i); double DriftTime = RandGauss::shoot(Scorer2->GetDriftTime(i),Minos_NS::ResoTime); - m_Event->SetCharge(Pad,Charge,X,Y); - m_Event->SetDriftTime(Pad,DriftTime); + m_Event->SetCharge(Pad,Charge,X,Y,DriftTime); } } diff --git a/NPSimulation/Detectors/Minos/Minos.hh b/NPSimulation/Detectors/Minos/Minos.hh index eb01a0ec7cf8138428d07e549bd64dff0ed37a15..cc127aaaaf32f0f4e57fe2e1b0110995e4e7550d 100644 --- a/NPSimulation/Detectors/Minos/Minos.hh +++ b/NPSimulation/Detectors/Minos/Minos.hh @@ -298,16 +298,23 @@ class PadParameterisation : public G4VPVParameterisation else if (3348<=copyNo && copyNo<3604){ Ring = 17;} - G4double R = (50.+ Ring*2.2)*mm; - G4double dPhi= (2*M_PI/PadsPerRing[Ring]); + G4double R = (45.2+ (Ring+0.5)*2.1)*mm; + G4double dPhi= (2.*M_PI/PadsPerRing[Ring]); + G4double Phi = copyNo*dPhi; G4double Xposition = R*cos(Phi); G4double Yposition = R*sin(Phi); G4ThreeVector origin(Xposition,Yposition,0); physVol->SetTranslation(origin); + //Rotation for trapezes G4RotationMatrix* Rot = new G4RotationMatrix(); - Rot->rotateZ(-Phi); + Rot->rotateY(-90*deg); + Rot->rotateX(+Phi); physVol->SetRotation(Rot); + //Rotation for boxes + /* G4RotationMatrix* Rot2 = new G4RotationMatrix(); */ + /* Rot2->rotateZ(-20*deg); */ + /* physVol->SetRotation(Rot2); */ } }; diff --git a/NPSimulation/Detectors/Vamos/Vamos.cc b/NPSimulation/Detectors/Vamos/Vamos.cc index ad808109e2f52f09d70d810bd019869c3b958354..586262abd8747e0fac9e112f58ac40796e2648f7 100644 --- a/NPSimulation/Detectors/Vamos/Vamos.cc +++ b/NPSimulation/Detectors/Vamos/Vamos.cc @@ -94,7 +94,7 @@ namespace Vamos_NS { const G4double DetectionVolumeThickness = 1300 * mm; const G4double DetectionVolumeWidth = 1000 * mm; const G4double DetectionVolumeLength = 1000 * mm; - const G4double Det_Theta = 0 * deg; + const G4double Det_Theta = 45 * deg; }