Difference: LHCbRichMirrorAlignCodeOnline (1 vs. 55)

Revision 552019-08-30 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 479 to 479
  Our software is not currently stored in AlignmentOnline. If we use software from another project and need the other project's environment variables, we must also checkout packages from those projects. We definitely have to check out Rich/RichMirrCombinFit and Rich/RichMirrAlign, as the Iterator will want to run executables that are produced after we compile these. We think, but are not sure if it is necessary, that we should also check out Rich/RichMirrorAlignmentOnline in order for the local software to have access to the Iterator. We definitely need to get Rec/Brunel to be able to configure Brunel on the analyzer nodes.
Changed:
<
<
So, to get the code do the following:
>
>
So, to get the code do the following (change the branch from master, if need be):
  %SYNTAX{ "bash" color="yes"}% cd $User_release_area/AlignmentOnlineDev_v12r1
Line: 487 to 487
 git lb-use Panoptes git lb-use Brunel git fetch --all
Changed:
<
<
git lb-checkout Panoptes/run2-patches Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/run2-patches Rich/RichMirrAlign git lb-checkout Panoptes/run2-patches Rich/RichMirrCombinFit
>
>
git lb-checkout Panoptes/master Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/masterRich/RichMirrAlign git lb-checkout Panoptes/master Rich/RichMirrCombinFit
 git lb-checkout Brunel/2018-patches Rec/Brunel %ENDSYNTAX%
Changed:
<
<
* NOTA BENE: In Panoptes, run2-patches would otherwise be master, but for now master is for the upgrade only. We will update our code in both branches. However when we get Brunel for now we must get it from 2018-patches *
>
>
* NOTA BENE:
<!--In Panoptes, run2-patches would otherwise be master, but for now master is for the upgrade only. We will update our code in both branches. However-->
When we get Brunel for now we must get it from 2018-patches *
 
<!-- (Paras's note to self: we also needed Online/Monitoring (fromOnline/master) and Online/GauchoBase, the latter from /group/online/dataflow/cmtuser/AlignmentRelease/Online/GauchoBase. These should not be necessary when we move to the next code stack) -->
Line: 594 to 594
 ...and you're done!

Though there may be other issues...

Changed:
<
<
  • In 2018, using master instead of 2018-patches will cause the node configuration to fail, as the configurable Brunel.RichSequences does not exist in the upgrade).
>
>
  • In 2018, using Brunel master instead of 2018-patches will cause the node configuration to fail, as the configurable Brunel.RichSequences does not exist in the upgrade.
 
  • Sometimes there are missing dependencies in the version of LCG needed by Roel's framework to publish plots in the presenter. To solve it, add those dependencies by hand in the python path. Add this line just before the final line in all of the above-mentioned .vars files:

%SYNTAX{ "python" color="yes"}%

Revision 542019-08-20 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 336 to 336
 

Updating Predetermined Magnification Factors

Changed:
<
<
Depending on which RICH detector you wish to update the predetermined magnification factors for, check out the latest version of Panoptes from 2018-patches and then go into one of the following directories:
>
>
Depending on which RICH detector you wish to update the predetermined magnification factors for, check out the latest version of Panoptes from run2-patches and then go into one of the following directories:
  Rich/RichMirrorAlignmentOnline/files/MagnifFactors/RICH1/
Rich/RichMirrorAlignmentOnline/files/MagnifFactors/RICH2/
Line: 365 to 365
  At the pit, check out Rich/RichMirrorAlignmentOnline from your new branch and then recompile the code.
Changed:
<
<
Ask for a merge request and make sure you merge into 2018-patches.
>
>
Ask for a merge request and make sure you merge into run2-patches.
  Then ask Jordi if he could kindly also merge those commits into master.
Line: 487 to 487
 git lb-use Panoptes git lb-use Brunel git fetch --all
Changed:
<
<
git lb-checkout Panoptes/2018-patches Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/2018-patches Rich/RichMirrAlign git lb-checkout Panoptes/2018-patches Rich/RichMirrCombinFit
>
>
git lb-checkout Panoptes/run2-patches Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/run2-patches Rich/RichMirrAlign git lb-checkout Panoptes/run2-patches Rich/RichMirrCombinFit
 git lb-checkout Brunel/2018-patches Rec/Brunel %ENDSYNTAX%
Changed:
<
<
* NOTA BENE: 2018-patches would otherwise be master, but for now master is for the upgrade only. We will update our code in both branches, however when we get Brunel we must get it from 2018-patches *
>
>
* NOTA BENE: In Panoptes, run2-patches would otherwise be master, but for now master is for the upgrade only. We will update our code in both branches. However when we get Brunel for now we must get it from 2018-patches *
 
<!-- (Paras's note to self: we also needed Online/Monitoring (fromOnline/master) and Online/GauchoBase, the latter from /group/online/dataflow/cmtuser/AlignmentRelease/Online/GauchoBase. These should not be necessary when we move to the next code stack) -->

Revision 532019-08-20 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 405 to 405
 cd AlignmentOnlineDev_v12r1 %ENDSYNTAX%
Changed:
<
<
Then find out what version of Online is newest. For example if it is v6r15, edit CMakeLists.txt and change:
>
>
Then find out what version of Online is newest. For example if it is v7r0, edit CMakeLists.txt and change:
  %SYNTAX{ "bash" color="yes"}% gaudi_project(AlignmentOnlineDev v12r1
Line: 418 to 418
  gaudi_project(AlignmentOnlineDev v12r1 # USE AlignmentOnline v12r1) USE AlignmentOnline v12r1
Changed:
<
<
OnlineDev v6r15) # Paras added this
>
>
OnlineDev v7r0 # Paras added this
 %ENDSYNTAX%

Next, add these lines to the top of build_env.csh:

Line: 499 to 499
  You may possibly want to use a tag or your own branch instead of the master branch, if you are testing code before you make a merge (to master) request.
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v12r0/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r15).
>
>
Next, cp ../AlignmentOnlineDev_v12r0/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v7r0).
  Also, cp ../AlignmentOnlineDev_v12r0/optCompileOnly.sh ./optCompileOnly.sh OR create a new file called optCompileOnly.sh and copy in the contents of optCompileOnly.sh. In this file make sure all of the lines starting with git lb-checkout are commented out for now, because you have already checked these out these packages.
Line: 529 to 529
 
  • Could not find a package configuration file provided by "=OnlineDev="
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
Changed:
<
<
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/ directory.
>
>
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v7r0/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v7r0/InstallArea/ directory.
 
      • slc6 builds should also be compatible with centos7 machines, but not the other way around.
      • for the mirror alignment, we now really only want to use centos7 (i.e. log into pluscc and not plus)
Line: 575 to 575
  ln -s AlignmentOnlineDev_v12r1 AlignmentRelease
Changed:
<
<
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r15/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
>
>
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v7r0/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
  There are two lines that start with . /group/rich/sw/cmtuser and look like this:
Line: 583 to 583
  change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version. (i.e. these should now point to files that exist)
Changed:
<
<
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r15/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
>
>
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v7r0/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
  There are two lines that start with . /group/rich/sw/cmtuser and look like this:
Line: 762 to 762
  echo "Making OPT $MIRROPT." LbLogin -c $MIRROPT
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/$MIRROPT
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v7r0/InstallArea/$MIRROPT
 echo $OnlineDev_DIR #env > envOPT.txt make clean
Line: 775 to 775
  echo "Compiling DBG and DB0." echo "Making DBG $MIRRDBG." LbLogin -c $MIRRDBG
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/$MIRRDBG
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v7r0/InstallArea/$MIRRDBG
  echo $OnlineDev_DIR #env > envDBG.txt make clean
Line: 785 to 785
  echo " " echo "Making DO0 $MIRRDO0." LbLogin -c $MIRRDO0
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/$MIRRDO0
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v7r0/InstallArea/$MIRRDO0
  echo $OnlineDev_DIR #env > envDO0.txt make clean

Revision 522018-05-09 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 405 to 405
 cd AlignmentOnlineDev_v12r1 %ENDSYNTAX%
Changed:
<
<
Then find out what version of Online is newest. For example if it is v6r14, edit CMakeLists.txt and change:
>
>
Then find out what version of Online is newest. For example if it is v6r15, edit CMakeLists.txt and change:
  %SYNTAX{ "bash" color="yes"}% gaudi_project(AlignmentOnlineDev v12r1
Line: 418 to 418
  gaudi_project(AlignmentOnlineDev v12r1 # USE AlignmentOnline v12r1) USE AlignmentOnline v12r1
Changed:
<
<
OnlineDev v6r14) # Paras added this
>
>
OnlineDev v6r15) # Paras added this
 %ENDSYNTAX%

Next, add these lines to the top of build_env.csh:

Line: 499 to 499
  You may possibly want to use a tag or your own branch instead of the master branch, if you are testing code before you make a merge (to master) request.
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v12r0/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r14).
>
>
Next, cp ../AlignmentOnlineDev_v12r0/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r15).
  Also, cp ../AlignmentOnlineDev_v12r0/optCompileOnly.sh ./optCompileOnly.sh OR create a new file called optCompileOnly.sh and copy in the contents of optCompileOnly.sh. In this file make sure all of the lines starting with git lb-checkout are commented out for now, because you have already checked these out these packages.
Line: 529 to 529
 
  • Could not find a package configuration file provided by "=OnlineDev="
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
Changed:
<
<
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/ directory.
>
>
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/ directory.
 
      • slc6 builds should also be compatible with centos7 machines, but not the other way around.
      • for the mirror alignment, we now really only want to use centos7 (i.e. log into pluscc and not plus)
Line: 575 to 575
  ln -s AlignmentOnlineDev_v12r1 AlignmentRelease
Changed:
<
<
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r14/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
>
>
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r15/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
  There are two lines that start with . /group/rich/sw/cmtuser and look like this:
Line: 583 to 583
  change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version. (i.e. these should now point to files that exist)
Changed:
<
<
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r14/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
>
>
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r15/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
  There are two lines that start with . /group/rich/sw/cmtuser and look like this:
Line: 762 to 762
  echo "Making OPT $MIRROPT." LbLogin -c $MIRROPT
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/$MIRROPT
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/$MIRROPT
 echo $OnlineDev_DIR #env > envOPT.txt make clean
Line: 775 to 775
  echo "Compiling DBG and DB0." echo "Making DBG $MIRRDBG." LbLogin -c $MIRRDBG
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/$MIRRDBG
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/$MIRRDBG
  echo $OnlineDev_DIR #env > envDBG.txt make clean
Line: 785 to 785
  echo " " echo "Making DO0 $MIRRDO0." LbLogin -c $MIRRDO0
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/$MIRRDO0
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r15/InstallArea/$MIRRDO0
  echo $OnlineDev_DIR #env > envDO0.txt make clean

Revision 512018-05-01 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 302 to 302
 

CombAndMirrSubsets.txt

Changed:
<
<
Temporarily, the subset of possible mirror combinations that are used for the mirror alignment are stored here:
>
>
The subset of possible mirror combinations that are used for the mirror alignment are contained within the RichMirrorAlignmentOnline package, and stored here at the pit:
 
Changed:
<
<
/group/rich/AlignmentFiles/Rich1CombAndMirrSubsets.txt
/group/rich/AlignmentFiles/Rich2CombAndMirrSubsets.txt
>
>
/group/rich/sw/cmtuser/AlignmentRelease/Rich/RichMirrorAlignmentOnline/files/Rich1CombAndMirrSubsets.txt
/group/rich/sw/cmtuser/AlignmentRelease/Rich/RichMirrorAlignmentOnline/files/Rich2CombAndMirrSubsets.txt
  Do not touch these files.
Deleted:
<
<
Eventually these and previous combinations in the /group/rich/AlignmentFiles/ directory should be moved to within the RichMirrorAlignmentOnline package.
 

Magnification Factors

Changed:
<
<
If predetermined magnification factors are to be used (currently the default case), then they will be read from subdirectories which are inside these root directories:
>
>
If predetermined magnification factors are to be used (currently the default case), then they will be read from subdirectories which are contained within the RichMirrorAlignmentOnline package, and stored inside these root directories at the pit:
 
Changed:
<
<
/group/rich/AlignmentFiles/MagnifFactors/RICH1/
/group/rich/AlignmentFiles/MagnifFactors/RICH2/
>
>
/group/rich/sw/cmtuser/AlignmentRelease/Rich/RichMirrorAlignmentOnline/files/MagnifFactors/RICH1/
/group/rich/sw/cmtuser/AlignmentRelease/Rich/RichMirrorAlignmentOnline/files/MagnifFactors/RICH2/
 
Changed:
<
<
Do not touch them, unless you are asked to replace them.
>
>
Do not touch these files directly! If you are asked to add new magnification factors, then add them using the instructions below.
 

Recalculating Magnification Factors

Line: 338 to 336
 

Updating Predetermined Magnification Factors

Changed:
<
<
Depending on which RICH detector you wish to update the predetermined magnification factors for, go into one of the following directories:
>
>
Depending on which RICH detector you wish to update the predetermined magnification factors for, check out the latest version of Panoptes from 2018-patches and then go into one of the following directories:
 
Changed:
<
<
/group/rich/AlignmentFiles/MagnifFactors/RICH1/
/group/rich/AlignmentFiles/MagnifFactors/RICH2/
>
>
Rich/RichMirrorAlignmentOnline/files/MagnifFactors/RICH1/
Rich/RichMirrorAlignmentOnline/files/MagnifFactors/RICH2/
  then make a new directory with the same YYYYMMDD_HHMMSS timestamp as the alignment savedir that contains the recalculated magnification factors:
Line: 363 to 361
  Lastly you will need to edit Configuration.py and change the magnifDir to point to the full directory path where the new predefined magnification factors are.
Changed:
<
<
Then recompile the code.
>
>
As soon as this is all done, commit the changes and push to a new branch.

At the pit, check out Rich/RichMirrorAlignmentOnline from your new branch and then recompile the code.

Ask for a merge request and make sure you merge into 2018-patches.

Then ask Jordi if he could kindly also merge those commits into master.

 

Fresh install of code for new AlignmentOnline version

Revision 502018-04-26 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 313 to 313
 

Magnification Factors

Changed:
<
<
If predetermined magnification factors are to be used, then they will be read from
>
>
If predetermined magnification factors are to be used (currently the default case), then they will be read from subdirectories which are inside these root directories:
  /group/rich/AlignmentFiles/MagnifFactors/RICH1/
/group/rich/AlignmentFiles/MagnifFactors/RICH2/
Changed:
<
<
Currently, you will not be asked to replace them. Paras, note to self: Update This Later; also use subdirectories instead of the main directory for better tracking of magFactors.
>
>
Do not touch them, unless you are asked to replace them.

Recalculating Magnification Factors

Change magnFactorsMode from 0 to 2 in the Configuration.py and then recompile.

Run the mirror alignment. The mirror alignment will take 30 minutes per iteration instead of 3 minutes per iteration.

If the mirror alignment completes successfully, find the savedir in summary.txt or the RICH ELOG

If the alignment took N+1 iterations to complete (i0, ..., iN) and ZZ is the last two digits of the year the alignment data was taken, then the new magnification factors are in the files you can see if you go to the savedir and execute the command:

<!-- SyntaxHighlightingPlugin -->
ls *CollisionZZ_*_iN.txt 
<!-- end SyntaxHighlightingPlugin -->

Change magnFactorsMode back from 2 to 0 in the Configuration.py and then recompile.

Updating Predetermined Magnification Factors

Depending on which RICH detector you wish to update the predetermined magnification factors for, go into one of the following directories:

/group/rich/AlignmentFiles/MagnifFactors/RICH1/
/group/rich/AlignmentFiles/MagnifFactors/RICH2/

then make a new directory with the same YYYYMMDD_HHMMSS timestamp as the alignment savedir that contains the recalculated magnification factors:

mkdir YYYYMMDD_HHMMSS
cd YYYYMMDD_HHMMSS

Then copy over the

<!-- SyntaxHighlightingPlugin -->
*CollisionZZ_*_iN.txt 
<!-- end SyntaxHighlightingPlugin -->
files from the savedir.

The last step is renaming. This is currently painstaking, but shouldn't take you too long.

the files you have will look like Rich1MirrMagnFactors_Mp6Wi8.0Fm5Mm2Sm0_online_Collision18_pri_negYzerZ_i1.txt
you need to change these to files that look like Rich1MirrMagnFactors_pri_negYzerZ_predefined.txt

Then when you are done also copy over summary.txt from the savedir

Lastly you will need to edit Configuration.py and change the magnifDir to point to the full directory path where the new predefined magnification factors are.

Then recompile the code.

 

Fresh install of code for new AlignmentOnline version

Revision 492018-04-17 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 108 to 108
 
SetupHelper determines the alignment name (i.e. the eventual directory name the working directory will be copied to when done). It also launches the monitoring, finalizes the alignment when finishes, and writes summary.txt, emails, and ELOG entries.
Added:
>
>
trendHelper class
• trendHelper makes the long-term alignment trend plots. It can be run on its own manually, but also runs automatically with each automated mirror alignment.

fileFinder class
• Don’t worry too much about fileFinder.py
• It allows the trendHelper to find the historical XML files it needs to make the trend plots.
• You’ll probably never touch it.

 Communicator class
• Don’t worry too much about Communicator.py
• It allows the Iterator to communicate with the run-control. 
The key method is get_command()
• You’ll probably never touch it.
Changed:
<
<
HistoHelper.py
>
>
HistoHelper class
 
• Don’t worry too much about HistoHelper.py
• It manages the retrieval of the SaveSets (histograms) from the analyzers. SaveSetRetriever class:
The SaveSets are not written by the Iterator but a very different part of the program. In order to know where to retrieve the save sets from, a "DIM" server method is used to retrieve the location where the histogram was written in real-time.
Line: 248 to 256
 /group/rich/AlignmentFiles/Logging/Rich1_CKresTrend.txt
/group/rich/AlignmentFiles/Logging/Rich2_CKresTrend.txt
Changed:
<
<
Do not touch these, unless you're editing them to remove multiple data points (e.g. the alignment was for some reason run twice on the same fill). If testing = True in the Configuration then no data is appended to this file.
>
>
Do not touch these, unless you're editing them to remove multiple data points (e.g. the alignment was for some reason run twice on the same fill).

You can see plots of this data and comparisons to the resolutions from OnlineBrunel uses the data in these text files to provide a trend of the CK angle resolutions from the mirror alignment.

If testing = True in the Configuration for a particular mirror alignment, then the data is appended to this file with a "# TEST " designation on the line; this line is subsequently ignored.

Rolling log of Mirror Alignment updates

A rolling log of mirror alignment updates is kept in these files:

/group/rich/AlignmentFiles/Logging/Rich1_UpdateTrend.txt
/group/rich/AlignmentFiles/Logging/Rich2_UpdateTrend.txt

Do not touch these, unless you're editing them to remove multiple data points (e.g. the alignment was for some reason run twice on the same fill), OR the mirror alignment was a _maybe alignment that you decide to make the active alignment for a particular fill, in which case you need to adjust this file accordingly.

This file is used by trendHelper.py to automatically determine when there has been a magnet polarity change.

 
Changed:
<
<
You can see plots of this data and comparisons to the resolutions from OnlineBrunel.
>
>
If testing = True in the Configuration for a particular mirror alignment, then the data is appended to this file with a "# TEST " designation on the line; this line is subsequently ignored.
 

Magnet polarity memory

Changed:
<
<
The polarity of the last mirror alignment is stored here:
>
>
The polarity of the last mirror alignment that converged, had no sanity problem, and was not a testing alignment, is stored here:
  /group/rich/AlignmentFiles/Polarity/previousPolarity_RICH1.txt
/group/rich/AlignmentFiles/Polarity/previousPolarity_RICH2.txt

Revision 482018-04-14 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 14 to 14
 At the pit, this package and others are drawn into our development directory of AlignmentOnline, in this directory here: /group/rich/sw/cmtuser/AlignmentRelease
  • NOTA BENE: AlignmentRelease is a soft link to /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX
    • vYYrX when referenced in this TWiki should always be replaced with numbers for the current revision
Changed:
<
<
  • The current version being used by us online is v12r0. Experts, always keep this line updated.
>
>
  • The current version being used by us online is v12r1. Experts, always keep this line updated.
 
    • Also, update the soft link if the version changes!

This package relies on the projects:

Line: 312 to 312
  This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.
Changed:
<
<
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v12r0.
>
>
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v12r1.
 
Changed:
<
<
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v12r0 below.
>
>
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v12r1 below.
  %SYNTAX{ "bash" color="yes"}% echo "I have just set the User_release_area environment variable to:"
Line: 329 to 329
  %SYNTAX{ "bash" color="yes"}% cd $User_release_area
Changed:
<
<
lb-dev AlignmentOnline/v12r0 cd AlignmentOnlineDev_v12r0
>
>
lb-dev AlignmentOnline/v12r1 cd AlignmentOnlineDev_v12r1
 %ENDSYNTAX%
Changed:
<
<
Then find out what version of Online is newest. For example if it is v6r12, edit CMakeLists.txt and change:
>
>
Then find out what version of Online is newest. For example if it is v6r14, edit CMakeLists.txt and change:
  %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
gaudi_project(AlignmentOnlineDev v12r0 USE AlignmentOnline v12r0)
>
>
gaudi_project(AlignmentOnlineDev v12r1 USE AlignmentOnline v12r1)
 %ENDSYNTAX%

to

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v12r0 # USE AlignmentOnline v12r0) USE AlignmentOnline v12r0 OnlineDev v6r12) # Paras added this
>
>
gaudi_project(AlignmentOnlineDev v12r1 # USE AlignmentOnline v12r1) USE AlignmentOnline v12r1 OnlineDev v6r14) # Paras added this
 %ENDSYNTAX%

Next, add these lines to the top of build_env.csh:

Line: 410 to 410
 So, to get the code do the following:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd $User_release_area/AlignmentOnlineDev_v12r0
>
>
cd $User_release_area/AlignmentOnlineDev_v12r1
 git lb-use AlignmentOnline git lb-use Panoptes git lb-use Brunel
Line: 427 to 427
  You may possibly want to use a tag or your own branch instead of the master branch, if you are testing code before you make a merge (to master) request.
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v11r4/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r12).
>
>
Next, cp ../AlignmentOnlineDev_v12r0/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r14).
 
Changed:
<
<
Also, cp ../AlignmentOnlineDev_v11r4/optCompileOnly.sh ./optCompileOnly.sh OR create a new file called optCompileOnly.sh and copy in the contents of optCompileOnly.sh. In this file make sure all of the lines starting with git lb-checkout are commented out for now, because you have already checked these out these packages.
>
>
Also, cp ../AlignmentOnlineDev_v12r0/optCompileOnly.sh ./optCompileOnly.sh OR create a new file called optCompileOnly.sh and copy in the contents of optCompileOnly.sh. In this file make sure all of the lines starting with git lb-checkout are commented out for now, because you have already checked these out these packages.
  Note in these last two lines, I am asking you to copy these .sh files from the previous working version of AlignmentOnline!
Changed:
<
<
You need to change the line in ./optCompileOnly.sh from
>
>
You need to temporarily change the line in ./optCompileOnly.sh from
  %SYNTAX{ "bash" color="yes"}% source multiUserCompile.sh OPTONLY 2>&1 | tee compile.log
Line: 457 to 457
 
  • Could not find a package configuration file provided by "=OnlineDev="
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
Changed:
<
<
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/ directory.
>
>
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/ directory.
 
      • slc6 builds should also be compatible with centos7 machines, but not the other way around.
      • for the mirror alignment, we now really only want to use centos7 (i.e. log into pluscc and not plus)
Changed:
<
<
If you had no errors, you may change the line in ./optCompileOnly.sh back from
>
>
If you had no errors, you may change the line
 
<!-- SyntaxHighlightingPlugin -->
source multiUserCompile.sh 2>&1 | tee compile.log
<!-- end SyntaxHighlightingPlugin -->
Changed:
<
<
to
>
>
in ./optCompileOnly.sh back to
  %SYNTAX{ "bash" color="yes"}% source multiUserCompile.sh OPTONLY 2>&1 | tee compile.log
Line: 493 to 493
 export L0TCKROOT="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999"; export L0TCK="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999/options"; %ENDSYNTAX%
Added:
>
>
OR add these last three lines just before the final line of each .vars file.
  After this, you may now make this version of AlignmentOnlineDev our release for operations by changing the softlink to AlignmentRelease as follows:
Line: 500 to 501
  rm AlignmentRelease with no trailing forward slash!
Changed:
<
<
ln -s AlignmentOnlineDev_v12r0 AlignmentRelease
>
>
ln -s AlignmentOnlineDev_v12r1 AlignmentRelease
 
Changed:
<
<
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r12/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
>
>
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r14/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
  There are two lines that start with . /group/rich/sw/cmtuser and look like this:
Line: 510 to 511
  change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version. (i.e. these should now point to files that exist)
Changed:
<
<
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r12/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
>
>
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r14/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
  There are two lines that start with . /group/rich/sw/cmtuser and look like this:
Line: 518 to 519
  change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version.
Changed:
<
<
...and you're done! (though there may be other issues... for example, I used master instead of 2018-patches which caused the node configuration to fail, as the configurable Brunel.RichSequences does not exist in the upgrade).
>
>
...and you're done!

Though there may be other issues...

  • In 2018, using master instead of 2018-patches will cause the node configuration to fail, as the configurable Brunel.RichSequences does not exist in the upgrade).
  • Sometimes there are missing dependencies in the version of LCG needed by Roel's framework to publish plots in the presenter. To solve it, add those dependencies by hand in the python path. Add this line just before the final line in all of the above-mentioned .vars files:

<!-- SyntaxHighlightingPlugin -->
export PYTHONPATH=$PYTHONPATH:/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_93/chardet/3.0.4/x86_64-centos7-gcc62-opt/lib/python2.7/site-packages:/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_93/idna/2.6/x86_64-centos7-gcc62-opt/lib/python2.7/site-packages;
<!-- end SyntaxHighlightingPlugin -->
 
Line: 560 to 569
 Make sure our code is checked out and compiled, e.g.:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v12r0/ # change v12r0 to whatever version we are installed in!!!
>
>
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v12r1/ # change v12r1 to whatever version we are installed in!!!
 source optCompileOnly.sh %ENDSYNTAX%
Line: 607 to 616
  If you want to make a change to the Analyzer Brunel configuration, edit:
Changed:
<
<
/group/rich/sw/cmtuser/AlignmentOnlineDev_v12r0/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py
>
>
/group/rich/sw/cmtuser/AlignmentOnlineDev_v12r1/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py
 
Changed:
<
<
and then recompile. The simplest way to recompile (if you are using an fully established version of AlignmentOnline [currently the case for v12r0]) is to run these commands in your bash shell:
>
>
and then recompile. The simplest way to recompile (if you are using an fully established version of AlignmentOnline [currently the case for v12r1]) is to run these commands in your bash shell:
  %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v12r0/
>
>
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v12r1/
 source optCompileOnly.sh %ENDSYNTAX%
Line: 681 to 690
  echo "Making OPT $MIRROPT." LbLogin -c $MIRROPT
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/$MIRROPT
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/$MIRROPT
 echo $OnlineDev_DIR #env > envOPT.txt make clean
Line: 694 to 703
  echo "Compiling DBG and DB0." echo "Making DBG $MIRRDBG." LbLogin -c $MIRRDBG
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/$MIRRDBG
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/$MIRRDBG
  echo $OnlineDev_DIR #env > envDBG.txt make clean
Line: 704 to 713
  echo " " echo "Making DO0 $MIRRDO0." LbLogin -c $MIRRDO0
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/$MIRRDO0
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r14/InstallArea/$MIRRDO0
  echo $OnlineDev_DIR #env > envDO0.txt make clean

Revision 472018-04-13 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 553 to 553
 

Running the mirror alignment worker task on a single HLT Farm node

Changed:
<
<
Sometimes when trying to solve an error with the mirror alignment it is not enough to look at the error logs as discussed in LHCbRichMirrorAlignRunOnline, especially if the problem has to do with our configuration of the analyzers.
>
>
Sometimes when trying to solve an error with the mirror alignment, it is not enough to look at the error logs as discussed in LHCbRichMirrorAlignRunOnline, especially if the problem has to do with our configuration of the analyzers.
 
Changed:
<
<
To run our worker task on a node to test the processing of data on one of the analyzers:
>
>
To run our worker task on a node to test the processing of data on just one of the analyzers:
 
Changed:
<
<
Make sure our code is checked out and compiled [e.g. for an established setup:
>
>
Make sure our code is checked out and compiled, e.g.:
  %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v12r0/
>
>
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v12r0/ # change v12r0 to whatever version we are installed in!!!
 source optCompileOnly.sh %ENDSYNTAX%
Changed:
<
<
]
>
>
Make sure you always check the contents before running optCompileOnly.sh in the AlignmentRelease area, to make sure you are checking out code from the correct branches! (And feel free to edit it on plus if you need to achieve a different result)
 
Changed:
<
<
Make sure you always check the contents before running optCompileOnly.sh in the AlignmentRelease area! (And feel free to edit it on plus if you need to achieve a different result)

Via ssh, log into a HLT farm machine from lbgw, e.g. hltf1119

>
>
Next, via ssh, log into a HLT farm machine from lbgw, e.g. hltf1119
  There is a file called /group/online/dataflow/options/LHCbA/HLT/OnlineEnvBase.py which basically gets filled with all the useful info that you would normally set up in the FSM. So you can configure and set up the alignment through the FSM, then copy this file locally, or just grab a version of this someone else copied and edit it yourself if need be.
Line: 578 to 576
  which you could use.
Changed:
<
<
In whatever directory your OnlineEnvBase.py is in (for me, /home/pnaik/singleNodeTest/) make a file called singleNodeTest.py
>
>
In whatever directory your OnlineEnvBase.py is in (for me, /home/pnaik/singleNodeTest/) make a file called singleNodeTest_RICH1.py
  In this file place the following lines:
Line: 588 to 586
 from Gaudi.Configuration import importOptions ProcessJobOptions.printing_level=999 from PyMirrAlignOnline import RichAnalyzer
Changed:
<
<
RichAnalyzer.doIt(filename = '/localdisk/Alignment/Rich', whichRich = 1)
>
>
RichAnalyzer.doIt(filename = '/localdisk/Alignment/Rich', whichRich = 1) # Make sure whichRich matches your OnlineEnvBase.py!
 # the extra code (from Roel) that actually steers the job from GaudiPython.Bindings import AppMgr gaudi = AppMgr()
Changed:
<
<
gaudi.run(1000) # change the number of events if you want to run over more!!!
>
>
gaudi.run(1000) # change the number of events if you want to run over more!
 gaudi.stop() gaudi.finalize() %ENDSYNTAX%
Line: 602 to 600
 %SYNTAX{ "bash" color="yes"}% . /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-centos7-gcc62-opt.vars # i.e. as in AligWrk.sh, get the environment for the mirror alignment export PYTHONPATH=/group/online/dataflow/options/LHCbA/HLT:$PYTHONPATH # i.e. as in AligWrk.sh
Changed:
<
<
python singleNodeTest.py /group/online/dataflow/templates/options/Main.opts # basically, we run the python that would have been run via the ECS
>
>
python singleNodeTest_RICH1.py /group/online/dataflow/templates/options/Main.opts # basically, we run the python that would have been run via the ECS
 %ENDSYNTAX%
Changed:
<
<
If you do this you see the printout is a lot more detailed than you would observe in the LHCbA log.
>
>
If you do this, you see the printout is a lot more detailed than you would observe in the LHCbA log.
  If you want to make a change to the Analyzer Brunel configuration, edit:

Revision 462018-03-23 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 14 to 14
 At the pit, this package and others are drawn into our development directory of AlignmentOnline, in this directory here: /group/rich/sw/cmtuser/AlignmentRelease
  • NOTA BENE: AlignmentRelease is a soft link to /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX
    • vYYrX when referenced in this TWiki should always be replaced with numbers for the current revision
Changed:
<
<
  • The current version being used by us online is v11r4. Experts, always keep this line updated.
>
>
  • The current version being used by us online is v12r0. Experts, always keep this line updated.
 
    • Also, update the soft link if the version changes!

This package relies on the projects:

Line: 301 to 301
  If you are not asked to install a new AlignmentOnline version at the pit, then you may skip this section (though it's worth a read once anyway, to see how the code comes together).
Added:
>
>
Login to a plus machine.
 First, add these two lines to the end of your .bashrc:

%SYNTAX{ "bash" color="yes"}%

Line: 310 to 312
  This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.
Changed:
<
<
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v11r4.
>
>
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v12r0.
 
Changed:
<
<
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v11r4 below.
>
>
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v12r0 below.
  %SYNTAX{ "bash" color="yes"}% echo "I have just set the User_release_area environment variable to:"
Line: 327 to 329
  %SYNTAX{ "bash" color="yes"}% cd $User_release_area
Changed:
<
<
lb-dev AlignmentOnline/v11r4 cd AlignmentOnlineDev_v11r4
>
>
lb-dev AlignmentOnline/v12r0 cd AlignmentOnlineDev_v12r0
 %ENDSYNTAX%
Changed:
<
<
Then find out what version of Online is newest. For example if it is v6r10, edit CMakeLists.txt and change:
>
>
Then find out what version of Online is newest. For example if it is v6r12, edit CMakeLists.txt and change:
  %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r4 USE AlignmentOnline v11r4)
>
>
gaudi_project(AlignmentOnlineDev v12r0 USE AlignmentOnline v12r0)
 %ENDSYNTAX%

to

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r4 # USE AlignmentOnline v11r4) USE AlignmentOnline v11r4 OnlineDev v6r10) # Paras added this
>
>
gaudi_project(AlignmentOnlineDev v12r0 # USE AlignmentOnline v12r0) USE AlignmentOnline v12r0 OnlineDev v6r12) # Paras added this
 %ENDSYNTAX%

Next, add these lines to the top of build_env.csh:

Line: 408 to 410
 So, to get the code do the following:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd $User_release_area/AlignmentOnlineDev_v11r4
>
>
cd $User_release_area/AlignmentOnlineDev_v12r0
 git lb-use AlignmentOnline git lb-use Panoptes git lb-use Brunel
Line: 425 to 427
  You may possibly want to use a tag or your own branch instead of the master branch, if you are testing code before you make a merge (to master) request.
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r10).
>
>
Next, cp ../AlignmentOnlineDev_v11r4/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r12).
 
Changed:
<
<
Also, cp ../AlignmentOnlineDev_v11r3/optCompileOnly.sh ./optCompileOnly.sh OR create a new file called optCompileOnly.sh and copy in the contents of optCompileOnly.sh. In this file make sure all of the lines starting with git lb-checkout are commented out for now, because you have already checked these out these packages.
>
>
Also, cp ../AlignmentOnlineDev_v11r4/optCompileOnly.sh ./optCompileOnly.sh OR create a new file called optCompileOnly.sh and copy in the contents of optCompileOnly.sh. In this file make sure all of the lines starting with git lb-checkout are commented out for now, because you have already checked these out these packages.
  Note in these last two lines, I am asking you to copy these .sh files from the previous working version of AlignmentOnline!
Line: 455 to 457
 
  • Could not find a package configuration file provided by "=OnlineDev="
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
Changed:
<
<
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/ directory.
>
>
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/ directory.
 
      • slc6 builds should also be compatible with centos7 machines, but not the other way around.
      • for the mirror alignment, we now really only want to use centos7 (i.e. log into pluscc and not plus)
Line: 498 to 500
  rm AlignmentRelease with no trailing forward slash!
Changed:
<
<
ln -s AlignmentOnlineDev_v11r4 AlignmentRelease
>
>
ln -s AlignmentOnlineDev_v12r0 AlignmentRelease
 
Changed:
<
<
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r10/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
>
>
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r12/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
  There are two lines that start with . /group/rich/sw/cmtuser and look like this:
Line: 508 to 510
  change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version. (i.e. these should now point to files that exist)
Changed:
<
<
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r10/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
>
>
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r12/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
  There are two lines that start with . /group/rich/sw/cmtuser and look like this:
Line: 558 to 560
 Make sure our code is checked out and compiled [e.g. for an established setup:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r4/
>
>
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v12r0/
 source optCompileOnly.sh %ENDSYNTAX%
Line: 607 to 609
  If you want to make a change to the Analyzer Brunel configuration, edit:
Changed:
<
<
/group/rich/sw/cmtuser/AlignmentOnlineDev_v11r4/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py
>
>
/group/rich/sw/cmtuser/AlignmentOnlineDev_v12r0/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py
 
Changed:
<
<
and then recompile. The simplest way to recompile (if you are using an fully established version of AlignmentOnline [currently the case for v11r4]) is to run these commands in your bash shell:
>
>
and then recompile. The simplest way to recompile (if you are using an fully established version of AlignmentOnline [currently the case for v12r0]) is to run these commands in your bash shell:
  %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r4/
>
>
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v12r0/
 source optCompileOnly.sh %ENDSYNTAX%
Line: 681 to 683
  echo "Making OPT $MIRROPT." LbLogin -c $MIRROPT
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/$MIRROPT
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/$MIRROPT
 echo $OnlineDev_DIR #env > envOPT.txt make clean
Line: 694 to 696
  echo "Compiling DBG and DB0." echo "Making DBG $MIRRDBG." LbLogin -c $MIRRDBG
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/$MIRRDBG
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/$MIRRDBG
  echo $OnlineDev_DIR #env > envDBG.txt make clean
Line: 704 to 706
  echo " " echo "Making DO0 $MIRRDO0." LbLogin -c $MIRRDO0
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/$MIRRDO0
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r12/InstallArea/$MIRRDO0
  echo $OnlineDev_DIR #env > envDO0.txt make clean

Revision 452018-03-16 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 14 to 14
 At the pit, this package and others are drawn into our development directory of AlignmentOnline, in this directory here: /group/rich/sw/cmtuser/AlignmentRelease
  • NOTA BENE: AlignmentRelease is a soft link to /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX
    • vYYrX when referenced in this TWiki should always be replaced with numbers for the current revision
Changed:
<
<
  • The current version being used by us online is v11r3. Experts, always keep this line updated.
>
>
  • The current version being used by us online is v11r4. Experts, always keep this line updated.
 
    • Also, update the soft link if the version changes!

This package relies on the projects:

Line: 310 to 310
  This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.
Changed:
<
<
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v11r3.
>
>
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v11r4.
 
Changed:
<
<
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v11r3 below.
>
>
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v11r4 below.
  %SYNTAX{ "bash" color="yes"}% echo "I have just set the User_release_area environment variable to:"
Line: 327 to 327
  %SYNTAX{ "bash" color="yes"}% cd $User_release_area
Changed:
<
<
lb-dev AlignmentOnline/v11r3
>
>
lb-dev AlignmentOnline/v11r4 cd AlignmentOnlineDev_v11r4
 %ENDSYNTAX%
Changed:
<
<
Then find out what version of Online is newest. For example if it is v6r3, edit CMakeLists.txt and change:
>
>
Then find out what version of Online is newest. For example if it is v6r10, edit CMakeLists.txt and change:
  %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r3 USE AlignmentOnline v11r3)
>
>
gaudi_project(AlignmentOnlineDev v11r4 USE AlignmentOnline v11r4)
 %ENDSYNTAX%

to

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r3 # USE AlignmentOnline v11r3) USE AlignmentOnline v11r3 OnlineDev v6r3) # Paras added this
>
>
gaudi_project(AlignmentOnlineDev v11r4 # USE AlignmentOnline v11r4) USE AlignmentOnline v11r4 OnlineDev v6r10) # Paras added this
 %ENDSYNTAX%

Next, add these lines to the top of build_env.csh:

Line: 379 to 380
 Then, edit searchPath.py by carefully changing the first part of the path only, as follows (and leaving the rest of it alone):

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
path = SearchPath([EnvSearchPathEntry('User_release_area', '/group/rich/sw/cmtuser/'), EnvSearchPathEntry('CMTPROJECTPATH','/home/pnaik/cmtuser:
>
>
path = SearchPath([EnvSearchPathEntry('User_release_area', '/group/rich/sw/cmtuser/'),
 %ENDSYNTAX%

to

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
path = SearchPath([EnvSearchPathEntry('User_release_area', '/group/rich/sw/cmtuser/'), SearchPathEntry('/group/rich/sw/dev-dir'), SearchPathEntry('/group/online/dataflow/cmtuser'), EnvSearchPathEntry('CMTPROJECTPATH', '/group/rich/sw/cmtuser/:/group/rich/sw/dev-dir:/group/online/dataflow/SwData:
>
>
path = SearchPath([EnvSearchPathEntry('User_release_area', '/group/rich/sw/cmtuser/'), SearchPathEntry('/group/rich/sw/dev-dir'), SearchPathEntry('/group/online/dataflow/cmtuser'),
 %ENDSYNTAX%
Changed:
<
<
note that /home/pnaik/cmtuser might be something else in your case
>
>
AND later in the same line, also change:
 
Changed:
<
<
Now our software is not stored in AlignmentOnline. If we use software from another project and need the other project's environment variables, we must also checkout packages from those projects. We definitely have to check out Rich/RichMirrCombinFit and Rich/RichMirrAlign, as the Iterator will want to run executables that are produced after we compile these. We think, but are not sure if it is necessary, that we should also check out Rich/RichMirrorAlignmentOnline in order for the local software to have access to the Iterator. We definitely need to get Rec/Brunel to be able to configure Brunel on the analyzer nodes.
>
>
<!-- SyntaxHighlightingPlugin -->
EnvSearchPathEntry('CMTPROJECTPATH', '/group/online/dataflow/SwData:/group/rich/sw/cmtuser/:
<!-- end SyntaxHighlightingPlugin -->

to

<!-- SyntaxHighlightingPlugin -->
EnvSearchPathEntry('CMTPROJECTPATH', '/group/rich/sw/cmtuser/:/group/rich/sw/dev-dir:/group/online/dataflow/SwData:
<!-- end SyntaxHighlightingPlugin -->

<!-- note that /home/pnaik/cmtuser might be something else in your case -->

Our software is not currently stored in AlignmentOnline. If we use software from another project and need the other project's environment variables, we must also checkout packages from those projects. We definitely have to check out Rich/RichMirrCombinFit and Rich/RichMirrAlign, as the Iterator will want to run executables that are produced after we compile these. We think, but are not sure if it is necessary, that we should also check out Rich/RichMirrorAlignmentOnline in order for the local software to have access to the Iterator. We definitely need to get Rec/Brunel to be able to configure Brunel on the analyzer nodes.

  So, to get the code do the following:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd $User_release_area/AlignmentOnlineDev_v11r3
>
>
cd $User_release_area/AlignmentOnlineDev_v11r4
 git lb-use AlignmentOnline git lb-use Panoptes git lb-use Brunel git fetch --all
Changed:
<
<
git lb-checkout Panoptes/master Rich/RichMirrAlign git lb-checkout Panoptes/master Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/master Rich/RichMirrCombinFit git lb-checkout Brunel/master Rec/Brunel
>
>
git lb-checkout Panoptes/2018-patches Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/2018-patches Rich/RichMirrAlign git lb-checkout Panoptes/2018-patches Rich/RichMirrCombinFit git lb-checkout Brunel/2018-patches Rec/Brunel
 %ENDSYNTAX%
Changed:
<
<
(Paras's note to self: we also needed Online/Monitoring (fromOnline/master) and Online/GauchoBase, the latter from /group/online/dataflow/cmtuser/AlignmentRelease/Online/GauchoBase. These should not be necessary when we move to the next code stack)
>
>
* NOTA BENE: 2018-patches would otherwise be master, but for now master is for the upgrade only. We will update our code in both branches, however when we get Brunel we must get it from 2018-patches *

<!-- (Paras's note to self: we also needed Online/Monitoring (fromOnline/master) and Online/GauchoBase, the latter from /group/online/dataflow/cmtuser/AlignmentRelease/Online/GauchoBase. These should not be necessary when we move to the next code stack) -->
  You may possibly want to use a tag or your own branch instead of the master branch, if you are testing code before you make a merge (to master) request.
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
>
>
Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r10).
  Also, cp ../AlignmentOnlineDev_v11r3/optCompileOnly.sh ./optCompileOnly.sh OR create a new file called optCompileOnly.sh and copy in the contents of optCompileOnly.sh. In this file make sure all of the lines starting with git lb-checkout are commented out for now, because you have already checked these out these packages.
Added:
>
>
Note in these last two lines, I am asking you to copy these .sh files from the previous working version of AlignmentOnline!

You need to change the line in ./optCompileOnly.sh from

<!-- SyntaxHighlightingPlugin -->
source multiUserCompile.sh OPTONLY 2>&1 | tee compile.log
<!-- end SyntaxHighlightingPlugin -->

to

<!-- SyntaxHighlightingPlugin -->
source multiUserCompile.sh 2>&1 | tee compile.log
<!-- end SyntaxHighlightingPlugin -->
 Then compile!

source optCompileOnly.sh (this command can help you organize lb-checkouts, and takes all standard and error output from multiUserCompile.sh and puts it into compile.log)

Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.

Changed:
<
<
*Common issues at this point
>
>
Common issues at this point
 
  • "heptools" versions don't match between AlignmentOnline and Online projects *Ask someone from Alignment group if they are aware of this, they may have to release a new version of AlignmentOnline
  • Could not find a package configuration file provided by "=OnlineDev="
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
Changed:
<
<
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ directory.
>
>
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/ directory.
 
      • slc6 builds should also be compatible with centos7 machines, but not the other way around.
      • for the mirror alignment, we now really only want to use centos7 (i.e. log into pluscc and not plus)
Added:
>
>
If you had no errors, you may change the line in ./optCompileOnly.sh back from

<!-- SyntaxHighlightingPlugin -->
source multiUserCompile.sh 2>&1 | tee compile.log
<!-- end SyntaxHighlightingPlugin -->

to

<!-- SyntaxHighlightingPlugin -->
source multiUserCompile.sh OPTONLY 2>&1 | tee compile.log
<!-- end SyntaxHighlightingPlugin -->
 Then ONCE and only ONCE: run

%SYNTAX{ "bash" color="yes"}%

Line: 440 to 481
 Three files ending in .vars will be generated. In all three files, Change the three TCK lines which look something like this: %SYNTAX{ "bash" color="yes"}%
Deleted:
<
<
export L0TCKROOT="${SW_LHCB}/DBASE/TCK/L0TCK/v5r14";
 export HLTTCKROOT="${SW_LHCB}/DBASE/TCK/HltTCK/v3r18";
Added:
>
>
export L0TCKROOT="${SW_LHCB}/DBASE/TCK/L0TCK/v5r14";
 export L0TCK="${SW_LHCB}/DBASE/TCK/L0TCK/v5r14/options"; %ENDSYNTAX% to %SYNTAX{ "bash" color="yes"}%
Deleted:
<
<
export L0TCKROOT="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999";
 export HLTTCKROOT="/group/online/dataflow/SwData/DBASE/TCK/HltTCK/v3r999";
Added:
>
>
export L0TCKROOT="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999";
 export L0TCK="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999/options"; %ENDSYNTAX%

After this, you may now make this version of AlignmentOnlineDev our release for operations by changing the softlink to AlignmentRelease as follows:

Changed:
<
<
ln -s AlignmentOnlineDev_v11r3 AlignmentRelease
>
>
cd ..

rm AlignmentRelease with no trailing forward slash!

 
Changed:
<
<
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r3/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)
>
>
ln -s AlignmentOnlineDev_v11r4 AlignmentRelease
 
Changed:
<
<
There are two lines that look like this:
>
>
now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r10/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)

There are two lines that start with . /group/rich/sw/cmtuser and look like this:

  . /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-centos7-gcc62-opt.vars
Changed:
<
<
change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version.
>
>
change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version. (i.e. these should now point to files that exist)
 
Changed:
<
<
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r3/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
>
>
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r10/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)
 
Changed:
<
<
There are two lines that look like this:
>
>
There are two lines that start with . /group/rich/sw/cmtuser and look like this:
  . /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-centos7-gcc62-opt.vars

change them both so that you are definitely pointing to

<!-- the new version of AlignmentOnline and -->
the correct compiler version.
Changed:
<
<
...and you're done!
>
>
...and you're done! (though there may be other issues... for example, I used master instead of 2018-patches which caused the node configuration to fail, as the configurable Brunel.RichSequences does not exist in the upgrade).
 
Line: 513 to 558
 Make sure our code is checked out and compiled [e.g. for an established setup:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/
>
>
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r4/
 source optCompileOnly.sh %ENDSYNTAX%
Line: 562 to 607
  If you want to make a change to the Analyzer Brunel configuration, edit:
Changed:
<
<
/group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py
>
>
/group/rich/sw/cmtuser/AlignmentOnlineDev_v11r4/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py
 
Changed:
<
<
and then recompile. The simplest way to recompile (if you are using an fully established version of AlignmentOnline [currently the case for v11r3]) is to run these commands in your bash shell:
>
>
and then recompile. The simplest way to recompile (if you are using an fully established version of AlignmentOnline [currently the case for v11r4]) is to run these commands in your bash shell:
  %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/
>
>
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r4/
 source optCompileOnly.sh %ENDSYNTAX%
Line: 636 to 681
  echo "Making OPT $MIRROPT." LbLogin -c $MIRROPT
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRROPT
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/$MIRROPT
 echo $OnlineDev_DIR #env > envOPT.txt make clean
Line: 649 to 694
  echo "Compiling DBG and DB0." echo "Making DBG $MIRRDBG." LbLogin -c $MIRRDBG
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRRDBG
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/$MIRRDBG
  echo $OnlineDev_DIR #env > envDBG.txt make clean
Line: 659 to 704
  echo " " echo "Making DO0 $MIRRDO0." LbLogin -c $MIRRDO0
Changed:
<
<
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRRDO0
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r10/InstallArea/$MIRRDO0
  echo $OnlineDev_DIR #env > envDO0.txt make clean

Revision 442017-10-19 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 223 to 223
 /group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh (for the Iterator)
/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligWrk.sh (for the RichAnalyzer configuration of the farm nodes)
Changed:
<
<
where "v6rX" is whatever version of Online is being accessed to run things at the pit (check if unsure!)
>
>
where "v6rX" is whatever version of Online is being accessed to run things at the pit (check if unsure!): This is NOT the version AlignmentOnline depends on, but should be the newest version of Online.
 

Logging staging area

Revision 432017-07-25 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 165 to 165
 
      • autoUpdate = False
      • testing = False
    • If the mirror alignment decides no updated is needed, the same V remains in place e.g. v{N}.xml
Added:
>
>
 
    • If the mirror alignment decides an update is needed, the new V is written into v{N+1}_maybe_YYYYMMDD_HHMMSS.xml where YYYYMMDD_HHMMSS corresponds to the alignment name
Changed:
<
<
      • If any of the alignment parameters is more than 2 times the {primary,secondary} {y,z} threshold for any mirror combination, consider making an alignment update.
>
>
      • If any of the alignment parameters is more than 2 times the {primary,secondary} {y,z} tolerance for any mirror combination, consider making an alignment update.
 
Line: 177 to 184
 
    • If for some reason the alignment did not run for one or both of the RICH detectors; instruct the HLT piquets to use the current V.
      • If the problem seems to be with the farm, wait for the next fill and see what happens.
      • If the problem definitely is something in our code, try to fix it.
Added:
>
>
 
  • Automatic mode (for later)
    • in Configuration.py
      • autoUpdate = True

Revision 422017-07-24 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 61 to 61
 
  1. The very first minor iteration is separate because the different command that will come from the run control, the rest of the iterations will be in the same place.
  2. At the start of the first iteration the Work-directory will get emptied out.
  3. The starting xml-file is gotten from '/group/online/alignment/Rich' + str(whichRich) + '/MirrorAlign/'
Changed:
<
<
  1. The xml-files for the mirror-tilts for the magnification factors are made (unless we are running in fixed magnification factors mode).
>
>
  1. The xml-files for the mirror-tilts for the magnification factors are made (unless we are running in predetermined magnification factors mode).
 
  1. The xml-file for the first iteration put in the place where the analyzers will pick it up.
  2. Set Iterator state to ready which will make the analyzers run their jobs.
  3. When the analyzers are ready the iterator will get the command "pause" and will check if one major iteration has been finished already:
Line: 276 to 276
 

Magnification Factors

Changed:
<
<
If fixed magnification factors are to be used, then they will be read from
>
>
If predetermined magnification factors are to be used, then they will be read from
  /group/rich/AlignmentFiles/MagnifFactors/RICH1/
/group/rich/AlignmentFiles/MagnifFactors/RICH2/

Revision 412017-07-24 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 145 to 145
  MirrPauseHandler code currently in the master branch of Panoptes: https://gitlab.cern.ch/lhcb/Panoptes/blob/master/Rich/RichMirrorAlignmentOnline/src/MirrPauseHandler.cpp
Added:
>
>

Location and operation of the XML files [IMPORTANT]

The XML file the alignment is starting from is being picked up from here:

/group/online/alignment/Rich1/MirrorAlign/
/group/online/alignment/Rich2/MirrorAlign/

These XML files are colloquially called Vs (pronounced vees). When there is a new alignment, the Iterator produces a new V. Thus a particular V is simply a particular version of the mirror alignment compensations.

The Iterator will pick the XML file with the letter "=v=", followed by the biggest version number, followed by "=.xml=".
If you want to run starting with a different XML file, there's an option in the Configuration.py file.

The XML files in the above directories should not have a header, therefore when getting a starting XML file the header is being added by the Iterator, and when the finishing xml-file will be copied there it will have its header removed. If you add your own custom XML file to the list remove the header (= the first three lines; and the little </DDB> at the end).

We will run in one of three modes :

  • Monitoring mode CURRENT MODE OF OPERATION
    • in Configuration.py
      • autoUpdate = False
      • testing = False
    • If the mirror alignment decides no updated is needed, the same V remains in place e.g. v{N}.xml
    • If the mirror alignment decides an update is needed, the new V is written into v{N+1}_maybe_YYYYMMDD_HHMMSS.xml where YYYYMMDD_HHMMSS corresponds to the alignment name
    • If for some reason the alignment did not run for one or both of the RICH detectors; instruct the HLT piquets to use the current V.
      • If the problem seems to be with the farm, wait for the next fill and see what happens.
      • If the problem definitely is something in our code, try to fix it.
  • Automatic mode (for later)
    • in Configuration.py
      • autoUpdate = True
      • testing = False
    • If the mirror alignment decides no updated is needed, the same V remains in place e.g. v{N}.xml
    • If the mirror alignment decides an update is needed, the new V is written into v{N+1}.xml
      • The update will be picked up on the the current fill (the one on which the alignment was performed).
  • Testing mode (if need be)
    • in Configuration.py
      • testing = False (autoUpdate gets turned to False within the code if it happens to be True)
    • If the mirror alignment decides no updated is needed, the V is written to v{N+1}_testing_YYYYMMDD_HHMMSS.xml
    • If the mirror alignment decides an update is needed, the new V is written into v{N+1}_testing_maybe_YYYYMMDD_HHMMSS.xml
      • The update is not picked up.
 

Other interesting places

'workDir', the Work-directory

Line: 352 to 398
  Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
Added:
>
>
Also, cp ../AlignmentOnlineDev_v11r3/optCompileOnly.sh ./optCompileOnly.sh OR create a new file called optCompileOnly.sh and copy in the contents of optCompileOnly.sh. In this file make sure all of the lines starting with git lb-checkout are commented out for now, because you have already checked these out these packages.
 Then compile!
Changed:
<
<
source multiUserCompile.sh 2>&1 | tee compile.log (this command takes all standard and error output and puts it into compile.log)
>
>
source optCompileOnly.sh (this command can help you organize lb-checkouts, and takes all standard and error output from multiUserCompile.sh and puts it into compile.log)
  Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.
Line: 415 to 463
 

Standard compiling and installing of code

Changed:
<
<
After each alteration you make to the code (say you want to install a new version of the code from the master branch, or test code from one of your branches):
>
>
Usually once a new release of AlignmentOnline is installed and soft linked to AlignmentRelease, we enter a long period of standard operations, where at the pit we only re- lb-checkout pieces of code from the git repository that need updating.
 
Changed:
<
<
git fetch --all
>
>
Say you want to install a new version of the code from the master branch, or test code from one of your branches. Then go into the AlignmentRelease directory. All the initial git stuff is set up, so all you need to do to bring a new piece of code in is:

git fetch --all

 git lb-checkout {project name}/{branch name} {full package name}
Added:
>
>
  • example for {project name}/{branch name} {full package name} is Panoptes/master Rich/RichMirrorAlignmentOnline
  • If for some reason this doesn't work, and you are sure you got the {project name}/{branch name} {full package name} part correct, then try again replacing git fetch --all with git lb-use Panoptes (if you don't want to bring in something from Project Panoptes, then change it to Rec, etc...).
 Then perform the following in the AlignmentRelease directory:
Changed:
<
<
source multiUserCompile.sh OPTONLY 2>&1 | tee compile.log (or whatever the name of your multiUserCompile file is)
>
>
source optCompileOnly.sh
 
Changed:
<
<
That's it! Note that OPTONLY only compiles the OPT version and not the two debugger versions DBG and DO0. You don't need the latter two unless you need to do deep debugging of the alignment.
>
>
Make sure you always check the contents before running optCompileOnly.sh in the AlignmentRelease area! (And feel free to edit it on plus if you need to achieve a different result)
  • The main point here is that you do not want this script to lb-checkout things that haven't changed, which will save time.
 
Changed:
<
<
Sometimes Paras makes a script with the above lines in the AlignmentRelease directory called optCompileOnly.sh. If it exists, then you could just run:
>
>
That's it! Note that this script only compiles the OPT version and not the two debugger versions DBG and DO0. You don't need the latter two versions unless you need to do deep debugging of the mirror alignment. If you do need them,
 
Changed:
<
<
source optCompileOnly.sh
>
>
mv optCompileOnly.sh CompileAll.sh
 
Changed:
<
<
Or you could create this file and fill it with the contents below.
>
>
and remove the word OPTONLY from CompileAll.sh.
 
Changed:
<
<
Make sure you always check the contents before running optCompileOnly.sh in the AlignmentRelease area! (And feel free to edit it on plus if you need to achieve a different result)
>
>
Then

source CompileAll.sh

 

Running the mirror alignment worker task on a single HLT Farm node

Line: 440 to 496
  To run our worker task on a node to test the processing of data on one of the analyzers:
Changed:
<
<
Make sure our code is compiled [e.g. for an established setup:
>
>
Make sure our code is checked out and compiled [e.g. for an established setup:
  %SYNTAX{ "bash" color="yes"}% cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/
Line: 503 to 559
  Make sure you always check the contents before running optCompileOnly.sh in the AlignmentRelease area! (And feel free to edit it on plus if you need to achieve a different result)
Changed:
<
<

XML files

The xml file the alignment is starting from is being picked up from here:
/group/online/alignment/Rich1/MirrorAlign/
/group/online/alignment/Rich2/MirrorAlign/

>
>
 
Changed:
<
<
The Iterator will pick the xml-file with the biggest version number.
If you want to run starting with a different xml-file, just copy it into this directory and give it the next number - and put a little comment at the top about where this alignment came from.
>
>

Useful scripts

 
Changed:
<
<
The xml files in the above directories should not have a header, therefore when getting a starting xml-file the header is being added and when the finishing xml-file will be copied there it will have its header removed. If you add your own xml-file to the list remove the header (= the first three lines; and the little </DDB> at the end).
>
>
PLEASE KEEP THESE UP TO DATE
 
Changed:
<
<

multiUserCompile.sh

>
>

multiUserCompile.sh

  Here is the script (call it multiUserCompile.sh) you should put in /group/rich/sw/cmtuser/AlignmentRelease to automate the moving of compile files created by others and to automate the compiling of the configuration. Make sure you change the Online version to the correct one for the version of AlignmentOnlineDev that the softlink AlignmentRelease is pointing to. Also make sure that you are using the correct compiler version for the machine that you are on.
Line: 610 to 663
 </>
<!--/twistyPlugin-->

Changed:
<
<

optCompileOnly.sh

>
>

optCompileOnly.sh

  %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
git fetch Panoptes
>
>
git fetch --all # making this "git fetch Panoptes" can be a little faster if you are not touching any files from other projects #git fetch Panoptes
  # SELECT BRANCH TO USE FOR MIRRORALIGNMENTONLINE # (leave commented if you wish to keep the code release already checked out fixed at the pit)

#git lb-checkout Panoptes/master Rich/RichMirrorAlignmentOnline

Changed:
<
<
#git lb-checkout Panoptes/pnaik-MirrAlign-20170705 Rich/RichMirrorAlignmentOnline
>
>
#git lb-checkout Panoptes/pnaik-MirrAlign-20170719 Rich/RichMirrorAlignmentOnline
  # SELECT BRANCH TO USE FOR MIRRALIGN # (leave commented if you wish to keep the code release already checked out fixed at the pit)

Revision 402017-07-24 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 230 to 230
 

Magnification Factors

Changed:
<
<
If fixed magnification factors are to be used, then the should be read from
>
>
If fixed magnification factors are to be used, then they will be read from
  =/group/rich/AlignmentFiles/MagnifFactors/RICH1/ =
=/group/rich/AlignmentFiles/MagnifFactors/RICH2/ =
Changed:
<
<
If you are asked to replace them:

Paras, note to self: FILL THIS IN

>
>
Currently, you will not be asked to replace them. Paras, note to self: Update This Later; also use subdirectories instead of the main directory for better tracking of magFactors.
 

Fresh install of code for new AlignmentOnline version

Revision 392017-07-22 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 27 to 27
 
    • This includes Rec/Brunel, the key package for the reconstructing the RICH photons
      <!-- * PRConfig -->
Changed:
<
<
As you can see, the AlignmentOnline project relies on a lot to run our code. It is important then that we strictly follow the code workflows described in this document.
>
>
As you can see, the AlignmentOnline project relies on a lot to run our code. It is important then that we strictly follow the code workflows described in LHCbRichMirrorAlignGitInfo and this document.
  This TWiki page specifically discusses the Rich/RichMirrorAlignmentOnline package, and its special relationship to the AlignmentOnline project, that has been (or can be) installed at the pit.
Line: 213 to 213
 
  • In the Configuration, for RICH1 (and for the heck of it, RICH2): xmlMDCS = ""

However, if we want to use a different XML file we need to tell the mirror alignment through the configuration the location of the file

Changed:
<
<
  • In the Configuration, for RICH1 (and for the heck of it, RICH2): xmlMDCS = "/group/rich"
>
>
  • for example, in the Configuration, for RICH1 (and for the heck of it, RICH2): xmlMDCS = "/group/rich/AlignmentFiles/MDCS/Conditions/Rich1/Environment/HPD.xml"
 
Added:
>
>
See /group/rich/AlignmentFiles/MDCS/README.txt for details on what you should do if you are asked to use new MDCS corrections at the pit.

CombAndMirrSubsets.txt

Temporarily, the subset of possible mirror combinations that are used for the mirror alignment are stored here:

=/group/rich/AlignmentFiles/Rich1CombAndMirrSubsets.txt =
=/group/rich/AlignmentFiles/Rich2CombAndMirrSubsets.txt =

Do not touch these files.

Eventually these and previous combinations in the /group/rich/AlignmentFiles/ directory should be moved to within the RichMirrorAlignmentOnline package.

Magnification Factors

If fixed magnification factors are to be used, then the should be read from

=/group/rich/AlignmentFiles/MagnifFactors/RICH1/ =
=/group/rich/AlignmentFiles/MagnifFactors/RICH2/ =

If you are asked to replace them:

Paras, note to self: FILL THIS IN

 

Fresh install of code for new AlignmentOnline version

Revision 382017-07-21 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 205 to 205
  Only the first line of this text file is actually compared. You may need to manually edit the first line back to indicating the previous polarity, if for some reason the alignment aborts during a polarity change.
Added:
>
>

Non-default MDCS corrections.

The RICH1MDCS is a system used to correct for distortions of the HPD photocathode images in the LHCb magnetic field.

The final corrections are are in the form of an XML file, which is obtained by the mirror alignment through the CondDB.

  • In the Configuration, for RICH1 (and for the heck of it, RICH2): xmlMDCS = ""

However, if we want to use a different XML file we need to tell the mirror alignment through the configuration the location of the file

  • In the Configuration, for RICH1 (and for the heck of it, RICH2): xmlMDCS = "/group/rich"
 

Fresh install of code for new AlignmentOnline version

If you are not asked to install a new AlignmentOnline version at the pit, then you may skip this section (though it's worth a read once anyway, to see how the code comes together).

Revision 372017-07-21 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 8 to 8
 

RICH mirror alignment project and package overview

Changed:
<
<
The alignment package for the online RICH mirror alignment is here: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX
  • NOTA BENE: vYYrX when referenced in this TWiki should always be replaced with numbers for the current revision
>
>
The alignment package for the online RICH mirror alignment (Rich/RichMirrorAlignmentOnline) is always kept and sourced from the LHCb project Panoptes git repository.
  • code currently in the master branch of Panoptes: https://gitlab.cern.ch/lhcb/Panoptes/tree/master/Rich/RichMirrorAlignmentOnline

At the pit, this package and others are drawn into our development directory of AlignmentOnline, in this directory here: /group/rich/sw/cmtuser/AlignmentRelease

  • NOTA BENE: AlignmentRelease is a soft link to /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX
    • vYYrX when referenced in this TWiki should always be replaced with numbers for the current revision
 
  • The current version being used by us online is v11r3. Experts, always keep this line updated.
Added:
>
>
    • Also, update the soft link if the version changes!
 
Changed:
<
<
It relies on the projects:
>
>
This package relies on the projects:
 
  • AlignmentOnline
Changed:
<
<
    • which relies on Online
  • Panoptes
  • Rec (this includes Rec/Brunel, the key package for the reconstructing the RICH photons)
>
>
    • This package relies on the Online project
  • Panoptes whose packages are used as plug-ins
    • This includes Rich/RichMirrCombinFit, the key package for fitting the reconstructed the RICH photons
    • This includes Rich/RichMirrAlign, the package that performs the minimization required to determine the best alignment
  • Rec whose packages are used as plug-ins
    • This includes Rec/Brunel, the key package for the reconstructing the RICH photons
 
<!-- * PRConfig -->
Changed:
<
<
Specific packages of interest include:
  • Rich/RichMirrCombinFit, Rich/RichMirrAlign, Rich/RichMirrorAlignmentOnline, and Rich/RichAlignment
>
>
As you can see, the AlignmentOnline project relies on a lot to run our code. It is important then that we strictly follow the code workflows described in this document.
 
Changed:
<
<
This TWiki page specifically discusses the Rich/RichMirrorAlignmentOnline package and its relationship to the AlignmentOnline project.
>
>
This TWiki page specifically discusses the Rich/RichMirrorAlignmentOnline package, and its special relationship to the AlignmentOnline project, that has been (or can be) installed at the pit.
 
Changed:
<
<
More information on other packages and projects is available on the main LHCbRichMirrorAlign page.
>
>
More information on specific packages of interest and other projects is available on the main LHCbRichMirrorAlign page.
 

The RichMirrorAlignmentOnline package

Changed:
<
<
This package contains the "Analyzer", the "Iterator", the Configuration for the alignment and the MirrPauseHandler. It also contains doc/release.notes with a full history of the code.
>
>
This package contains the "Iterator" and it's "Helper files", the "Analyzer", the Configuration for the alignment and the MirrPauseHandler. It also contains doc/release.notes with a full history of the code.

Most recent overview talk

 
Changed:
<
<

Definitions

>
>

Key Definitions

  Iterator = The script that drives the mirror alignment
Line: 38 to 47
  analyzers = The HLT farm (a.k.a. worker) nodes that we use to process the data that comes from our RICH Mirrors HLT1 line
Changed:
<
<

The Analyzer (RichAnalyzer.py)

The Analyzer is the entity that will execute the Brunel jobs and produce the histogram files.

The Analyzer code only contains the options for the Brunel jobs which will be read in the during the "configuration".
During run-time, the analyzers will pick up the rich mirror xml file for the reconstruction from the exact same place every time.

Analyzer code: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py

>
>
Configuration = The file which lists sets current state of every configurable option in the mirror alignment.
 

The Iterator (Iterator.py)

Line: 57 to 59
 
  1. The configuration is read in and variables are set.
  2. The while loop begins.
  3. The very first minor iteration is separate because the different command that will come from the run control, the rest of the iterations will be in the same place.
Changed:
<
<
  1. At the start of the first iteration the work-directory will get emptied out.
>
>
  1. At the start of the first iteration the Work-directory will get emptied out.
 
  1. The starting xml-file is gotten from '/group/online/alignment/Rich' + str(whichRich) + '/MirrorAlign/'
  2. The xml-files for the mirror-tilts for the magnification factors are made (unless we are running in fixed magnification factors mode).
  3. The xml-file for the first iteration put in the place where the analyzers will pick it up.
Line: 66 to 68
 
    • if not then it just copied the xml file for the next iteration to the place where the analyzers can pick it up
    • if yes it will perform the fits and the alignment and check weather or not is has converged. If yes it's finished, if no it starts again at 7.
Changed:
<
<
Iterator code (well documented) : /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/Iterator.py
>
>
Iterator code (well documented) currently in the master branch of Panoptes: https://gitlab.cern.ch/lhcb/Panoptes/blob/master/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/Iterator.py
  Here a beautiful sketch of what the iterator does:
Line: 74 to 76
 

The Helper Files (*.py)

Changed:
<
<
There are many helper files that contains classes that outsource all of the tasks that the Iterator needs to perform. These classes are contained within various .py files located in the same directory as the RichAnalyzer and the Iterator. Some of the classes contained within these helper files are described below:
>
>
There are many helper files that contains classes that outsource all of the tasks that the Iterator needs to perform. These classes are contained within various .py files located in the same directory as the RichAnalyzer and the Iterator. There is usually one class per file, except that SaveSetRetriever and Histocopier are both in HistoHelper.py. The classes contained within these helper files are described below:

RichAlignmentHelper class
• The methods in this file are used to run RichMirrCombinFit and RichMirrAlign
• checkFitQual just returns whether all bins of the deltaTheta vs. phi histogram have enough photons
• hasConverged checks to see if RichMirrAlign thinks the alignment has converged

XMLFileHelper class
• This helper manipulates the XML files and helps prepare them for consumption by the Online DB or by the Brunel Configuration.
• It also prepares the final XML file.

tiltObj class
• This is Claire’s very nice python object that can store the difference between one alignment and another.

AlignMonitor class
• The methods in this file are used to perform the monitoring, and also to fit the deltaTheta plot that is shown in the final PDF summary file.
• It relies heavily on methods from tiltObj.py

UpdateHelper class
• This is the “DIM” service that we launch when our alignment starts.When we decide what mirror alignment we wish to apply to this fill, we use the updateDB method to instruct Clara (via a program she wrote) to whether to use the existing XML as our alignment for this fill, or an new one.

SetupHelper class
SetupHelper determines the alignment name (i.e. the eventual directory name the working directory will be copied to when done). It also launches the monitoring, finalizes the alignment when finishes, and writes summary.txt, emails, and ELOG entries.

Communicator class
• Don’t worry too much about Communicator.py
• It allows the Iterator to communicate with the run-control. 
The key method is get_command()
• You’ll probably never touch it.

HistoHelper.py
• Don’t worry too much about HistoHelper.py
• It manages the retrieval of the SaveSets (histograms) from the analyzers. SaveSetRetriever class:
The SaveSets are not written by the Iterator but a very different part of the program. In order to know where to retrieve the save sets from, a "DIM" server method is used to retrieve the location where the histogram was written in real-time. Histocopier class:
Encapsulates waiting for the SaveSets being written, matching it to the correct iteration and copying it to the desired location.
• You'll probably never touch it.

 
Changed:
<
<
SaveSetRetriever class:
The savesets (meaning the histograms) are not written by the Iterator but a very different part of the program. In order to know where, the SaveSetRetriever class needed to be implemented that will use a pydim method to retrieve the location where the histogram was written in real-time.
>
>
These pieces of code as currently in the master branch of Panoptes: https://gitlab.cern.ch/lhcb/Panoptes/blob/master/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/

The Analyzer (RichAnalyzer.py)

 
Changed:
<
<
Histocopier class:
Encapsulates waiting for the saveset being written, matching it to the correct iteration and copying it to the desired location.
>
>
The Analyzer is the entity that will configure the analyzers and execute the Brunel jobs and produce the histogram files.

The Analyzer code only contains the options for the Brunel jobs which will be read in the during the "configuration".
During run-time, the analyzers will pick up the rich mirror xml file for the reconstruction from the exact same place every time.

 
Changed:
<
<
There are many more classes as well.
>
>
Analyzer code currently in the master branch of Panoptes: https://gitlab.cern.ch/lhcb/Panoptes/blob/master/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py
 

The Configuration file (Configuration.py)

Line: 88 to 137
  The Configurations will be read in by both the Iterator and the Analyzer.
Changed:
<
<
Configuration file code: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/python/RichMirrorAlignmentOnline/Configuration.py
>
>
Configuration file code currently in the master branch of Panoptes: https://gitlab.cern.ch/lhcb/Panoptes/blob/master/Rich/RichMirrorAlignmentOnline/python/RichMirrorAlignmentOnline/Configuration.py
 

The MirrPauseHandler (MirrPauseHandler.cpp)

The MirrPauseHandler contains the code that is executed when the analyzers go to 'paused' - which is after each iteration. It specifies (to a certain degree) when and where the histogram files are written. This code does (most probably) not need to be changed anymore.

Changed:
<
<
MirrPauseHandler code: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/src/MirrPauseHandler.cpp
>
>
MirrPauseHandler code currently in the master branch of Panoptes: https://gitlab.cern.ch/lhcb/Panoptes/blob/master/Rich/RichMirrorAlignmentOnline/src/MirrPauseHandler.cpp
 

Other interesting places

Changed:
<
<

Work-directory 'workdir'

>
>

'workDir', the Work-directory

 
Changed:
<
<
The directory in which all the files created during an alignment are being written.
=/group/online/AligWork/Rich1=
=/group/online/AligWork/Rich2=
>
>
This is the directory in which all the files created during an alignment are being written.
/group/online/AligWork/Rich1
/group/online/AligWork/Rich2
 

Savesets

Changed:
<
<
Before the histogram files are being copied into the work-directory they will be placed into
=/hist/Savesets/2015/LHCbA/AligWrk_Rich1=
=/hist/Savesets/2015/LHCbA/AligWrk_Rich2=
>
>
Before the histogram files are being copied into the Work-directory they will be placed into
/hist/Savesets/2015/LHCbA/AligWrk_Rich1
/hist/Savesets/2015/LHCbA/AligWrk_Rich2
 
(check the year)

Driver scripts for the all online alignments

Changed:
<
<
This is the script that holds everything together. It was made by the online people and we can only touch it if we are VERY careful!
>
>
This is the script that holds everything together at the pit. It was made by the online people and we can only touch it if we are VERY careful!
 
Changed:
<
<
/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh (for the iterator) /group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligWrk.sh (for the configuration of the farm nodes)
>
>
/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh (for the Iterator)
/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligWrk.sh (for the RichAnalyzer configuration of the farm nodes)

where "v6rX" is whatever version of Online is being accessed to run things at the pit (check if unsure!)

 

Logging staging area

When the alignment runs, we store the log of the machine that the Iterator runs on, which is always hlt02.

Changed:
<
<
The last Rich1 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich1_hlt02.log
The last Rich2 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich2_hlt02.log
>
>
The output of hlt02 (including messages that aren't ours) during the last Rich1 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich1_hlt02.log
The output of hlt02 (including messages that aren't ours) during the last Rich2 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich2_hlt02.log

If an alignment is completed properly this is later moved to the output storage area. If not, and the Iterator makes it to the end, it is saved in this directory with a timestamp (you can safely delete old time stamped files, if the mirror alignment is operating OK).

  • In either of these cases an "hlt02reduced" log is also created, this has a grep applied to it that filters out junk messages that show up on hlt02, that are unlikely to be from our mirror alignment iterator.
If the Iterator does not make it to the end, then it just remains in this directory until the next mirror alignment. However in this case the next alignment's output appends to this file, instead of overwriting it as usual.

At the beginning of an alignment, the current hlt02 logs are copied to "_previous" to preserve the last run.

Some more information about looking at and inspecting these files can be found here: LHCbRichMirrorAlignShiftInfo

Rolling log of Cherenkov angle resolutions

A rolling log of Cherenkov angle resolutions is kept in these files:

=/group/rich/AlignmentFiles/Logging/Rich1_CKresTrend.txt=
/group/rich/AlignmentFiles/Logging/Rich2_CKresTrend.txt

 
Changed:
<
<
If an alignment is completed properly this later moved to the output storage area. If not, and the Iterator makes it to the end, it is saved in this directory with a timestamp. If not, and the Iterator does not make it to the end, then it just remains in this directory until the next mirror alignment
>
>
Do not touch these, unless you're editing them to remove multiple data points (e.g. the alignment was for some reason run twice on the same fill). If testing = True in the Configuration then no data is appended to this file.

You can see plots of this data and comparisons to the resolutions from OnlineBrunel.

 

Magnet polarity memory

Changed:
<
<
Is stored here
>
>
The polarity of the last mirror alignment is stored here:

=/group/rich/AlignmentFiles/Polarity/previousPolarity_RICH1.txt=
/group/rich/AlignmentFiles/Polarity/previousPolarity_RICH2.txt

The code checks to see if the polarity of the current alignment is different from the previous alignment. If autoUpdate = True in the Configuration, then we will force an update of the mirror alignment (unless sanity checks are failed, of course).

 
Changed:
<
<
/group/rich/AlignmentFiles/Polarity/
>
>
Then at the end of the code, the previousPolarity file is overwritten with the current polarity information, unless testing = True.

Only the first line of this text file is actually compared. You may need to manually edit the first line back to indicating the previous polarity, if for some reason the alignment aborts during a polarity change.

 

Fresh install of code for new AlignmentOnline version

Added:
>
>
If you are not asked to install a new AlignmentOnline version at the pit, then you may skip this section (though it's worth a read once anyway, to see how the code comes together).
 First, add these two lines to the end of your .bashrc:

%SYNTAX{ "bash" color="yes"}%

Line: 303 to 379
  ...and you're done!
Added:
>
>
 

Standard compiling and installing of code

After each alteration you make to the code (say you want to install a new version of the code from the master branch, or test code from one of your branches):

Revision 362017-07-09 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 38 to 38
  analyzers = The HLT farm (a.k.a. worker) nodes that we use to process the data that comes from our RICH Mirrors HLT1 line
Changed:
<
<

The Analyzer

>
>

The Analyzer (RichAnalyzer.py)

  The Analyzer is the entity that will execute the Brunel jobs and produce the histogram files.
Line: 47 to 47
  Analyzer code: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py
Changed:
<
<

The Iterator

>
>

The Iterator (Iterator.py)

  The Iterator drives the Rich mirror alignment. It sets up all necessary files, writes the xml files, puts them in the right place where the analyzers can pick it up for the next iteration, performs the fits an decides if the alignment has converged.
Line: 66 to 66
 
    • if not then it just copied the xml file for the next iteration to the place where the analyzers can pick it up
    • if yes it will perform the fits and the alignment and check weather or not is has converged. If yes it's finished, if no it starts again at 7.
Deleted:
<
<
SaveSetRetriever class:
The savesets (meaning the histograms) are not written by the Iterator but a very different part of the program. In order to know where, the SaveSetRetriever class needed to be implemented that will use a pydim method to retrieve the location where the histogram was written in real-time.

Histocopier class:
Encapsulates waiting for the saveset being written, matching it to the correct iteration and copying it to the desired location.

 Iterator code (well documented) : /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/Iterator.py

Here a beautiful sketch of what the iterator does:

Iterator_Sketch.jpeg

Changed:
<
<

The Configuration file

>
>

The Helper Files (*.py)

There are many helper files that contains classes that outsource all of the tasks that the Iterator needs to perform. These classes are contained within various .py files located in the same directory as the RichAnalyzer and the Iterator. Some of the classes contained within these helper files are described below:

SaveSetRetriever class:
The savesets (meaning the histograms) are not written by the Iterator but a very different part of the program. In order to know where, the SaveSetRetriever class needed to be implemented that will use a pydim method to retrieve the location where the histogram was written in real-time.

Histocopier class:
Encapsulates waiting for the saveset being written, matching it to the correct iteration and copying it to the desired location.

There are many more classes as well.

The Configuration file (Configuration.py)

  The Configuration file contains a lot of different settings for the alignment for Rich1 and Rich2 separately (this might be done smarter, but later). Some things in there should not be changed because they are part of the online-setup.
Line: 84 to 90
  Configuration file code: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/python/RichMirrorAlignmentOnline/Configuration.py
Changed:
<
<

The MirrPauseHandler

>
>

The MirrPauseHandler (MirrPauseHandler.cpp)

  The MirrPauseHandler contains the code that is executed when the analyzers go to 'paused' - which is after each iteration. It specifies (to a certain degree) when and where the histogram files are written. This code does (most probably) not need to be changed anymore.
Line: 112 to 118
  When the alignment runs, we store the log of the machine that the Iterator runs on, which is always hlt02.
Changed:
<
<
The last Rich1 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich1_hlt02.log
>
>
The last Rich1 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich1_hlt02.log
 The last Rich2 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich2_hlt02.log

If an alignment is completed properly this later moved to the output storage area.

Line: 236 to 242
  You may possibly want to use a tag or your own branch instead of the master branch, if you are testing code before you make a merge (to master) request.
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile_v11r3.sh ./multiUserCompile_v11r3.sh OR create a new file called multiUserCompile_v11r3.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
>
>
Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile.sh ./multiUserCompile.sh OR create a new file called multiUserCompile.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
  Then compile!
Changed:
<
<
source multiUserCompile_v11r3.sh 2>&1 | tee compile.log (this command takes all standard and error output and puts it into compile.log)
>
>
source multiUserCompile.sh 2>&1 | tee compile.log (this command takes all standard and error output and puts it into compile.log)
  Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.
Line: 299 to 305
 

Standard compiling and installing of code

Changed:
<
<
After each alteration perform the following in the AlignmentRelease directory:

source multiUserCompile_v11r3.sh OPTONLY 2>&1 | tee compile.log (or whatever the name of your multiUserCompile file is)

That's it! Note that OPTONLY only compiles the OPT version and not the two debugger versions DBG and DO0. You don't need the latter two unless you need to do deep debugging of the alignment.

Sometimes Paras makes a script with the above line in it in the AlignmentRelease directory called optCompileOnly.sh. If it exists, then you could just run:

source optCompileOnly.sh

Old info that might be useful, in case something breaks

<!--/twistyPlugin twikiMakeVisibleInline-->
After each alteration perform the following:

<!-- SyntaxHighlightingPlugin -->
do_configure
do_install
<!-- end SyntaxHighlightingPlugin -->
>
>
After each alteration you make to the code (say you want to install a new version of the code from the master branch, or test code from one of your branches):
 
Changed:
<
<
Though note that this may not work sometimes, or may not work if the permissions are not flexible (we are trying to fix this by creating a "rich_user" account). So try the following below.
>
>
git fetch --all git lb-checkout {project name}/{branch name} {full package name}
 
Changed:
<
<
If all this didn’t work, first *READ everything up to and including the caveat below*, and then follow the instructions or use the multiUserCompile.sh script:
>
>
Then perform the following in the AlignmentRelease directory:
 
Changed:
<
<
Login into new shell, then type:
>
>
source multiUserCompile.sh OPTONLY 2>&1 | tee compile.log (or whatever the name of your multiUserCompile file is)
 
Changed:
<
<
<!-- SyntaxHighlightingPlugin -->
LbLogin -c $CMTDEB
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_vXXX
make purge
export OnlineDev _DIR=/group/online/dataflow/cmtuser/OnlineDev_v5rXXX/InstallArea/$CMTDEB
#export LD_LIBRARY_PATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_76root6/Boost/1.55.0_python2.7/$CMTDEB/lib:$LD_LIBRARY_PATH
make configure
make -j 8 install
<!-- end SyntaxHighlightingPlugin -->

Check for errors during configure and install Then in a new shell, repeat the above, but without the call to LbLogin and replace all $CMTDEB with $CMTOPT

>
>
That's it! Note that OPTONLY only compiles the OPT version and not the two debugger versions DBG and DO0. You don't need the latter two unless you need to do deep debugging of the alignment.
 
Changed:
<
<
caveat: currently when you compile the code, the permissions to the files are owned only by you... this causes problems when others wish to recompile Configuration.py to perform alignments, due to a lack of overwrite permissions. Paras created a script to move other people's old compile files out of the way so that you can compile. This script also performs all of the compiling described above. You can replicate this script by creating a file in /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX called multiUserCompile.sh, filling it with THIS, and then running it with source multiUserCompile.sh
>
>
Sometimes Paras makes a script with the above lines in the AlignmentRelease directory called optCompileOnly.sh. If it exists, then you could just run:
 
Changed:
<
<
Then ONLY IF NEEDED!!! (ask Claire if in doubt):
>
>
source optCompileOnly.sh
 
Changed:
<
<
<!-- SyntaxHighlightingPlugin -->
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX
cmsetup
<!-- end SyntaxHighlightingPlugin -->
>
>
Or you could create this file and fill it with the contents below.
 
Changed:
<
<
When calling cmsetup the environement file setup.x86_64-centos7-gcc62-dbg.vars will be overwritten. In order to make sure the latest TCK package is picked up you should check that all three paths containing "TCK" in their names are the same as for the opt build.
<!--/twistyPlugin-->
>
>
Make sure you always check the contents before running optCompileOnly.sh in the AlignmentRelease area! (And feel free to edit it on plus if you need to achieve a different result)
 

Running the mirror alignment worker task on a single HLT Farm node

Line: 371 to 339
  ]
Added:
>
>
Make sure you always check the contents before running optCompileOnly.sh in the AlignmentRelease area! (And feel free to edit it on plus if you need to achieve a different result)
 Via ssh, log into a HLT farm machine from lbgw, e.g. hltf1119

There is a file called /group/online/dataflow/options/LHCbA/HLT/OnlineEnvBase.py which basically gets filled with all the useful info that you would normally set up in the FSM. So you can configure and set up the alignment through the FSM, then copy this file locally, or just grab a version of this someone else copied and edit it yourself if need be.

Line: 421 to 391
 source optCompileOnly.sh %ENDSYNTAX%
Added:
>
>
Make sure you always check the contents before running optCompileOnly.sh in the AlignmentRelease area! (And feel free to edit it on plus if you need to achieve a different result)
 

XML files

The xml file the alignment is starting from is being picked up from here:
/group/online/alignment/Rich1/MirrorAlign/
/group/online/alignment/Rich2/MirrorAlign/

Line: 436 to 408
  With the current version of this script you need to be compiling on a centos7 plus (e.g. ssh -Y pluscc) machine. You may also compile on an SLC6 plus machine but then you have to change centos7 to slc6 everywhere below, however now we should just stick to centos7 until the next big linux upgrade.
Added:
>
>
We use this script, because currently when you compile the code, the permissions to the files are owned only by you... this causes problems when others wish to recompile the code, due to a lack of overwrite permissions. This script moves other people's old compile files out of the way so that you can compile. This script also performs all of the compiling.
 %TWISTY{ mode="div" showlink="Show..."
Line: 445 to 419
  remember="on" }% %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
echo "Usage: Execute this script using 'source multiUserCompile_v11r3.sh' to compile all versions and 'source multiUserCompile_v11r3.sh OPTONLY' to compile only the OPT version."
>
>
echo "Usage: Execute this script using 'source multiUserCompile.sh' to compile all versions and 'source multiUserCompile.sh OPTONLY' to compile only the OPT version."
  echo "Positional Parameters" echo '$0 = ' $0
Line: 478 to 452
 if [ -d ./build.$MIRRDO0 ]; then mv ./build.$MIRRDO0 pastBuildFiles/build.$MIRRDO0.$(date +%s) fi
Changed:
<
<
echo "Deleting ./pastBuildFiles if we have the right permissions" rm -rf ./pastBuildFiles
>
>
echo "Deleting ./pastBuildFiles if we have the right permissions." echo " (if not, that's fine, and the error messages are currently directed to /dev/null)" rm -rf ./pastBuildFiles 2> /dev/null
 echo " "

echo "Making OPT $MIRROPT."

Line: 527 to 502
 

optCompileOnly.sh

Added:
>
>
%SYNTAX{ "bash" color="yes"}%
 git fetch Panoptes
Changed:
<
<
#git lb-checkout Panoptes/pnaik-MirrAlign-20170705 Rich/RichMirrorAlignmentOnline
>
>
# SELECT BRANCH TO USE FOR MIRRORALIGNMENTONLINE # (leave commented if you wish to keep the code release already checked out fixed at the pit)
 #git lb-checkout Panoptes/master Rich/RichMirrorAlignmentOnline
Changed:
<
<
git lb-checkout Panoptes/master Rich/RichMirrAlign git lb-checkout Panoptes/master Rich/RichMirrCombinFit
>
>
#git lb-checkout Panoptes/pnaik-MirrAlign-20170705 Rich/RichMirrorAlignmentOnline

# SELECT BRANCH TO USE FOR MIRRALIGN # (leave commented if you wish to keep the code release already checked out fixed at the pit)

#git lb-checkout Panoptes/master Rich/RichMirrAlign

# SELECT BRANCH TO USE FOR MIRRCOMBINFIT # (leave commented if you wish to keep the code release already checked out fixed at the pit)

#git lb-checkout Panoptes/master Rich/RichMirrCombinFit

source multiUserCompile.sh OPTONLY 2>&1 | tee compile.log %ENDSYNTAX%

 
Deleted:
<
<
source multiUserCompile_v11r3.sh OPTONLY 2>&1 | tee compile.log
  Back to main Mirror alignment TWiki

Revision 352017-07-09 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 59 to 59
 
  1. The very first minor iteration is separate because the different command that will come from the run control, the rest of the iterations will be in the same place.
  2. At the start of the first iteration the work-directory will get emptied out.
  3. The starting xml-file is gotten from '/group/online/alignment/Rich' + str(whichRich) + '/MirrorAlign/'
Changed:
<
<
  1. The xml-files for the mirror-tilts for the magnification coefficients are made.
>
>
  1. The xml-files for the mirror-tilts for the magnification factors are made (unless we are running in fixed magnification factors mode).
 
  1. The xml-file for the first iteration put in the place where the analyzers will pick it up.
  2. Set Iterator state to ready which will make the analyzers run their jobs.
  3. When the analyzers are ready the iterator will get the command "pause" and will check if one major iteration has been finished already:

Revision 342017-07-06 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 121 to 121
 

Magnet polarity memory

Added:
>
>
Is stored here

/group/rich/AlignmentFiles/Polarity/

 

Fresh install of code for new AlignmentOnline version

First, add these two lines to the end of your .bashrc:

Line: 520 to 524
 %ENDSYNTAX% </>
<!--/twistyPlugin-->
Added:
>
>

optCompileOnly.sh

git fetch Panoptes #git lb-checkout Panoptes/pnaik-MirrAlign-20170705 Rich/RichMirrorAlignmentOnline #git lb-checkout Panoptes/master Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/master Rich/RichMirrAlign git lb-checkout Panoptes/master Rich/RichMirrCombinFit

source multiUserCompile_v11r3.sh OPTONLY 2>&1 | tee compile.log

 Back to main Mirror alignment TWiki

META FILEATTACHMENT attachment="Iterator_Sketch.jpeg" attr="" comment="Sketch of what the Iterator does" date="1491411432" name="Iterator_Sketch.jpeg" path="Iterator_Sketch.jpeg" size="925845" user="pnaik" version="1"

Revision 332017-07-03 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 6 to 6
 
Deleted:
<
<

Very New Stuff to be sorted below

To get the Histos to reset every iteration, we are trying the following (after everything else was installed of course)

We went into our AlignmentRelease directory. Then:

pnaik:pluscc07 ~/compileDirNowSoftLink > mkdir Online pnaik:pluscc07 ~/compileDirNowSoftLink > cp -R /group/online/dataflow/cmtuser/AlignmentRelease/Online/GauchoBase Online/ pnaik:pluscc07 ~/compileDirNowSoftLink > source optCompileOnly.sh

So basically recompiling a new version of Gaucho, to see if this helps.

 

RICH mirror alignment project and package overview

The alignment package for the online RICH mirror alignment is here: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX

Line: 26 to 13
 
  • The current version being used by us online is v11r3. Experts, always keep this line updated.

It relies on the projects:

Changed:
<
<
  • AlignmentOnline
  • Panoptes
  • Rec (this includes Rec/Brunel, the key package for the reconstructing the RICH photons)
>
>
  • AlignmentOnline
    • which relies on Online
  • Panoptes
  • Rec (this includes Rec/Brunel, the key package for the reconstructing the RICH photons)
 
<!-- * PRConfig -->
Changed:
<
<
Specific packages of interest are:
  • Rich/RichMirrCombinFit, Rich/RichMirrAlign, Rich/RichAlignment and Rich/RichMirrorAlignmentOnline
>
>
Specific packages of interest include:
  • Rich/RichMirrCombinFit, Rich/RichMirrAlign, Rich/RichMirrorAlignmentOnline, and Rich/RichAlignment
 
Changed:
<
<
This TWiki page specifically discusses the Rich/RichMirrorAlignmentOnline package and its relationship to the AlignmentOnline project.
>
>
This TWiki page specifically discusses the Rich/RichMirrorAlignmentOnline package and its relationship to the AlignmentOnline project.
  More information on other packages and projects is available on the main LHCbRichMirrorAlign page.

The RichMirrorAlignmentOnline package

Changed:
<
<
This package contains the Analyzer, the Iterator, the Configuration for the alignment and the MirrPauseHandler.
>
>
This package contains the "Analyzer", the "Iterator", the Configuration for the alignment and the MirrPauseHandler. It also contains doc/release.notes with a full history of the code.

Definitions

Iterator = The script that drives the mirror alignment

Analyzer = The code that configures Brunel

analyzers = The HLT farm (a.k.a. worker) nodes that we use to process the data that comes from our RICH Mirrors HLT1 line

 

The Analyzer

The Analyzer is the entity that will execute the Brunel jobs and produce the histogram files.

The Analyzer code only contains the options for the Brunel jobs which will be read in the during the "configuration".

Changed:
<
<

During run-time the analyzers will pick up the rich mirror xml file for the reconstruction from the exact same place every time.
>
>

During run-time, the analyzers will pick up the rich mirror xml file for the reconstruction from the exact same place every time.
  Analyzer code: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py

The Iterator

Changed:
<
<
The iterator drives the Rich mirror alignment. It sets up all necessary files, writes the xml files, puts them in the right place where the analyzers can pick it up for the next iteration, performs the fits an decides if the alignment has converged.
>
>
The Iterator drives the Rich mirror alignment. It sets up all necessary files, writes the xml files, puts them in the right place where the analyzers can pick it up for the next iteration, performs the fits an decides if the alignment has converged.
  Everything in the iterator is steered by the run(whichRich) method, while most functionalities are outsourced into classes and methods.
Line: 232 to 228
 git lb-checkout Brunel/master Rec/Brunel %ENDSYNTAX%
Added:
>
>
(Paras's note to self: we also needed Online/Monitoring (fromOnline/master) and Online/GauchoBase, the latter from /group/online/dataflow/cmtuser/AlignmentRelease/Online/GauchoBase. These should not be necessary when we move to the next code stack)
 You may possibly want to use a tag or your own branch instead of the master branch, if you are testing code before you make a merge (to master) request.

Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile_v11r3.sh ./multiUserCompile_v11r3.sh OR create a new file called multiUserCompile_v11r3.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).

Line: 356 to 354
 

Running the mirror alignment worker task on a single HLT Farm node

Changed:
<
<
Sometimes when trying to solve an error with the mirror alignment it is not enough to look at the error logs as discussed in LHCbRichMirrorAlignRunOnline, especially if the problem has to do with our configuration of the Analyzers (i.e. worker nodes).
>
>
Sometimes when trying to solve an error with the mirror alignment it is not enough to look at the error logs as discussed in LHCbRichMirrorAlignRunOnline, especially if the problem has to do with our configuration of the analyzers.
 
Changed:
<
<
To run our worker task on a node to test the processing of data on one of the Analyzers:
>
>
To run our worker task on a node to test the processing of data on one of the analyzers:
  Make sure our code is compiled [e.g. for an established setup:

Revision 322017-07-03 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 105 to 105
 Before the histogram files are being copied into the work-directory they will be placed into
=/hist/Savesets/2015/LHCbA/AligWrk_Rich1=
=/hist/Savesets/2015/LHCbA/AligWrk_Rich2=
(check the year)
Changed:
<
<

Driver script for the all online alignments

>
>

Driver scripts for the all online alignments

  This is the script that holds everything together. It was made by the online people and we can only touch it if we are VERY careful!
Changed:
<
<
/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh
>
>
/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh (for the iterator) /group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligWrk.sh (for the configuration of the farm nodes)

Logging staging area

When the alignment runs, we store the log of the machine that the Iterator runs on, which is always hlt02.

The last Rich1 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich1_hlt02.log The last Rich2 alignment is stored in /group/rich/AlignmentFiles/Logging/Rich2_hlt02.log

If an alignment is completed properly this later moved to the output storage area. If not, and the Iterator makes it to the end, it is saved in this directory with a timestamp. If not, and the Iterator does not make it to the end, then it just remains in this directory until the next mirror alignment

Magnet polarity memory

 

Fresh install of code for new AlignmentOnline version

Revision 312017-06-01 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
Line: 6 to 6
 
Added:
>
>

Very New Stuff to be sorted below

To get the Histos to reset every iteration, we are trying the following (after everything else was installed of course)

We went into our AlignmentRelease directory. Then:

pnaik:pluscc07 ~/compileDirNowSoftLink > mkdir Online pnaik:pluscc07 ~/compileDirNowSoftLink > cp -R /group/online/dataflow/cmtuser/AlignmentRelease/Online/GauchoBase Online/ pnaik:pluscc07 ~/compileDirNowSoftLink > source optCompileOnly.sh

So basically recompiling a new version of Gaucho, to see if this helps.

 

RICH mirror alignment project and package overview

The alignment package for the online RICH mirror alignment is here: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX

Revision 302017-05-16 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
Changed:
<
<
-- ClaireProuve - 2015-07-18

LHCbRichMirrorAlign

>
>
-- ParasNaik - 2017-05-16 -- ClaireProuve - 2015-07-18
 

Code for the Online RICH mirror alignment

Revision 292017-05-08 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 23 to 23
 Specific packages of interest are:
  • Rich/RichMirrCombinFit, Rich/RichMirrAlign, Rich/RichAlignment and Rich/RichMirrorAlignmentOnline
Changed:
<
<
This TWiki page specifically discusses the Rich/RichMirrorAlignmentOnline package and its relationship to the AlignmentOnline project.
>
>
This TWiki page specifically discusses the Rich/RichMirrorAlignmentOnline package and its relationship to the AlignmentOnline project.
  More information on other packages and projects is available on the main LHCbRichMirrorAlign page.
Line: 100 to 100
  /group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh
Changed:
<
<

Fresh install of code for new AlignmentOnline version

>
>

Fresh install of code for new AlignmentOnline version

  First, add these two lines to the end of your .bashrc:
Line: 111 to 111
  This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.
Changed:
<
<
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v11r3.
>
>
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v11r3.
 
Changed:
<
<
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v11r3 below.
>
>
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v11r3 below.
  %SYNTAX{ "bash" color="yes"}% echo "I have just set the User_release_area environment variable to:"
Line: 218 to 218
 Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.

*Common issues at this point

Changed:
<
<
  • "heptools" versions don't match between AlignmentOnline and Online projects *Ask someone from Alignment group if they are aware of this, they may have to release a new version of AlignmentOnline
  • Could not find a package configuration file provided by "OnlineDev"
>
>
  • "heptools" versions don't match between AlignmentOnline and Online projects *Ask someone from Alignment group if they are aware of this, they may have to release a new version of AlignmentOnline
  • Could not find a package configuration file provided by "=OnlineDev="
 
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
Changed:
<
<
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ directory.
>
>
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ directory.
 
      • slc6 builds should also be compatible with centos7 machines, but not the other way around.
      • for the mirror alignment, we now really only want to use centos7 (i.e. log into pluscc and not plus)
Line: 248 to 248
 export L0TCK="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999/options"; %ENDSYNTAX%
Changed:
<
<
After this, you may now make this version of AlignmentOnlineDev our release for operations by changing the softlink to AlignmentRelease as follows:
>
>
After this, you may now make this version of AlignmentOnlineDev our release for operations by changing the softlink to AlignmentRelease as follows:
  ln -s AlignmentOnlineDev_v11r3 AlignmentRelease
Line: 272 to 272
 

Standard compiling and installing of code

Changed:
<
<
After each alteration perform the following in the AlignmentRelease directory:
>
>
After each alteration perform the following in the AlignmentRelease directory:
 
Changed:
<
<
source multiUserCompile_v11r3.sh 2>&1 | tee compile.log (or whatever the name of your multiUserCompile file is)
>
>
source multiUserCompile_v11r3.sh OPTONLY 2>&1 | tee compile.log (or whatever the name of your multiUserCompile file is)
 
Changed:
<
<
That's it!
>
>
That's it! Note that OPTONLY only compiles the OPT version and not the two debugger versions DBG and DO0. You don't need the latter two unless you need to do deep debugging of the alignment.

Sometimes Paras makes a script with the above line in it in the AlignmentRelease directory called optCompileOnly.sh. If it exists, then you could just run:

source optCompileOnly.sh

 

Old info that might be useful, in case something breaks

%TWISTY{
Line: 401 to 405
 

multiUserCompile.sh

Changed:
<
<
Here is the script (call it multiUserCompile.sh) you should put in /group/rich/sw/cmtuser/AlignmentRelease to automate the moving of compile files created by others and to automate the compiling of the configuration. Make sure you change the Online version to the correct one for the version of AlignmentOnlineDev that the softlink AlignmentRelease is pointing to. Also make sure that you are using the correct compiler version for the machine that you are on.
>
>
Here is the script (call it multiUserCompile.sh) you should put in /group/rich/sw/cmtuser/AlignmentRelease to automate the moving of compile files created by others and to automate the compiling of the configuration. Make sure you change the Online version to the correct one for the version of AlignmentOnlineDev that the softlink AlignmentRelease is pointing to. Also make sure that you are using the correct compiler version for the machine that you are on.
  With the current version of this script you need to be compiling on a centos7 plus (e.g. ssh -Y pluscc) machine. You may also compile on an SLC6 plus machine but then you have to change centos7 to slc6 everywhere below, however now we should just stick to centos7 until the next big linux upgrade.
Line: 414 to 418
  remember="on" }% %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
echo "Now enforcing the use of centos7 gcc62 to these compiler versions:"
>
>
echo "Usage: Execute this script using 'source multiUserCompile_v11r3.sh' to compile all versions and 'source multiUserCompile_v11r3.sh OPTONLY' to compile only the OPT version."

echo "Positional Parameters" echo '$0 = ' $0 echo '$1 = ' $1 echo '$2 = ' $2 echo '$3 = ' $3

echo "Now enforcing the use of centos7 gcc62 to these compiler versions (you should be compiling on a Centos7 machine):"

 export MIRROPT=x86_64-centos7-gcc62-opt export MIRRDBG=x86_64-centos7-gcc62-dbg export MIRRDO0=x86_64-centos7-gcc62-do0
Line: 431 to 443
  mv ./InstallArea pastBuildFiles/InstallArea.$(date +%s) fi if [ -d ./build.$MIRROPT ]; then
Changed:
<
<
mv ./build.$CMTOPT pastBuildFiles/build.$MIRROPT.$(date +%s)
>
>
mv ./build.$MIRROPT pastBuildFiles/build.$MIRROPT.$(date +%s)
 fi if [ -d ./build.$MIRRDBG ]; then mv ./build.$MIRRDBG pastBuildFiles/build.$MIRRDBG.$(date +%s)
Line: 439 to 451
 if [ -d ./build.$MIRRDO0 ]; then mv ./build.$MIRRDO0 pastBuildFiles/build.$MIRRDO0.$(date +%s) fi
Deleted:
<
<
 echo "Deleting ./pastBuildFiles if we have the right permissions" rm -rf ./pastBuildFiles
Added:
>
>
echo " "
 
Changed:
<
<
echo "Making OPT $MIRROPT"
>
>
echo "Making OPT $MIRROPT."
 LbLogin -c $MIRROPT export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRROPT echo $OnlineDev_DIR
Line: 453 to 465
 make configure make -j 8 install
Changed:
<
<
echo "Making DBG $MIRRDBG"
>
>
if [ "$1" = "OPTONLY" ]; then echo "Positional parameter 1 contains something besides OPTONLY." echo "Compiling DBG and DB0." echo "Making DBG $MIRRDBG."
 LbLogin -c $MIRRDBG export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRRDBG echo $OnlineDev_DIR
Line: 462 to 477
 make purge make configure make -j 8 install
Changed:
<
<
# do this last! echo "Making DO0 $MIRRDO0"
>
>
echo " " echo "Making DO0 $MIRRDO0."
 LbLogin -c $MIRRDO0 export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRRDO0 echo $OnlineDev_DIR
Line: 473 to 487
 make purge make configure make -j 8 install
Added:
>
>
else echo "Positional parameter 1 contains OPTONLY." echo "Not Compiling DBG and DB0, to produce them remove OPTONLY when calling this script." fi
 
Added:
>
>
echo " "
 echo "Compiling complete." %ENDSYNTAX% </>
<!--/twistyPlugin-->

Revision 282017-05-05 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 325 to 325
 When calling cmsetup the environement file setup.x86_64-centos7-gcc62-dbg.vars will be overwritten. In order to make sure the latest TCK package is picked up you should check that all three paths containing "TCK" in their names are the same as for the opt build. </>
<!--/twistyPlugin-->
Added:
>
>

Running the mirror alignment worker task on a single HLT Farm node

Sometimes when trying to solve an error with the mirror alignment it is not enough to look at the error logs as discussed in LHCbRichMirrorAlignRunOnline, especially if the problem has to do with our configuration of the Analyzers (i.e. worker nodes).

To run our worker task on a node to test the processing of data on one of the Analyzers:

Make sure our code is compiled [e.g. for an established setup:

<!-- SyntaxHighlightingPlugin -->
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/
source optCompileOnly.sh 
<!-- end SyntaxHighlightingPlugin -->

]

Via ssh, log into a HLT farm machine from lbgw, e.g. hltf1119

There is a file called /group/online/dataflow/options/LHCbA/HLT/OnlineEnvBase.py which basically gets filled with all the useful info that you would normally set up in the FSM. So you can configure and set up the alignment through the FSM, then copy this file locally, or just grab a version of this someone else copied and edit it yourself if need be.

For the latter situation, I copied a Rich1Alignment version of this file to:

/home/pnaik/singleNodeTest/OnlineEnvBase.py

which you could use.

In whatever directory your OnlineEnvBase.py is in (for me, /home/pnaik/singleNodeTest/) make a file called singleNodeTest.py

In this file place the following lines:

<!-- SyntaxHighlightingPlugin -->
# copied straight from the exec task that is usually run in AligWrk.sh
import Gaudi,GaudiKernel.ProcessJobOptions
from Gaudi.Configuration import importOptions
GaudiKernel.ProcessJobOptions.printing_level=999
from PyMirrAlignOnline import RichAnalyzer
RichAnalyzer.doIt(filename = '/localdisk/Alignment/Rich', whichRich = 1) 
# the extra code (from Roel) that actually steers the job
from GaudiPython.Bindings import AppMgr
gaudi = AppMgr()
gaudi.run(1000)                                            # change the number of events if you want to run over more!!!
gaudi.stop()
gaudi.finalize()
<!-- end SyntaxHighlightingPlugin -->

You then run the following in your shell:

<!-- SyntaxHighlightingPlugin -->
. /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-centos7-gcc62-opt.vars        # i.e. as in AligWrk.sh, get the environment for the mirror alignment
export PYTHONPATH=/group/online/dataflow/options/LHCbA/HLT:$PYTHONPATH      # i.e. as in AligWrk.sh
python singleNodeTest.py /group/online/dataflow/templates/options/Main.opts               # basically, we run the python that would have been run via the ECS
<!-- end SyntaxHighlightingPlugin -->

If you do this you see the printout is a lot more detailed than you would observe in the LHCbA log.

If you want to make a change to the Analyzer Brunel configuration, edit:

/group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/Rich/RichMirrorAlignmentOnline/python/PyMirrAlignOnline/RichAnalyzer.py

and then recompile. The simplest way to recompile (if you are using an fully established version of AlignmentOnline [currently the case for v11r3]) is to run these commands in your bash shell:

<!-- SyntaxHighlightingPlugin -->
cd /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/
source optCompileOnly.sh 
<!-- end SyntaxHighlightingPlugin -->
 

XML files

Changed:
<
<
The xml files the alignment is starting from is being picked up from here:
/group/online/alignment/Rich1/MirrorAlign/
/group/online/alignment/Rich2/MirrorAlign/
>
>
The xml file the alignment is starting from is being picked up from here:
/group/online/alignment/Rich1/MirrorAlign/
/group/online/alignment/Rich2/MirrorAlign/
  The Iterator will pick the xml-file with the biggest version number.
If you want to run starting with a different xml-file, just copy it into this directory and give it the next number - and put a little comment at the top about where this alignment came from.

Revision 272017-04-20 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 111 to 111
  This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.
Changed:
<
<
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. plus). The following example is for AlignmentOnline v11r3.
>
>
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. pluscc, a machine running centos7). The following example is for AlignmentOnline v11r3.
 
Changed:
<
<
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process.
>
>
DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process, and then substitute the new version for v11r3 below.
  %SYNTAX{ "bash" color="yes"}% echo "I have just set the User_release_area environment variable to:"
Line: 191 to 191
  note that /home/pnaik/cmtuser might be something else in your case
Changed:
<
<
Now our software is not stored in AlignmentOnline. So we think, but are not sure if it is necessary, that we should check out Rich/RichMirrorAlignmentOnline in order for the local software to have access to the Iterator. We definitely have to check out Rich/RichMirrCombinFit and Rich/RichMirrAlign, as the Iterator will want to run executables that are produced after we compile these.
>
>
Now our software is not stored in AlignmentOnline. If we use software from another project and need the other project's environment variables, we must also checkout packages from those projects. We definitely have to check out Rich/RichMirrCombinFit and Rich/RichMirrAlign, as the Iterator will want to run executables that are produced after we compile these. We think, but are not sure if it is necessary, that we should also check out Rich/RichMirrorAlignmentOnline in order for the local software to have access to the Iterator. We definitely need to get Rec/Brunel to be able to configure Brunel on the analyzer nodes.
  So, to get the code do the following:
Line: 207 to 207
 git lb-checkout Brunel/master Rec/Brunel %ENDSYNTAX%
Changed:
<
<
You may possibly want a tag instead of the master branch
>
>
You may possibly want to use a tag or your own branch instead of the master branch, if you are testing code before you make a merge (to master) request.
  Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile_v11r3.sh ./multiUserCompile_v11r3.sh OR create a new file called multiUserCompile_v11r3.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).

Then compile!

Changed:
<
<
source multiUserCompile_v11r3.sh 2>&1 | tee compile.log
>
>
source multiUserCompile_v11r3.sh 2>&1 | tee compile.log (this command takes all standard and error output and puts it into compile.log)
  Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.
Line: 225 to 225
 
      • echo $CMTOPT will tell you the version that you are compiling with=
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ directory.
      • slc6 builds should also be compatible with centos7 machines, but not the other way around.
Changed:
<
<
      • for the mirror alignment, we now really only want to use centos7
>
>
      • for the mirror alignment, we now really only want to use centos7 (i.e. log into pluscc and not plus)
  Then ONCE and only ONCE: run
Line: 382 to 382
 LbLogin -c $MIRROPT export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRROPT echo $OnlineDev_DIR
Changed:
<
<
env > envOPT.txt
>
>
# env > envOPT.txt
 make clean make purge make configure
Line: 392 to 392
 LbLogin -c $MIRRDBG export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRRDBG echo $OnlineDev_DIR
Changed:
<
<
env > envDBG.txt
>
>
# env > envDBG.txt
 make clean make purge make configure
Line: 403 to 403
 LbLogin -c $MIRRDO0 export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRRDO0 echo $OnlineDev_DIR
Changed:
<
<
env > envDO0.txt
>
>
# env > envDO0.txt
 make clean make purge make configure

Revision 262017-04-18 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 199 to 199
 cd $User_release_area/AlignmentOnlineDev_v11r3 git lb-use AlignmentOnline git lb-use Panoptes
Added:
>
>
git lb-use Brunel
 git fetch --all git lb-checkout Panoptes/master Rich/RichMirrAlign git lb-checkout Panoptes/master Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/master Rich/RichMirrCombinFit
Added:
>
>
git lb-checkout Brunel/master Rec/Brunel
 %ENDSYNTAX%

You may possibly want a tag instead of the master branch

Line: 222 to 224
 
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ directory.
Changed:
<
<
      • Though for now, remember slc6 builds should also be compatible with centos7 machines, but not the other way around.
>
>
      • slc6 builds should also be compatible with centos7 machines, but not the other way around.
      • for the mirror alignment, we now really only want to use centos7
  Then ONCE and only ONCE: run
Line: 253 to 256
  There are two lines that look like this:
Changed:
<
<
. /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-slc6-gcc62-opt.vars
>
>
. /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-centos7-gcc62-opt.vars
  change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version.
Line: 261 to 264
  There are two lines that look like this:
Changed:
<
<
. /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-slc6-gcc62-opt.vars
>
>
. /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-centos7-gcc62-opt.vars
  change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version.
Line: 319 to 322
 cmsetup %ENDSYNTAX%
Changed:
<
<
When calling cmsetup the environement file setup.x86_64-slc6-gcc49-dbg.vars will be overwritten. In order to make sure the latest TCK package is picked up you should check that all three paths containing "TCK" in their names are the same as for the opt build.
>
>
When calling cmsetup the environement file setup.x86_64-centos7-gcc62-dbg.vars will be overwritten. In order to make sure the latest TCK package is picked up you should check that all three paths containing "TCK" in their names are the same as for the opt build.
 </>
<!--/twistyPlugin-->

XML files

Line: 335 to 338
  Here is the script (call it multiUserCompile.sh) you should put in /group/rich/sw/cmtuser/AlignmentRelease to automate the moving of compile files created by others and to automate the compiling of the configuration. Make sure you change the Online version to the correct one for the version of AlignmentOnlineDev that the softlink AlignmentRelease is pointing to. Also make sure that you are using the correct compiler version for the machine that you are on.
Changed:
<
<
With the current version of this script you need to be compiling on a centos7 machine. You may compile on an SLC6 machine but then you have to change centos7 to slc6 everywhere below.
>
>
With the current version of this script you need to be compiling on a centos7 plus (e.g. ssh -Y pluscc) machine. You may also compile on an SLC6 plus machine but then you have to change centos7 to slc6 everywhere below, however now we should just stick to centos7 until the next big linux upgrade.
  %TWISTY{ mode="div"

Revision 252017-04-17 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 245 to 245
 export L0TCK="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999/options"; %ENDSYNTAX%
Added:
>
>
After this, you may now make this version of AlignmentOnlineDev our release for operations by changing the softlink to AlignmentRelease as follows:

ln -s AlignmentOnlineDev_v11r3 AlignmentRelease

 now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r3/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)

There are two lines that look like this:

Changed:
<
<
. /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/setup.x86_64-slc6-gcc62-opt.vars
>
>
. /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-slc6-gcc62-opt.vars
 
Changed:
<
<
change them both so that you are definitely pointing to the new version of AlignmentOnline and the correct compiler version.
>
>
change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version.
  Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r3/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)

There are two lines that look like this:

Changed:
<
<
. /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/setup.x86_64-slc6-gcc62-opt.vars
>
>
. /group/rich/sw/cmtuser/AlignmentRelease/setup.x86_64-slc6-gcc62-opt.vars
 
Changed:
<
<
change them both so that you are definitely pointing to the new version of AlignmentOnline and the correct compiler version.
>
>
change them both so that you are definitely pointing to
<!-- the new version of AlignmentOnline and -->
the correct compiler version.
  ...and you're done!

Standard compiling and installing of code

Changed:
<
<
After each alteration perform the following:
>
>
After each alteration perform the following in the AlignmentRelease directory:
  source multiUserCompile_v11r3.sh 2>&1 | tee compile.log (or whatever the name of your multiUserCompile file is)
Line: 329 to 333
 

multiUserCompile.sh

Changed:
<
<
Here is the script (call it multiUserCompile.sh) you should put in /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX to automate the moving of compile files created by others and to automate the compiling of the configuration:
>
>
Here is the script (call it multiUserCompile.sh) you should put in /group/rich/sw/cmtuser/AlignmentRelease to automate the moving of compile files created by others and to automate the compiling of the configuration. Make sure you change the Online version to the correct one for the version of AlignmentOnlineDev that the softlink AlignmentRelease is pointing to. Also make sure that you are using the correct compiler version for the machine that you are on.

With the current version of this script you need to be compiling on a centos7 machine. You may compile on an SLC6 machine but then you have to change centos7 to slc6 everywhere below.

  %TWISTY{ mode="div"
Line: 340 to 346
  remember="on" }% %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
echo "Now enforcing the use of SLC6 gcc62 to these compiler versions:" export MIRROPT=x86_64-slc6-gcc62-opt export MIRRDBG=x86_64-slc6-gcc62-dbg export MIRRDO0=x86_64-slc6-gcc62-do0
>
>
echo "Now enforcing the use of centos7 gcc62 to these compiler versions:" export MIRROPT=x86_64-centos7-gcc62-opt export MIRRDBG=x86_64-centos7-gcc62-dbg export MIRRDO0=x86_64-centos7-gcc62-do0
 echo "opt: $MIRROPT" echo "dbg: $MIRRDBG" echo "db0: $MIRRDO0"

Revision 242017-04-16 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 12 to 12
  The alignment package for the online RICH mirror alignment is here: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX
  • NOTA BENE: vYYrX when referenced in this TWiki should always be replaced with numbers for the current revision
Changed:
<
<
  • The current version is v11r0. Experts, always keep this line updated.
>
>
  • The current version being used by us online is v11r3. Experts, always keep this line updated.
  It relies on the projects:
  • AlignmentOnline
Line: 77 to 77
  Configuration file code: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/python/RichMirrorAlignmentOnline/Configuration.py
Deleted:
<
<
<!-- XXX of course should be replaced with the current revision. -->
 

The MirrPauseHandler

The MirrPauseHandler contains the code that is executed when the analyzers go to 'paused' - which is after each iteration. It specifies (to a certain degree) when and where the histogram files are written. This code does (most probably) not need to be changed anymore.

Line: 86 to 84
 MirrPauseHandler code: /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX/Rich/RichMirrorAlignmentOnline/src/MirrPauseHandler.cpp

Other interesting places

Added:
>
>
 

Work-directory 'workdir'

Changed:
<
<
The directory in which all the files created during an alignment are being written.
/group/online/AligWork/Rich1
/group/online/AligWork/Rich2
>
>
The directory in which all the files created during an alignment are being written.
=/group/online/AligWork/Rich1=
=/group/online/AligWork/Rich2=
 

Savesets

Changed:
<
<
Before the histogram files are being copied into the work-directory they will be placed into
/hist/Savesets/2015/LHCbA/AligWrk_Rich1
/hist/Savesets/2015/LHCbA/AligWrk_Rich2
>
>
Before the histogram files are being copied into the work-directory they will be placed into
=/hist/Savesets/2015/LHCbA/AligWrk_Rich1=
=/hist/Savesets/2015/LHCbA/AligWrk_Rich2=
(check the year)
 

Driver script for the all online alignments

This is the script that holds everything together. It was made by the online people and we can only touch it if we are VERY careful!

Changed:
<
<

/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh
>
>
/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh
 

Fresh install of code for new AlignmentOnline version

Line: 219 to 221
 
  • Could not find a package configuration file provided by "OnlineDev"
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
Changed:
<
<
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem.
    • Try again after running LbLogin -c x86_64-slc6-gcc62-opt where x86_64-slc6-gcc62-opt should be changed to one of the existing builds (compatible with the machine that you are on, slc6 builds should also be compatible with centos7 machines)

Next, cp ../AlignmentOnlineDev_v11r3/shell_macros.sh ./shell_macros.sh OR create a new file called shell_macros.sh and copy in the contents of shell_macros.sh.

>
>
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem. Edit your multiUserCompile.sh file to use a compiler version that exists in the /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ directory.
      • Though for now, remember slc6 builds should also be compatible with centos7 machines, but not the other way around.
  Then ONCE and only ONCE: run

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
source shell_macros.sh
>
>
source /group/online/dataflow/scripts/shell_macros.sh
 cmsetup %ENDSYNTAX%
Changed:
<
<
and change the three TCK lines which look something like this:
>
>
Three files ending in .vars will be generated. In all three files, Change the three TCK lines which look something like this:
 %SYNTAX{ "bash" color="yes"}% export L0TCKROOT="${SW_LHCB}/DBASE/TCK/L0TCK/v5r14"; export HLTTCKROOT="${SW_LHCB}/DBASE/TCK/HltTCK/v3r18";
Line: 253 to 253
  change them both so that you are definitely pointing to the new version of AlignmentOnline and the correct compiler version.
Changed:
<
<
Do the exact same thing for /group/online/dataflow/cmtuser/OnlineDev_v6r3/Online/FarmConfig/job/AligWrk.sh
>
>
Lastly, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r3/Online/FarmConfig/job/AligWrk.sh (use the correct Online version of course)

There are two lines that look like this:

. /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/setup.x86_64-slc6-gcc62-opt.vars

change them both so that you are definitely pointing to the new version of AlignmentOnline and the correct compiler version.

  ...and you're done!
Line: 334 to 340
  remember="on" }% %SYNTAX{ "bash" color="yes"}%
Added:
>
>
echo "Now enforcing the use of SLC6 gcc62 to these compiler versions:" export MIRROPT=x86_64-slc6-gcc62-opt export MIRRDBG=x86_64-slc6-gcc62-dbg export MIRRDO0=x86_64-slc6-gcc62-do0 echo "opt: $MIRROPT" echo "dbg: $MIRRDBG" echo "db0: $MIRRDO0" echo " "
 echo "Moving all past build files to ./pastBuildFiles, if they exist." if [ ! -d ./pastBuildFiles ]; then mkdir -p ./pastBuildFiles
Line: 341 to 356
 if [ -d ./InstallArea ]; then mv ./InstallArea pastBuildFiles/InstallArea.$(date +%s) fi
Changed:
<
<
if [ -d ./build.$CMTOPT ]; then mv ./build.$CMTOPT pastBuildFiles/build.$CMTOPT.$(date +%s)
>
>
if [ -d ./build.$MIRROPT ]; then mv ./build.$CMTOPT pastBuildFiles/build.$MIRROPT.$(date +%s) fi if [ -d ./build.$MIRRDBG ]; then mv ./build.$MIRRDBG pastBuildFiles/build.$MIRRDBG.$(date +%s)
 fi
Changed:
<
<
if [ -d ./build.$CMTDEB ]; then mv ./build.$CMTDEB pastBuildFiles/build.$CMTDEB.$(date +%s)
>
>
if [ -d ./build.$MIRRDO0 ]; then mv ./build.$MIRRDO0 pastBuildFiles/build.$MIRRDO0.$(date +%s)
 fi
Added:
>
>
 echo "Deleting ./pastBuildFiles if we have the right permissions" rm -rf ./pastBuildFiles
Changed:
<
<
echo "Making OPT" LbLogin -c $CMTOPT export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$CMTOPT
>
>
echo "Making OPT $MIRROPT" LbLogin -c $MIRROPT export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRROPT
 echo $OnlineDev_DIR env > envOPT.txt make clean make purge make configure make -j 8 install
Changed:
<
<
cmsetup echo "Making DEB" LbLogin -c $CMTDEB export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$CMTDEB
>
>
echo "Making DBG $MIRRDBG" LbLogin -c $MIRRDBG export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRRDBG
 echo $OnlineDev_DIR
Changed:
<
<
env > envDEB.txt
>
>
env > envDBG.txt
 make clean make purge make configure make -j 8 install
Changed:
<
<
cmsetup
>
>
# do this last! echo "Making DO0 $MIRRDO0" LbLogin -c $MIRRDO0 export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$MIRRDO0 echo $OnlineDev_DIR env > envDO0.txt make clean make purge make configure make -j 8 install

echo "Compiling complete."

 %ENDSYNTAX% </>
<!--/twistyPlugin-->

Back to main Mirror alignment TWiki

Deleted:
<
<

shell_macros.sh

Here is the script (call it shell_macros.sh) you should put in /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX to generate the cmsetup command, which allows you to make the base .vars files (which you will then need edit with the TCK changes described above):

<!--/twistyPlugin twikiMakeVisibleInline-->
<!-- SyntaxHighlightingPlugin -->
#!/bin/bash
#
##echo " Defining shell macros for the LHCb online system."
#
if test "`echo ${PATH} | grep /group/online/dataflow/scripts`" = "";then
  export PATH=/group/online/dataflow/scripts:${PATH};
fi;
#
if test "`echo ${CMTPROJECTPATH} | grep /group/online/dataflow/SwData`" = ""; then
  export CMTPROJECTPATH=/group/online/dataflow/SwData:${CMTPROJECTPATH};
fi;
#
alias errlog='xterm -sl 20000 -ls -132 -geometry 200x50 -title logViewer@${DIM_DNS_NODE} -e /opt/FMC/bin/logViewer -l 2 -S ';
alias netmon='xterm -geometry 95x40 -e bmon -c';
#
export ALL_CMT_PLATFORMS_49="x86_64-slc6-gcc49-opt x86_64-slc6-gcc49-dbg";
export ALL_CMT_PLATFORMS="${CMTOPT} ${CMTDEB}";
#
tmll() 
{
  /opt/FMC/bin/tmLl $* | grep -v "term";
}

__do_make()
{
    export TMP_ENV=${CMTCONFIG};
    for i in $1; 
    do 
	export CMTCONFIG=${i};
	echo " +++ CMTCONFIG is now:  ${CMTCONFIG}";
        eval `echo $2;`;
    done;
    export CMTCONFIG=${TMP_ENV};
}

__do_crsetup()
{
    curr=`cd ../..;pwd`;
    package=`cd ..;pwd`;
    package=`basename ${package}`;
    echo " +++ Creating environment for package ${package} in ${curr} ";
    ${CMTROOT}/mgr/cmt setup -sh -pack=${package} -version= -path=${curr} -no_cleanup -tag=${CMTCONFIG} >setup.${CMTCONFIG}.vars;
}

__do_cmsetup()
{
    curr=`pwd`;
    project=`basename ${curr}`;
    echo " +++ Creating environment for package ${package} in ${curr} ";
#    ./build.${CMTCONFIG}/run python /group/online/dataflow/scripts/cmsetup.py > setup.${CMTCONFIG}.vars;
    export GAUDIAPPNAME=`./build.${CMTCONFIG}/run echo '$GAUDIAPPNAME'`;
    ___PY_PATH=${PYTHONPATH};
    export PYTHONPATH=`./build.${CMTCONFIG}/run echo '$GAUDI_PROJECT_ROOT/cmake'`;
    python /group/online/dataflow/scripts/cmsetup.py > setup.${CMTCONFIG}.vars;
    export PYTHONPATH=${___PY_PATH};
}

do_install()
{
    __do_make "$ALL_CMT_PLATFORMS" "export USE_CMAKE=1; make -j 8 install";
}

do_make()
{
    __do_make "$ALL_CMT_PLATFORMS" "cmt make -j 8";
}

do_configure()
{
    __do_make "$ALL_CMT_PLATFORMS" "export USE_CMAKE=1; make configure";
}

do_cmake()
{
    __do_make "$ALL_CMT_PLATFORMS" "export USE_CMAKE=1; make -j 8";
}

do_make49()
{
    __do_make "$ALL_CMT_PLATFORMS_49" "cmt make -j 8";
}

do_cmake49()
{
    __do_make "$ALL_CMT_PLATFORMS_49" "export USE_CMAKE=1; make -j 8";
}

do_cleanup()
{
    #__do_make "$ALL_CMT_PLATFORMS" "cmt make binclean";
    __do_make "$ALL_CMT_PLATFORMS" "make clean";
}

crsetup()
{
    __do_make "$ALL_CMT_PLATFORMS" "__do_crsetup";
}

cmsetup()
{
    __do_make "$ALL_CMT_PLATFORMS" "__do_cmsetup";
}

cmsetup49()
{
    __do_make "$ALL_CMT_PLATFORMS_49" "__do_cmsetup";
}

build_platforms()
{
    tmp=$CMTCONFIG
    echo "--> Creating environment for package ${package} in ${curr} "
    for CMTCONFIG in $ALL_CMT_PLATFORMS; do
      export CMTCONFIG;
      echo "    ..... building ${CMTCONFIG} "
      ${CMTROOT}/mgr/cmt make -j 8;
    done;
    export CMTCONFIG=$tmp;
}

clean_platforms()
{
    tmp=$CMTCONFIG
    echo "--> Creating environment for package ${package} in ${curr} "
    for CMTCONFIG in $ALL_CMT_PLATFORMS; do
      export CMTCONFIG;
      echo "    ..... building ${CMTCONFIG} "
      ${CMTROOT}/mgr/cmt make clean;
      ${CMTROOT}/mgr/cmt make binclean;
    done;
    export CMTCONFIG=$tmp;
}

br_build_platforms()
{
    tmp=$CMTCONFIG
    echo "--> Creating environment for package ${package} in ${curr} "
    for CMTCONFIG in $ALL_CMT_PLATFORMS; do
      export CMTCONFIG;
      echo "    ..... building ${CMTCONFIG} "
      #${CMTROOT}/mgr/cmt broadcast "rm -rf ../${CMTCONFIG} || true";
      ${CMTROOT}/mgr/cmt broadcast cmt make -j 8;
    done;
    export CMTCONFIG=$tmp;
}
export PATH=/opt/FMC/sbin:/opt/FMC/bin:/group/online/dataflow/scripts:$PATH
export LD_LIBRARY_PATH=/opt/FMC/lib:${LD_LIBRARY_PATH}
cmthere()
{
    export User_release_area=`pwd`;
    export CMTPROJECTPATH=`pwd`:${CMTPROJECTPATH};
}

# Check a svn directory with sub-dirs for changes
check_svn()  {
  for i in `ls`;do
      cd ${i};
      echo "==================  Checking svn status in directory `pwd`";
      svn status;
      cd ..;
  done;
}

# Commit a svn directory with sub-dirs
commit_svn()  {
  for i in `ls`;do
      cd ${i};
      echo "==================  Commit files to svn in directory `pwd`";
      svn commit -m "Updates and bug fixes";
      cd ..;
  done;
}
<!-- end SyntaxHighlightingPlugin -->
<!--/twistyPlugin-->
 
META FILEATTACHMENT attachment="Iterator_Sketch.jpeg" attr="" comment="Sketch of what the Iterator does" date="1491411432" name="Iterator_Sketch.jpeg" path="Iterator_Sketch.jpeg" size="925845" user="pnaik" version="1"

Revision 232017-04-13 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 92 to 92
 

Savesets

Before the histogram files are being copied into the work-directory they will be placed into
/hist/Savesets/2015/LHCbA/AligWrk_Rich1
/hist/Savesets/2015/LHCbA/AligWrk_Rich2

Added:
>
>
 

Driver script for the all online alignments

Changed:
<
<
This is the script that holds everything together. It was made by the online-people and is absolutely not for us to touch.
/group/online/dataflow/cmtuser/OnlineDev_v5rXXX/Online/FarmConfig/job/AligDrv.sh
>
>
This is the script that holds everything together. It was made by the online people and we can only touch it if we are VERY careful!
/group/online/dataflow/cmtuser/OnlineDev_v6rX/Online/FarmConfig/job/AligDrv.sh
 

Fresh install of code for new AlignmentOnline version

Line: 211 to 213
  Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.
Added:
>
>
*Common issues at this point
 
  • "heptools" versions don't match between AlignmentOnline and Online projects *Ask someone from Alignment group if they are aware of this, they may have to release a new version of AlignmentOnline
  • Could not find a package configuration file provided by "OnlineDev"
Line: 219 to 222
 
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem.
    • Try again after running LbLogin -c x86_64-slc6-gcc62-opt where x86_64-slc6-gcc62-opt should be changed to one of the existing builds (compatible with the machine that you are on, slc6 builds should also be compatible with centos7 machines)
Added:
>
>
Next, cp ../AlignmentOnlineDev_v11r3/shell_macros.sh ./shell_macros.sh OR create a new file called shell_macros.sh and copy in the contents of shell_macros.sh.

Then ONCE and only ONCE: run

<!-- SyntaxHighlightingPlugin -->
source shell_macros.sh
cmsetup
<!-- end SyntaxHighlightingPlugin -->

and change the three TCK lines which look something like this:

<!-- SyntaxHighlightingPlugin -->
export L0TCKROOT="${SW_LHCB}/DBASE/TCK/L0TCK/v5r14";
export HLTTCKROOT="${SW_LHCB}/DBASE/TCK/HltTCK/v3r18";
export L0TCK="${SW_LHCB}/DBASE/TCK/L0TCK/v5r14/options";
<!-- end SyntaxHighlightingPlugin -->
to
<!-- SyntaxHighlightingPlugin -->
export L0TCKROOT="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999";
export HLTTCKROOT="/group/online/dataflow/SwData/DBASE/TCK/HltTCK/v3r999";
export L0TCK="/group/online/dataflow/SwData/DBASE/TCK/L0TCK/v5r999/options";
<!-- end SyntaxHighlightingPlugin -->

now, carefully edit /group/online/dataflow/cmtuser/OnlineDev_v6r3/Online/FarmConfig/job/AligDrv.sh (use the correct Online version of course)

There are two lines that look like this:

. /group/rich/sw/cmtuser/AlignmentOnlineDev_v11r3/setup.x86_64-slc6-gcc62-opt.vars

change them both so that you are definitely pointing to the new version of AlignmentOnline and the correct compiler version.

Do the exact same thing for /group/online/dataflow/cmtuser/OnlineDev_v6r3/Online/FarmConfig/job/AligWrk.sh

...and you're done!

 

Standard compiling and installing of code

Changed:
<
<
After each alteration do:
>
>
After each alteration perform the following:

source multiUserCompile_v11r3.sh 2>&1 | tee compile.log (or whatever the name of your multiUserCompile file is)

That's it!

Old info that might be useful, in case something breaks

<!--/twistyPlugin twikiMakeVisibleInline-->
After each alteration perform the following:
  %SYNTAX{ "bash" color="yes"}% do_configure
Line: 230 to 283
  Though note that this may not work sometimes, or may not work if the permissions are not flexible (we are trying to fix this by creating a "rich_user" account). So try the following below.
Changed:
<
<

The big guns

If all this didn’t work, first READ everything up to and including the caveat below, and then follow the instructions or use the multiUserCompile.sh script:

>
>
If all this didn’t work, first *READ everything up to and including the caveat below*, and then follow the instructions or use the multiUserCompile.sh script:
  Login into new shell, then type:
Line: 258 to 310
 %ENDSYNTAX%

When calling cmsetup the environement file setup.x86_64-slc6-gcc49-dbg.vars will be overwritten. In order to make sure the latest TCK package is picked up you should check that all three paths containing "TCK" in their names are the same as for the opt build.

Added:
>
>
<!--/twistyPlugin-->
 

XML files

Line: 322 to 375
  Back to main Mirror alignment TWiki
Added:
>
>

shell_macros.sh

Here is the script (call it shell_macros.sh) you should put in /group/rich/sw/cmtuser/AlignmentOnlineDev_vYYrX to generate the cmsetup command, which allows you to make the base .vars files (which you will then need edit with the TCK changes described above):

<!--/twistyPlugin twikiMakeVisibleInline-->
<!-- SyntaxHighlightingPlugin -->
#!/bin/bash
#
##echo " Defining shell macros for the LHCb online system."
#
if test "`echo ${PATH} | grep /group/online/dataflow/scripts`" = "";then
  export PATH=/group/online/dataflow/scripts:${PATH};
fi;
#
if test "`echo ${CMTPROJECTPATH} | grep /group/online/dataflow/SwData`" = ""; then
  export CMTPROJECTPATH=/group/online/dataflow/SwData:${CMTPROJECTPATH};
fi;
#
alias errlog='xterm -sl 20000 -ls -132 -geometry 200x50 -title logViewer@${DIM_DNS_NODE} -e /opt/FMC/bin/logViewer -l 2 -S ';
alias netmon='xterm -geometry 95x40 -e bmon -c';
#
export ALL_CMT_PLATFORMS_49="x86_64-slc6-gcc49-opt x86_64-slc6-gcc49-dbg";
export ALL_CMT_PLATFORMS="${CMTOPT} ${CMTDEB}";
#
tmll() 
{
  /opt/FMC/bin/tmLl $* | grep -v "term";
}

__do_make()
{
    export TMP_ENV=${CMTCONFIG};
    for i in $1; 
    do 
	export CMTCONFIG=${i};
	echo " +++ CMTCONFIG is now:  ${CMTCONFIG}";
        eval `echo $2;`;
    done;
    export CMTCONFIG=${TMP_ENV};
}

__do_crsetup()
{
    curr=`cd ../..;pwd`;
    package=`cd ..;pwd`;
    package=`basename ${package}`;
    echo " +++ Creating environment for package ${package} in ${curr} ";
    ${CMTROOT}/mgr/cmt setup -sh -pack=${package} -version= -path=${curr} -no_cleanup -tag=${CMTCONFIG} >setup.${CMTCONFIG}.vars;
}

__do_cmsetup()
{
    curr=`pwd`;
    project=`basename ${curr}`;
    echo " +++ Creating environment for package ${package} in ${curr} ";
#    ./build.${CMTCONFIG}/run python /group/online/dataflow/scripts/cmsetup.py > setup.${CMTCONFIG}.vars;
    export GAUDIAPPNAME=`./build.${CMTCONFIG}/run echo '$GAUDIAPPNAME'`;
    ___PY_PATH=${PYTHONPATH};
    export PYTHONPATH=`./build.${CMTCONFIG}/run echo '$GAUDI_PROJECT_ROOT/cmake'`;
    python /group/online/dataflow/scripts/cmsetup.py > setup.${CMTCONFIG}.vars;
    export PYTHONPATH=${___PY_PATH};
}

do_install()
{
    __do_make "$ALL_CMT_PLATFORMS" "export USE_CMAKE=1; make -j 8 install";
}

do_make()
{
    __do_make "$ALL_CMT_PLATFORMS" "cmt make -j 8";
}

do_configure()
{
    __do_make "$ALL_CMT_PLATFORMS" "export USE_CMAKE=1; make configure";
}

do_cmake()
{
    __do_make "$ALL_CMT_PLATFORMS" "export USE_CMAKE=1; make -j 8";
}

do_make49()
{
    __do_make "$ALL_CMT_PLATFORMS_49" "cmt make -j 8";
}

do_cmake49()
{
    __do_make "$ALL_CMT_PLATFORMS_49" "export USE_CMAKE=1; make -j 8";
}

do_cleanup()
{
    #__do_make "$ALL_CMT_PLATFORMS" "cmt make binclean";
    __do_make "$ALL_CMT_PLATFORMS" "make clean";
}

crsetup()
{
    __do_make "$ALL_CMT_PLATFORMS" "__do_crsetup";
}

cmsetup()
{
    __do_make "$ALL_CMT_PLATFORMS" "__do_cmsetup";
}

cmsetup49()
{
    __do_make "$ALL_CMT_PLATFORMS_49" "__do_cmsetup";
}

build_platforms()
{
    tmp=$CMTCONFIG
    echo "--> Creating environment for package ${package} in ${curr} "
    for CMTCONFIG in $ALL_CMT_PLATFORMS; do
      export CMTCONFIG;
      echo "    ..... building ${CMTCONFIG} "
      ${CMTROOT}/mgr/cmt make -j 8;
    done;
    export CMTCONFIG=$tmp;
}

clean_platforms()
{
    tmp=$CMTCONFIG
    echo "--> Creating environment for package ${package} in ${curr} "
    for CMTCONFIG in $ALL_CMT_PLATFORMS; do
      export CMTCONFIG;
      echo "    ..... building ${CMTCONFIG} "
      ${CMTROOT}/mgr/cmt make clean;
      ${CMTROOT}/mgr/cmt make binclean;
    done;
    export CMTCONFIG=$tmp;
}

br_build_platforms()
{
    tmp=$CMTCONFIG
    echo "--> Creating environment for package ${package} in ${curr} "
    for CMTCONFIG in $ALL_CMT_PLATFORMS; do
      export CMTCONFIG;
      echo "    ..... building ${CMTCONFIG} "
      #${CMTROOT}/mgr/cmt broadcast "rm -rf ../${CMTCONFIG} || true";
      ${CMTROOT}/mgr/cmt broadcast cmt make -j 8;
    done;
    export CMTCONFIG=$tmp;
}
export PATH=/opt/FMC/sbin:/opt/FMC/bin:/group/online/dataflow/scripts:$PATH
export LD_LIBRARY_PATH=/opt/FMC/lib:${LD_LIBRARY_PATH}
cmthere()
{
    export User_release_area=`pwd`;
    export CMTPROJECTPATH=`pwd`:${CMTPROJECTPATH};
}

# Check a svn directory with sub-dirs for changes
check_svn()  {
  for i in `ls`;do
      cd ${i};
      echo "==================  Checking svn status in directory `pwd`";
      svn status;
      cd ..;
  done;
}

# Commit a svn directory with sub-dirs
commit_svn()  {
  for i in `ls`;do
      cd ${i};
      echo "==================  Commit files to svn in directory `pwd`";
      svn commit -m "Updates and bug fixes";
      cd ..;
  done;
}
<!-- end SyntaxHighlightingPlugin -->
<!--/twistyPlugin-->
 
META FILEATTACHMENT attachment="Iterator_Sketch.jpeg" attr="" comment="Sketch of what the Iterator does" date="1491411432" name="Iterator_Sketch.jpeg" path="Iterator_Sketch.jpeg" size="925845" user="pnaik" version="1"

Revision 222017-04-13 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 107 to 107
  This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.
Changed:
<
<
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. plus). The following example is for AlignmentOnline v11r2.
>
>
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. plus). The following example is for AlignmentOnline v11r3.
  DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process.
Line: 115 to 115
 echo "I have just set the User_release_area environment variable to:" export User_release_area=/group/rich/sw/cmtuser/ echo $User_release_area
Added:
>
>
LbLogin
 %ENDSYNTAX%

You could add these lines to the end of your .bashrc if you want.

Line: 123 to 124
  %SYNTAX{ "bash" color="yes"}% cd $User_release_area
Changed:
<
<
lb-dev AlignmentOnline/v11r2
>
>
lb-dev AlignmentOnline/v11r3
 %ENDSYNTAX%

Then find out what version of Online is newest. For example if it is v6r3, edit CMakeLists.txt and change:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r2 USE AlignmentOnline v11r2)
>
>
gaudi_project(AlignmentOnlineDev v11r3 USE AlignmentOnline v11r3)
 %ENDSYNTAX%

to

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r2 # USE AlignmentOnline v11r2) USE AlignmentOnline v11r2
>
>
gaudi_project(AlignmentOnlineDev v11r3 # USE AlignmentOnline v11r3) USE AlignmentOnline v11r3
  OnlineDev v6r3) # Paras added this %ENDSYNTAX%
Line: 191 to 192
 So, to get the code do the following:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd $User_release_area/AlignmentOnlineDev_v11r2
>
>
cd $User_release_area/AlignmentOnlineDev_v11r3
 git lb-use AlignmentOnline git lb-use Panoptes git fetch --all
Line: 202 to 203
  You may possibly want a tag instead of the master branch
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v10r6/multiUserCompile_v10r6.sh ./multiUserCompile_v11r2.sh OR create a new file called multiUserCompile_v11r2.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
>
>
Next, cp ../AlignmentOnlineDev_v11r3/multiUserCompile_v11r3.sh ./multiUserCompile_v11r3.sh OR create a new file called multiUserCompile_v11r3.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
  Then compile!
Changed:
<
<
source multiUserCompile_v11r2.sh 2>&1 | tee compile.log
>
>
source multiUserCompile_v11r3.sh 2>&1 | tee compile.log
  Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.
Added:
>
>
  • "heptools" versions don't match between AlignmentOnline and Online projects *Ask someone from Alignment group if they are aware of this, they may have to release a new version of AlignmentOnline
  • Could not find a package configuration file provided by "OnlineDev"
    • This is likely because the compiler version you are using does not have a build made.
      • echo $CMTOPT will tell you the version that you are compiling with=
    • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem.
    • Try again after running LbLogin -c x86_64-slc6-gcc62-opt where x86_64-slc6-gcc62-opt should be changed to one of the existing builds (compatible with the machine that you are on, slc6 builds should also be compatible with centos7 machines)
 

Standard compiling and installing of code

After each alteration do:

Line: 296 to 305
 make purge make configure make -j 8 install
Added:
>
>
cmsetup
 echo "Making DEB" LbLogin -c $CMTDEB export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$CMTDEB
Line: 305 to 315
 make purge make configure make -j 8 install
Added:
>
>
cmsetup
 %ENDSYNTAX% </>
<!--/twistyPlugin-->

Revision 212017-04-11 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 107 to 107
  This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.
Changed:
<
<
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. plus). The following example is for AlignmentOnline v11r3.
>
>
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. plus). The following example is for AlignmentOnline v11r2.
  DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process.
Line: 115 to 115
 echo "I have just set the User_release_area environment variable to:" export User_release_area=/group/rich/sw/cmtuser/ echo $User_release_area
Deleted:
<
<
LbLogin
 %ENDSYNTAX%

You could add these lines to the end of your .bashrc if you want.

Line: 124 to 123
  %SYNTAX{ "bash" color="yes"}% cd $User_release_area
Changed:
<
<
lb-dev AlignmentOnline/v11r3
>
>
lb-dev AlignmentOnline/v11r2
 %ENDSYNTAX%

Then find out what version of Online is newest. For example if it is v6r3, edit CMakeLists.txt and change:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r3 USE AlignmentOnline v11r3)
>
>
gaudi_project(AlignmentOnlineDev v11r2 USE AlignmentOnline v11r2)
 %ENDSYNTAX%

to

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r3 # USE AlignmentOnline v11r3) USE AlignmentOnline v11r3
>
>
gaudi_project(AlignmentOnlineDev v11r2 # USE AlignmentOnline v11r2) USE AlignmentOnline v11r2
  OnlineDev v6r3) # Paras added this %ENDSYNTAX%
Line: 192 to 191
 So, to get the code do the following:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd $User_release_area/AlignmentOnlineDev_v11r3
>
>
cd $User_release_area/AlignmentOnlineDev_v11r2
 git lb-use AlignmentOnline git lb-use Panoptes git fetch --all
Line: 203 to 202
  You may possibly want a tag instead of the master branch
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v11r2/multiUserCompile_v11r2.sh ./multiUserCompile_v11r3.sh OR create a new file called multiUserCompile_v11r3.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
>
>
Next, cp ../AlignmentOnlineDev_v10r6/multiUserCompile_v10r6.sh ./multiUserCompile_v11r2.sh OR create a new file called multiUserCompile_v11r2.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
  Then compile!
Changed:
<
<
source multiUserCompile_v11r3.sh 2>&1 | tee compile.log
>
>
source multiUserCompile_v11r2.sh 2>&1 | tee compile.log
  Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.
Deleted:
<
<
* "heptools" versions don't match between AlignmentOnline and Online projects
  • Ask someone from Alignment group if they are aware of this, they may have to release a new version of AlignmentOnline

* Could not find a package configuration file provided by "OnlineDev"

  • This is likely because the compiler version you are using does not have a build made.
    • echo $CMTOPT will tell you the version that you are compiling with=
  • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem.
  • Try again after running LbLogin -c x86_64-slc6-gcc62-opt where x86_64-slc6-gcc62-opt should be changed to one of the existing builds (compatible with the machine that you are on, slc6 builds should also be compatible with centos7 machines)
 

Standard compiling and installing of code

After each alteration do:

Line: 300 to 290
 echo "Making OPT" LbLogin -c $CMTOPT export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$CMTOPT
Added:
>
>
echo $OnlineDev_DIR
 env > envOPT.txt make clean make purge
Line: 308 to 299
 echo "Making DEB" LbLogin -c $CMTDEB export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$CMTDEB
Added:
>
>
echo $OnlineDev_DIR
 env > envDEB.txt make clean make purge

Revision 202017-04-11 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 140 to 140
 gaudi_project(AlignmentOnlineDev v11r3 # USE AlignmentOnline v11r3) USE AlignmentOnline v11r3
Changed:
<
<
USE OnlineDev v6r3) # Paras added this
>
>
OnlineDev v6r3) # Paras added this
 %ENDSYNTAX%

Next, add these lines to the top of build_env.csh:

Revision 192017-04-10 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 115 to 115
 echo "I have just set the User_release_area environment variable to:" export User_release_area=/group/rich/sw/cmtuser/ echo $User_release_area
Added:
>
>
LbLogin
 %ENDSYNTAX%

You could add these lines to the end of your .bashrc if you want.

Line: 210 to 211
  Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.
Added:
>
>
* "heptools" versions don't match between AlignmentOnline and Online projects
  • Ask someone from Alignment group if they are aware of this, they may have to release a new version of AlignmentOnline

* Could not find a package configuration file provided by "OnlineDev"

  • This is likely because the compiler version you are using does not have a build made.
    • echo $CMTOPT will tell you the version that you are compiling with=
  • Check ls /group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/ for the version of Online that you are using, if there is no build matching the version that you are compiling with, then this is the problem.
  • Try again after running LbLogin -c x86_64-slc6-gcc62-opt where x86_64-slc6-gcc62-opt should be changed to one of the existing builds (compatible with the machine that you are on, slc6 builds should also be compatible with centos7 machines)
 

Standard compiling and installing of code

After each alteration do:

Revision 182017-04-10 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 107 to 107
  This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.
Changed:
<
<
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. plus). The following example is for AlignmentOnline v11r2.
>
>
Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. plus). The following example is for AlignmentOnline v11r3.
  DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process.
Line: 123 to 123
  %SYNTAX{ "bash" color="yes"}% cd $User_release_area
Changed:
<
<
lb-dev AlignmentOnline/v11r2
>
>
lb-dev AlignmentOnline/v11r3
 %ENDSYNTAX%

Then find out what version of Online is newest. For example if it is v6r3, edit CMakeLists.txt and change:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r2 USE AlignmentOnline v11r2)
>
>
gaudi_project(AlignmentOnlineDev v11r3 USE AlignmentOnline v11r3)
 %ENDSYNTAX%

to

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
gaudi_project(AlignmentOnlineDev v11r2 # USE AlignmentOnline v11r2) USE AlignmentOnline v11r2
>
>
gaudi_project(AlignmentOnlineDev v11r3 # USE AlignmentOnline v11r3) USE AlignmentOnline v11r3
  USE OnlineDev v6r3) # Paras added this %ENDSYNTAX%
Line: 191 to 191
 So, to get the code do the following:

%SYNTAX{ "bash" color="yes"}%

Changed:
<
<
cd $User_release_area/AlignmentOnlineDev_v11r2
>
>
cd $User_release_area/AlignmentOnlineDev_v11r3
 git lb-use AlignmentOnline git lb-use Panoptes git fetch --all
Line: 202 to 202
  You may possibly want a tag instead of the master branch
Changed:
<
<
Next, cp ../AlignmentOnlineDev_v10r6/multiUserCompile_v10r6.sh ./multiUserCompile_v11r2.sh OR create a new file called multiUserCompile_v11r2.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
>
>
Next, cp ../AlignmentOnlineDev_v11r2/multiUserCompile_v11r2.sh ./multiUserCompile_v11r3.sh OR create a new file called multiUserCompile_v11r3.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
  Then compile!
Changed:
<
<
source multiUserCompile_v11r2.sh 2>&1 | tee compile.log
>
>
source multiUserCompile_v11r3.sh 2>&1 | tee compile.log
  Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.

Revision 172017-04-06 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 98 to 98
 

Fresh install of code for new AlignmentOnline version

Added:
>
>
First, add these two lines to the end of your .bashrc:

<!-- SyntaxHighlightingPlugin -->
echo "Check your current gid below. If it is not what you want, use newgrp to change your gid."
id
<!-- end SyntaxHighlightingPlugin -->

This will tell you your user ID (id), which group (rich, online, etc..) permissions are currently active (gid), and which groups your account can choose from (groups), in case you need to change your gid.

 Here's what you need to do if you want to freshly install the mirror alignment on an online machine (e.g. plus). The following example is for AlignmentOnline v11r2.

DO NOT FOLLOW THIS EXAMPLE VERBATIM. Only for a newer version of AlignmentOnline, should you do this process.

%SYNTAX{ "bash" color="yes"}%

Added:
>
>
echo "I have just set the User_release_area environment variable to:"
 export User_release_area=/group/rich/sw/cmtuser/ echo $User_release_area
Added:
>
>
%ENDSYNTAX%

You could add these lines to the end of your .bashrc if you want.

Next, and this only has to be done once:

%SYNTAX{ "bash" color="yes"}%

 cd $User_release_area lb-dev AlignmentOnline/v11r2 %ENDSYNTAX%
Line: 176 to 193
 %SYNTAX{ "bash" color="yes"}% cd $User_release_area/AlignmentOnlineDev_v11r2 git lb-use AlignmentOnline
Deleted:
<
<
git fetch --all
 git lb-use Panoptes
Added:
>
>
git fetch --all
 git lb-checkout Panoptes/master Rich/RichMirrAlign git lb-checkout Panoptes/master Rich/RichMirrorAlignmentOnline git lb-checkout Panoptes/master Rich/RichMirrCombinFit
Line: 187 to 204
  Next, cp ../AlignmentOnlineDev_v10r6/multiUserCompile_v10r6.sh ./multiUserCompile_v11r2.sh OR create a new file called multiUserCompile_v11r2.sh and copy in the contents of multiUserCompile.sh. Make sure to change the version of Online to the current version (in this example v6r3).
Added:
>
>
Then compile!

source multiUserCompile_v11r2.sh 2>&1 | tee compile.log

Hopefully you have no errors. If you do have errors check compile.log and try to solve the problem.

 

Standard compiling and installing of code

After each alteration do:

Line: 249 to 272
  remember="on" }% %SYNTAX{ "bash" color="yes"}%
Changed:
<
<
mkdir zzz mv InstallArea zzz/InstallArea.$(date +%s) mv build.$CMTOPT zzz/build.$CMTOPT.$(date +%s) mv build.$CMTDEB zzz/build.$CMTDEB.$(date +%s) rm -rf zzz
>
>
echo "Moving all past build files to ./pastBuildFiles, if they exist." if [ ! -d ./pastBuildFiles ]; then mkdir -p ./pastBuildFiles fi if [ -d ./InstallArea ]; then mv ./InstallArea pastBuildFiles/InstallArea.$(date +%s) fi if [ -d ./build.$CMTOPT ]; then mv ./build.$CMTOPT pastBuildFiles/build.$CMTOPT.$(date +%s) fi if [ -d ./build.$CMTDEB ]; then mv ./build.$CMTDEB pastBuildFiles/build.$CMTDEB.$(date +%s) fi echo "Deleting ./pastBuildFiles if we have the right permissions" rm -rf ./pastBuildFiles echo "Making OPT"
 LbLogin -c $CMTOPT
Changed:
<
<
export OnlineDev _DIR=/group/online/dataflow/cmtuser/OnlineDev_v5r29/InstallArea/$CMTOPT
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$CMTOPT env > envOPT.txt
 make clean make purge make configure make -j 8 install
Added:
>
>
echo "Making DEB"
 LbLogin -c $CMTDEB
Changed:
<
<
export OnlineDev _DIR=/group/online/dataflow/cmtuser/OnlineDev_v5r29/InstallArea/$CMTDEB #export LD_LIBRARY_PATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_76root6/Boost/1.55.0_python2.7/$CMTDEB/lib:$LD_LIBRARY_PATH
>
>
export OnlineDev_DIR=/group/online/dataflow/cmtuser/OnlineDev_v6r3/InstallArea/$CMTDEB env > envDEB.txt
 make clean make purge make configure

Revision 162017-04-05 - ParasNaik

Line: 1 to 1
 
META TOPICPARENT name="LHCbRichMirrorAlign"
-- ClaireProuve - 2015-07-18
Line: 67 to 67
  Here a beautiful sketch of what the iterator does:
Changed:
<
<