* appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
+***************************************************************************/
+
+/*
$Log$
+Revision 1.7 2006/04/27 13:13:29 hristov
+Moving the destructor to the implementation file
+
+Revision 1.6 2006/04/20 22:30:49 hristov
+Coding conventions (Annalisa)
+
+Revision 1.5 2006/04/16 22:29:05 hristov
+Coding conventions (Annalisa)
+
+Revision 1.4 2006/04/05 08:35:38 hristov
+Coding conventions (S.Arcelli, C.Zampolli)
+
Revision 1.3 2006/03/31 13:49:07 arcelli
Removing some junk printout
author: Silvia Arcelli, arcelli@bo.infn.it
*/
-#include <TBenchmark.h>
+/////////////////////////////////////////////////////////
+// //
+// Class for alignment procedure //
+// //
+// //
+// //
+/////////////////////////////////////////////////////////
+
#include <Rtypes.h>
-#include "TClonesArray.h"
-#include "TObjString.h"
+
+#include "TRandom.h"
+#include "TString.h"
+
#include "AliLog.h"
-#include "AliRun.h"
-#include "AliModule.h"
-#include "AliTOFAlignment.h"
#include "AliAlignObj.h"
#include "AliAlignObjAngles.h"
#include "AliCDBManager.h"
#include "AliCDBMetaData.h"
-#include "AliCDBStorage.h"
#include "AliCDBId.h"
#include "AliCDBEntry.h"
+#include "AliTOFAlignment.h"
ClassImp(AliTOFAlignment)
}
+//_____________________________________________________________________________
+AliTOFAlignment& AliTOFAlignment::operator=(const AliTOFAlignment &t){
+ //AliTOFAlignment assignment operator
+
+ this->fNTOFAlignObj=t.fNTOFAlignObj;
+ this->fTOFAlignObjArray=t.fTOFAlignObjArray;
+ return *this;
+
+}
+
+//_____________________________________________________________________________
+AliTOFAlignment::~AliTOFAlignment() {delete fTOFAlignObjArray;}
+
//_____________________________________________________________________________
void AliTOFAlignment::Smear( Float_t *tr, Float_t *rot)
{
Float_t dx, dy, dz; // shifts
Float_t dpsi, dtheta, dphi; // angular displacements
TRandom *rnd = new TRandom(1567);
-
- TString path;
- const char *sSM71="/ALIC_1/B077_1/B071_"; //1-13
- const char *sm71="/BTO1_1";
- const char *sSM74="/ALIC_1/B077_1/B074_"; //1-2
- const char *sm74="/BTO2_1";
- const char *sSM75="/ALIC_1/B077_1/B075_"; //1-3
- const char *sm75="/BTO3_1";
-
-
- Int_t nSM71 = 13, nSM74=2, nSM75=3;
+
+ Int_t nSMTOF = 18;
AliAlignObj::ELayerID iLayer = AliAlignObj::kInvalidLayer;
UShort_t iIndex=0; //dummy volume index
// AliAlignObj::ELayerID iLayer = AliAlignObj::kTOF;
// Int_t iIndex=1; //dummy volume index
UShort_t dvoluid = AliAlignObj::LayerToVolUID(iLayer,iIndex); //dummy volume identity
Int_t i;
- for (i = 1; i<=nSM71 ; i++) {
-
- dx = (rnd->Gaus(0.,1.))*tr[0]/nSM71;
- dy = (rnd->Gaus(0.,1.))*tr[1]/nSM71;
- dz = (rnd->Gaus(0.,1.))*tr[2]/nSM71;
- dpsi = rot[0]/nSM71;
- dtheta = rot[1]/nSM71;
- dphi = rot[2]/nSM71;
-
- path = sSM71;
- path += i;
- path += sm71;
- AliAlignObjAngles *o =new AliAlignObjAngles(path, dvoluid, dx, dy, dz, dpsi, dtheta, dphi);
- fTOFAlignObjArray->Add(o);
- }
-
- for (i = 1; i<=nSM74 ; i++) {
-
- dx = (rnd->Gaus(0.,1.))*tr[0]/nSM74;
- dy = (rnd->Gaus(0.,1.))*tr[1]/nSM74;
- dz = (rnd->Gaus(0.,1.))*tr[2]/nSM74;
- dpsi = rot[0]/nSM74;
- dtheta = rot[1]/nSM74;
- dphi = rot[2]/nSM74;
-
- path = sSM74;
- path += i;
- path += sm74;
+ for (i = 0; i<nSMTOF ; i++) {
+ Char_t path[100];
+ sprintf(path,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",i,i);
+
+ dx = (rnd->Gaus(0.,1.))*tr[0];
+ dy = (rnd->Gaus(0.,1.))*tr[1];
+ dz = (rnd->Gaus(0.,1.))*tr[2];
+ dpsi = rot[0];
+ dtheta = rot[1];
+ dphi = rot[2];
AliAlignObjAngles *o =new AliAlignObjAngles(path, dvoluid, dx, dy, dz, dpsi, dtheta, dphi);
fTOFAlignObjArray->Add(o);
}
- for (i = 1; i<=nSM75; i++) {
-
- dx = (rnd->Gaus(0.,1.))*tr[0]/nSM75;
- dy = (rnd->Gaus(0.,1.))*tr[1]/nSM75;
- dz = (rnd->Gaus(0.,1.))*tr[2]/nSM75;
- dpsi = rot[0]/nSM75;
- dtheta = rot[1]/nSM75;
- dphi = rot[2]/nSM75;
-
- path = sSM75;
- path += i;
- path += sm75;
- AliAlignObjAngles *o =new AliAlignObjAngles(path, dvoluid, dx, dy, dz, dpsi, dtheta, dphi);
- fTOFAlignObjArray->Add(o);
- }
fNTOFAlignObj=fTOFAlignObjArray->GetEntries();
AliInfo(Form("Number of Alignable Volumes: %d",fNTOFAlignObj));
delete rnd;
fTOFAlignObjArray = new TObjArray(kMaxAlignObj);
Float_t dx, dy, dz; // shifts
Float_t dpsi, dtheta, dphi; // angular displacements
- TString path;
- const char *sSM71="/ALIC_1/B077_1/B071_"; //1-13
- const char *sm71="/BTO1_1";
- const char *sSM74="/ALIC_1/B077_1/B074_"; //1-2
- const char *sm74="/BTO2_1";
- const char *sSM75="/ALIC_1/B077_1/B075_"; //1-3
- const char *sm75="/BTO3_1";
- Int_t nSM71 = 13, nSM74=2, nSM75=3;
+ Int_t nSMTOF = 18;
AliAlignObj::ELayerID iLayer = AliAlignObj::kInvalidLayer;
UShort_t iIndex=0; //dummy volume index
// AliAlignObj::ELayerID iLayer = AliAlignObj::kTOF;
// Int_t iIndex=1; //dummy volume index
UShort_t dvoluid = AliAlignObj::LayerToVolUID(iLayer,iIndex); //dummy volume identity
Int_t i;
- for (i = 1; i<=nSM71 ; i++) {
-
- dx = tr[0]/nSM71;
- dy = tr[1]/nSM71;
- dz = tr[2]/nSM71;
- dpsi = rot[0]/nSM71;
- dtheta = rot[1]/nSM71;
- dphi = rot[2]/nSM71;
-
- path = sSM71;
- path += i;
- path += sm71;
- AliAlignObjAngles *o =new AliAlignObjAngles(path, dvoluid, dx, dy, dz, dpsi, dtheta, dphi);
- fTOFAlignObjArray->Add(o);
- }
-
- for (i = 1; i<=nSM74 ; i++) {
-
- dx = tr[0]/nSM74;
- dy = tr[1]/nSM74;
- dz = tr[2]/nSM74;
- dpsi = rot[0]/nSM74;
- dtheta = rot[1]/nSM74;
- dphi = rot[2]/nSM74;
-
- path = sSM74;
- path += i;
- path += sm74;
- AliAlignObjAngles *o =new AliAlignObjAngles(path, dvoluid, dx, dy, dz, dpsi, dtheta, dphi);
- fTOFAlignObjArray->Add(o);
- }
-
- for (i = 1; i<=nSM75; i++) {
-
- dx = tr[0]/nSM75;
- dy = tr[1]/nSM75;
- dz = tr[2]/nSM75;
- dpsi = rot[0]/nSM75;
- dtheta = rot[1]/nSM75;
- dphi = rot[2]/nSM75;
+ for (i = 0; i<nSMTOF ; i++) {
+
+ Char_t path[100];
+ sprintf(path,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",i,i);
+ dx = tr[0];
+ dy = tr[1];
+ dz = tr[2];
+ dpsi = rot[0];
+ dtheta = rot[1];
+ dphi = rot[2];
- path = sSM75;
- path += i;
- path += sm75;
AliAlignObjAngles *o =new AliAlignObjAngles(path, dvoluid, dx, dy, dz, dpsi, dtheta, dphi);
fTOFAlignObjArray->Add(o);
}